/* Focused refinements of the original 88DIVING design system. */
.nav-about{position:relative}.about-menu-row{display:flex;align-items:center;gap:4px}.submenu-toggle{border:0;background:transparent;color:var(--88-text-heading);min-width:32px;min-height:44px;padding:0 7px;font-size:20px}.submenu-toggle[aria-expanded=true]{transform:rotate(180deg)}.about-dropdown{position:absolute;right:0;top:54px;min-width:170px;background:#fff;border:1px solid #c4d3df;padding:10px 15px}.nav .about-dropdown a{display:block;font-size:14px;padding:10px 4px}.nav .about-dropdown a:after{display:none}
.home-strengths{padding-top:82px;padding-bottom:82px}.strengths-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.strength{border-top:1px solid #bdcfdf;padding-top:25px}.line-icon{width:30px;height:30px;flex-shrink:0;color:var(--88-primary)}.strength .line-icon{width:34px;height:34px;margin-bottom:22px}.strength h3{font-size:23px;margin-bottom:12px}.strength p{font-size:15px;color:var(--88-text)}.home-strengths .small-note{margin-top:24px}
.program-choices .program h3{font-size:33px;margin:25px 0 14px}.age-label{display:inline-block;background:var(--88-surface-tint);color:var(--88-primary);padding:4px 12px;font-size:14px;font-weight:600;border-radius:3px}.program-choices .program p{margin-top:20px;min-height:53px}.program-choices .program small{font-size:13px;min-height:22px}.program-choices .program .btn{width:100%;justify-content:space-between;font-size:15px}.program-choices .program:last-child{padding-right:0}
.home-locations{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:48px;align-items:start}.home-place-list .place-preview:first-child{padding-top:0}.home-place-list .place-preview{gap:16px;padding:13px 0}.home-place-list .place-preview strong{font-size:18px}.home-place-list .place-preview p{font-size:13px;color:var(--88-text-muted);margin-top:3px}.place-number{font-size:13px;font-weight:600;color:var(--88-primary);flex-shrink:0;align-self:flex-start;padding-top:5px}.home-place-list .place-preview>div{flex:1}.home-place-list>.btn{margin-top:22px}.overview-map-wrap{min-width:0}#locations-overview-map{height:530px;background:#e3ebef;border:1px solid #bdcfdf;position:relative;z-index:1}.map-loading{padding:25px;font-size:14px}.overview-map-wrap .small-note{font-size:12px;margin-top:14px}.place-marker{display:flex;align-items:center;justify-content:center;background:var(--88-primary);color:#fff;border:2px solid #fff;border-radius:50%;font-family:Pretendard,sans-serif;font-size:12px;font-weight:700;width:30px;height:30px;box-shadow:0 1px 5px #0a143330}.place-marker.pending{background:var(--88-text-muted)}.leaflet-popup-content{font:14px/1.6 Pretendard,sans-serif}.leaflet-popup-content a{color:var(--88-primary);text-decoration:underline}.leaflet-container{font-family:Pretendard,sans-serif}.leaflet-control-attribution a{color:var(--88-text-heading)}.map-legend{display:flex;gap:18px;font-size:12px;color:var(--88-text-muted);margin-top:10px}.map-legend span:before{content:'';display:inline-block;width:8px;height:8px;background:var(--88-primary);border-radius:50%;margin-right:6px}.map-legend span.pending:before{background:var(--88-text-muted)}
.booking-steps{grid-template-columns:repeat(3,1fr);gap:45px}.booking-steps h3{font-size:23px;max-width:330px}.booking-steps p{max-width:320px}.booking-steps .text-link{font-size:13px;margin-top:12px}
.instructor-previews{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.instructor-portrait,.portrait-placeholder{width:100%;aspect-ratio:4/5;object-fit:cover;height:auto;background:var(--88-surface-tint)}.portrait-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:15px;color:var(--88-text-muted)}.portrait-placeholder small{display:block;font-size:12px}.instructor-profile .role{font-size:12px;color:var(--88-primary);font-weight:600;margin-top:20px;margin-bottom:8px}.instructor-profile h3{font-size:27px}.instructor-qualification{font-size:14px;font-weight:600;margin-top:15px}.instructor-specialty{font-size:13px;color:var(--88-text);margin-top:7px}.instructor-bio{font-size:14px;color:var(--88-text);margin-top:16px;line-height:1.7}.instructor-profile .text-link{font-size:13px;margin-top:12px}.instructor-details{display:grid;grid-template-columns:1fr 1fr;gap:55px}.instructor-details .instructor-profile{display:grid;grid-template-columns:160px 1fr;gap:25px;align-items:start;scroll-margin-top:130px}.instructor-details .role{margin-top:0}.instructor-details ul{font-size:13px;color:var(--88-text)}.instructor-details .instructor-bio{border-top:1px solid #bdcfdf;padding-top:14px}.brand-values{margin-top:0;gap:40px}.brand-values p{color:var(--88-text)}.big-word{font-size:clamp(36px,5vw,66px)}
.separated-experiences{grid-template-columns:1fr 1fr;gap:64px}.separated-experiences h2{font-size:42px}.separated-experiences .section-intro{font-size:17px;margin-top:15px;min-height:55px}.event-cover{margin:27px 0 30px}.event-cover img{width:100%;height:215px;object-fit:cover;object-position:center 47%}.event-cover figcaption,.event-detail-photo figcaption{font-size:12px;margin-top:8px;color:var(--88-text-muted)}.journey .event-cover figcaption{color:#cadbea}.journey .event-row h3{font-size:23px}.journey .event-row p{font-size:13px}.event-detail-photo{margin:0 0 35px}.event-detail-photo img{width:100%;max-height:620px;object-fit:contain;background:var(--88-surface-tint)}.event-availability{margin:0 0 22px}
.results-grid{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid #bdcfdf;border-bottom:1px solid #bdcfdf;padding:35px 0;gap:35px}.results-grid>div{display:flex;flex-direction:column;gap:10px}.results-grid strong{font-size:58px;letter-spacing:-.05em;color:var(--88-primary);line-height:1.1}.results-grid strong span{font-size:27px;padding-left:4px}.results-grid>div>span{font-size:15px;font-weight:600}.results-source{font-size:12px;color:var(--88-text-muted);margin-top:18px;line-height:1.8}.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 35px;margin-top:30px}.reviews-grid .review-quote{margin:0;padding:25px 0}.reviews-grid .review-quote p{font-size:17px}.reviews-grid .review-quote cite{font-size:12px}
.included-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px 25px}.included-grid>div{display:flex;align-items:center;gap:14px;font-size:16px;font-weight:600;padding:10px 0}.included-grid .line-icon{width:28px;height:28px}.excluded-costs{font-size:13px;color:var(--88-text);border-top:1px solid #bdcfdf;padding-top:20px;margin-top:23px;line-height:1.9}.excluded-costs strong{font-weight:600;color:var(--88-text-heading);margin-right:10px}.preparation-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;border-top:1px solid #bdcfdf;padding-top:28px;margin-top:25px}.preparation-grid h3{font-size:21px;margin-bottom:22px}.benefit-icons{display:flex;flex-wrap:wrap;gap:25px}.benefit-icons>div{display:flex;flex-direction:column;gap:12px;align-items:center;font-size:13px}.benefit-icons .line-icon{width:28px;height:28px}
.calm-contact{background:var(--88-surface-tint);color:var(--88-text-heading);padding:65px 0}.calm-contact h2{font-size:34px}.calm-contact p{color:var(--88-text-muted);font-size:15px}.contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:15px}.contact-phone{font-size:19px;color:var(--88-text-muted);letter-spacing:.02em}.footer-contacts h3{color:var(--88-text-muted);font-size:15px}.footer-contacts a{color:var(--88-text-muted);font-size:13px}.footer-contacts a:first-of-type{color:var(--88-primary)}.contact-grid h3{font-size:19px}.contact-grid p{font-size:15px;color:var(--88-text-muted);margin-top:15px}
@media(max-width:1180px){.strengths-grid{gap:22px}.strength h3{font-size:21px}.program-choices .program h3{font-size:27px}.instructor-previews{gap:20px}.instructor-profile h3{font-size:24px}.instructor-details .instructor-profile{grid-template-columns:125px 1fr;gap:20px}.home-locations{gap:30px}.home-place-list .place-preview strong{font-size:17px}}
@media(max-width:960px){.nav-about{align-self:start}.about-menu-row{justify-content:space-between}.about-dropdown{position:static;padding:0 4px 8px;border:0;min-width:0}.nav .about-dropdown a{font-size:13px;padding:7px 5px}.nav.open{align-items:start}.strengths-grid{grid-template-columns:1fr 1fr;gap:28px}.strength h3{font-size:23px}.program-choices .program h3{font-size:25px}.home-locations{grid-template-columns:1fr 1fr;gap:25px}#locations-overview-map{height:540px}.home-place-list .place-preview strong{font-size:16px}.instructor-previews{grid-template-columns:1fr 1fr;gap:35px 25px}.instructor-details{grid-template-columns:1fr;gap:40px}.instructor-details .instructor-profile{grid-template-columns:180px 1fr;gap:30px}.separated-experiences{gap:35px}.event-cover img{height:180px}.results-grid strong{font-size:47px}.reviews-grid{grid-template-columns:1fr 1fr}.included-grid{grid-template-columns:1fr 1fr}.booking-steps{gap:25px}.booking-steps h3{font-size:21px}}
@media(max-width:640px){.home-strengths{padding:55px 0}.strengths-grid{gap:25px 20px}.strength .line-icon{width:30px;height:30px;margin-bottom:17px}.strength h3{font-size:19px;line-height:1.35}.strength p{font-size:14px}.home-strengths .small-note{font-size:11px}.program-choices .program h3{font-size:29px}.program-choices .program p{min-height:0;margin-top:15px}.program-choices .program small{margin:12px 0 18px}.program-choices .program .btn{max-width:none}.program-choices .program,.program-choices .program+.program{padding:27px 0}.home-locations{grid-template-columns:1fr;gap:32px}#locations-overview-map{height:340px}.home-place-list .place-preview strong{font-size:18px}.home-place-list .place-preview p{font-size:12px}.booking-steps{grid-template-columns:1fr;gap:25px}.booking-steps .step{display:grid;grid-template-columns:45px 1fr;gap:3px 17px;align-items:start;border-top:1px solid #bdcfdf;padding-top:22px}.booking-steps .step-number{font-size:31px;border:0;margin:0;padding:0;grid-row:1/4}.booking-steps h3{font-size:22px;margin:0 0 10px}.booking-steps p,.booking-steps .text-link{grid-column:2}.instructor-previews{gap:28px 18px}.instructor-profile .role{font-size:10px;min-height:16px;margin-top:14px}.instructor-profile h3{font-size:24px}.instructor-qualification{font-size:12px;min-height:40px}.instructor-specialty,.instructor-bio{font-size:12px}.instructor-bio{margin-top:12px}.instructor-details .instructor-profile{grid-template-columns:100px 1fr;gap:19px}.instructor-details .instructor-qualification{min-height:0}.instructor-details ul{font-size:12px}.instructor-details .instructor-bio{font-size:13px}.separated-experiences{grid-template-columns:1fr;gap:52px}.separated-experiences>section+section{border-top:1px solid #58758a;padding-top:45px}.separated-experiences h2{font-size:35px}.separated-experiences .section-intro{min-height:0;font-size:15px}.event-cover img{height:190px}.results-grid{grid-template-columns:1fr;gap:22px;padding:25px 0}.results-grid>div{flex-direction:row;align-items:center;gap:24px}.results-grid strong{font-size:43px;min-width:178px}.results-grid>div>span{font-size:14px}.results-grid strong span{font-size:22px}.results-source{font-size:11px}.reviews-grid{grid-template-columns:1fr;margin-top:24px}.reviews-grid .review-quote p{font-size:17px}.included-grid{gap:15px 18px}.included-grid>div{font-size:14px;gap:10px;align-items:flex-start}.included-grid .line-icon{width:24px;height:24px}.excluded-costs{font-size:12px}.preparation-grid{grid-template-columns:1fr;gap:30px}.preparation-grid h3{font-size:20px}.benefit-icons{gap:25px}.benefit-icons>div{font-size:12px}.calm-contact{padding:50px 0}.calm-contact h2{font-size:30px}.contact-phone{font-size:18px}.brand-values{gap:30px 22px}.brand-values p{font-size:14px}.footer-contacts a{font-size:12px}}

.archive-gallery{margin:0 0 35px}.archive-gallery img{width:100%;max-height:560px;object-fit:contain;background:var(--88-surface-tint)}.archive-gallery figcaption{font-size:12px;color:var(--88-text-muted);margin-top:8px}

/* The ABOUT link opens the brand page; its related destinations stay in the same menu. */
.nav-about > a { display: block; }
.nav-about .about-dropdown { display: none; top: 100%; }
.nav-about:not([data-dismissed]):is(:hover, :focus-within) > .about-dropdown { display: block; }
.hero-byline { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 22px; }
.hero-byline .eyebrow { margin: 0; }
.hero-byline > span:last-child { border-left: 1px solid #bdcfdf; padding-left: 12px; color: var(--88-text-muted); font-size: 11px; letter-spacing: .08em; }
.compact-intro { padding-top: clamp(32px, 4.3vw, 62px); }

.home-page #reviews, .home-page #programs, .home-page .booking-section { background: var(--88-surface-tint); }
.home-page .home-strengths, .home-page #home-locations, .home-page #home-instructors { background: #fff; }
.home-page #experiences + .section { background: #fff; }
.home-page #programs .age-label { background: #fff; }
.home-page .booking-section { background: var(--88-surface-tint); }
.home-page #reviews h2 { color: var(--88-text-heading); }
.results-grid { padding: 22px 0; }
.results-grid .metric-detail > span { font-size: 16px; font-weight: 600; }
.metric-detail small { display: block; margin-top: 4px; color: var(--88-text-muted); font-size: 11px; line-height: 1.45; font-weight: 400; }
.reviews-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 20px; margin-top: 28px; }
.review-item { grid-column: span 2; min-width: 0; }
.review-item:nth-child(-n+2) { grid-column: span 3; }
.reviews-grid .review-quote { position: relative; background: #fff; border: 1px solid #d4e2f2; border-radius: 17px 17px 17px 3px; margin: 0; padding: 20px 23px; }
.reviews-grid .review-quote::after { content: ''; position: absolute; left: 22px; bottom: -6px; width: 10px; height: 10px; background: #fff; border-right: 1px solid #d4e2f2; border-bottom: 1px solid #d4e2f2; transform: skewY(-8deg) rotate(45deg); }
.review-course { display: block; color: var(--88-primary); font-size: 12px; font-weight: 600; margin-bottom: 8px; }
.reviews-grid .review-quote p { font-size: 16px; line-height: 1.65; color: var(--88-text); }
.review-quote strong { font-weight: 700; }
.review-item figcaption { margin: 9px 0 0 19px; font-size: 12px; color: var(--88-text-muted); }
.instructor-portrait { display: block; width: min(100%,220px); height: auto; aspect-ratio: 1; border-radius: 50%; background: var(--88-surface-tint); }
.instructor-previews .instructor-profile > a { display: block; width: min(100%, 220px); aspect-ratio: 1; }
.instructor-previews .instructor-portrait { width: 100%; height: 100%; }
.instructor-details .instructor-portrait { width: 100%; }
.purchase-links { display: flex; flex-wrap: wrap; gap: 5px 13px; margin-top: 14px; }
.purchase-link { display: inline-flex; align-items: center; gap: 4px; min-height: 36px; font-size: 14px; color: var(--88-primary); font-weight: 600; }
.purchase-link:hover { text-decoration: underline; }

.package-prices { border-block: 1px solid #bdcfdf; margin-top: 30px; scroll-margin-top: 12px; }
.package-prices summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; color: var(--88-text-heading); font-size: 19px; font-weight: 700; cursor: pointer; list-style: none; }
.package-prices summary::-webkit-details-marker { display: none; }
.package-prices summary::after { content: '+'; color: var(--88-primary); font-weight: 400; }
.package-prices[open] summary::after { content: '−'; }
.package-prices .price-table { width: 100%; border-collapse: collapse; color: var(--88-text); font-size: 15px; line-height: 1.45; font-variant-numeric: tabular-nums; }
.price-table th, .price-table td { padding: 12px 8px; text-align: right; border-bottom: 1px solid #dbe4ed; }
.price-table tr > :first-child { text-align: left; }
.price-table thead { background: var(--88-surface-tint); }
.price-table th { font-weight: 600; }
.price-table .price-basis { display: block; font-size: 11px; font-weight: 400; }
.package-prices .actions { margin: 16px 0 22px; }
.package-prices .small-note { margin: 12px 0; }
.package-prices + .package-prices { margin-top: 0; border-top: 0; }
.package-prices + .course-list { margin-top: 28px; }
.package-prices .price-unit { margin: 0 0 12px; color: var(--88-text-muted); font-size: 13px; }
.package-prices h3 { margin: 16px 0 8px; font-size: 17px; }
.package-prices table { margin-bottom: 18px; }
.price-table th { color: var(--88-text-heading); }
.detail-facts dd small { display: block; margin-top: 4px; font-size: 13px; font-weight: 400; color: var(--88-text-muted); }
h1, h2, h3, h4 { color: var(--88-text-heading); }
.journey :is(h1,h2,h3,h4), .cta-section:not(.calm-contact) h2 { color: white; }
.journey a:focus-visible { outline-color: var(--88-primary); box-shadow: 0 0 0 3px white; }
.strength p, .step p, .course-row p, .event-row p, .facility-row p, .content-block p, .section-intro { color: var(--88-text); }
.btn, .price-table th, .purchase-link, .review-course { font-weight: 600; }
@media(max-width:960px) {
  .nav.open .nav-about .about-dropdown { display: block; }
  .reviews-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .review-item, .review-item:nth-child(-n+2) { grid-column: auto; }
  .review-item:last-child { grid-column: 1/-1; }
}
@media(max-width:640px) {
  .hero-byline { gap: 9px; margin-bottom: 17px; }
  .hero-byline > span:last-child { padding-left: 9px; font-size: 10px; }
  .home-page #reviews .section-head { margin-bottom: 26px; }
  .results-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; padding: 20px 0; }
  .results-grid .review-metric { flex-direction: column; align-items: flex-start; gap: 8px; }
  .results-grid strong { font-size: clamp(25px,7.5vw,40px); min-width: 0; }
  .results-grid strong span { font-size: 14px; padding-left: 1px; }
  .results-grid .metric-detail > span { display: block; font-size: 13px; line-height: 1.45; }
  .metric-detail small { font-size: 10px; }
  .reviews-grid { grid-template-columns: 1fr; gap: 15px; }
  .review-item:last-child { grid-column: auto; }
  .reviews-grid .review-quote { padding: 16px 18px; }
  .booking-steps .purchase-links { grid-column: 2; }
  .instructor-previews .instructor-profile > a { width: min(100%, 165px); }
  .package-prices .price-table { font-size: 13px; }
  .price-table th, .price-table td { padding: 10px 3px; }
}
