.footer-business { display:flex; flex-wrap:wrap; align-items:baseline; gap:.35rem 1.25rem; margin-top:2rem; }
.footer-business dl, .footer-business dl > div { display:flex; flex-wrap:wrap; align-items:baseline; }
.footer-business dl { gap:.25rem 1.1rem; margin:0; }
.footer-business dl > div { gap:.4rem; }
.footer-business .business-address { flex-basis:100%; }
.footer-business dt, .footer-business dd, .footer a.footer-business-link { font-size:.8125rem; line-height:1.6; }
.footer-business dt { color:var(--88-text-muted, #526574); }
.footer-business dd { margin:0; }
.footer a.footer-business-link { display:inline-flex; gap:.25rem; align-items:center; margin:0; color:var(--88-text-muted, #526574); text-decoration:underline; text-underline-offset:.18em; }

/* Shared navigation keeps the primary blue. Program colors identify related content. */
:root { --mermaid-tint: #fff3f5; --kids-tint: #fff9df; }
[data-program="mermaid"] .page-intro, [data-program="mermaid"] #benefits { background:var(--mermaid-tint); }
[data-program="kids"] .page-intro, [data-program="kids"] #benefits { background:var(--kids-tint); }
:is([data-program="mermaid"],[data-program="kids"]) .page-intro .eyebrow { display:inline-block; padding:.24em .65em; color:var(--88-text); }
[data-program="mermaid"] .page-intro .eyebrow { background:var(--88-accent-coral); }
[data-program="kids"] .page-intro .eyebrow { background:var(--88-accent-yellow); }
[data-program="mermaid"] .price-table thead { background:#ffe5ea; }
[data-program="kids"] .price-table thead { background:#fff0ac; }
.home-page > .section { padding-block:clamp(44px,5vw,78px); }
.home-page .section-head { margin-bottom:clamp(20px,3vw,38px); }
.home-strengths .strength-object { font-size:clamp(30px,3.6vw,50px); line-height:1; display:block; margin-bottom:16px; }
.home-page .strength { border-top:3px solid var(--88-accent-coral); }
.home-page .strength:nth-child(2) { border-color:var(--88-accent-mint); }
.home-page .strength:nth-child(3) { border-color:var(--88-accent-yellow); }
.home-page .strength:nth-child(4) { border-color:var(--88-primary); }
.home-page #reviews .container { display:grid; grid-template-columns:minmax(200px,.8fr) minmax(0,2fr); column-gap:clamp(28px,4vw,70px); align-items:start; }
#reviews .section-head { grid-column:1; grid-row:1; margin-bottom:18px; }
#reviews .results-grid { grid-column:1; grid-row:2; display:grid; grid-template-columns:1fr; gap:13px; padding:16px 0; align-self:start; border:0; }
#reviews .results-grid > div { display:flex; flex-direction:column; align-items:start; gap:0; }
#reviews .results-grid strong { font-size:clamp(32px,3.4vw,52px); line-height:1.07; }
#reviews .metric-detail small { margin-top:1px; }
#reviews .reviews-grid { grid-column:2; grid-row:1 / span 3; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:16px 18px; margin:0; }
#reviews .review-item, #reviews .review-item:nth-child(-n+2) { grid-column:auto; display:flex; flex-direction:column; }
#reviews .review-item:first-child { grid-column:1/-1; }
#reviews .review-quote { border-radius:14px; flex:1; padding:15px 18px; }
#reviews .review-quote p { font-size:15px; }
#reviews .review-quote::after { left:24px; }
#reviews .review-item figcaption { margin-top:8px; }
#programs .programs { border:0; gap:clamp(16px,2.5vw,34px); }
#programs .program { border:0; padding:0; display:flex; flex-direction:column; min-width:0; }
#programs .program img { width:100%; height:clamp(115px,14vw,205px); object-fit:cover; }
#programs .program-title { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; margin-top:18px; }
#programs .program-title h3 { margin:0; font-size:clamp(22px,2.3vw,32px); }
#programs .age-label { font-size:12px; white-space:nowrap; padding:3px 8px; }
#programs .program-mermaid .age-label { color:var(--88-text); background:#ffdad5; }
#programs .program-kids .age-label { color:var(--88-text); background:var(--88-accent-yellow); }
#programs .program p { margin:12px 0; min-height:0; }
.level-tags { display:flex; flex-wrap:wrap; gap:5px; padding:0; margin:0 0 18px; list-style:none; }
.level-tags li { padding:3px 9px; background:white; border-radius:3px; font-size:12px; margin:0; }
#programs .program .btn { margin-top:auto; }
#experiences { background:white; color:var(--88-text); }
#experiences .separated-experiences { gap:clamp(14px,2vw,32px); }
#experiences .separated-experiences > section { padding:clamp(17px,2.4vw,34px); min-width:0; background:#e3f7f3; border-top:5px solid var(--88-accent-mint); }
#experiences .separated-experiences > section+section { background:#fff0eb; border-color:var(--88-accent-coral); }
#experiences :is(h2,h3,.event-row:hover h3){color:var(--88-text-heading);}
#experiences :is(.eyebrow,.text-link){color:var(--88-primary);}
#experiences :is(.section-intro,.event-row p,.small-note,.notice-inline,figcaption){color:var(--88-text);}
#experiences .section-intro { min-height:0; }
#experiences .event-cover { margin:16px 0; }
#experiences .event-cover img { height:clamp(105px,12vw,180px); }
#experiences .event-row { padding:12px 0; }
#experiences .event-row h3 { font-size:20px; }
#home-locations .home-locations { align-items:center; grid-template-columns:1fr 1.1fr; gap:24px; }
#home-locations #locations-overview-map { height:210px; }
.home-place-list { display:grid; grid-template-columns:1fr 1fr; gap:0 14px; }
.home-place-list > a { border-bottom:1px solid #cfdeeb; padding:8px 0; min-width:0; display:flex; flex-direction:column; }
.home-place-list > a span { font-size:15px; font-weight:600; }
.home-place-list small { color:var(--88-text-muted); font-size:12px; }
.home-page #home-faq { background:white; }
.home-page #home-locations { background:var(--88-surface-tint); }
.home-page .calm-contact { background:white; }
.kit-section, .places-section { padding-block:clamp(38px,5vw,74px); }
.kit-section { background:var(--88-surface-tint); }
.kit-section h2 { font-size:clamp(26px,3vw,40px); }
.kit-grid { display:grid; grid-template-columns:1.35fr 1fr; gap:clamp(16px,3vw,42px); margin-top:24px; }
.kit-grid > div { background:white; padding:clamp(18px,2.4vw,30px); border-top:4px solid var(--88-accent-mint); }
.kit-grid .kit-personal { border-color:var(--88-accent-coral); }
.kit-grid h3 { font-size:clamp(19px,1.9vw,25px); }
.kit-grid h3 span { margin-right:4px; }
.kit-grid ul { padding-left:20px; margin:14px 0; }
.kit-grid li+li { margin-top:4px; }
.kit-equipment,.kit-extra { border-top:1px solid #d5dfeb; padding-top:12px; font-size:14px; }
.kit-grid p strong { display:block; color:var(--88-text-heading); margin-bottom:4px; }
.compact-places { display:grid; grid-template-columns:1fr 1fr; gap:0 28px; list-style:none; padding:0; margin:0; }
.compact-places li { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; margin:0; border-top:1px solid #c9d9e7; }
.compact-name { font-size:16px; font-weight:600; color:var(--88-text-heading); }
.compact-places p { color:var(--88-text-muted); font-size:13px; line-height:1.5; margin:3px 0 0; }
.compact-places p span { color:#a3afba; }
.place-inquiry { font-size:13px; color:var(--88-primary); display:inline-flex; align-items:center; white-space:nowrap; min-height:40px; }
.place-inquiry .arrow { font-size:14px; }
.places-section .section-head { margin-bottom:22px; }
@media(min-width:961px) and (min-height:660px) and (prefers-reduced-motion:no-preference) {
  html:has(.home-page) { scroll-snap-type:y proximity; }
  .home-page > section { scroll-snap-align:start; }
  .home-page > :is(.home-strengths,#programs,#reviews,#home-instructors) { min-height:calc(100svh - 100px); display:grid; align-content:center; }
}
@media(max-width:800px) {
  .home-page #reviews .container { display:block; }
  #reviews .results-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:0 0 20px; }
  #reviews .reviews-grid { margin:6px 0 0; }
  .compact-places { grid-template-columns:1fr; }
  #home-locations .home-locations { grid-template-columns:1fr; gap:8px; }
  #home-locations #locations-overview-map { height:175px; }
}
@media(max-width:640px) {
  #programs .program { padding:0 0 12px; }
  #programs .program img { height:auto; aspect-ratio:2.6; }
  #programs .program-title { margin-top:10px; }
  #reviews .reviews-grid,.kit-grid { grid-template-columns:1fr; }
  #reviews .results-grid strong { font-size:clamp(24px,7vw,37px); }
  .kit-grid { gap:12px; }
  .kit-grid ul { font-size:14px; }
  .compact-places li { padding:8px 0; }
  #experiences .separated-experiences { gap:20px; }
  .program-choices .program .btn { width:auto; }
}


@media(min-width:961px) and (min-height:660px) {
  .home-page .hero { min-height:calc(100svh - 100px); }
  .home-page .hero-photo { min-height:100%; }

  #experiences .separated-experiences .event-row { min-height:0; }
  #experiences .section-intro { margin-top:8px; }
}

.choice-list .course-row { padding-block:18px; align-items:center; }
.choice-list .choice-meta { margin:5px 0 0; color:var(--88-text-muted); font-size:14px; }
.choice-list + :is(#course-prices,details) { margin-top:28px; }
.event-place { display:block; margin-bottom:5px; color:var(--88-primary); font-weight:650; font-size:13px; }
.lesson-focus h2 { font-size:clamp(22px,3vw,32px); }
.lesson-focus p { margin:12px 0 24px; }
.lesson-terms { padding:14px 0; border-block:1px solid #ccd8e4; }
.lesson-terms summary { cursor:pointer; font-weight:650; }
.lesson-terms p { margin:10px 0; }
.lesson-links { margin:18px 0 26px; }

.price-scroll { max-width:100%; overflow-x:auto; }
.price-scroll:focus-visible { outline:2px solid var(--88-primary); outline-offset:2px; }
.price-scroll:has(th:nth-child(5)) .price-table { min-width:560px; }
@media(max-width:640px){.choice-list .course-row { padding-block:16px; } .price-scroll .price-table { font-size:13px; }}

/* Level comparisons share an axis for sessions, skills and tuition. */
[data-program="freediving"] { --discipline-wash:#e9f2fe; --discipline-accent:#0060d5; }
[data-program="mermaid"] { --discipline-wash:#fff1ee; --discipline-accent:#d24a33; }
[data-program="kids"] { --discipline-wash:#fff7d8; --discipline-accent:#977000; }
.course-catalog,.kit-section { background:var(--discipline-wash,var(--88-surface-tint)); }
.course-catalog,.class-flow,.kit-section,.venue-section { padding-block:clamp(38px,5.3vw,76px); }
.course-catalog .section-head { margin-bottom:24px; }
.lesson-filters { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 20px; }
.lesson-picker [hidden] { display:none; }
.lesson-filters button { background:transparent; border:1px solid #a8b8cb; border-radius:24px; min-height:40px; padding:6px 17px; color:var(--88-text-heading); font:inherit; font-size:14px; font-weight:650; cursor:pointer; }
.lesson-filters button[aria-pressed=true] { background:var(--88-text-heading); border-color:var(--88-text-heading); color:white; }
.lesson-band + .lesson-band { margin-top:24px; }
.picker-ready .lesson-band { margin-top:0; }
.picker-ready .fallback-track,.lesson-band:only-child .fallback-track { display:none; }
.fallback-track { font-size:17px; margin:0 0 10px; }
.offer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:clamp(12px,1.7vw,24px); }
.lesson-offer { min-width:0; display:flex; flex-direction:column; padding:clamp(18px,2.1vw,29px); background:#fff; color:var(--88-text); border:1px solid #cfdae6; border-radius:12px; }
.lesson-offer.offer-highlight { border:2px solid var(--88-primary); padding:calc(clamp(18px,2.1vw,29px) - 1px); }
.offer-label { color:var(--88-text-muted); font-size:11px; font-weight:700; letter-spacing:.07em; }
.offer-main h3 { color:var(--88-text-heading); font-size:clamp(24px,2.3vw,33px); line-height:1.2; margin:4px 0 8px; }
.offer-choice { margin:0 0 12px; font-size:15px; line-height:1.5; color:var(--88-text); }
.session-label { display:inline-block; margin-bottom:9px; padding:3px 10px; font-size:13px; font-weight:650; background:var(--discipline-wash); border-radius:6px; }
.offer-skills { list-style:none; padding:0; margin:3px 0 22px; font-size:14px; line-height:1.5; }
.offer-skills li { margin:5px 0; display:flex; align-items:baseline; gap:8px; }
.offer-skills li::before { content:'✓'; color:var(--discipline-accent); font-weight:800; }
.offer-prices { margin-top:auto; }
@supports (grid-template-rows:subgrid) {
 .lesson-offer { display:grid; grid-row:span 3; grid-template-rows:subgrid; row-gap:0; }
 .offer-prices { margin-top:0; }
 .lesson-link { align-self:end; }
}
.copy-fallback { width:min(30em,100%); padding:.7em; color:inherit; font:inherit; }
.rate-variant { border-top:1px solid #d7e0eb; padding:10px 0 4px; }
.offer-fee,.offer-option { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; column-gap:5px; margin:0; }
.offer-fee span,.offer-option span { color:var(--88-text-muted); font-size:13px; }
.offer-fee strong { color:var(--88-text-heading); font-size:clamp(21px,2vw,29px); font-weight:750; letter-spacing:-.04em; }
.offer-option { margin:4px 0; }
.offer-option b { font-size:14px; font-weight:600; color:var(--88-text-heading); }
.lesson-link { position:relative; display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:42px; margin-top:14px; padding:9px 14px; border:1px solid #b3c9e0; border-radius:6px; color:var(--88-primary); text-decoration:none; font-weight:650; font-size:14px; }
.lesson-link:hover,.offer-highlight .lesson-link { background:var(--88-primary); color:white; border-color:var(--88-primary); }
.course-catalog :is(.package-prices > summary,.price-scroll) { background:#fff; }
.course-catalog .package-prices { padding:0 16px; border:1px solid #c4d1dc; background:#fff; }
.course-catalog .package-prices+.package-prices { border-top:0; }
.learning-steps { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(18px,3vw,40px); margin:26px 0 0; padding:0; }
.learning-steps li { border-top:2px solid var(--discipline-accent); padding:12px 0 0; }
.step-top { display:flex; gap:10px; align-items:center; font-size:12px; color:var(--88-text-muted); font-weight:600; }
.step-top b { font-size:20px; font-weight:750; color:var(--discipline-accent); }
.learning-steps h3 { margin:8px 0; font-size:21px; }
.learning-steps p { margin:0; font-size:15px; line-height:1.65; }
.packing { margin-top:24px; display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:14px; }
.pack-in,.pack-take,.pack-fees { padding:clamp(17px,2.2vw,28px); background:white; border:1px solid #d8e1ec; border-radius:10px; }
.packing h3 { margin:0 0 16px; font-size:20px; }
.pack-icons { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px 10px; list-style:none; padding:0; margin:0; }
.pack-icons li { margin:0; color:var(--88-text); font-size:13px; font-weight:650; }
.pack-icons li span { display:grid; place-items:center; width:35px; height:35px; margin-bottom:5px; background:#ecf1fb; border-radius:10px; font-size:21px; }
.pack-icons li:nth-child(4n+2) span { background:#e5f6f2; }
.pack-icons li:nth-child(4n+3) span { background:#fff5ca; }
.pack-icons li:nth-child(4n) span { background:#ffebe8; }
.borrow-row { border-top:1px solid #dde5ed; margin-top:17px; padding-top:14px; }
.borrow-row h4 { margin:0 0 6px; font-size:13px; }
.pack-tags,.coach-tags { list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; }
.pack-tags li,.coach-tags li { margin:0; padding:3px 9px; font-size:13px; line-height:1.55; border-radius:24px; color:var(--88-text-heading); background:var(--discipline-wash,var(--88-surface-tint)); }
.pack-aside { display:grid; gap:12px; grid-template-rows:auto 1fr; }
.pack-fees { background:rgba(255,255,255,.62); }
.pack-fees h3 { font-size:15px; margin-bottom:6px; }
.pack-fees p,.kit-terms { font-size:13px; color:var(--88-text-muted); margin:0; }
.kit-terms { margin:11px 0 0; }
.lesson-links { display:flex; flex-wrap:wrap; gap:10px 22px; }
.venue-sheet { display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,4vw,58px); align-items:start; }
.venue-details h2 { font-size:clamp(23px,2.5vw,34px); }
.venue-programs,.venue-actions,.venue-map-links { display:flex; flex-wrap:wrap; align-items:center; gap:8px 15px; }
.venue-programs { margin:14px 0 22px; }
.venue-program { display:inline-flex; align-items:center; gap:7px; background:var(--88-surface-tint); color:var(--88-primary); border-radius:6px; font-size:14px; padding:7px 12px; text-decoration:none; font-weight:650; }
.venue-facts { margin:0; }
.venue-facts > div { display:grid; grid-template-columns:6.8em 1fr; gap:10px; align-items:baseline; border-top:1px solid #d4dfeb; padding:10px 0; font-size:14px; }
.venue-facts dt { color:var(--88-text-muted); font-weight:600; }
.venue-facts dd { color:var(--88-text); margin:0; }
.venue-facts small { font-size:11px; white-space:nowrap; }
.venue-fees { background:var(--88-surface-tint); border-radius:8px; padding:16px 20px; margin-top:16px; }
.venue-fees h3 { font-size:19px; margin-bottom:8px; }
.venue-fees p { color:var(--88-text-muted); font-size:12px; line-height:1.6; margin:7px 0 0; }
.venue-map { display:block; width:100%; height:clamp(210px,23vw,300px); border:1px solid #d7e1eb; border-radius:8px; background:#edf3f8; }
.venue-map-links { margin:6px 0 12px; justify-content:space-between; }
.venue-source { display:inline-flex; align-items:center; gap:4px; color:var(--88-primary); font-size:13px; min-height:32px; }
.venue-photos { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.venue-photos figure { margin:0; min-width:0; }
.venue-photos img { display:block; width:100%; height:auto; aspect-ratio:1.9; object-fit:cover; border-radius:6px; }
.venue-photos figcaption { font-size:11px; line-height:1.5; padding-top:4px; }
.venue-photos figcaption a { color:var(--88-text-muted); }
.venue-travel { margin-top:22px; border-block:1px solid #d7e1eb; }
.venue-travel summary { padding:12px 0; font-weight:650; cursor:pointer; }
.venue-travel ul { padding-left:20px; font-size:14px; }
.venue-actions { margin-top:22px; }
.venue-actions .copy-button { margin:0; font-size:13px; min-height:42px; }
.instructor-details .coach-full { display:block; padding:22px 0; border-top:2px solid #a8c7ee; }
.coach-full header { display:flex; align-items:center; gap:18px; }
.instructor-details .coach-full .instructor-portrait { width:76px; height:76px; }
.coach-full header .role { font-size:12px; margin:0 0 5px; }
.coach-body { padding:18px 0 0; }
.coach-audience { margin:0 0 10px; font-size:clamp(16px,1.5vw,21px); color:var(--88-text-heading); font-weight:650; }
.coach-body h4 { margin:16px 0 6px; padding-top:11px; border-top:1px solid #c9d9e9; font-size:12px; color:var(--88-text-muted); }
.coach-body ul:not(.coach-tags) { padding-left:17px; margin:0; font-size:14px; line-height:1.55; }
.coach-body ul:not(.coach-tags) li { margin:3px 0; }
.instructor-previews .coach-tags { margin:8px 0; }
.instructor-previews .coach-tags li { background:white; font-size:12px; padding:3px 8px; }
.instructor-previews .instructor-qualification { list-style:none; margin:12px 0 0; padding:0; font-size:14px; line-height:1.65; font-weight:450; color:var(--88-text-muted); }
.instructor-qualification li { margin:0; }
.coach-name-link { color:inherit; text-decoration:none; }
.coach-name-link span { font-size:.64em; color:var(--88-primary); vertical-align:.12em; }
.coach-name-link:hover { text-decoration:underline; text-underline-offset:.14em; }
@media(max-width:850px){
 .offer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .packing { grid-template-columns:1.4fr 1fr; }
 .pack-icons { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:640px){
 .offer-grid,.learning-steps,.packing,.venue-sheet { grid-template-columns:1fr; }
 .offer-grid,.learning-steps { gap:12px; }
 .lesson-offer { padding:16px; }
 .lesson-offer.offer-highlight { padding:15px; }
 .offer-main h3 { font-size:24px; }
 .offer-choice { margin-bottom:8px; }
 .offer-skills { margin:1px 0 14px; }
 .learning-steps li { padding-top:9px; }
 .learning-steps h3 { margin:5px 0; }
 .pack-icons { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px 7px; }
 .pack-icons li { font-size:12px; }
 .pack-take,.pack-fees { padding:14px 16px; }
 .pack-take h3 { margin-bottom:9px; }
 .venue-actions { gap:7px 12px; }
 .venue-map { height:205px; }
 .coach-full header { gap:13px; }
 .instructor-details .coach-full .instructor-portrait { width:65px; height:65px; }
}
.place-fold { width:100%; }
.place-fold summary { cursor:pointer; display:grid; grid-template-columns:1fr auto; align-items:baseline; column-gap:10px; list-style:none; }
.place-fold summary::-webkit-details-marker { display:none; }
.place-fold summary small { grid-column:1/-1; line-height:1.6; margin-top:3px; font-size:13px; color:var(--88-text-muted); }
.fold-label { font-size:12px; color:var(--88-primary); font-weight:600; }
.fold-label::after { content:' +'; }
.place-fold[open] .fold-label::after { content:' −'; }
.compact-places li { align-self:start; }
.fold-body { margin:14px 0 0; }
.fold-body .venue-map { height:175px; }
.fold-body .venue-photos img { max-height:105px; }
.compact-places .fold-address { color:var(--88-text); margin:8px 0; }
.fold-body .venue-map-links { margin:3px 0; }


/* Course browsing and destination guides */
.course-controls { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:12px; }
.course-controls .lesson-filters { margin:0; }
.rail-controls { display:flex; margin-left:auto; gap:5px; }
.rail-controls button { display:grid; place-items:center; width:42px; height:42px; border:1px solid #b0c2d4; border-radius:50%; background:white; color:#06226e; font:inherit; font-size:20px; cursor:pointer; }
.rail-controls button:disabled { opacity:.4; cursor:default; }
.offer-grid { --gap:14px; display:grid; grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:calc((100% - 3 * var(--gap))/4); grid-template-rows:auto auto auto; gap:0 var(--gap); overflow-x:auto; padding:3px 2px 12px; scroll-snap-type:x proximity; scrollbar-width:thin; scrollbar-color:#a6bbd4 transparent; }
.offer-grid:has(>.lesson-offer:last-child:nth-child(-n+3)) { grid-auto-columns:minmax(0,1fr); }
.lesson-offer { grid-row:span 3; scroll-snap-align:start; padding:clamp(18px,1.8vw,26px); }
.lesson-offer.offer-highlight { padding:calc(clamp(18px,1.8vw,26px) - 1px); }
.offer-grid:has(>.lesson-offer:only-child) { grid-auto-columns:minmax(270px,420px); }
.offer-kicker { min-height:24px; display:flex; gap:8px; align-items:center; justify-content:space-between; }
.best-label { font-size:11px; font-weight:800; letter-spacing:.06em; padding:3px 9px; border-radius:30px; color:#14234b; background:var(--88-accent-yellow); }
.offer-choice { min-height:2.9em; }
.course-days { display:inline-block; margin:0 0 6px 5px; color:var(--88-text-muted); font-size:13px; }
.group-saving { display:block; color:#0c6459; font-weight:650; margin:7px 0 4px; font-size:12px; }
.kit-exclusions { display:flex; flex-wrap:wrap; gap:0 15px; border-top:1px solid #bbc9d5; padding-top:12px; margin-top:16px; align-items:baseline; }
.kit-exclusions h3 { font-size:15px; margin:0; }
.kit-exclusions p { font-size:14px; margin:0; }
.bring-tags li { display:flex; align-items:center; gap:6px; font-weight:650; padding:5px 10px; }
.bring-tags span { font-size:19px; }
.instructor-details .coach-full .instructor-portrait { width:clamp(126px,13.3vw,200px); height:clamp(126px,13.3vw,200px); flex:none; }
.coach-full header { gap:clamp(15px,2vw,33px); }
.coach-full .role { line-height:1.45; }
.agency-story { margin:24px 0 8px; font-size:22px; }
.cert-section { padding-block:clamp(38px,4.4vw,66px); }
.cert-section h2,.student-stories h2 { font-size:clamp(25px,3vw,40px); }
.cert-intro { margin:10px 0 18px; max-width:64ch; }
.cert-panel { border-top:1px solid #ccd8e6; padding:0; }
.cert-panel summary { cursor:pointer; min-height:48px; padding:14px 2px; font-weight:680; }
.cert-table-wrap { overflow:auto; margin:0 0 10px; }
.cert-table { width:100%; border-collapse:collapse; font-size:14px; text-align:left; }
.cert-table td,.cert-table th { vertical-align:top; padding:10px 13px; border-bottom:1px solid #dfE6ee; }
.cert-table thead { background:var(--discipline-wash,#ebf2fc); }
.cert-table th:last-child,.cert-table td:last-child { white-space:nowrap; }
.youth-certificates .cert-table { table-layout:fixed; line-height:1.65; background:white; }
.youth-certificates .cert-table th:first-child { width:clamp(4rem,13%,8rem); }
.youth-certificates .cert-table :is(td,th) { white-space:normal; overflow-wrap:anywhere; }
.youth-certificates .cert-table td { padding-block:14px; }
.youth-certificates .cert-table td b { color:var(--88-text-heading); font-weight:650; }
@media (max-width:600px) {
 .youth-certificates .cert-table th:first-child { width:3.7rem; }
 .youth-certificates .cert-table :is(th,td) { padding:9px 6px; }
}
.cert-note,.cert-sources { font-size:13px; color:var(--88-text-muted); margin:9px 0 13px; line-height:1.65; }
.cert-sources a { color:var(--88-primary); display:inline-block; margin-right:16px; }
.student-stories { padding-block:clamp(32px,4.2vw,62px); background:var(--discipline-wash,#ebf2fc); }
.course-review-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); gap:18px; margin-top:22px; }
.course-review { margin:0; }
.course-review:only-child { max-width:42rem; }
.course-review blockquote { margin:0; font-weight:520; line-height:1.6; background:white; border-radius:12px; padding:18px 20px; border:1px solid #dae2ec; }
.course-review figcaption { font-size:12px; color:var(--88-text-muted); padding:7px 8px; }
.detail-strip { margin:0; position:relative; overflow:hidden; background:#e0ebf5; }
.detail-strip img { display:block; width:100%; height:clamp(96px,13.5vw,205px); object-fit:cover; object-position:center 49%; }
.detail-strip figcaption,.experience-intro figcaption { position:absolute; bottom:8px; right:12px; padding:2px 8px; background:#092033cf; border-radius:3px; color:white; font-size:11px; }
.experience-intro { background:#e7f6f3; padding:clamp(28px,4vw,59px) 0; }
.experience-intro.exp-workshop { background:#fff2ec; }
.experience-intro .container { display:grid; grid-template-columns:.92fr 1.08fr; align-items:center; gap:clamp(25px,5vw,70px); }
.experience-intro h1 { font-size:clamp(31px,4.1vw,64px); line-height:1.13; margin:14px 0; letter-spacing:-.052em; }
.experience-intro p { font-size:clamp(16px,1.3vw,20px); margin:0; color:var(--88-text); }
.group-request { display:flex; align-items:center; justify-content:space-between; gap:12px 22px; flex-wrap:wrap; margin:22px 0 0; padding:18px 22px; background:#fff; border:1px solid #d4e1e8; border-inline-start:4px solid var(--88-accent-mint); border-radius:10px; }
.exp-workshop .group-request { border-inline-start-color:var(--88-accent-coral); }
.group-request h3 { margin:0 0 4px; font-size:17px; }
.group-request p { margin:0; color:#4b5f70; font-size:15px; line-height:1.55; }
.group-request .text-link { flex:none; font-size:14px; }
.experience-intro figure { margin:0; position:relative; overflow:hidden; border-radius:12px; }
.experience-intro figure img { display:block; width:100%; height:clamp(180px,23vw,330px); object-fit:cover; }
.exp-index { padding-block:clamp(35px,4.8vw,68px); }
.exp-index .section-head { margin-bottom:24px; }
.exp-index#past { background:#f5fbf9; }
.exp-index.exp-workshop#past { background:#fff9f5; }
.exp-tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr)); gap:18px; }
.exp-tile { display:flex; flex-direction:column; color:inherit; text-decoration:none; background:white; border-radius:12px; border:1px solid #cbd8df; overflow:hidden; }
.exp-tile[hidden] { display:none; }
.exp-tile:hover { border-color:#0060d5; }
.exp-tile .tile-body { display:flex; flex:1; flex-direction:column; padding:clamp(17px,2vw,26px); }
.tile-byline,.tile-foot { display:flex; gap:10px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.tile-byline { color:#426879; font-size:13px; font-weight:600; }
.exp-workshop .tile-byline { color:#88412f; }
.exp-tile h3 { font-size:clamp(20px,1.8vw,28px); margin:12px 0 6px; line-height:1.26; }
.exp-tile p { font-size:15px; margin:0 0 20px; }
.tile-foot { margin-top:auto; border-top:1px solid #d7e2ea; padding-top:10px; color:#2c4964; font-size:13px; }
.event-thumb { width:100%; height:150px; object-fit:cover; }
@media(max-width:1050px) { .lesson-band .offer-grid:has(>.lesson-offer:nth-child(n+3)) { grid-auto-columns:minmax(250px,41%); } }
@media(max-width:650px) {
 .lesson-band .offer-grid:has(>.lesson-offer:nth-child(n+2)) { grid-auto-columns:88%; }
 .offer-grid:has(>.lesson-offer:only-child) { grid-auto-columns:100%; }
 .course-controls { gap:4px; flex-wrap:wrap; }
 .course-controls .lesson-filters { gap:4px; }
 .lesson-filters button { padding-inline:10px; font-size:13px; }
 .rail-controls button { width:36px; height:36px; }
 .offer-choice { min-height:0; }
 .experience-intro .container { grid-template-columns:1fr; gap:18px; }
 .experience-intro figure img { height:156px; }
 .cert-table { font-size:13px; }
 .cert-table td,.cert-table th { padding:8px; }
 .course-review-list { gap:11px; }
 .instructor-details .coach-full .instructor-portrait { width:116px; height:116px; }
}

.level-exception { display:block; margin:0 0 6px; font-size:12px; color:var(--88-text-muted); }
.intro-cert { display:table; width:fit-content; color:var(--88-text-heading); margin-top:14px; font-size:14px; font-weight:650; text-underline-offset:4px; }

[data-experience="tour"] { --event-wash:#e7f6f3; --event-ink:#096454; }
[data-experience="workshop"] { --event-wash:#fff2ec; --event-ink:#903e2c; }
[data-experience] .compact-intro { background:var(--event-wash); }
[data-experience] .compact-intro .eyebrow { color:var(--event-ink); }
[data-experience] .compact-intro .eyebrow::before { content:'투어'; display:inline-block; padding:4px 10px; margin-right:10px; border-radius:20px; background:white; color:inherit; }
[data-experience="workshop"] .compact-intro .eyebrow::before { content:'특강'; }
[data-experience] .detail-facts { margin-bottom:28px; padding:10px 20px; border-radius:10px; background:var(--event-wash); }
[data-experience] .two-col .content-block { padding:20px; border:1px solid #d8e1e9; border-radius:10px; }
[data-experience] .content-block h2 { font-size:clamp(22px,2.3vw,34px); }
[data-experience] .event-detail-photo img { display:block; width:100%; height:clamp(170px,27vw,400px); object-fit:cover; border-radius:10px; }

/* The first course view also leads straight to the recommended package. */
.best-shortcut{display:flex;align-items:center;gap:12px;padding:14px 17px;margin:0 0 17px;background:#eef5fe;border:1px solid #b9d4ef;border-radius:10px;color:#123863;text-decoration:none}
.best-shortcut .bundle-title>b,.upcoming-status{width:fit-content;border-radius:99px;padding:4px 10px;font-size:12px;line-height:1.5;font-weight:800}
.best-shortcut .bundle-title>b{background:#ffde55;color:#142b49}
.rate-variant .group-basis{color:#174579;font-size:13px;font-weight:700;margin:0}
.rate-variant .group-primary{display:flex;gap:7px;align-items:baseline;margin:1px 0 8px;color:#08499b}
.group-primary strong{font-size:clamp(26px,2.4vw,36px);font-weight:800;line-height:1.1;letter-spacing:-.045em}
.group-primary small{font-weight:650;font-size:14px}
.rate-variant .group-saving{display:inline-block;padding:5px 9px;margin:0 0 11px;border-radius:5px;background:#fff1b0;color:#493c07;font-size:12px}
.group-saving b{font-size:14px}.rate-variant .individual-price,.rate-variant .individual-price strong{font-size:13px;color:#526376}
.weekday-note{margin:25px 0 7px;font-size:14px;color:#495c71}.detail-saving{display:block;font-size:14px;margin-top:4px;color:#495c71}
#freediving-prices td:nth-child(3){font-weight:750;color:#004a99;background:#eff6ff}
#freediving-prices td:nth-child(4){font-weight:700;color:#245749}
.dive-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin-top:26px}
.dive-steps article{border-top:2px solid #2464a8;padding-top:13px}
.dive-steps h3{font-size:23px;margin:0 0 10px}.dive-steps h3 small{display:inline-block;font-size:13px;color:#064b9c;background:#e4efff;border-radius:6px;padding:4px 7px;vertical-align:middle}
.dive-steps p{font-size:15px;margin:0;line-height:1.65}.session-counts{display:flex;flex-wrap:wrap;gap:4px 6px;list-style:none;margin:10px 0 0;padding:0}
.session-counts li{font-size:12px;border:1px solid #d5e1ed;background:white;border-radius:5px;padding:2px 6px}
.cert-agencies{max-width:none}.cert-agencies strong{color:#08499b}.cert-compare .cert-table{width:100%;min-width:0;table-layout:fixed}
.cert-compare .cert-table th:first-child{width:15%}.cert-compare .cert-table td>*{display:block}.cert-compare .cert-table td{vertical-align:top;line-height:1.55}
.cert-compare small{margin-top:5px;color:#465c72}.cert-compare small strong{color:#08499b}
.course-review blockquote strong,.review-quote p strong{color:#074487;background:linear-gradient(transparent 74%,#deebfa 74%);font-weight:760}
#reviews .home-review-panel{grid-column:2;grid-row:1/span 3;align-self:center;min-width:0}
.review-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.review-filters button{border:1px solid #b5c8dc;border-radius:99px;background:#fff;color:#213e60;padding:8px 15px;font:inherit;font-size:14px;font-weight:650;cursor:pointer}
.review-filters button[aria-pressed=true]{background:#102f58;color:white;border-color:#102f58}
#reviews .home-review-panel .reviews-grid{display:flex;flex-direction:column;gap:13px}
#reviews .reviews-grid .review-item{margin:0}
#reviews .review-item[hidden],.review-filters[hidden],.facility-directory [hidden],.activity-card[hidden]{display:none}
#reviews .results-grid{gap:23px}#reviews .review-metric>strong{display:flex;align-items:baseline;gap:5px;margin-bottom:5px}
#reviews .review-metric>strong>b{border-radius:7px;background:#173453;color:#ffe260;padding:.02em .14em .06em;font-variant-numeric:tabular-nums}
#reviews .review-metric>strong>span{color:#19334f;font-size:.54em}
.agency-band{padding:20px 0;border-block:1px solid #dae3eb;background:#fafcfd}
.agency-band .container,.agency-band ul{display:flex;align-items:center;gap:clamp(16px,4vw,55px)}
.agency-band .container{justify-content:space-between}.agency-band strong,.agency-band small{display:block}.agency-band small{font-size:12px;color:#51657b}
.agency-band ul{list-style:none;margin:0;padding:0}.agency-band li{margin:0}.agency-band img{display:block;width:clamp(54px,7vw,96px);height:38px;object-fit:contain}
.coach-full .coach-audience{font-size:14px;font-weight:450;line-height:1.55;color:#556777;margin:8px 0 0}
.coach-full .coach-tags li{background:#d9e7f6;color:#263f5c}
.coach-body ul:not(.coach-tags){color:#526372}.brand-values{gap:12px}.brand-values>div{border:1px solid #d6e1ec;border-radius:10px;padding:18px;background:#f8fbfe}
.brand-values i,.step-number i{font-style:normal}.brand-values i{display:block;margin-bottom:11px;font-size:25px}.step-number i{vertical-align:middle;margin-left:5px;font-size:22px}
.about-contact dl{margin:17px 0}.about-contact dl div{display:flex;align-items:baseline;gap:13px;margin:5px 0}
.about-contact dt{min-width:62px;color:#526579;font-size:13px}.about-contact dd{margin:0}.about-contact dd a{color:#184873}
.consult-items{display:flex;list-style:none;flex-wrap:wrap;gap:8px;margin:13px 0 0;padding:0}.consult-items li{border:1px solid #d3e1ec;background:#f5f9fd;border-radius:7px;padding:6px 12px;font-size:14px}
.consult-items small{font-size:11px;color:#55687c}.footer .footer-scope{color:#657383;font-size:12px;font-weight:400;margin:12px 0 0}.footer-contacts a small{display:inline-block;color:#607486;font-size:11px;margin-right:4px}
.home-page #experiences{background:#fff}.home-activities,.activity-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.home-activities>section{min-width:0}.home-activities header{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:10px;border-bottom:2px solid #173c60;margin-bottom:13px}
.home-activities header h3{font-size:22px;margin:0}.home-activities [data-upcoming-list]{display:grid;gap:10px}
.activity-card{border:1px solid #d1dfeb;overflow:hidden;border-radius:12px;display:grid;grid-template-columns:minmax(115px,.85fr) minmax(0,1.3fr);background:white;color:#142f4e;text-decoration:none;min-width:0}
.activity-card:hover,.archive-entry:hover{border-color:#4682bc;background:#f9fbfd}
.activity-card figure{margin:0;position:relative;min-height:155px;align-self:stretch}.activity-card figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.activity-card figcaption,#experiences .activity-card figcaption{position:absolute;bottom:6px;left:6px;padding:2px 5px;font-size:10px;color:white;background:#14283dce;border-radius:3px}
.activity-copy{padding:16px;min-width:0;display:flex;flex-direction:column;align-items:flex-start}.activity-copy:only-child{grid-column:1/-1}
.upcoming-status{color:#fff;background:#164b8b}.activity-place{font-size:13px;margin-top:9px;color:#496078}.activity-copy h3{font-size:clamp(19px,1.6vw,25px);margin:3px 0 7px;line-height:1.3}
.activity-copy p{font-size:14px;line-height:1.55;margin:0 0 11px}.activity-date{display:flex;justify-content:space-between;width:100%;font-size:13px;margin-top:auto;gap:6px}
.activity-date span{color:#0060bd}.home-activities .activity-copy p{display:none}.activity-list:has(>:only-child){grid-template-columns:minmax(0,830px)}
.visited-strip { display:flex; align-items:center; gap:16px; margin-top:18px; font-size:13px; }
.visited-strip > strong { flex:none; }
.sea-window { min-width:0; flex:1; }
.visited-strip .sea-list { display:flex; flex-wrap:wrap; gap:8px 24px; align-items:center; padding:0; margin:0; list-style:none; }
.sea-list li { margin:0; }
.sea-motion { display:none; }
@media (prefers-reduced-motion: no-preference) {
 .sea-animated .sea-window { overflow:hidden; }
 .sea-animated .sea-track { display:flex; width:max-content; animation:dive-sea-flow 58s linear infinite; }
 .sea-animated .sea-list { flex:none; flex-wrap:nowrap; padding-inline-end:24px; white-space:nowrap; }
 .sea-animated .sea-motion { display:grid; place-items:center; flex:none; width:28px; height:28px; border:1px solid #c0d1e0; border-radius:50%; background:#fff; color:#244363; font-size:12px; line-height:1; cursor:pointer; }
 .sea-paused .sea-track { animation-play-state:paused; }
}
@keyframes dive-sea-flow { to { transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
 .visited-strip .sea-list[aria-hidden] { display:none; }
}
.archive-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 22px}
.archive-entry{padding:11px 0;border-top:1px solid #cfdae2;display:flex;align-items:center;gap:12px;color:#203751;text-decoration:none;min-width:0}
.archive-entry img{flex:none;width:62px;height:48px;object-fit:cover;border-radius:5px}.archive-entry div>*{display:block}.archive-entry strong{font-size:16px;line-height:1.45}
.archive-entry small,.archive-entry div span{font-size:12px;color:#56697b}.archive-entry b{margin-left:auto}.archive-more{margin-top:8px}.archive-more summary{padding:12px 0;color:#18568a;cursor:pointer;font-weight:650}
.travel-registration{background:#f6f8fa;padding:24px 0;color:#4f606e}.travel-registration h2{font-size:17px;margin:0 0 9px}.travel-registration dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;margin:0;font-size:13px}
.travel-registration dl div{display:flex;align-items:baseline;gap:8px}.travel-registration dt{flex:none;font-weight:650}.travel-registration dd{margin:0}
.home-map-frame{margin:0;min-width:0}#home-locations #locations-overview-map{display:block;width:100%;height:220px;border:0;border-radius:9px}
.home-map-frame figcaption{display:flex;justify-content:space-between;gap:8px;margin-top:6px;font-size:13px}
.place-choice{display:flex;align-items:center;gap:8px;text-align:left;background:transparent;border:0;border-bottom:1px solid #cfdfeb;padding:10px 5px;font:inherit;color:#183751;cursor:pointer;border-radius:3px;min-width:0}
.place-choice>b{font-size:12px;color:#315c83}.place-choice span>*{display:block}.place-choice small{font-size:11px;color:#586d80}.place-choice strong{font-size:14px}
.place-choice[aria-pressed=true]{background:#dceafb;box-shadow:inset 3px 0 #005dc0}.other-places{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:16px;border-top:1px solid #ccdbea;padding-top:10px}
.other-places>strong,.other-places a{font-size:13px}.other-places .compact small{display:none}.other-places .compact{padding:4px 6px}.other-places .compact strong{font-size:13px}
.facility-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.facility-directory .facility-row{display:block;border:1px solid #d3e0ea;border-radius:10px;padding:19px;min-width:0}
.facility-directory .facility-row[hidden]{display:none}.facility-directory h3{margin:3px 0 7px;font-size:22px}
.facility-directory .tags{margin-bottom:10px}.location-at-a-glance{margin:8px 0}.location-at-a-glance div,.place-facts>span{display:grid;grid-template-columns:62px minmax(0,1fr);gap:6px;align-items:baseline}
.location-at-a-glance dt,.place-facts b{font-size:12px;color:#566c80;font-weight:580}.location-at-a-glance dd{margin:0;font-size:14px}
.place-fold .place-facts{display:grid;gap:3px;margin-top:9px;grid-column:1/-1;line-height:1.55;font-size:13px;color:#243d54}
.facility-facts dd{overflow-wrap:anywhere}.access-note{font-size:13px;color:#753a0b;background:#fff4e5;padding:6px 9px;border-radius:5px}
@media(max-width:850px){
 .dive-steps,.archive-list{grid-template-columns:repeat(2,minmax(0,1fr))}
 .home-activities,.activity-list{grid-template-columns:1fr}.home-activities [data-upcoming-list]{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr))}
 .activity-card figure{min-height:130px}.home-review-panel{margin-top:16px}
}
@media(max-width:640px){
 .agency-band .container{flex-wrap:wrap;gap:9px}.agency-band ul{width:100%;justify-content:space-between}.agency-band img{height:30px}
 .agency-band small{display:inline;margin-left:8px}.agency-band strong{display:inline}
 #reviews .results-grid{gap:10px}#reviews .review-metric>strong{gap:2px}.archive-list,.facility-directory,.travel-registration dl{grid-template-columns:1fr}
 .visited-strip{gap:8px;font-size:12px}.home-activities header{margin-top:3px}
 .activity-card{grid-template-columns:minmax(92px,.65fr) minmax(0,1.4fr)}.activity-copy{padding:12px}
 .dive-steps{grid-template-columns:1fr;gap:15px}.cert-compare .cert-table{font-size:12px}.cert-compare .cert-table th,.cert-compare .cert-table td{padding:7px 5px}
 .brand-values{grid-template-columns:repeat(2,minmax(0,1fr))}.best-shortcut{gap:8px;font-size:14px}
 #home-locations #locations-overview-map{height:185px}.other-places{gap:4px 8px}
}

/* Course introductions and student voices */
.home-page > #reviews { min-height:0; padding-block:clamp(32px,4.1vw,62px); }
#reviews .home-review-panel { align-self:start; }
#reviews .home-review-panel .reviews-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
#reviews .reviews-grid .review-item { grid-column:auto; min-width:0; }
#reviews .reviews-grid:has(.review-item[data-featured=true]:not([hidden]):nth-of-type(5)) .review-item:first-child { grid-column:1/-1; }
#reviews .review-item[hidden] { display:none; }
#reviews .review-metric>strong>b { color:#10488c; background:none; padding:0; }
#reviews .review-metric>strong>span { color:#425870; }
#reviews .review-item[data-review-program=mermaid] .review-course { color:#92415d; }
#reviews .review-item[data-review-program=kids] .review-course { color:#39694f; }
#programs .program .age-label,.program-byline small { background:#f0f3f6; color:#536276; font-size:12px; font-weight:560; border:1px solid #dce3e9; border-radius:99px; padding:4px 9px; }
.program-intro { padding:clamp(34px,4.2vw,68px) 0; background:var(--discipline-wash,#eef4fb); }
.program-intro .container { display:grid; grid-template-columns:1.12fr 1fr; align-items:center; gap:clamp(25px,5vw,74px); }
.program-intro .container>img { width:100%; height:clamp(200px,21vw,320px); object-fit:cover; border-radius:14px; }
.program-byline { display:flex; align-items:center; gap:12px; margin-bottom:15px; }
.program-byline .eyebrow { margin:0; }
.program-intro h1 { margin:0; font-size:clamp(34px,4.3vw,67px); line-height:1.12; }
.program-intro .lead { max-width:36em; margin:15px 0 0; font-size:clamp(16px,1.35vw,20px); line-height:1.65; }
.course-review-list { align-items:start; }
#student-stories { padding-block:clamp(28px,3.3vw,52px); }
#student-stories h2 { font-size:clamp(24px,2.8vw,38px); }
.agency-band small { line-height:1.5; }
.consult-items li,.session-counts li { margin:0; align-self:center; display:inline-flex; align-items:center; gap:4px; }

/* Like-for-like package comparison and per-person tuition */
.best-shortcut { display:grid; grid-template-columns:minmax(200px,1fr) minmax(300px,1.4fr); gap:clamp(16px,4vw,48px); align-items:center; background:white; padding:clamp(17px,2.2vw,30px); border-color:#a4c7e9; }
.bundle-title>b { display:inline-block; font-size:11px; letter-spacing:.04em; }
.bundle-title h3 { margin:6px 0 0; font-size:clamp(22px,2.3vw,32px); }
.bundle-title p { margin:2px 0 9px; font-size:14px; }
.bundle-title a { font-size:14px; font-weight:680; color:#0755a2; text-underline-offset:3px; }
.bundle-rates { display:grid; gap:7px; }
.bundle-rate { display:grid; grid-template-columns:minmax(82px,1fr) auto auto; align-items:center; gap:12px; padding:9px 11px; }
.bundle-rate:first-child { background:#edf5fd; border-radius:8px; }
.best-shortcut .bundle-rate>span { margin:0; font-size:13px; font-weight:650; }
.bundle-rate>div { text-align:right; line-height:1.35; }
.bundle-rate small,.bundle-rate strong { display:block; }
.bundle-rate small { color:#627184; font-size:13px; }
.bundle-rate strong { font-size:clamp(15px,1.4vw,22px); }
.bundle-rate em { text-align:right; font-size:13px; color:#155e50; font-style:normal; font-weight:750; }
.offer-main .offer-schedule { width:fit-content; margin:12px 0; padding:4px 8px; border-radius:5px; background:#f0f4f8; color:#415166; font-size:13px; line-height:1.5; font-weight:600; }
.lesson-offer .offer-prices { padding:10px 12px; margin:1px -10px 10px; background:#f6f8fa; border-radius:8px; }
.offer-prices .rate-variant:first-child { border:0; padding-top:0; }
.rate-variant .group-line { margin:2px 0 5px; display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; column-gap:6px; }
.group-line>span:first-child { color:#374f68; font-size:13px; font-weight:650; }
.group-line>span:last-child { margin-left:auto; text-align:right; white-space:nowrap; color:#064b91; }
.group-line strong { font-size:clamp(21px,1.8vw,29px); font-weight:800; letter-spacing:-.045em; }
.group-line small { font-size:12px; }
.rate-variant .group-saving { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:3px 6px; padding:2px 0 8px; margin:0 0 6px; border-radius:0; background:transparent; color:#336859; border-bottom:1px solid #d7e1e6; }
.group-saving b { font-size:13px; margin-left:auto; text-align:right; }
.rate-variant .offer-option>strong,.rate-variant .offer-option>b { text-align:right; }
.weekday-note { margin:10px 0; }
.stage-no { display:block; font-size:14px; color:#165db3; font-weight:750; margin-bottom:7px; }
.dive-steps article>small { display:block; margin-top:5px; color:#586c7d; font-size:13px; }
.dive-steps .session-counts { align-items:center; }
.pack-in .pack-icons li { font-size:clamp(15px,1.15vw,18px); }
.pack-take h3,.pack-take .borrow-row h3 { font-size:20px; font-weight:700; margin:0 0 12px; }
.pack-take .borrow-row .pack-tags { margin-top:12px; }
.cert-compare .cert-name { display:flex; flex-wrap:wrap; align-items:baseline; gap:0 7px; }
.cert-compare .cert-name small { font-size:12px; font-weight:450; color:#637385; margin:0; }

/* One Google map follows the selected course location. */
.program-map-grid { display:grid; grid-template-columns:minmax(290px,.9fr) minmax(0,1.3fr); align-items:start; gap:clamp(18px,3vw,44px); }
.program-map-grid .home-map-frame { position:sticky; top:110px; margin:0; }
.program-map-grid iframe { border:0; width:100%; height:clamp(270px,28vw,430px); display:block; }
.program-map-list { list-style:none; padding:0; margin:0; }
.program-map-list li { margin:0; border-top:1px solid #cfdae4; padding:10px 0 12px; }
.program-map-list header,.program-map-list dl>div { display:flex; align-items:baseline; gap:10px; }
.program-map-list header { justify-content:space-between; }
.program-map-list header a { white-space:nowrap; }
.program-map-list button { border:0; border-radius:5px; background:transparent; color:#183757; font:inherit; font-weight:700; text-align:left; cursor:pointer; padding:5px 7px; }
.program-map-list button[aria-pressed=true] { color:#004ca0; background:#e2effc; }
.program-map-list dl { margin:6px 0 0 7px; font-size:13px; line-height:1.55; }
.program-map-list dt { min-width:52px; color:#586b7b; }
.program-map-list dd { margin:0; }
.archive-year { border-top:1px solid #c6d1da; }
.archive-year summary { display:flex; align-items:center; gap:9px; padding:14px 4px; cursor:pointer; list-style:none; }
.archive-year summary::-webkit-details-marker { display:none; }
.archive-year summary strong { font-size:18px; }
.archive-year summary small { color:#52697b; }
.archive-year summary::after { content:'+'; margin-left:auto; font-size:20px; }
.archive-year[open] summary::after { content:'−'; }
.archive-year .archive-list { grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:15px; }
.archive-year .archive-entry { padding:10px 0; min-height:0; }
.instructor-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:18px clamp(24px,4vw,56px); }
.instructor-details .coach-full { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:subgrid; grid-row:span 3; row-gap:14px; padding-block:22px; }
.coach-full .coach-body { display:contents; }
.coach-full header { align-self:start; gap:clamp(14px,2vw,24px); }
.coach-full header>div { min-width:0; }
.coach-full .coach-audience { white-space:pre-line; }
.coach-full .coach-tags { align-self:start; }
.instructor-details .coach-full .instructor-portrait { width:clamp(104px,10vw,148px); height:auto; aspect-ratio:1; flex:none; }
@media(min-width:1280px) {
 .instructor-details:has(>.coach-full:nth-child(5)) { grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:24px; }
 .instructor-details:has(>.coach-full:nth-child(5)) .instructor-portrait { width:104px; }
}
@media(max-width:820px) {
 .instructor-details { grid-template-columns:1fr; }
}
@media(max-width:420px) {
 .instructor-details .coach-full .instructor-portrait { width:clamp(72px,22vw,90px); }
}
.coach-credentials summary { cursor:pointer; font-weight:650; color:#425971; font-size:14px; }
.coach-credentials ul { margin-top:9px; }
@media(max-width:760px) {
 .program-intro .container { grid-template-columns:1fr; gap:18px; }
 .program-intro .container>img { height:clamp(148px,39vw,235px); }
 .best-shortcut,.program-map-grid { grid-template-columns:1fr; }
 .program-map-grid .home-map-frame { position:static; }
 .program-map-grid iframe { height:210px; }
 .archive-year .archive-list { grid-template-columns:1fr; }
}
@media(max-width:640px) {
 #reviews .home-review-panel .reviews-grid { grid-template-columns:1fr; }
 .bundle-rate { padding:8px 4px; gap:6px; grid-template-columns:minmax(64px,1fr) auto auto; }
 .bundle-rate:first-child { padding-inline:6px; }
 .bundle-rate em { font-size:12px; }
 .program-byline { margin-bottom:12px; }
 .consult-items li { font-size:13px; }
 .archive-year summary { padding-block:12px; }
}

/* Different disciplines use the same fee hierarchy and their own brand accents. */
.home-page > #programs, .home-page > #home-instructors, .home-page > #booking, .home-page > #home-locations { background:white; }
.home-page > #reviews, .home-page > #agencies, .home-page > #experiences, .home-page > #home-faq { background:var(--88-surface-tint); }
#main.home-page > .home-strengths { min-height:0; background:white; padding-block:clamp(28px,3.3vw,50px); }
.home-page > #agencies { background:#f3f7fd; }
#main.home-page > #home-instructors { background:var(--88-surface-tint); }
#main.home-page > #experiences { background:white; }
.home-page #experiences .visited-strip, main > .container > .visited-strip { background:#edf4fc; border:0; padding:12px 16px; border-radius:9px; }
#main.home-page > #booking, #main.home-page > #home-locations { background:var(--88-surface-tint); }
#main.home-page > #home-faq { background:white; }
@media(min-width:961px) and (min-height:660px) {
  #main.home-page > :is(#reviews,#programs,#home-instructors,#experiences,#booking,#home-locations) {
    min-height:calc(100svh - 100px); display:grid; grid-template-columns:minmax(0,1fr); align-content:center;
  }
}
#reviews .review-metric>strong>b { color:var(--88-primary); }
#reviews .review-item figcaption { display:flex; align-items:center; flex-wrap:wrap; gap:4px; margin:9px 12px 4px; line-height:1.5; }
#reviews .review-author { color:var(--88-text-muted); margin-right:4px; }
#reviews .review-level { font-weight:500; color:#43546a; }
#reviews [data-review-program=freediving], #reviews [data-reviews=freediving] { --chip-ink:#093c86; --chip-bg:#e2efff; --chip-active:var(--88-primary); --chip-active-ink:white; }
#reviews [data-review-program=mermaid], #reviews [data-reviews=mermaid] { --chip-ink:#893222; --chip-bg:#fff0ec; --chip-active:var(--88-accent-coral); --chip-active-ink:var(--88-text); }
#reviews [data-review-program=kids], #reviews [data-reviews=kids] { --chip-ink:#695000; --chip-bg:#fff5c9; --chip-active:var(--88-accent-yellow); --chip-active-ink:var(--88-text); }
#reviews .discipline-chip { font-size:12px; font-weight:720; padding:2px 8px; border-radius:99px; color:var(--chip-ink); background:var(--chip-bg); }
#reviews .review-filters button:not([data-reviews=featured]) { color:var(--chip-ink); background:var(--chip-bg); border-color:color-mix(in srgb,var(--chip-active) 40%,white); }
#reviews .review-filters button[aria-pressed=true]:not([data-reviews=featured]) { background:var(--chip-active); color:var(--chip-active-ink); border-color:var(--chip-active); }
#agencies strong { font-size:clamp(18px,1.6vw,23px); }
#agencies small { display:block; font-size:clamp(14px,1.1vw,16px); margin:4px 0 0; }
#agencies img[alt=AIDA] { height:clamp(43px,4.5vw,56px); }
#agencies img[alt=PADI] { height:clamp(28px,3vw,36px); }
#booking h3 i { font-style:normal; font-size:.9em; }
#booking .purchase-links { flex-wrap:wrap; gap:6px; }
#booking .purchase-link { padding:5px 9px; border:1px solid #b6cce8; border-radius:7px; background:white; line-height:1.45; }
#home-locations .section-intro { margin-top:10px; font-size:.8125rem; line-height:1.5; color:var(--88-text-muted); }
#main .map-section .home-locations { align-items:stretch; gap:clamp(16px,2.5vw,34px); }
#main .map-section .home-place-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-content:start; gap:0 10px; }
.map-section .place-item { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) 40px; align-items:center; border-bottom:1px solid #cfdfeb; }
.map-section .place-item .place-choice { align-self:stretch; padding:12px 8px; border-bottom:0; }
.map-section .place-item:has([aria-pressed=true]) { background:white; border-radius:6px; box-shadow:inset 3px 0 var(--88-primary); }
.map-section .place-item .place-choice[aria-pressed=true] { background:transparent; box-shadow:none; }
.map-section .place-detail { justify-self:center; display:grid; place-items:center; width:36px; height:36px; font-size:19px; font-weight:600; color:var(--88-primary); background:transparent; border:0; text-decoration:none; }
.map-section .place-detail:hover { color:var(--88-navy,#102849); text-decoration:underline; }
.map-section .place-item :focus-visible { outline:2px solid var(--88-primary); outline-offset:-2px; }
.map-section .place-choice b { color:var(--88-primary); }

#main .map-section #locations-overview-map { width:100%; height:clamp(280px,24vw,380px); border:0; display:block; border-radius:9px 9px 0 0; }
.home-map-frame figcaption { box-sizing:border-box; align-items:center; padding:9px 12px; margin:0; background:white; border:1px solid #d6e2ef; border-radius:0 0 9px 9px; color:#273e57; font-size:14px; }
.home-map-frame figcaption a { font-size:13px; color:var(--88-primary); font-weight:700; }
.coach-body .coach-credentials { border-top:1px solid #cbd8e6; padding-top:14px; }
.coach-credentials h4 { font-size:15px; margin:0 0 8px; border:0; padding:0; }
.coach-credentials ul { margin-top:8px; }
#contact .contact-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:clamp(18px,3.5vw,48px); padding:clamp(18px,3vw,36px); background:#f1f6fc; border-radius:14px; }
#contact .contact-grid>div { margin:0; border:0; padding:0; }
#contact .about-contact { display:flex; flex-direction:column; align-items:flex-start; }
#contact .about-contact dl { margin:14px 0 0; }
#contact .about-contact dd a { color:var(--88-text); text-decoration:none; border:0; font-size:16px; }
#contact .about-contact dd a:hover { text-decoration:underline; }
#contact .consult-items li { margin:0; background:white; }
#contact .contact-grid h3 { font-size:19px; margin:0; }
[data-program=freediving] .program-byline .eyebrow { background:var(--88-primary); color:white; padding:5px 9px; }
body:is([data-program=freediving],[data-program=kids],[data-program=mermaid]) #student-stories,
body:is([data-program=freediving],[data-program=kids],[data-program=mermaid]) :is(#lesson-flow,#certification,#faq) { background:white; }
body:is([data-program=freediving],[data-program=kids],[data-program=mermaid]) :is(#courses,#benefits,#locations) { background:color-mix(in srgb, var(--discipline-wash) 42%, white); }
.program-intro+.subnav .container { gap:24px; padding-block:0; }
.program-intro+.subnav a { position:relative; padding:12px 0; border:0; border-radius:0; background:none; font-size:14px; font-weight:400; color:#637184; }
.program-intro+.subnav a+a::before { content:""; position:absolute; left:-13px; top:50%; width:3px; height:3px; margin-top:-1px; border-radius:50%; background:#8797aa; }
.program-intro+.subnav a:is(:hover,:focus-visible) { text-decoration:underline; text-underline-offset:4px; }
.course-catalog .best-shortcut { border:2px solid var(--discipline-accent); border-radius:14px; background:white; box-shadow:0 3px 0 color-mix(in srgb,var(--discipline-accent) 17%,transparent); }
.bundle-rates h4 { font-size:15px; color:var(--88-text); margin:0 0 2px; }
.bundle-rate { background:#f4f7fa; border-radius:7px; }
.bundle-rate strong small { display:inline; color:inherit; font-size:.7em; }
.bundle-rate em { color:var(--88-text-heading); background:var(--88-accent-mint); border-radius:5px; padding:5px 7px; text-align:center; }
.bundle-rate em b { font-size:15px; }
.bundle-fast { display:grid; grid-template-columns:1fr auto auto; align-items:baseline; gap:4px 12px; border-top:1px solid #d4dfea; padding-top:10px; }
.bundle-fast b { font-size:15px; }
.bundle-fast span { font-size:13px; }
.bundle-fast strong { font-size:18px; white-space:nowrap; text-align:right; }
.offer-prices .rate-variant, .offer-prices section.price-mode { display:block; margin:0; }
.offer-prices .price-mode + .price-mode,.offer-prices .rate-variant + .rate-variant { border-top:1px solid #cedbea; margin-top:10px; padding-top:10px; }
.price-mode h4 { margin:0 0 8px; font-size:14px; line-height:1.45; color:var(--88-text-heading); }
.price-mode h4 small { font-size:12px; font-weight:400; color:#627181; }
.tuition-line { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:1px 6px; font-size:13px; line-height:1.5; color:#48586b; font-variant-numeric:tabular-nums; }
.tuition-line>span:last-child { margin-left:auto; text-align:right; white-space:nowrap; }
.tuition-line small { font-size:11px; }
.tuition-line.companion-rate { color:var(--88-primary); font-weight:650; margin-top:3px; }
.tuition-line.companion-rate b { font-size:clamp(18px,1.42vw,24px); }
.price-mode .saving-stamp { margin:5px 0 0 auto; width:fit-content; max-width:100%; padding:2px 7px; background:#c8f3ea; border-radius:5px; color:#17374a; font-size:12px; line-height:1.5; }
.price-mode .mode-note { font-size:12px; color:#576879; line-height:1.5; margin:5px 0 0; }
[data-program=freediving] .bundle-rate em,
[data-program=freediving] .price-mode .saving-stamp { background:var(--88-accent-coral); color:var(--88-text); }
[data-program=freediving] .lesson-offer .offer-prices { padding:18px 14px; }
[data-program=freediving] .lesson-offer .price-mode h4 { margin-bottom:12px; }
[data-program=freediving] .lesson-offer .companion-rate { margin-top:9px; }
[data-program=freediving] .lesson-offer .saving-stamp { padding:4px 8px; margin-top:9px; }
[data-program=freediving] .lesson-offer .price-mode+.price-mode { margin-top:17px; padding-top:15px; }
[data-program=freediving] .lesson-offer .mode-note { margin-top:9px; line-height:1.65; }
.detail-facts .offer-prices { max-width:27rem; background:#f3f7fb; border-radius:7px; padding:12px; }
.detail-facts .offer-prices+.text-link { margin-top:10px; }
[data-program=mermaid] .package-prices table, [data-program=kids] .package-prices table { table-layout:fixed; }
:is([data-program=mermaid],[data-program=kids]) .package-prices :is(th,td):nth-child(4) { background:#eaf3ff; color:#06488f; font-weight:720; }
:is([data-program=mermaid],[data-program=kids]) .package-prices :is(th,td):nth-child(5) { background:#e0f6f0; color:var(--88-text-heading); font-weight:680; }
:is([data-program=mermaid],[data-program=kids]) .package-prices th:first-child { width:24%; }
:is([data-program=mermaid],[data-program=kids]) .package-prices th:nth-child(2) { width:12%; }
.learning-steps { align-items:stretch; }
.learning-steps > li { margin:0; align-self:stretch; }
.dive-steps article>small { font-size:12px; color:#627184; }
.pack-take .borrow-row p { font-size:14px; color:var(--88-text-muted); line-height:1.5; margin:4px 0 9px; }
.pack-take ul.pack-tags li,.pack-take ul.bring-tags li { font-size:14px; font-weight:600; padding:4px 9px; margin:0; }
.cert-compare .cert-table { font-size:16px; background:white; line-height:1.55; }
.cert-compare .cert-table :is(th,td) { padding:16px 18px; }
.cert-compare .cert-table th:first-child { width:10%; }
.cert-compare .cert-table td .cert-name { display:flex; align-items:baseline; gap:4px 10px; margin:0 0 9px; }
.cert-compare .cert-name b { font-size:17px; color:var(--88-text-heading); }
.cert-compare .cert-table .cert-name small { color:#596d80; font-size:12px; }
.cert-compare .cert-practical { margin:0; font-size:clamp(15px,1.15vw,18px); font-weight:650; line-height:1.65; color:var(--88-text); }
.cert-practical span { display:inline-block; }
.cert-compare .cert-issue-fee { margin:8px 0 0; color:var(--88-text-muted); font-size:13px; font-weight:400; }
.cert-exam-note { margin:14px 0 0; font-size:14px; color:var(--88-text-muted); }
.program-map-list button .place-region { color:var(--88-primary); }
.program-map-list button .place-depth { display:inline-block; font-size:12px; font-weight:500; color:#54687c; margin-left:5px; }
.program-map-list dl dd, .facility-facts dd { white-space:pre-line; }
.facility-status { color:#7e4622; margin:3px 7px; }
@media(max-width:760px) {
  #contact .contact-grid { grid-template-columns:1fr; gap:21px; }
  #main .map-section #locations-overview-map { height:245px; }
  .map-section .place-item .place-choice { padding:9px 6px; }
  .home-map-frame figcaption { font-size:12px; }
  .cert-compare .cert-table :is(th,td) { padding:10px 7px; }
  .cert-compare .cert-table th:first-child { width:11%; }
  .cert-compare .cert-practical { font-size:14px; }
  .cert-compare .cert-name b { font-size:15px; }
  .best-shortcut .bundle-rate { grid-template-columns:1fr auto; gap:4px 8px; padding:8px 10px; }
  .best-shortcut .bundle-rate>span { grid-row:1; }
  .best-shortcut .bundle-rate>div { grid-column:2; }
  .best-shortcut .bundle-rate em { grid-column:2; justify-self:end; font-size:11px; padding:2px 6px; }
  .best-shortcut .bundle-rate em b { display:inline; font-size:12px; }
  .bundle-fast { grid-template-columns:1fr auto; }
  .bundle-fast b { grid-column:1/-1; }
  .bundle-fast span { align-self:center; }
}


.cert-compare .cert-table td { white-space:normal; overflow-wrap:break-word; }
#main .map-section .home-locations .home-place-list { align-self:start; }
@media(max-width:850px) {
  #main .map-section .home-locations { grid-template-columns:1fr; }
}
@media(max-width:560px) {
  #main .map-section .home-place-list { grid-template-columns:1fr; }
  [data-program=freediving] .best-shortcut .bundle-rate { grid-template-columns:minmax(0,1fr) auto; gap:7px 8px; }
  [data-program=freediving] .best-shortcut .bundle-rate>div { grid-column:1/-1; grid-row:2; }
  [data-program=freediving] .best-shortcut .bundle-rate em { grid-row:1; }
}
.home-activities .activity-tour>header { border-bottom:3px solid var(--88-accent-mint); }
.home-activities .activity-workshop>header { border-bottom:3px solid var(--88-accent-coral); }
.bundle-rate .separate-total { font-weight:400; line-height:1.6; margin-bottom:3px; }
.bundle-rate .separate-total span { white-space:nowrap; }
.best-shortcut .bundle-group { background:#eaf2ff; box-shadow:inset 3px 0 var(--88-primary); }
.best-shortcut .bundle-group>span,.best-shortcut .bundle-group strong { color:var(--88-primary); font-weight:750; }
.program-map-list li { padding-inline:12px; }
.program-map-list li:has(button[aria-pressed=true]) { background:white; border-radius:8px; box-shadow:inset 4px 0 var(--88-primary),inset 0 0 0 1px #c2d7ef; }
.program-map-list button[aria-pressed=true] { background:transparent; color:var(--88-primary); }
.program-map-list dt { color:#30445a; font-weight:700; }
.program-map-list dd { font-weight:400; color:#55687c; }
.program-map-list dl>div:first-child dd { color:var(--88-text); }

@media (min-width:761px) {
  #reviews .section-head { margin-bottom:28px; }
  #reviews .results-grid { gap:clamp(25px,3vh,38px); }
  #reviews .review-metric>strong { margin-bottom:9px; }
  #reviews .review-filters { margin-bottom:24px; }
  #reviews .home-review-panel .reviews-grid { row-gap:24px; }
  #reviews .review-quote { padding:22px 20px; }
  #programs .section-head { margin-bottom:clamp(36px,4.5vh,52px); }
  #programs .program-title { margin-top:26px; }
  #programs .program p { margin:18px 0; }
  #programs .level-tags { margin-bottom:28px; }
}
@media (max-width:760px) {
  #reviews .home-review-panel .reviews-grid { row-gap:18px; }
  #reviews .review-filters { margin-bottom:18px; }
  #programs .program-title { margin-top:16px; }
  #programs .program p { margin-block:15px; }
}
.pool-fees { width:auto; min-width:0; border-collapse:collapse; font-size:inherit; line-height:1.5; white-space:nowrap; }
.pool-fees :is(th,td) { padding:3px clamp(6px,1vw,14px); border:0; background:transparent; text-align:right; }
.pool-fees th:first-child { text-align:left; padding-left:0; }
.pool-fees thead th { border-bottom:1px solid #c6d6e4; font-size:.9em; font-weight:600; color:#536779; }
.pool-fees tbody th { font-weight:550; }
.pool-fee-note { display:block; margin-top:5px; font-size:12px; line-height:1.6; color:#526579; white-space:normal; }
.tour-schedule-link { display:inline-flex; align-items:center; gap:12px; min-height:44px; margin-top:18px; color:var(--88-primary); font-weight:700; text-decoration:none; }
.tour-schedule-link:hover { text-decoration:underline; text-underline-offset:4px; }

/* Course detail: on wider screens the practical criteria sit beside registration. */
.lesson-detail { padding-block:clamp(34px,5vw,72px); }
.lesson-summary { display:grid; grid-template-columns:minmax(0,1.9fr) minmax(290px,1fr); align-items:start; gap:clamp(24px,4vw,60px); }
.lesson-columns { display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(18px,3vw,42px); }
.lesson-summary h2 { margin:0 0 16px; font-size:clamp(20px,1.7vw,26px); line-height:1.3; }
.lesson-summary h3 { font-size:16px; margin:0 0 8px; }
.lesson-columns section { padding-top:16px; border-top:2px solid #bed2e6; }
.lesson-session { margin:0; font-weight:650; }
.lesson-duration,.enroll-note,.assessment-note { font-size:14px; line-height:1.65; color:#4c6075; }
.lesson-duration { margin:6px 0 0; }
.lesson-columns ul,.lesson-prior ul { margin:0; padding-left:1.2em; }
.lesson-columns li,.lesson-prior li { line-height:1.65; margin:0 0 4px; }
.lesson-columns li::marker { color:#0060d5; }
.lesson-assessment { margin-top:clamp(25px,3vw,42px); padding:clamp(18px,2.3vw,32px); border:1px solid #dbe5ef; border-radius:12px; background:#f6f9fc; }
.assessment-stage + .assessment-stage,.lesson-prior { margin-top:18px; border-top:1px solid #d5e1ec; padding-top:16px; }
.assessment-rows { margin:0; display:grid; gap:10px; }
.assessment-rows > div { display:grid; grid-template-columns:minmax(90px,0.38fr) 1fr; align-items:baseline; gap:14px; }
.assessment-rows dt { color:#163f6b; font-size:14px; font-weight:700; }
.assessment-rows dd { margin:0; line-height:1.65; }
.assessment-note { margin:14px 0 0; }
.lesson-assessment > h2 + .assessment-note { margin:0; }
.lesson-prior li { font-size:14px; }
.lesson-enroll { padding:clamp(18px,2vw,28px); border:1px solid #c5d5e6; border-radius:12px; }
.lesson-enroll .offer-prices { padding:16px; margin:0; border-radius:8px; background:#f3f7fb; }
.lesson-enroll .price-mode small { display:inline; }
.enroll-note { margin:12px 0 0; }
.lesson-enroll .lesson-purchase { display:flex; width:100%; justify-content:space-between; margin-top:20px; }
.enroll-links { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; margin-top:14px; }
.tuition-store { display:flex; justify-content:flex-end; margin-top:20px; }
@media(max-width:820px) {
 .lesson-summary { grid-template-columns:1fr; }
}
@media(max-width:540px) {
 .lesson-columns { grid-template-columns:1fr; gap:20px; }
 .assessment-rows > div { grid-template-columns:1fr; gap:2px; }
 .tuition-store > a { width:100%; justify-content:space-between; }
}

#programs .program-card {
  display:flex; flex-direction:column; min-width:0; overflow:hidden;
  color:var(--88-text); background:white; border:1px solid #d4dfeb; border-radius:clamp(18px,2vw,28px);
  text-decoration:none;
}
#programs .program-card:is(:hover,:focus-visible) { border-color:var(--88-primary); }
.program-card > img { display:block; width:100%; height:auto; aspect-ratio:1.55; object-fit:cover; border-bottom-right-radius:22% 17%; }
.program-card-body { display:flex; flex:1; flex-direction:column; align-items:stretch; padding:clamp(18px,2vw,30px); }
.program-name-en { color:var(--88-primary); font-size:12px; font-weight:750; letter-spacing:.12em; }
.program-card-title { display:flex; align-items:center; flex-wrap:wrap; gap:6px 10px; margin-top:12px; }
.program-card-title h3 { margin:0; font-size:clamp(22px,2.1vw,32px); line-height:1.25; }
.program-card-title > span { color:#536577; font-size:12px; white-space:nowrap; }
.program-card-body p { color:#4d6073; font-size:16px; line-height:1.6; margin:12px 0; }
.program-card-levels { display:flex; flex-wrap:wrap; gap:5px; list-style:none; margin:0 0 25px; padding:0; }
.program-card-levels li { margin:0; padding:3px 8px; border-radius:5px; background:#f2f6fa; color:#4c6279; font-size:12px; }
.program-card-action { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:auto; color:var(--88-primary); font-weight:700; }
.program-card-action span { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#eaf2ff; }
.program-card:hover .program-card-action span { background:var(--88-primary); color:white; }
.offer-main h3 a { color:inherit; text-decoration:none; }
.offer-main h3 a:hover { text-decoration:underline; }
.offer-main h3 a span { font-size:.54em; color:#62778a; vertical-align:middle; }
.course-catalog .lesson-link.purchase-link { background:var(--88-primary); border-color:var(--88-primary); color:white; }
.course-catalog .lesson-link.purchase-link:hover { background:#063e9a; }
.course-catalog .best-shortcut { margin:clamp(18px,2vw,32px) 0 0; }
.bundle-title .purchase-link { width:fit-content; column-gap:18px; }
.rate-variant.rate-best h4 { display:flex; align-items:center; gap:8px; }
.rate-best .best-label { display:inline-block; line-height:1.4; }

@media(max-width:760px) {
  #programs .program-choices { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; }
}

.enrollment-cta .contact-actions { flex-direction:row; flex-wrap:wrap; align-items:stretch; gap:10px; }
.enrollment-cta .btn { background:white; color:var(--88-primary); border-color:white; }
.enrollment-cta .btn:hover { background:#eaf3ff; color:#064592; }
.enrollment-cta .btn:focus-visible { outline:2px solid white; outline-offset:3px; }
.offer-main .offer-entry-note { margin:0 0 13px; color:#43566a; font-size:14px; line-height:1.55; }
:is([data-program=mermaid],[data-program=freediving]) #lessons-start .offer-grid { --gap:26px; }
:is([data-program=mermaid],[data-program=freediving]) #lessons-start .lesson-offer { position:relative; }
:is([data-program=mermaid],[data-program=freediving]) #lessons-start .lesson-offer:not(:last-child)::after {
  content:''; position:absolute; right:calc(-1 * var(--gap) / 2 - 3px); top:52px;
  width:8px; height:8px; border-top:2px solid var(--discipline-accent); border-right:2px solid var(--discipline-accent);
  transform:rotate(45deg); pointer-events:none;
}

.kids-count { color:#4b5d6f; font-size:12px; font-weight:600; white-space:nowrap; }
.offer-eligibility { margin:18px 0 16px; padding:9px 12px; border-left:3px solid #c29946; background:#fff9e9; font-size:14px; line-height:1.55; }
.offer-eligibility strong,.offer-eligibility a { display:block; }
.offer-eligibility a { color:#174a82; font-size:13px; margin-top:4px; text-underline-offset:3px; }
[data-program=kids] .kids-foundation { background:#fff; border:2px solid #4877bf; }
.kids-foundation .offer-eligibility { background:#f3f7fd; border-color:#5179b2; }
.kids-foundation .offer-prices .rate-best { background:#eaf2ff; border:1px solid #b6ccee; border-radius:9px; padding:13px; margin:12px -4px 0; }
[data-program=kids] .rate-best .best-label { color:white; background:#174f99; }
[data-program=kids] .rate-best .saving-stamp { background:#fff; color:#234a75; }
.pack-take .packing-note { margin:14px 0 0; color:#4b5767; font-size:14px; line-height:1.6; }
@media(min-width:761px) {
  [data-program=kids] .packing { grid-template-columns:minmax(0,2fr) minmax(0,3fr); }
  [data-program=kids] .pack-icons { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
}
[data-program=kids] #student-stories .course-review-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
[data-program=kids] .kids-fees .price-table { width:100%; min-width:0; table-layout:fixed; }
.kids-fees .price-table :is(th,td) { width:32%; padding:12px 14px; text-align:right; vertical-align:middle; background:#fff; }
.kids-fees .price-table tr > :first-child { width:36%; text-align:left; }
.kids-fees .price-table thead th { color:#44546a; background:#f1f4f7; }
[data-program=kids] .kids-fees .price-table tr > :last-child { color:#134781; background:#eef5ff; }
.kids-fees .price-table td small { display:block; margin-top:3px; color:#4e6073; font-size:12px; font-weight:450; }
.youth-comparison { width:100%; border-collapse:collapse; table-layout:fixed; margin-top:24px; font-size:15px; line-height:1.65; word-break:keep-all; overflow-wrap:anywhere; color:#22364b; }
.youth-comparison :is(th,td) { padding:9px 16px; text-align:left; vertical-align:top; border:0; border-bottom:1px solid #e4e9ee; }
.youth-comparison thead th { color:#17334b; background:#edf2f6; font-size:18px; }
.youth-comparison thead th:first-child { width:15%; font-size:15px; }
.youth-comparison thead small { display:block; font-size:12px; font-weight:450; color:#526779; }
.youth-comparison tbody th { font-size:13px; color:#566678; font-weight:550; }
.youth-comparison .youth-level > * { background:#f6f8fc; border-top:2px solid #c3d3e5; padding-block:14px; }
.youth-comparison .youth-level th { color:#174479; font-size:16px; }
.youth-comparison .youth-level strong { color:#102f51; font-size:18px; }
.youth-comparison .youth-level small { display:inline-block; margin-left:9px; font-size:13px; color:#536476; }
.parent-course { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:30px 0 0; border-radius:10px; background:#f0f5fa; padding:18px 22px; }
.parent-course h3 { margin:0 0 5px; font-size:17px; }
.parent-course p { margin:0; font-size:14px; line-height:1.65; }
.parent-course a { flex-shrink:0; font-size:14px; }
.activity-card .upcoming-status { background:#126443; color:white; }
.footer { padding-bottom:0; }
.footer .footer-top { align-items:start; padding-bottom:32px; }
.footer .footer-top h3 { margin:0 0 12px; color:#293b50; font-size:15px; font-weight:700; }
.footer .footer-top a:not(.brand) { color:#47596c; font-size:14px; line-height:1.85; }
.footer .footer-top a:hover { color:var(--88-primary); }
.footer .footer-legal { padding:20px 0; background:#f3f4f5; color:#58616d; }
.footer-legal .footer-business { margin:0; }
.footer-legal .footer-business :is(dt,dd),.footer-legal a.footer-business-link { color:inherit; font-size:12px; }
.footer-legal .footer-bottom { margin:8px 0 0; padding:0; border:0; font-size:12px; color:#626b76; }
@media(max-width:760px) {
  [data-program=kids] #student-stories .course-review-list { grid-template-columns:1fr; }
  .kids-fees .price-table :is(th,td) { padding:10px 7px; }
  .youth-comparison { font-size:13px; line-height:1.6; }
  .youth-comparison :is(th,td) { padding:9px 6px; }
  .youth-comparison thead th:first-child { width:18%; }
  .youth-comparison thead th,.youth-comparison .youth-level strong { font-size:15px; }
  .youth-comparison .youth-level small { display:block; margin:0; }
  .parent-course { flex-direction:column; align-items:flex-start; gap:8px; }
  .footer .footer-legal { padding-bottom:calc(80px + env(safe-area-inset-bottom)); }
}


.agency-destination { color:inherit; text-decoration:none; }
.agency-destination::after { content:""; position:absolute; inset:0; }
.agency-band { position:relative; }
.agency-link-label { display:inline-block; margin-top:6px; font-size:13px; font-weight:650; color:var(--88-primary); }
.agency-destination:hover .agency-link-label,.instructor-profile .coach-more:hover { text-decoration:underline; }
.instructor-profile .coach-more { display:inline-block; margin-top:5px; color:#455d74; font-size:13px; text-underline-offset:3px; }
.course-catalog .best-shortcut {
  --cover-image:url("/assets/program-freediving.webp"); --offer-ink:#104d9a; --offer-tint:#edf5ff;
  display:grid; grid-template-columns:minmax(0,0.82fr) minmax(0,1.45fr); align-items:stretch; gap:0; padding:0; margin-top:28px;
  overflow:hidden; border:1px solid #c7d6e3; border-radius:18px; background:white; box-shadow:0 4px 14px #1637550d;
}
[data-program=mermaid] .best-shortcut { --cover-image:url("/assets/program-mermaid.webp"); --offer-ink:#883d50; --offer-tint:#fbf1f3; }
.package-cover { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:16px; padding:clamp(24px,3vw,42px); color:#fff;
  background-color:#12334a; background-image:linear-gradient(90deg,rgba(8,26,46,.94),rgba(8,26,46,.70) 70%,rgba(8,26,46,.45)),var(--cover-image); background-size:cover; background-position:center; }
.package-badge { display:inline-block; padding:4px 10px; background:#ffdf55; border-radius:20px; color:#172e49; font-size:12px; font-weight:800; letter-spacing:.06em; }
.package-cover h3 { margin:0; color:inherit; font-size:clamp(24px,2.4vw,36px); line-height:1.2; }
.package-cover p { margin:7px 0 0; color:#fff; font-size:15px; line-height:1.6; }
.package-cover .lesson-link { margin:2px 0 0; width:fit-content; min-height:42px; padding:10px 16px; gap:22px; color:#12375b; background:#fff; border:1px solid white; }
.package-cover .lesson-link:hover { background:#edf5ff; color:#074490; }
.package-details { min-width:0; padding:clamp(18px,2.2vw,32px); }
.package-details h4 { margin:0 0 12px; font-size:15px; color:#40556a; }
.package-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.package-option { min-width:0; padding:14px 16px; border-radius:10px; background:#f5f7f9; }
.package-option h5 { margin:0; font-size:14px; font-weight:700; color:#34475c; }
.package-group { background:var(--offer-tint); }
.package-group h5,.package-group .package-price { color:var(--offer-ink); }
.package-price { margin:8px 0 5px; color:#203951; line-height:1.2; }
.package-price small { white-space:nowrap; font-size:12px; }
.package-price strong { display:inline-block; font-size:clamp(22px,2.2vw,32px); white-space:nowrap; letter-spacing:-.04em; }
.package-discount { margin:8px 0 0; font-size:13px; color:#34475c; }
.package-discount b { color:var(--offer-ink); white-space:nowrap; }
.package-math { margin:12px 0 0; font-size:12px; line-height:1.6; color:#546579; }
.package-express { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 12px; border-top:1px solid #e0e6ed; padding-top:12px; margin-top:14px; color:#415266; font-size:14px; }
.package-express b { color:#203951; margin-left:4px; }
@media(max-width:800px) {
  .course-catalog .best-shortcut { grid-template-columns:1fr; }
  .package-cover { background-position:center 58%; }
}
@media(max-width:520px) {
  .package-cover { padding:22px; gap:12px; }
  .package-details { padding:16px; }
  .package-options { gap:7px; }
  .package-option { padding:11px 9px; }
  .package-price small,.package-price strong { display:block; }
  .package-price small { margin-bottom:3px; }
  .package-discount b { display:block; }
  .agency-band .agency-link-label { display:block; }
}
