@media (max-width: 1360px) {
  .desktop-nav { display: none; }
  .menu-toggle { display: block; }
  .header-actions .btn { min-height: 44px; padding: 0 17px; }
  .home-header .header-shell { width: var(--wide); height: 104px; gap: 28px; }
  .home-header .brand { min-width: 92px; }
  .home-header .brand img { width: 92px; height: 78px; margin-right: 12px; }
  .home-header .brand b { font-size: 1.7rem; }
  .home-header .brand small { margin-top: 7px; font-size: .58rem; }
  .home-header .header-main { flex-direction: row; justify-content: flex-end; }
  .home-header .header-utility { width: auto; }
  .home-header .header-utility .header-actions .btn { display: inline-flex; }
  .home-header .header-actions .btn { min-height: 48px; padding: 0 21px; }
  .home-header + main .home-hero { height: 780px; min-height: 780px; padding: 104px 0 76px; }
  .hero-slide-promo { top: 104px; }
  .pricing-grid { grid-template-columns: repeat(2,1fr); }
  .why-grid { grid-template-columns: repeat(3,1fr); }
  .product-grid { grid-template-columns: repeat(3,1fr); }
  .event-type-grid { grid-template-columns: repeat(3,1fr); }
  .package-grid { grid-template-columns: repeat(2,1fr); }
  .footer-top { grid-template-columns: 1.4fr repeat(2,1fr); }
  .footer-top > div:nth-child(4), .footer-top > div:nth-child(5) { margin-top: 20px; }
}

/* Mobile navigation: keep the drawer clear of the logo and on-brand. */
@media (max-width: 640px) {
  .event-type-list { grid-template-columns: 1fr; }
  .event-type-list li { padding: 18px 4px 18px 25px; }
  .event-type-list li::before { top: 27px; }
  .menu-bullet-list { grid-template-columns: 1fr; }
  .menu-bullet-list li { padding: 18px 4px 18px 25px; }
  .menu-bullet-list li::before { top: 27px; }
  .vip-benefit-list { grid-template-columns: 1fr; }
  .vip-benefit-list li { padding: 19px 4px 19px 27px; }
  .vip-benefit-list li::before { top: 27px; }
  .event-booking-grid { grid-template-columns: 1fr; }
  .event-booking-card { padding: 22px 18px; }
  .event-config { grid-template-columns: 1fr; }
  .home-how-list { grid-template-columns: 1fr; gap: 0; margin-bottom: 28px; }
  .home-how-list li { padding: 18px 4px 18px 27px; }
  .home-how-list li::before { top: 27px; }
  body.menu-open .site-header .brand { opacity: 0; visibility: hidden; pointer-events: none; }
  .site-header .brand, .site-header .brand img { transition: opacity .2s ease, visibility .2s ease; }
  .site-header.home-header .brand img { width: 64px; height: 64px; margin-right: 0; }
  .home-header .brand { flex: 0 0 64px; min-width: 64px; }
  .home-header .header-shell { width: calc(100% - 28px); }
  .home-header .menu-toggle { position: relative; z-index: 1002; border-color: rgba(242,212,125,.55); background: #071426; }
  .home-header .menu-toggle span { background: var(--light-gold); }
  .mobile-menu {
    z-index: 1001; inset: 0; width: 100%; height: 100dvh; min-height: 100vh;
    padding: 96px 20px 92px;
    background: radial-gradient(circle at 100% 0,rgba(212,166,58,.16),transparent 34%),linear-gradient(145deg,#050505 0%,#071426 70%,#0b2037 100%);
    color: var(--white); box-shadow: none;
  }
  .mobile-menu-inner > a, .mobile-submenu > button { border-bottom-color: rgba(242,212,125,.2); color: var(--white); }
  .mobile-menu-inner > a .nav-icon, .mobile-submenu > button .nav-icon, .mobile-submenu-items .nav-icon, .mobile-submenu-chevron { color: var(--gold); stroke: currentColor; }
  .mobile-submenu-items { background: rgba(255,255,255,.05); }
  .mobile-submenu-items a { border-bottom-color: rgba(242,212,125,.12); color: rgba(255,255,255,.78); }
  .mobile-menu-cta .btn-outline { border-color: rgba(242,212,125,.48); color: var(--white); }
}

@media (max-width: 900px) {
  .guest-checkout-grid { grid-template-columns: 1fr; }
  .guest-order-summary { position: static; }
  .checkout-title-row { align-items: flex-start; flex-direction: column; }
  .visit-planner-hero { min-height: 480px; }
  .visit-search-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .visit-search-summary > label:nth-child(2) { border-right: 0; }
  .visit-search-summary > label { border-bottom: 1px solid rgba(255,255,255,.12); }
  .visit-search-summary > button { grid-column: 1 / -1; min-height: 50px; }
  .visit-choice-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .guest-checkout-top { padding: 132px 0 28px; }
  .checkout-security { width: 100%; }
  .checkout-progress { margin-top: 30px; }
  .checkout-progress li b { font-size: .58rem; }
  .guest-checkout-content { padding: 28px 0 85px; }
  .checkout-card { padding: 23px 18px; }
  .checkout-card-heading { gap: 12px; }
  .membership-options { grid-template-columns: 1fr; }
  .checkout-fields { grid-template-columns: 1fr; }
  .checkout-fields .full { grid-column: auto; }
  .shift4-payment-panel { grid-template-columns: auto 1fr; }
  .shift4-payment-panel > .icon { display: none; }
  .guest-summary-body { padding: 23px 19px; }
  .visit-planner-hero { min-height: 440px; }
  .visit-planner-copy { width: calc(100% - 32px); padding: 160px 0 68px; }
  .visit-planner-copy h1 { font-size: clamp(3.1rem,16vw,4.7rem); }
  .visit-planner-section { padding-bottom: 80px; }
  .visit-search-summary { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: -26px; }
  .visit-search-summary .visit-field-location,.visit-search-summary .visit-field-date { grid-column: 1 / -1; }
  .visit-search-summary .visit-field-time { border-right: 1px solid rgba(255,255,255,.12); }
  .visit-search-summary > label { padding: 16px 18px; border-right: 0; }
  .visit-search-summary > button { grid-column: 1 / -1; }
  .visit-choice-heading { margin: 65px auto 28px; }
  .visit-choice-image { height: 220px; }
  .visit-choice-body > p:not(.mini-label) { min-height: 0; }
  .visit-group-callout { align-items: stretch; flex-direction: column; padding: 28px 24px; }
  .visit-group-callout .btn { width: 100%; }
}

@media (max-width: 900px) {
  :root { --shell: min(100% - 32px,1320px); --wide: min(100% - 32px,1600px); }
  .header-shell { height: 78px; }
  .brand img { width: 46px; height: 46px; }
  .home-header .header-shell { height: 88px; }
  .home-header .brand { min-width: 62px; }
  .home-header .brand img { width: 62px; height: 62px; margin-right: 10px; }
  .home-header .brand b { font-size: 1.55rem; }
  .home-header .brand small { margin-top: 7px; font-size: .56rem; }
  .home-header .header-socials { display: none; }
  .home-header + main .home-hero { height: 780px; min-height: 780px; padding-top: 88px; }
  .home-hero { min-height: 780px; }
  .hero-slide-promo { top: 88px; }
  .hero-content { margin-top: 0; }
  .hero-bottom { right: 16px; left: 16px; bottom: 28px; justify-content: flex-end; }
  .hero-bottom > div { display: none; }
  .scroll-cue { display: none; }
  .how .section-heading { grid-template-columns: 1fr; gap: 18px; }
  .how .section-heading > p:not(.eyebrow) { grid-column: 1; grid-row: auto; margin: 0; }
  .steps { grid-template-columns: 1fr; }
  .steps article, .steps article:not(:first-child) { min-height: auto; padding: 28px; border: 1px solid rgba(255,255,255,.13); }
  .vip-feature, .visit-block { grid-template-columns: 1fr; }
  .vip-media { min-height: 550px; }
  .events-showcase .section-heading { grid-template-columns: 1fr; gap: 18px; }
  .events-showcase .section-heading > p:not(.eyebrow) { grid-column: 1; grid-row: auto; margin: 0; }
  .occasion-grid { grid-template-columns: repeat(2,1fr); grid-auto-rows: 220px; }
  .occasion:nth-child(n) { grid-column: span 1; }
  .occasion:nth-child(5) { grid-column: 1 / -1; }
  .food-teaser .section-shell { grid-template-columns: 1fr; }
  .food-visual { min-height: 400px; }
  .promo-grid { grid-template-columns: 1fr; }
  .social-proof .section-shell { grid-template-columns: 1fr; }
  .reviews-intro { position: static; }
  .review-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .signup { grid-template-columns: 1fr; gap: 35px; }
  .signup-premium { grid-template-columns: 1fr; gap: 45px; }
  .signup-intro { max-width: 680px; }
  .footer-bottom { grid-template-columns: 1fr; }
  .footer-bottom p:last-child { text-align: left; }
  .page-hero { min-height: 620px; padding-bottom: 90px; }
  .breadcrumb { right: 16px; left: 16px; bottom: 28px; min-width: 0; }
  .breadcrumb span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .detail-list article { grid-template-columns: 1fr; gap: 35px; }
  .detail-list article:nth-child(even) > div:first-child { order: 0; }
  .editorial-split { grid-template-columns: 1fr; gap: 45px; }
  .why-heading { grid-template-columns: 1fr; gap: 25px; margin-bottom: 40px; }
  .why-grid { grid-template-columns: repeat(2,1fr); }
  .event-type-grid { grid-template-columns: repeat(2,1fr); }
  .product-grid { grid-template-columns: repeat(2,1fr); }
  .membership-plan-grid { grid-template-columns: 1fr; }
  .membership-shop-banner { align-items: flex-start; flex-direction: column; padding: 28px 20px; }
  .membership-plan-card.is-featured { transform: none; }
  .event-enquiry-cta { align-items: flex-start; flex-direction: column; padding: 23px 19px; }
  body[data-page="front.events"] .steps article,body[data-page="front.events"] .steps article:not(:first-child) { min-height: 165px; padding: 24px; }
  body[data-page="front.events"] .enquiry-form { margin-top: 48px; }
  .shop-heading-row { align-items: flex-start; flex-direction: column; gap: 0; }
  .shop-heading-row > .btn { margin: -20px 0 35px; }
  .shop-category-tabs { flex-wrap: wrap; }
  .product-detail, .gift-layout { grid-template-columns: 1fr; }
  .product-buy, .gift-card-preview { position: static; }
  .specs { grid-template-columns: 1fr; gap: 35px; }
  .cart-layout, .checkout-layout, .booking-layout { grid-template-columns: 1fr; }
  .order-summary, .booking-summary { position: static; }
  .enquiry-form { grid-template-columns: 1fr; gap: 35px; }
  .form-intro { position: static; }
  .contact-grid { grid-template-columns: repeat(2,1fr); }
  .faq-layout { grid-template-columns: 1fr; }
  .faq-layout aside { position: static; display: flex; gap: 8px; overflow-x: auto; }
  .faq-layout aside .mini-label { display: none; }
  .faq-layout aside button { width: auto; padding: 8px 13px; border: 1px solid var(--dark-line); border-radius: 99px; white-space: nowrap; }
}

@media (max-width: 640px) {
  :root { --shell: calc(100% - 28px); --wide: calc(100% - 28px); --radius: 13px; }
  body { font-size: 15px; padding-bottom: 66px; }
  .site-header .brand img { display: none; }
  .site-header.home-header .brand img { display: block; width: 140px; height: 100px; margin-right: 6px; }
  .home-header .header-shell { height: 100px; }
  .home-header .brand { min-width: 82px; }
  .home-header .brand b { font-size: 1.12rem; }
  .home-header .brand small { margin-top: 5px; font-size: .49rem; }
  .site-header .brand { min-width: auto; }
  .brand b { font-size: 1.25rem; }
  .header-actions { gap: 7px; }
  .header-actions .btn { min-height: 40px; padding: 0 13px; font-size: .74rem; }
  .header-actions .btn span { display: none; }
  .menu-toggle { width: 42px; height: 42px; }
  .mobile-menu { padding-top: 112px; }
  .mobile-menu-cta { flex-direction: column; }
  .home-header + main .home-hero { height: max(640px, 100svh); min-height: 640px; max-height: 740px; align-items: flex-end; padding: 114px 0 0; }
  .hero-slider-controls { top: 112px; right: 14px; bottom: auto; }
  .hero-media img, .hero-media video { object-position: center 25%; }
  .home-hero .hero-overlay { background: linear-gradient(180deg,rgba(5,5,5,.12),rgba(5,5,5,.2) 48%,rgba(5,5,5,.68) 100%); }
  .home-hero:not(.promo-active) .hero-content { width: calc(100% - 28px); min-width: 0; margin: 0 auto; padding: 16px; border: 1px solid rgba(255,255,255,.14); border-radius: 16px; background: linear-gradient(145deg,rgba(2,7,13,.82),rgba(5,17,29,.58)); box-shadow: 0 18px 50px rgba(0,0,0,.34); backdrop-filter: blur(7px); }
  .hero-content .eyebrow { margin-bottom: 6px; font-size: .62rem; }
  .hero-content h1 { max-width: 330px; margin: 5px 0 14px; font-size: clamp(1.85rem,8.8vw,2.5rem); line-height: .96; }
  .hero-content > p:not(.eyebrow) { display: none; }
  .hero-content .button-row { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 0; }
  .hero-content .button-row .btn { width: 100%; min-height: 44px; padding: 0 13px; gap: 8px; font-size: .7rem; }
  .hero-content .hero-link { display: none; }
  .hero-slide-promo { top: 100px; }
  .hero-slide-promo > img { display: none; }
  .mobile-promo-image { position: absolute; right: 0; bottom: 0; left: 0; height: 49%; display: block; background: #050505 url("../images/hero/tdw-promo-header-2.png") right 46% / auto 205% no-repeat; }
  .mobile-promo-copy { position: absolute; z-index: 3; top: 0; right: 0; left: 0; height: 43%; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 20px; background: radial-gradient(circle at 88% 8%,rgba(212,166,58,.14),transparent 34%),linear-gradient(145deg,#050505,#091424); }
  .mobile-promo-copy .eyebrow { margin-bottom: 7px; font-size: .63rem; }
  .mobile-promo-copy h2 { max-width: 330px; margin: 0; color: white; font-size: clamp(1.75rem,8.5vw,2.25rem); line-height: .98; }
  .mobile-promo-tagline { margin: 5px 0 7px; color: #58b9ed; font-family: var(--display); font-size: 1rem; font-weight: 700; }
  .mobile-promo-description { display: none; }
  .mobile-promo-features { display: none; }
  .mobile-promo-features span { padding: 4px 8px; border: 1px solid rgba(242,212,125,.25); border-radius: 99px; color: var(--light-gold); font-size: .59rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
  .mobile-promo-copy .btn { min-height: 40px; padding: 0 15px; gap: 18px; font-size: .72rem; }
  .hero-slide-video::after { position: absolute; z-index: 1; content: ""; inset: 0; background: linear-gradient(180deg,rgba(2,7,13,.12) 20%,rgba(2,7,13,.45) 55%,rgba(2,7,13,.94) 100%); pointer-events: none; }
  .hero-slide-video > video { display: block; object-fit: cover; object-position: center; }
  .video-glass-caption { top: 132px; right: 14px; bottom: auto; left: 14px; max-width: none; padding: 13px 15px 14px; border-left-width: 3px; border-radius: 11px; text-align: left; }
  .video-glass-caption span { margin-bottom: 4px; font-size: .55rem; letter-spacing: .15em; }
  .video-glass-caption strong { font-size: clamp(1.25rem,6vw,1.75rem); line-height: 1.04; }
  .video-glass-caption strong br { display: none; }
  .hero-video-caption { top: calc(48% - 20px); width: calc(100% - 34px); }
  .hero-video-caption strong { font-size: clamp(calc(1.75rem - 1px),calc(8vw - 1px),calc(2.65rem - 1px)); line-height: 1.06; }
  .hero-slide-video .mobile-promo-copy { top: auto; right: 14px; bottom: 82px; left: 14px; height: auto; justify-content: flex-start; padding: 17px; border: 1px solid rgba(255,255,255,.16); border-radius: 16px; background: rgba(3,12,22,.72); box-shadow: 0 18px 50px rgba(0,0,0,.38); backdrop-filter: blur(10px); }
  .hero-slide-video .mobile-promo-copy .eyebrow { display: none; }
  .hero-slide-video .mobile-promo-copy h2 { font-size: clamp(1.7rem,8.5vw,2.2rem); }
  .hero-slide-video .mobile-promo-description { display: -webkit-box; overflow: hidden; margin: 7px 0 13px; color: rgba(255,255,255,.82); font-size: .78rem; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .hero-slide-video .mobile-promo-copy .btn + .btn { display: none; }
  .home-hero:not(.promo-active) .hero-brand-content { width: calc(100% - 28px); margin: 0 auto; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; transform: none; column-gap: 11px; }
  .hero-brand-logo { width: 70px; height: 70px; margin: 0; border-width: 3px; }
  .hero-brand-content h1 { gap: 6px; max-width: none; margin: 0; font-size: clamp(2.60rem,6vw,1.7rem); line-height: 1; letter-spacing: -.045em; }
  .hero-booking-window { margin-top: 12px; }
  .hero-booking-options { grid-template-columns: 1fr 1fr; }
  .hero-booking-field { min-height: 52px; gap: 9px; padding: 8px 34px 8px 13px; }
  .hero-booking-field small { display: none; }
  .hero-booking-field b, .hero-booking-field input, .hero-booking-field select { font-size: .76rem; }
  .hero-field-status { right: 11px; width: 15px; height: 15px; font-size: .6rem; }
  .hero-booking-options .icon { width: 18px; height: 18px; flex-basis: 18px; }
  .hero-booking-button { min-height: 45px; margin: 10px 0 0; font-size: .72rem; }
  .hero-bottom { justify-content: flex-start; }
  .play-mark { padding-left: 0; border: 0; }
  .section, .food-teaser { padding: 75px 0; }
  .section-heading { margin-bottom: 35px; }
  .section-heading h2 { font-size: 2.4rem; }
  .how-cta { align-items: stretch; flex-direction: column; }
  .how-cta .btn { width: 100%; min-width: 0; }
  .card-scroll { grid-auto-columns: 84%; }
  .product-scroll { grid-auto-columns: 78%; }
  .card-media { height: 270px; }
  .vip-media { min-height: 380px; }
  .map-embed, .map-embed iframe { min-height: 420px; }
  .vip-copy, .visit-copy { padding: 55px 20px; }
  .stat-grid { grid-template-columns: 1fr 1fr; }
  .occasion-grid { grid-template-columns: 1fr; }
  .occasion-grid .occasion:nth-child(n) { grid-column: 1; min-height: 210px; }
  .events-cta { align-items: stretch; flex-direction: column; }
  .events-cta .btn { width: 100%; }
  .food-visual { transform: scale(.8); margin: -40px; }
  .pricing-grid, .product-grid, .package-grid, .coming-grid, .mission-grid { grid-template-columns: 1fr; }
  .shop-category-tabs button { flex: 1 1 calc(50% - 4px); justify-content: center; padding: 0 10px; }
  .home-product-grid .product-info h3 { min-height: auto; }
  .pricing-card h3, .pricing-card ul { min-height: 0; }
  .promo-art { min-height: 200px; }
  .split-heading { display: block; }
  .split-heading .btn { margin-bottom: 30px; }
  .why-grid { grid-template-columns: 1fr; gap: 12px; }
  .why-grid article { min-height: 0; padding: 22px; }
  .why-icon { width: 48px; height: 48px; margin-bottom: 24px; }
  .why-number { top: 24px; right: 22px; }
  .big-num { margin-bottom: 35px; }
  .social-proof { padding: 75px 0; }
  .social-proof .section-shell { gap: 40px; }
  .social-placeholder { grid-template-columns: 1fr 1fr; }
  .social-placeholder article:last-child { display: none; }
  .review-grid { grid-template-columns: 1fr; }
  .review-card-media { height: 220px; }
  .review-card-body { min-height: 0; }
  .visit-details { grid-template-columns: 1fr; }
  .signup { padding: 70px 14px; }
  .signup-card { padding: 25px 18px; border-radius: 20px; }
  .signup-card-heading { grid-template-columns: 1fr; }
  .signup-card-heading p { margin-top: 8px; }
  .signup-submit { align-items: stretch; flex-direction: column; }
  .signup-submit .btn { width: 100%; }
  .confirmation-details { grid-template-columns: 1fr; }
  .confirmation-page { min-height: calc(100vh - 66px); padding: 115px 20px 75px; }
  .confirmation-page h1 { max-width: 430px; font-size: clamp(2.45rem,12vw,3.55rem); }
  .confirmation-page .confirmation-details { grid-template-columns: 1fr; margin: 22px 0; }
  .confirmation-page .confirmation-details div { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 18px; }
  .signup-form, .form-grid, .gift-form { grid-template-columns: 1fr; }
  .field, .full, .check-field, .gift-form fieldset { grid-column: 1; }
  .site-footer { padding: 65px 18px 25px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 35px 22px; }
  .footer-brand { grid-column: 1/-1; }
  .footer-top > div:last-child { grid-column: 1/-1; }
  .mobile-sticky { position: fixed; z-index: 900; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(3,1fr); width: 100%; height: 66px; border-top: 1px solid var(--line); background: rgba(5,5,5,.96); backdrop-filter: blur(12px); }
  .mobile-sticky a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; color: var(--muted); font-size: .63rem; }
  .mobile-sticky a:first-child { background: var(--gold); color: var(--black); }
  .mobile-sticky .icon { width: 18px; height: 18px; }
  .back-top { bottom: 80px; }
  .page-hero { min-height: 570px; padding: 145px 14px 85px; }
  .page-hero-content h1 { max-width: 100%; font-size: clamp(2.3rem,12vw,2.95rem); overflow-wrap: anywhere; }
  .detail-list article > div:first-child { height: 300px; }
  .detail-list dl { grid-template-columns: 1fr; gap: 12px; }
  .glass-detail { height: 360px; }
  .vip-rate { grid-template-columns: 1fr; }
  .vip-rate > div + div { border-left: 0; border-top: 1px solid var(--dark-line); }
  .package-feature { grid-template-columns: 1fr; gap: 25px; padding: 28px; }
  .gallery-mini { grid-template-columns: 1fr 1fr; }
  .gallery-mini button { height: 240px; }
  .event-type-grid { grid-template-columns: 1fr 1fr; }
  .event-type-grid article { min-height: 185px; }
  .event-type-grid h3 { margin-top: 40px; }
  .responsible-note { grid-template-columns: 1fr; }
  .shop-tools { align-items: start; }
  .shop-tools label { display: none; }
  .filter-chips { overflow-x: auto; flex-wrap: nowrap; }
  .filter-chips button { white-space: nowrap; }
  .corporate-orders { display: block; padding: 35px 25px; }
  .corporate-orders .btn { margin-top: 15px; }
  .product-main { height: 440px; }
  .product-buy h1 { font-size: 2.7rem; }
  .specs { margin: 70px -14px; padding: 45px 22px; }
  .specs dl { grid-template-columns: 1fr; }
  .cart-item { grid-template-columns: 90px 1fr; }
  .cart-item img { width: 90px; height: 90px; }
  .cart-price { grid-column: 2; }
  .gift-card-preview { padding: 25px; }
  .gift-card-preview > div span { font-size: 2rem; }
  .masonry { columns: 2 140px; }
  .gallery-item img, .gallery-item:nth-child(3n) img { min-height: 220px; }
  .mission-grid { margin-top: 60px; }
  .founder-placeholder { padding: 35px 25px; }
  .contact-grid { grid-template-columns: 1fr; }
  .booking-section { padding-top: 65px; }
  .booking-panel { min-height: 620px; padding: 25px 18px; }
  .choice-grid { grid-template-columns: 1fr; }
  .choice-card > span { min-height: 105px; }
  .choice-card .icon { margin-bottom: 22px; }
  .time-grid { grid-template-columns: 1fr 1fr; }
  .choice-row { flex-direction: column; }
  .booking-nav .btn { min-width: 115px; gap: 8px; }
  .policy-grid { grid-template-columns: 1fr; }
  .policy-grid a { border-right: 0; }
  .modal-panel { padding: 38px 25px; }
}

@media (max-width: 420px) {
  .home-header .brand { min-width: auto; }
  .home-header .brand span { display: none; }
  .home-header .header-actions .btn { min-height: 40px; padding: 0 13px; }
  .mobile-promo-copy { padding-right: 16px; padding-left: 16px; }
  .mobile-promo-copy h2 { font-size: 2.1rem; }
  .mobile-promo-description { font-size: .73rem; }
  .event-type-grid, .social-placeholder { grid-template-columns: 1fr; }
  .social-placeholder article { min-height: 190px; aspect-ratio: auto; }
  .social-placeholder article:nth-child(2) { display: none; }
  .expired { margin-top: 55px; padding: 35px 22px; }
  .expired h2 { font-size: 2rem; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-brand, .footer-top > div:last-child { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto!important; animation-duration: .01ms!important; animation-iteration-count: 1!important; transition-duration: .01ms!important; }
}
@media (max-width: 980px) {
  .programs-heading { grid-template-columns: 1fr; gap: 20px; }
  .programs-heading > div:last-child { max-width: 640px; }
  .connection-section .section-shell { grid-template-columns: 1fr; }
  .connection-offer { grid-column: auto; }
}

@media (max-width: 640px) {
  .home-programs { padding: 68px 0; }
  .programs-grid { grid-template-columns: 1fr; }
  .program-media { height: 225px; }
  .program-card-empty { min-height: 260px; padding: 30px 24px 30px 50px; }
  .program-card-empty::before { top: 39px; left: 25px; }
  .programs-footer { align-items: stretch; flex-direction: column; }
  .programs-footer .btn { width: 100%; }
  .connection-section { padding: 62px 0; }
  .connection-heading h2 { font-size: clamp(3.8rem,20vw,6rem); }
  .connection-features { padding: 24px 20px; border-radius: 18px; }
  .connection-features ul { grid-template-columns: 1fr; }
  .connection-offer { align-items: flex-start; flex-direction: column; padding: 24px 20px; }
  .connection-offer .btn { width: 100%; }
  .homepage-popup { padding: 12px; overflow-x: hidden; }
  .homepage-popup-dialog { grid-template-columns: 1fr; width: calc(100vw - 24px); max-width: calc(100vw - 24px); min-width: 0; max-height: calc(100vh - 24px); overflow-x: hidden; border-radius: 18px; }
  .homepage-popup-media, .homepage-popup-media img, .homepage-popup-media video { min-height: 230px; height: 230px; }
  .homepage-popup-copy { width: 100%; min-width: 0; padding: 28px 22px 30px; box-sizing: border-box; }
  .homepage-popup-copy h2, .homepage-popup-copy > p { max-width: 100%; overflow-wrap: anywhere; }
  .homepage-popup-copy .btn { width: 100%; max-width: 100%; min-width: 0; }
}

@media (max-width: 640px) {
  .site-header.home-header { min-height: 124px; overflow: visible; }
  .home-header .header-shell { position: relative; z-index: 1002; height: 124px; gap: 8px; }
  .home-header .brand { flex: 0 0 140px; min-width: 0; }
  .site-header.home-header .brand img { width: 140px; height: 100px; margin-right: 0; }
  .home-header .header-main { flex: 1; flex-direction: column; align-items: flex-end; gap: 0; }
  .home-header .header-utility { width: 100%; flex-direction: column; align-items: flex-end; gap: 7px; }
  .home-header .header-socials { display: flex; align-items: center; gap: 7px; min-height: 27px; }
  .home-header .header-socials > span { display: none; }
  .home-header .header-socials a { width: 26px; height: 26px; background: rgba(5,5,5,.42); }
  .home-header .header-socials svg { width: 13px; height: 13px; }
  .home-header .header-actions { gap: 8px; }
  .home-header .header-actions .btn { width:auto; min-width:106px; min-height:46px; padding:0 14px; justify-content:center; font-size:.72rem; white-space:nowrap; }
  .home-header .menu-toggle { width: 46px; height: 46px; flex: 0 0 46px; background: rgba(5,5,5,.5); }
  .home-hero .hero-slider-controls { top: 136px; }
  .mobile-menu { z-index: 1001; top: 0; right: 0; bottom: auto; left: auto; width: min(82vw,420px); height: 100dvh; min-height: 100vh; padding: 138px 14px 92px; background: linear-gradient(145deg,rgba(244,244,241,.97),rgba(218,221,220,.95)); color: #071426; box-shadow: -20px 0 60px rgba(0,0,0,.22); backdrop-filter: blur(18px); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
  .mobile-menu-inner { width: 100%; padding-bottom: 24px; }
  .mobile-menu-inner > a { display: flex; align-items: center; gap: 12px; padding: 8px 4px; border-bottom-color: rgba(7,20,38,.14); color: #071426; font-size: clamp(1.05rem,5vw,1.3rem); line-height: 1.2; }
  .mobile-menu-inner > a .nav-icon { width: 20px; height: 20px; flex: 0 0 20px; color: #9b711b; stroke: currentColor; }
  .home-header .mobile-menu-inner > a[aria-current="page"] { border-radius: 8px; background: rgba(212,166,58,.16); color: #071426; }
  .mobile-submenu > button { display: flex; align-items: center; gap: 12px; width: 100%; padding: 9px 4px; border: 0; border-bottom: 1px solid rgba(7,20,38,.14); background: transparent; color: #071426; font-family: var(--display); font-size: clamp(1.05rem,5vw,1.3rem); text-align: left; }
  .mobile-submenu > button .nav-icon { width: 20px; height: 20px; flex: 0 0 20px; color: #9b711b; fill: none; stroke: currentColor; }
  .mobile-submenu-chevron { width: 18px; height: 18px; margin-left: auto; fill: none; stroke: #9b711b; stroke-width: 1.8; transition: transform .25s; }
  .mobile-submenu.is-open .mobile-submenu-chevron { transform: rotate(180deg); }
  .mobile-submenu-items { display: grid; max-height: 0; overflow: hidden; opacity: 0; background: rgba(255,255,255,.38); transition: max-height .35s ease,opacity .25s ease; }
  .mobile-submenu.is-open .mobile-submenu-items { max-height: 520px; opacity: 1; }
  .mobile-submenu-items a { display: flex; align-items: center; gap: 10px; padding: 9px 12px 9px 36px; border-bottom: 1px solid rgba(7,20,38,.1); color: #27313b; font-size: .9rem; }
  .mobile-submenu-items .nav-icon { width: 16px; height: 16px; flex: 0 0 16px; color: #9b711b; fill: none; stroke: currentColor; }
  .mobile-menu-cta { gap: 9px; margin-top: 18px; }
  .mobile-menu-cta .btn-outline { border-color: rgba(7,20,38,.34); color: #071426; }
  .menu-open .mobile-sticky { opacity: 0; visibility: hidden; pointer-events: none; }
}

/* Final mobile-menu theme overrides (kept after legacy homepage rules). */
@media (max-width: 640px) {
  body.menu-open .site-header .brand { opacity: 0; visibility: hidden; pointer-events: none; }
  .site-header.home-header { min-height: 80px; }
  .home-header .header-shell { width: calc(100% - 28px); height: 80px; }
  .home-header .brand { flex: 0 0 64px; min-width: 64px; }
  .site-header.home-header .brand img { width: 64px; height: 64px; margin-right: 0; }
  .home-header .menu-toggle { position: relative; z-index: 1002; border-color: rgba(242,212,125,.55); background: #071426; }
  .home-header .menu-toggle span { background: var(--light-gold); }
  .mobile-menu {
    z-index: 1001; inset: 0; width: 100%; height: 100dvh; min-height: 100vh;
    padding: 96px 20px 92px; color: var(--white); box-shadow: none;
    background: radial-gradient(circle at 100% 0,rgba(212,166,58,.16),transparent 34%),linear-gradient(145deg,#050505 0%,#071426 70%,#0b2037 100%);
  }
  .mobile-menu-inner > a, .mobile-submenu > button { border-bottom-color: rgba(242,212,125,.2); color: var(--white); }
  .home-header .mobile-menu-inner > a[aria-current="page"] { background: rgba(212,166,58,.15); color: var(--light-gold); }
  .mobile-menu-inner > a .nav-icon, .mobile-submenu > button .nav-icon, .mobile-submenu-items .nav-icon, .mobile-submenu-chevron { color: var(--gold); stroke: currentColor; }
  .mobile-submenu-items { background: rgba(255,255,255,.05); }
  .mobile-submenu-items a { border-bottom-color: rgba(242,212,125,.12); color: rgba(255,255,255,.78); }
  .mobile-menu-cta .btn-outline { border-color: rgba(242,212,125,.48); color: var(--white); }
}

/* Compact booking-page heading on mobile (intentionally no hero photography). */
@media (max-width: 640px) {
  .booking-page-hero {
    min-height: 330px; align-items: center; padding: 112px 20px 46px; overflow: hidden;
    background: linear-gradient(135deg,#050505 0%,#071426 72%,#0b2037 100%);
  }
  .booking-page-hero::before {
    position: absolute; content: ""; top: -120px; right: -100px; width: 300px; height: 300px;
    border: 1px solid rgba(242,212,125,.14); border-radius: 50%;
    background: radial-gradient(circle,rgba(212,166,58,.2),transparent 67%);
  }
  .booking-page-hero .page-hero-media { display: none; }
  .booking-page-hero .page-hero-overlay { background: linear-gradient(90deg,rgba(212,166,58,.8),rgba(212,166,58,0)) left bottom / 72% 1px no-repeat; }
  .booking-page-hero .page-hero-content { max-width: 520px; }
  .booking-page-hero .eyebrow { margin-bottom: 10px; color: var(--light-gold); letter-spacing: .22em; }
  .booking-page-hero .page-hero-content h1 { margin: 0 0 14px; font-size: clamp(2.35rem,11vw,3.25rem); line-height: 1; }
  .booking-page-hero .page-hero-content > p:last-child { max-width: 390px; margin: 0; color: rgba(255,255,255,.7); font-size: .92rem; line-height: 1.55; }
  .booking-summary .summary-details div { min-height: 58px; align-items: center; padding: 8px 0; }
  .booking-summary .summary-details dd { width: min(68%,240px); }
  .booking-summary .summary-details dd > [data-summary-date],
  .booking-summary .summary-details dd > [data-summary-time],
  .booking-summary .summary-details dd > [data-summary-guests] { display: none; }
  .summary-control, .summary-time-button {
    display: block; width: 100%; min-height: 42px; padding: 0 36px 0 12px;
    border: 1px solid rgba(242,212,125,.25); border-radius: 9px; outline: 0;
    background: rgba(255,255,255,.06); color: var(--white); font-size: .76rem; font-weight: 600;
  }
  .summary-control:focus, .summary-time-button:focus-visible { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(212,166,58,.14); }
  .summary-control option { background: var(--navy); color: var(--white); }
  .summary-time-button { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-right: 12px; text-align: left; }
  .summary-time-button span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .summary-time-button span:last-child { color: var(--gold); font-size: 1.25rem; }
  .time-slot-options { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
}

/* Balanced, scannable footer layout for phones. */
@media (max-width: 640px) {
  .site-footer { padding: 58px 20px 88px; }
  .footer-top {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 34px 24px;
    padding-bottom: 42px;
  }
  .footer-top > div { min-width: 0; margin-top: 0 !important; }
  .footer-brand {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    flex-direction: column;
    text-align: center;
  }
  .footer-brand .brand { justify-content: center; }
  .footer-brand .brand + p { max-width: 330px; }
  .footer-brand .btn { min-width: 180px; justify-content: center; }
  .footer-top > div:nth-child(4),
  .footer-top > div:nth-child(5) {
    grid-column: 1 / -1;
    padding-top: 28px;
    border-top: 1px solid rgba(255,255,255,.1);
    text-align: center;
  }
  .footer-top > div:nth-child(4) > a { display: inline-block; }
  .footer-top h3 { margin-bottom: 14px; }
  .compact-form { max-width: 390px; margin: 0 auto; }
  .footer-bottom { justify-items: center; gap: 18px; text-align: center; }
  .footer-bottom nav { justify-content: center; flex-wrap: wrap; row-gap: 8px; }
  .footer-bottom p:last-child { max-width: 420px; text-align: center; }
}

@media (max-width: 360px) {
  .footer-top { column-gap: 16px; }
  .footer-top > div:not(.footer-brand) > a { font-size: .72rem; }
}

/* Plan-a-visit mobile presentation: text heading and image-free choices. */
@media (max-width: 640px) {
  .visit-planner-hero {
    min-height: 330px;
    align-items: center;
    background: linear-gradient(135deg,#050505 0%,#071426 72%,#0b2037 100%);
  }
  .visit-planner-hero::before {
    position: absolute;
    content: "";
    top: -120px;
    right: -100px;
    width: 300px;
    height: 300px;
    border: 1px solid rgba(242,212,125,.14);
    border-radius: 50%;
    background: radial-gradient(circle,rgba(212,166,58,.2),transparent 67%);
  }
  .visit-planner-media { display: none; }
  .visit-planner-overlay { background: linear-gradient(90deg,rgba(212,166,58,.8),rgba(212,166,58,0)) left bottom / 72% 1px no-repeat; }
  .visit-planner-copy { width: calc(100% - 40px); padding: 112px 0 46px; }
  .visit-planner-copy .eyebrow { margin-bottom: 10px; color: var(--light-gold); letter-spacing: .18em; }
  .visit-planner-copy h1 { margin: 0 0 14px; font-size: clamp(2.35rem,11vw,3.25rem); line-height: 1; }
  .visit-planner-copy > p:last-child { max-width: 390px; margin: 0; color: rgba(255,255,255,.7); font-size: .92rem; line-height: 1.55; }
  .visit-search-summary { margin-top: -22px; }

  .visit-choice-image img { display: none; }
  .visit-choice-featured .visit-choice-image { height: auto; padding: 24px 24px 0; overflow: visible; }
  .visit-choice-featured .visit-choice-image > span { position: static; display: inline-flex; }
  .visit-choice-card:not(.visit-choice-featured) .visit-choice-image { display: none; }
  .visit-choice-featured .visit-choice-body { padding-top: 17px; }
  .visit-choice-card { background: linear-gradient(145deg,#11151b,#081426); }
}

/* Keep the homepage booking search clear of the hero edge on phones. */
@media (max-width: 640px) {
  .home-hero .hero-booking-button { margin-bottom: 20px; }
}

@media (max-width: 640px) {
  .faq-page-hero { min-height: 330px; align-items: center; overflow: hidden; padding: 112px 20px 46px; background: linear-gradient(135deg,#050505 0%,#071426 72%,#0b2037 100%); }
  .faq-page-hero::before { position: absolute; content: ""; top: -120px; right: -100px; width: 300px; height: 300px; border: 1px solid rgba(242,212,125,.12); border-radius: 50%; background: radial-gradient(circle,rgba(212,166,58,.17),transparent 67%); }
  .faq-page-hero .page-hero-media { display: none; }
  .faq-page-hero .page-hero-overlay { background: linear-gradient(90deg,rgba(212,166,58,.75),rgba(212,166,58,0)) left bottom / 72% 1px no-repeat; }
  .faq-page-hero .page-hero-content h1 { margin: 0 0 14px; font-size: clamp(2.35rem,11vw,3.25rem); line-height: 1; }
  .faq-page-hero .page-hero-content > p:last-child { margin: 0; font-size: .92rem; line-height: 1.55; }
  .faq-page-hero .breadcrumb { display: none; }
}

@media (max-width: 640px) {
  .cart-toast { right: 14px; bottom: 80px; left: 14px; min-width: 0; }
  .checkout-layout { gap: 34px; }
  .order-summary { padding: 24px 20px; }
  .order-summary [data-checkout-items] p { gap: 12px; font-size: .76rem; }
  .payment-placeholder { align-items: flex-start; padding: 22px 18px; }
}

/* Full, uncropped gallery presentation on phones. */
@media (max-width: 640px) {
  .gallery-filters {
    display: flex;
    width: calc(100vw - 28px);
    margin-right: -14px;
    margin-left: -14px;
    padding: 0 14px 8px;
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
  }
  .gallery-filters::-webkit-scrollbar { display: none; }
  .gallery-filters button { flex: 0 0 auto; scroll-snap-align: start; }
  .masonry { columns: 1; column-gap: 0; margin-top: 24px; }
  .gallery-item, .video-placeholder { margin-bottom: 16px; border-radius: 14px; box-shadow: 0 12px 30px rgba(0,0,0,.12); }
  .gallery-item img,
  .gallery-item:nth-child(3n) img {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    object-fit: contain;
  }
  .gallery-item span { right: 10px; bottom: 10px; left: 10px; padding: 11px 12px; border-radius: 8px; backdrop-filter: blur(8px); }
  .lightbox-panel { width: calc(100vw - 20px); max-height: calc(100dvh - 24px); padding: 8px; }
  .lightbox-panel img { max-height: calc(100dvh - 70px); }
}
+@media (max-width: 1050px) {
  .contact-info-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .contact-map-section { grid-template-columns: 1fr; }
  .contact-map { min-height: 460px; }
  .contact-map-copy { padding: 70px var(--shell-side,32px); }
}
@media (max-width: 720px) {
  .contact-intro-section { padding: 65px 0 75px; }
  .contact-intro-heading { align-items: flex-start; flex-direction: column; gap: 18px; margin-bottom: 28px; }
  .contact-info-grid { grid-template-columns: 1fr; }
  .contact-info-grid article { min-height: 0; padding: 25px; }
  .contact-info-icon { margin-bottom: 22px; }
  .contact-map,.contact-map iframe { min-height: 380px; }
  .contact-map-copy { padding: 58px 20px 65px; }
  .contact-map-copy .button-row { align-items: stretch; flex-direction: column; }
  .contact-map-copy .btn { width: 100%; }
  .contact-message-section { padding: 70px 0 90px; }
  .contact-message-layout { grid-template-columns: 1fr; gap: 35px; }
  .contact-message-copy { position: static; padding-top: 0; }
  .contact-message-layout .contact-form { padding: 25px 20px; }
}
+@media (max-width: 1100px) {
  .corporate-package-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .corporate-package-card.is-featured { transform: none; }
  .corporate-benefit-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 800px) {
  .corporate-hero { min-height: 640px; }
  .corporate-hero-content { padding: 155px 0 75px; }
  .corporate-purpose-grid,.corporate-inquiry-layout { grid-template-columns: 1fr; }
  .corporate-purpose { padding: 75px 0; }
  .corporate-benefits,.corporate-packages,.corporate-flow,.corporate-inquiry-section { padding: 75px 0; }
  .corporate-flow-grid { grid-template-columns: 1fr; }
  .corporate-inquiry-copy { position: static; }
}
@media (max-width: 560px) {
  .corporate-hero { min-height: 590px; }
  .corporate-hero-content h1 { font-size: clamp(2.8rem,13vw,4rem); }
  .corporate-hero-content .btn { width: 100%; }
  .corporate-benefit-grid,.corporate-package-grid { grid-template-columns: 1fr; }
  .corporate-benefit-grid h3 { margin-top: 30px; }
  .corporate-benefit-grid article { min-height: 220px; }
  .corporate-package-card { min-height: 0; }
  .corporate-inquiry-form { grid-template-columns: 1fr; padding: 25px 19px; }
  .corporate-inquiry-form .full { grid-column: auto; }
  .corporate-choice-grid { grid-template-columns: 1fr; }
  .corporate-toggle { align-items: flex-start; }
}
