/* =========================================================
   SCHEDULE-SECTION.CSS — エリア別 日程・会場比較UI（トップ / /locations/ 共通）
   JSゲート: schedule-section.js が <html> に .schedule-js を付与する
   ========================================================= */

/* SCHEDULE COMPARISON — progressive enhancement */
#schedule-compare{scroll-margin-top:78px;}
#schedule-compare #locations{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(900px 440px at 8% 12%,rgba(63,155,200,.16),transparent 62%),radial-gradient(820px 520px at 92% 24%,rgba(24,77,60,.14),transparent 62%),linear-gradient(135deg,#fff 0%,#F0FAF6 44%,#EFF8FC 100%);}
#schedule-compare #locations::before{content:'';position:absolute;inset:0;background:var(--pattern-soft-lane) right top/1120px auto repeat-y;opacity:.34;mix-blend-mode:multiply;z-index:0;pointer-events:none;}
#schedule-compare #locations>.container{position:relative;z-index:1;}
.schedule-areas{display:flex;flex-direction:column;gap:18px;max-width:960px;margin:0 auto;}
.area-card{overflow:hidden;border:1px solid var(--border);background:#fff;}
.area-card-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:24px 28px;}
.area-card-info{flex:1;min-width:0;}
.area-card-info h3.area-name{display:block;margin:0 0 6px;font-size:19px;font-weight:900;}
.area-card-venues{font-size:12px;line-height:1.8;color:var(--txt2);}
.area-card-venues a{text-decoration:underline;text-decoration-color:var(--hair);text-underline-offset:3px;}
.area-card-venues a:hover{color:var(--green);text-decoration-color:var(--green);}
.area-card-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.area-card-meta span{padding:3px 11px;border:1px solid var(--border);border-radius:var(--r-pill);font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--green);}
.area-card-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;flex:none;border:1px solid var(--border);border-radius:50%;background:#fff;color:var(--txt2);cursor:pointer;transition:transform .25s;}
.schedule-js .area-card-toggle{display:flex;}
.schedule-js .area-card.open .area-card-toggle{transform:rotate(180deg);}
.area-card-body{display:block;border-top:1px solid var(--hair);}
.schedule-js .area-card-body{display:none;}
.schedule-js .area-card.open .area-card-body{display:block;}
.area-card-body-inner{padding:24px 28px 30px;}
.area-class-filter{display:none;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.schedule-js .area-class-filter{display:flex;}
.sch-filter{display:flex;flex-direction:column;align-items:center;padding:8px 18px;border:1px solid var(--border);border-radius:var(--r-sm);background:#fff;color:var(--txt2);font-family:'Noto Sans JP',sans-serif;font-size:12px;font-weight:800;line-height:1.4;cursor:pointer;}
.sch-filter small{font-size:9px;font-weight:500;}
.sch-filter[aria-pressed="true"]{border-color:var(--green);background:var(--green);color:#fff;}
.sch-filter-hint{display:none;margin:0 0 20px;font-size:11px;color:var(--txt2);}
.schedule-js .sch-filter-hint{display:block;}
.sch-notice{margin:0 0 14px;padding:10px 14px;border:1px solid #E8C878;border-left:3px solid #D98F00;background:#FFF9EC;font-size:11.5px;line-height:1.8;color:#5E4000;}
.sch-venue-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;}
.sch-venue-card{padding:16px 18px;border:1px solid var(--hair);border-radius:var(--r-sm);background:#fff;}
.sch-venue-card-name{display:block;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--hair);font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.1em;color:var(--green);}
.sch-day-group+.sch-day-group{margin-top:14px;}
.sch-day-group-label{margin-bottom:8px;font-size:12px;font-weight:800;color:var(--txt);}
.sch-day-group-label a{text-decoration:underline;text-decoration-color:var(--hair);text-underline-offset:3px;}
.sch-week-group{padding-top:6px;margin-top:6px;border-top:1px dashed var(--hair);}
.sch-week-label{margin-bottom:4px;font-size:10px;font-weight:700;color:var(--txt2);}
.sch-slots{display:flex;flex-direction:column;gap:6px;}
.sch-slot{display:flex;align-items:baseline;gap:9px;padding:7px 10px;border:1px solid var(--hair);border-radius:var(--r-xs);background:#fff;font-size:11px;}
.sch-slot[hidden],.sch-day-group[hidden],.sch-venue-card[hidden]{display:none;}
.sch-cls-name{font-weight:800;}
.sch-slot[data-cls="jr"] .sch-cls-name{color:#2E8577;}
.sch-slot[data-cls="yt"] .sch-cls-name{color:#347FA5;}
.sch-slot[data-cls="at"] .sch-cls-name{color:#B32525;}
.sch-time{font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.03em;}
.sch-slot-note{font-size:9px;color:var(--txt2);}
.sch-cls-chips{display:none;flex-wrap:wrap;gap:6px;}
.schedule-js .sch-cls-chips{display:flex;}
.sch-chip{padding:4px 11px;border:1px solid var(--hair);border-radius:var(--r-pill);background:#fff;font-size:10px;font-weight:800;}
.sch-chip[data-cls="jr"]{color:#2E8577;}
.sch-chip[data-cls="yt"]{color:#347FA5;}
.sch-chip[data-cls="at"]{color:#B32525;}
.schedule-js .area-card-body-inner:not(.filtered) .sch-slots{display:none;}
.schedule-js .area-card-body-inner.filtered .sch-cls-chips{display:none;}
.sch-other-grid{display:block;margin-top:22px;padding-top:18px;border-top:1px solid var(--hair);}
.sch-other-summary{display:flex;align-items:center;gap:8px;list-style:none;font-size:12px;font-weight:800;cursor:pointer;}
.sch-other-summary::-webkit-details-marker{display:none;}
.sch-other-summary::after{content:'\25BE';font-size:9px;color:var(--txt2);transition:transform .25s;}
.sch-other-grid[open]>.sch-other-summary::after{transform:rotate(180deg);}
.sch-other-intro{margin:14px 0 10px;font-size:11px;line-height:1.7;color:var(--txt2);}
.sch-other-row{display:grid;grid-template-columns:105px 1fr 115px 1fr;gap:10px;align-items:baseline;padding:8px 4px;border-bottom:1px solid var(--hair);font-size:11px;}
.sch-other-day,.sch-other-name{font-weight:800;}
.sch-other-name{color:var(--green);}
.sch-other-week{display:block;font-size:9px;font-weight:500;color:var(--txt2);}
.sch-other-time{font-family:var(--display);font-weight:600;white-space:nowrap;}
.sch-other-venue a{text-decoration:underline;text-decoration-color:var(--hair);text-underline-offset:2px;}
.sch-backup{margin-top:18px;padding:12px 15px;border:1px solid var(--hair);background:var(--warm);font-size:10.5px;line-height:1.8;color:var(--txt2);}

/* 全拠点ハブ（/locations/）への誘導ボタン（トップで使用） */
.sch-hub-link{max-width:960px;margin:26px auto 0;text-align:center;}
.sch-hub-link>a{display:inline-flex;align-items:center;gap:18px;min-height:52px;padding:13px 27px;border-radius:var(--r-sm);background:var(--green);color:#fff;font-size:13px;font-weight:800;}
.sch-hub-link>a:hover{background:#123D30;color:#fff;}
.sch-hub-link p{margin:8px 0 0;font-size:10.5px;color:var(--txt2);}

@media(max-width:680px){
  #schedule-compare .section{padding-left:16px;padding-right:16px;}
  .area-card-header{padding:18px;}
  .area-card-info h3.area-name{font-size:16px;}
  .area-card-venues{font-size:10.5px;}
  .area-card-body-inner{padding:16px 14px 22px;}
  .sch-filter{padding:7px 12px;font-size:10.5px;}
  .sch-venue-grid{grid-template-columns:1fr;}
  .sch-other-row{grid-template-columns:1fr 1fr;}
  .sch-hub-link>a{width:100%;justify-content:space-between;padding:12px 18px;font-size:11.5px;text-align:left;}
}
