/* =========================================================
   One-page layout (Overview / Camp / Fees / FAQ / Other Courses)
   Skin-neutral structure. Colors and type come from style.css tokens or skins.css.
   ========================================================= */
body.bb-skinmode .bb-preview-note{display:none}
.bb-onepage .bb-entry>.wp-block-cover.bb-hero-cover{min-height:min(70vh,640px)}

/* info bar under hero */
.bb-entry .bb-op-infobar{background:var(--bb-op-bar,#0b2e4f);color:#fff;padding:0;max-width:none!important;margin:0!important}
.bb-op-infobar ul{list-style:none;margin:0 auto;padding:12px var(--bb-gutter);max-width:var(--bb-max);display:flex;flex-wrap:wrap;gap:10px 34px;align-items:center}
.bb-op-infobar li{display:flex;flex-direction:column;gap:1px;font-size:.9rem}
.bb-op-info-k{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;opacity:.7}
.bb-op-info-v{font-weight:600}

/* section nav (sticky under header) */
.bb-entry .bb-op-nav{position:sticky;top:var(--bb-header-h,88px);z-index:90;background:#fff;border-bottom:1px solid var(--bb-line);max-width:none!important;margin:0!important;padding:0!important}
.bb-op-nav ul{list-style:none;margin:0 auto;padding:0 var(--bb-gutter);max-width:var(--bb-max);display:flex;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.bb-op-nav ul::-webkit-scrollbar{display:none}
.bb-op-nav li{flex:0 0 auto}
.bb-op-nav a{display:block;padding:16px 18px;font-size:.95rem;font-weight:600;color:var(--bb-muted);border-bottom:3px solid transparent;white-space:nowrap}
.bb-op-nav a:hover,.bb-op-nav a.is-active{color:var(--bb-op-accent,var(--bb-teal-dark));border-bottom-color:var(--bb-op-accent,var(--bb-teal))}

/* two columns: main + sticky side */
.bb-entry .wp-block-columns.bb-op-cols{max-width:var(--bb-max);margin:0 auto;padding:clamp(24px,4vw,44px) var(--bb-gutter) clamp(32px,5vw,64px);gap:clamp(24px,3.5vw,48px);align-items:flex-start}
.bb-entry .bb-op-cols>.wp-block-column.bb-op-main{flex-basis:0;flex-grow:1;min-width:0}
.bb-entry .bb-op-cols>.wp-block-column.bb-op-side{flex-basis:320px;flex-grow:0;position:sticky;top:calc(var(--bb-header-h,88px) + 70px)}
@media (max-width:1000px){
  .bb-entry .wp-block-columns.bb-op-cols{flex-direction:column}
  .bb-entry .bb-op-cols>.wp-block-column.bb-op-side{position:static;flex-basis:auto;width:100%}
  .bb-entry .bb-op-cols>.wp-block-column.bb-op-main{width:100%;max-width:100%}
  .bb-entry .wp-block-columns.bb-op-cols{align-items:stretch}
}
.bb-entry .bb-op-side-card{background:#fff;border:1px solid var(--bb-line);border-radius:var(--bb-op-radius,var(--bb-radius));padding:22px 22px 18px;box-shadow:var(--bb-op-shadow,none)}
.bb-entry .bb-op-side-card>*{max-width:none;padding:0}
.bb-entry .bb-op-side-card h3{margin:0 0 .4em;font-size:1.2rem}
.bb-entry .bb-op-side-card .bbcb-dates-line{font-size:1rem;margin:0}
.bb-entry .bb-op-side-card .bbcb-dates-sub{font-size:.85rem}
.bb-entry .bb-op-price{display:grid;grid-template-columns:1fr auto;grid-template-areas:"k v" "s v";align-items:baseline;gap:0 10px;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--bb-line)}
.bb-entry .bb-op-price span{grid-area:k;font-size:.85rem;color:var(--bb-muted)}
.bb-entry .bb-op-price small{grid-area:s;font-size:.78rem;color:var(--bb-muted)}
.bb-entry .bb-op-price b{grid-area:v;font-size:1.7rem;line-height:1;color:var(--bb-op-accent-dark,var(--bb-navy));font-weight:700}
.bb-entry .bb-op-side-card .bbcb-announce{margin:14px 0 0;width:100%;font-size:.85rem}
.bb-entry .bb-op-side-card .wp-block-buttons.bb-op-side-btns{margin-top:12px}
.bb-entry .bb-op-side-btns .wp-block-button{width:100%}
.bb-entry .bb-op-side-btns .wp-block-button__link{width:100%;display:block;text-align:center}
.bb-entry .bb-op-facts{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--bb-line);font-size:.9rem}
.bb-entry .bb-op-facts li{display:flex;justify-content:space-between;gap:12px;padding:5px 0}
.bb-entry .bb-op-facts span{color:var(--bb-muted)}
.bb-entry .bb-op-facts b{font-weight:600;text-align:right}

/* sections inside main column */
.bb-entry .bb-op-sec{scroll-margin-top:calc(var(--bb-header-h,88px) + 70px);padding:clamp(22px,3vw,34px) clamp(18px,2.6vw,32px);margin:0 0 clamp(18px,2.5vw,28px);background:#fff;border:1px solid var(--bb-line);border-radius:var(--bb-op-radius,var(--bb-radius));box-shadow:var(--bb-op-shadow,none)}
.bb-entry .bb-op-sec>*{max-width:none;padding-left:0;padding-right:0}
.bb-entry .bb-op-sec p.bb-sec-label{margin-bottom:2px}
.bb-entry .bb-op-sec h2.bb-sec-title{margin-bottom:.6em}
.bb-entry .bb-op-sec h3.bb-op-h3{font-size:1.25rem;margin:0 0 .6em;padding-top:.2em}
.bb-entry .bb-op-sec p.bb-op-lead{font-weight:600;margin:.6em 0 .4em}
.bb-entry .bb-op-themes{columns:2;column-gap:28px;font-size:.93rem;padding-left:1.1em;margin:0 0 .6em}
.bb-entry .bb-op-themes li{break-inside:avoid;margin-bottom:5px}
@media (max-width:700px){.bb-entry .bb-op-themes{columns:1}}
.bb-entry .bb-op-sec .wp-block-columns{gap:clamp(12px,2vw,22px)}
.bb-entry .bb-op-sec .bb-cards-cols .wp-block-column.bb-card{text-align:left;padding:0}
.bb-entry .bb-op-sec .bb-card>h3{justify-content:flex-start;min-height:0;font-size:1.1rem}
.bb-entry .bb-op-sec .bb-card p{font-size:.95rem}
.bb-entry .bb-op-sec .bb-op-pillars .bb-card .bb-card-img{max-width:none;margin:0 0 12px}
.bb-entry .bb-op-sec .bb-op-pillars .bb-card .bb-card-img img{width:100%;height:150px;object-fit:cover;filter:none;aspect-ratio:auto;border-radius:var(--bb-op-radius-s,var(--bb-radius-s))}
.bb-entry .bb-op-sec .bb-op-acts .bb-card{padding:14px 16px;background:var(--bb-op-soft,var(--bb-sky-2));border-radius:var(--bb-op-radius-s,var(--bb-radius-s))}
.bb-entry .bb-op-sec .bb-op-acts .bb-card p.bb-card-icon{font-size:1.6rem;margin-bottom:4px}
.bb-entry .bb-op-sec .bb-op-acts .bb-card>h3{font-size:1rem}
.bb-entry .bb-op-sec .bb-op-acts .bb-card p{font-size:.88rem;margin:0}
.bb-entry .bb-op-sec .bb-op-courses .bb-card .bb-card-img img{width:100%;height:120px;object-fit:cover;border-radius:var(--bb-op-radius-s,var(--bb-radius-s))}
.bb-entry .bb-op-sec .bb-op-courses .bb-card .wp-block-button__link{padding:8px 16px;font-size:.82rem}
.bb-entry .bb-op-sec .bb-stats-cols{margin-top:18px}
.bb-entry .bb-op-sec .bb-compare .bb-card{padding:18px 20px}
.bb-entry .bb-op-sec .bb-feature-cols img{aspect-ratio:4/3;border-radius:var(--bb-op-radius-s,var(--bb-radius-s))}
.bb-entry .bb-op-sec .bb-gallery-block .wp-block-image img{border-radius:var(--bb-op-radius-s,var(--bb-radius-s))}
.bb-entry .bb-op-sec .bbcb-dates{margin:0 0 14px}
.bb-entry .bb-op-faq{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;align-items:start}
@media (max-width:760px){.bb-entry .bb-op-faq{grid-template-columns:1fr}}
.bb-entry .bb-op-faq .wp-block-details{margin:0 0 8px}
.bb-entry .bb-op-faq .wp-block-details summary{font-size:.95rem}
.bb-entry .bb-op-faq .wp-block-details p{font-size:.92rem}
.bb-entry .bb-op-cta{margin-top:0}

/* mobile enroll bar */
.bb-op-mobile-cta{display:none}
@media (max-width:760px){
  .bb-op-mobile-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:95;background:#fff;border-top:1px solid var(--bb-line);padding:10px var(--bb-gutter);gap:10px;align-items:center;box-shadow:0 -6px 20px rgba(0,0,0,.08)}
  .bb-op-mobile-cta .bb-btn{flex:1}
  .bb-op-mobile-cta span{font-size:.8rem;color:var(--bb-muted);line-height:1.2}
  body.bb-onepage{padding-bottom:64px}
  .bb-op-nav a{padding:13px 14px;font-size:.88rem}
  .bb-entry .bb-op-sec{padding:18px 16px}
}

/* hero: fixed height (inline min-height:72vh would balloon in tall viewports) */
.bb-onepage .bb-entry>.wp-block-cover.bb-hero-cover{min-height:600px!important;height:600px}
@media (max-width:760px){.bb-onepage .bb-entry>.wp-block-cover.bb-hero-cover{min-height:520px!important;height:520px}}

/* camp: enrollment-open box */
.bb-entry .bb-op-open{background:var(--bb-op-soft,var(--bb-sky-2));border-radius:var(--bb-op-radius-s,var(--bb-radius-s));padding:16px 20px;margin:0 0 18px;border-left:4px solid var(--bb-op-accent,var(--bb-teal))}
.bb-entry .bb-op-open-title{font-weight:700;color:var(--bb-op-accent-dark,var(--bb-navy));margin:0 0 6px;font-size:1.05rem}
.bb-entry .bb-op-open ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 26px;font-size:.95rem}
.bb-entry .bb-op-open li b{font-weight:700;margin-right:6px}

/* camp: ESL vs Academy comparison table */
.bb-entry .wp-block-table.bb-op-compare{overflow-x:auto;border:1px solid var(--bb-line);border-radius:var(--bb-op-radius-s,var(--bb-radius-s));margin:0 0 18px;background:#fff}
.bb-entry .bb-op-compare table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:560px;border:0}
.bb-entry .bb-op-compare th,.bb-entry .bb-op-compare td{padding:11px 14px;border-bottom:1px solid var(--bb-line);vertical-align:top;text-align:left}
.bb-entry .bb-op-compare thead th{font-weight:800;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;background:var(--bb-grey);color:var(--bb-navy)}
.bb-entry .bb-op-compare thead th.esl{background:var(--bb-op-esl,#e6f0fa);color:var(--bb-op-esl-ink,#155e97)}
.bb-entry .bb-op-compare thead th.academy{background:var(--bb-op-aca,#fff1e0);color:var(--bb-op-aca-ink,#b8651b)}
.bb-entry .bb-op-compare tbody th{font-weight:700;color:var(--bb-navy);width:22%;background:var(--bb-op-soft,var(--bb-sky-2))}
.bb-entry .bb-op-compare tbody tr:last-child th,.bb-entry .bb-op-compare tbody tr:last-child td{border-bottom:0}
.bb-entry .bb-op-sec .bb-op-choose .bb-card{background:var(--bb-op-soft,var(--bb-sky-2));padding:16px 18px;border-radius:var(--bb-op-radius-s,var(--bb-radius-s))}
.bb-entry .bb-op-sec .bb-op-choose .bb-card>h3{font-size:1rem}
.bb-entry .bb-op-sec .bb-op-choose .bb-card p{font-size:.9rem;margin:0}
.bb-entry .bb-op-sec h4{margin:.4em 0 .6em}

/* overview: photo slider (scroll-snap) */
.bb-entry .bb-op-slider-wrap{position:relative;margin:0 0 6px}
.bb-entry .bb-op-slider{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:4px;scrollbar-width:none}
.bb-entry .bb-op-slider::-webkit-scrollbar{display:none}
.bb-entry .bb-op-slider figure{flex:0 0 calc(50% - 5px);scroll-snap-align:start;margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:var(--bb-op-radius-s,var(--bb-radius-s));background:var(--bb-grey)}
@media (max-width:600px){.bb-entry .bb-op-slider figure{flex-basis:84%}}
.bb-entry .bb-op-slider img{width:100%;height:100%;object-fit:cover;border-radius:0}
.bb-entry .bb-op-slider-btn{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--bb-navy);font-size:1.6rem;line-height:1;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;padding:0 0 3px}
.bb-entry .bb-op-slider-btn.prev{left:10px}
.bb-entry .bb-op-slider-btn.next{right:10px}

/* spacing / wrapping fixes (2026-09-16 review) */
.bb-entry .bb-op-sec .wp-block-columns+h4,.bb-entry .bb-op-sec .wp-block-columns+h3.bb-op-h3{margin-top:1.4em}
.bb-entry .bb-op-sec .wp-block-columns.bb-op-acts{flex-wrap:wrap!important} /* コアCSSが ≥782px で nowrap!important を当てるため */
.bb-entry .bb-op-sec .bb-op-acts>.wp-block-column{flex:0 0 calc(33.333% - 10px)!important;min-width:0}
@media (max-width:600px){.bb-entry .bb-op-sec .bb-op-acts>.wp-block-column{flex-basis:100%!important}}
.bb-entry .bb-op-sec .bb-op-acts .bb-card p{margin:0}
.bb-entry .bb-op-sec .bb-cards-cols+.wp-block-columns{margin-top:12px}

/* gallery block used as a slider (client manages photos with the normal Gallery UI) */
.bb-entry .wp-block-gallery.bb-op-slider{display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;gap:10px;padding-bottom:4px;scrollbar-width:none;margin:0}
.bb-entry .wp-block-gallery.bb-op-slider::-webkit-scrollbar{display:none}
.bb-entry .wp-block-gallery.bb-op-slider>.wp-block-image{flex:0 0 calc(50% - 5px)!important;width:auto!important;max-width:none;margin:0!important;scroll-snap-align:start;aspect-ratio:4/3;overflow:hidden;border-radius:var(--bb-op-radius-s,var(--bb-radius-s))}
@media (max-width:600px){.bb-entry .wp-block-gallery.bb-op-slider>.wp-block-image{flex-basis:84%!important}}
.bb-entry .wp-block-gallery.bb-op-slider img{width:100%;height:100%;object-fit:cover;border-radius:0}
/* screenshot helper: headless Chrome enforces a 500px minimum window, so constrain the page to 390px */
body.bb-shot-w390,body.bb-shot-w390 .bb-header,body.bb-shot-w390 .bb-topbar{width:390px;max-width:390px}
body.bb-shot-w390{overflow-x:hidden}

/* screenshot mode: no sticky elements (they would float over the second capture pass) */
body.bb-shot .bb-header,body.bb-shot .bb-entry .bb-op-nav,body.bb-shot .bb-entry .bb-op-cols>.wp-block-column.bb-op-side{position:static}

/* other courses: 2-column course tables + offices (2026-09-24) */
.bb-entry .bb-op-course table{min-width:0}
.bb-entry .bb-op-course tbody th{width:30%}
.bb-entry .bb-op-sec .wp-block-table.bb-op-course{margin:0 0 10px}
.bb-entry .bb-op-sec .bb-op-course+p{margin-bottom:1.6em}
.bb-entry .bb-op-sec .bb-op-offices{margin-top:8px}
.bb-entry .bb-op-sec .bb-op-offices h4{margin:0 0 .4em}
.bb-entry .bb-op-sec h3.bb-op-policies-h{margin-top:1.4em}
