/* Shared public styles. The two illustrated homepage components carry their own type system. */
body:not([class*="vm-page"]) {--font-sans:DM,"DM Sans",Arial,sans-serif;font:400 16px/1.5 var(--font-sans);color:var(--ink);background:var(--ivory)}
body[class*="vm-page"] {--font-sans:"DM Sans",DM,Arial,sans-serif;font:400 15px/1.5 var(--font-sans);color:var(--navy);background:var(--ivory)}
body :is(button,a,input,select,textarea,summary):focus-visible {outline:var(--focus);outline-offset:3px}
body:not([class*="vm-page"]) main .information-cover h1,
body:not([class*="vm-page"]) main :is(.information-layout,.information-related) :is(h2,h3) {font-family:var(--font-sans);font-weight:700;color:var(--ink);text-wrap:balance}
body:not([class*="vm-page"]) main .information-cover h1 {font-size:var(--h1-home);line-height:.98;letter-spacing:-.045em}
body:not([class*="vm-page"]) main :is(.information-layout,.information-related) h2 {font-size:var(--h2-home);line-height:1.04;letter-spacing:-.035em}
body:not([class*="vm-page"]) main :is(.information-layout,.information-related) h3 {font-size:clamp(21px,3vw,26px);line-height:1.15}
body:not([class*="vm-page"]) main .information-layout :is(p,li,td,th) {font-size:16px;line-height:1.55}
body:not([class*="vm-page"]) .information-breadcrumb {font:600 13px/1.45 var(--font-sans)}
body[class*="vm-page"] main :is(h1,h2,h3),body[class*="vm-page"] .site-footer :is(h2,h3) {font-family:var(--font-serif);font-weight:600}
/* The three redesigned templates have their own heading sizes and artwork. */
body[class*="vm-page"] main#main:not(.ac-mj,.apocv-booking) h1 {font-family:var(--font-serif);font-weight:600;font-size:var(--h1-attraction);line-height:1.02;letter-spacing:-1px}
body[class*="vm-page"] main#main:not(.ac-mj,.apocv-booking) h2 {font-family:var(--font-serif);font-weight:600;font-size:var(--h2-attraction);line-height:1.04;letter-spacing:-.7px}
body[class*="vm-page"] main#main:not(.ac-mj,.apocv-booking) h3 {font-family:var(--font-serif);font-weight:600;font-size:var(--h3-attraction);line-height:1.1;letter-spacing:-.4px}
body[class*="vm-page"] main#main:not(.ac-mj,.apocv-booking) :is(p:not([class]),li:not([class]),td,th) {font-family:var(--font-sans);font-size:var(--body);line-height:1.5}
body[class*="vm-page"] .vm-hero-breadcrumb {font:600 13px/1.45 var(--font-sans)}
body :is(.eyebrow,.section-label,.step-label,.card-location,.photo-caption,.step,.small-label,.information-eyebrow,.information-kicker) {font-size:11px;line-height:1.4}
body :is(.filter,.coming-soon-badge,.card-type,.ticket-chip) {font-size:13px;line-height:1.35}
body :is(header,main,footer) :is(.button,.button-yellow,.button-dark,.outline-button,.support-outline,.filter) {min-height:var(--tap);border-radius:var(--radius-button);font:700 15px/1.25 var(--font-sans)}
body :is(header,main,footer) .filter {font-size:13px;border-radius:var(--radius-chip)}
body :is(main,header,footer) :is(.text-link,.help-link) {display:inline-flex;align-items:center;min-height:var(--tap)}
body main :is(.information-related a,details>summary) {min-height:var(--tap)}
body[class*="vm-page"] main .faq-question {border-color:var(--line-2)}
body[class*="vm-page"] main .faq-question summary {min-height:var(--tap);font-family:var(--font-serif);font-weight:600;align-content:center}
body :is(main,footer) :is(.experience-card,.destination-card,.information-related,.visit-card) {border-color:var(--line-2);border-radius:var(--radius-card)}
body:not([class*="vm-page"]) main .button-yellow {background:var(--yellow);color:var(--ink)}
body:not([class*="vm-page"]) main .button-dark {background:var(--button-dark-bg);color:var(--white)}
body[class*="vm-page"] :is(main,header) .button:not(.outline-button) {background:var(--button-bg);color:var(--button-text)}
body main :is(.contact-layout,.customer-details,.latepoint-w,.latepoint-booking-form-element,.os-form-group)
 :is(textarea,select,input:not([type="hidden"],[type="checkbox"],[type="radio"],[type="submit"],[type="button"])) {min-height:var(--tap);border:1px solid var(--line-2);border-radius:var(--radius-button);font:400 16px/1.5 var(--font-sans)}
body main :is(.contact-layout,.customer-details,.latepoint-w,.latepoint-booking-form-element,.os-form-group) :is(input,select,textarea):focus {outline:var(--focus);outline-offset:2px}
body main :is(.contact-layout,.customer-details,.latepoint-w,.latepoint-booking-form-element,.os-form-group) label {font:600 15px/1.4 var(--font-sans)}
body main :is(.information-layout,.policy-content,.policy-section) table {border-collapse:collapse;width:100%;overflow-wrap:anywhere}
body main :is(.information-layout,.policy-content,.policy-section) :is(td,th) {border-bottom:1px solid var(--line-2);padding:.6em .4em;text-align:start}
body .institutional-footer {font-family:var(--font-sans)}
body .institutional-footer :is(h2,h3) {font-family:var(--font-sans);font-size:15px}
body :is(#apo-consent-banner,#apo-consent-preferences) {font-family:var(--font-sans);border-color:var(--line-2);border-radius:var(--radius-card)}
body[class*="vm-page"] :is(#apo-consent-banner,#apo-consent-preferences) h2 {font-family:var(--font-serif);font-weight:600}
body:not([class*="vm-page"]) :is(#apo-consent-banner,#apo-consent-preferences) h2 {font-family:var(--font-sans);font-weight:700}
body :is(#apo-consent-banner,#apo-consent-preferences) button {min-height:44px;border-radius:var(--radius-button)}
body :is(#apo-consent-banner,#apo-consent-preferences) p {font-size:15px}
@media (max-width:899.98px){
  body:not([class*="vm-page"]) #mobile-nav:not(.mm),
  body[class*="vm-page"] #mobile-menu:not(.mm) {position:fixed;inset:0 0 0 auto;width:min(90vw,410px);max-height:100dvh;overflow:auto;z-index:40;padding:22px;box-shadow:-8px 0 32px #0003}
  body:not([class*="vm-page"]) #mobile-nav:not(.mm) {background:var(--green-3);color:var(--creamtext)}
  body[class*="vm-page"] #mobile-menu:not(.mm) {background:#0b1a30;color:#f3f1ea}
  body :is(#mobile-nav,#mobile-menu):not(.mm) a {min-height:44px;align-content:center;color:inherit}
  body .information-layout,.information-related {min-width:0}
}
@media (prefers-reduced-motion:reduce){
  body .sbar,body .hero-slide,body [class*="following-bar"],body .mobile-menu {transition:none!important}
}
/* Existing page bundles include smaller phone-specific caption rules. */
body.wp-theme-apollonaut main .eyebrow,
body[class*="vm-page"] main .eyebrow,
body.wp-theme-apollonaut .information-photo figcaption span,
body.wp-theme-apollonaut .information-cover figcaption span,
body.wp-theme-apollonaut .information-cover__media figcaption span,
body[class*="vm-page"] main :is(.vm-brand-section-number,.ep-article-meta,.ep-tag,.request-cabinet-eyebrow),
body[class*="vm-page"] main :is(.vm-brand-kicker,.vm-brand-source-note),
body[class*="vm-page"] main .request-recipient-highlight > span,
body[class*="vm-page"] main .status-row > b,
body[class*="vm-page"] #main.ac-mj :is(.grp,.tag,small),
body[class*="vm-page"] #main.ac-mj svg text[font-size^="7"],
body[class*="vm-page"] #main.ac-mj svg text[font-size^="8"],
body[class*="vm-page"] #main.ac-mj svg text[font-size^="9"],
body[class*="vm-page"] #main.ac-mj svg text[font-size^="10"] {font-size:11px!important}
body[class*="vm-page"] main :is(.support-text-link,.contact-privacy a,.contact-form-status,.ycard .badge) {font-size:13px!important}
body[class*="vm-page"] main .vm-brand-breadcrumb,
body[class*="vm-page"] main .vm-brand-breadcrumb :is(a,span),
body[class*="vm-page"] main .ep-categories button,
body[class*="vm-page"] main .contact-privacy a {font-size:13px!important}
body[class*="vm-page"] main .ep-journal-feature p:not(.eyebrow) {font-size:15px!important}
body[class*="vm-page"] main .experience-card small,
body[class*="vm-page"] main .experience-card small span,
body[class*="vm-page"] main .experience-card .vm-combined-trust span {font-size:13px!important}
body.wp-theme-apollonaut .home-benefits .hb-chapter,
body[class*="vm-page"] main .selection-strip > span {font-size:11px!important}
body[class*="vm-page"] .contact-form button[type="submit"] {min-height:44px;font-size:15px}
body[class*="vm-page"] .site-footer-expanded > nav a {display:inline-flex;align-items:center;min-height:var(--tap);font-size:13px!important}
body:not([class*="vm-page"]) .institutional-footer {background:var(--green-3);color:#fff7de}
body:not([class*="vm-page"]) .institutional-footer :is(a,p,small) {color:#e2eade}
@media (min-width:900px) {
  body:not([class*="vm-page"]) header .header-actions .language-bar button[data-apo-language-preferences] {
    min-height:44px;
    width:auto;
    min-width:44px;
    border:0!important;
    background:transparent!important;
    padding:0!important;
    color:var(--ink,#183c34)!important;
    font:500 14px/1.3 var(--font-sans)!important;
  }
  body:not([class*="vm-page"]) header .header-actions .language-bar button[data-apo-language-preferences] img {width:20px!important;height:14px!important;object-fit:cover}
  body:not([class*="vm-page"]) header .header-actions .language-bar button[data-apo-language-preferences] > span {display:none}
  body:not([class*="vm-page"]) header .header-actions .saved-count {
    width:20px;height:20px;background:#183c34;color:white;border-radius:50%;
    display:inline-grid;place-items:center;font:700 11px/1 var(--font-sans);
  }
  body.is-booking:has(main.apocv-booking) .site-header .menu-toggle[aria-controls="mobile-menu"] {display:none}
}

/* Align the navigation with the public page column and its compact brand lockup. */
body.apocv-main-site {--cv-gutter:max(16px,env(safe-area-inset-left),env(safe-area-inset-right))}
body[class*="vm-page-"] header.site-header.vm-attraction-header {
  box-sizing:border-box;
  height:68px;
  min-height:68px;
  grid-template-rows:68px;
  padding:0 max(16px,env(safe-area-inset-right),calc((100% - 1160px)/2 + 16px))
          0 max(16px,env(safe-area-inset-left),calc((100% - 1160px)/2 + 16px));
}
body[class*="vm-page-"] header.vm-attraction-header .apo-header-brand {height:auto;align-self:stretch}
body[class*="vm-page-"] header.vm-attraction-header .vm-language-enable,
body[class*="vm-page-"] header.vm-attraction-header .desktop-nav > .vm-nav-mytickets {
  min-height:44px;
  border-radius:9px;
  border-color:#6f7f93;
}
body[class*="vm-page-"] header.vm-attraction-header .desktop-nav > .button {
  min-height:44px;
  border:0;
  border-radius:9px;
}
@media (min-width:900px) {
  body:not([class*="vm-page-"]) header .desktop-nav > a {font:500 14px/1.4 var(--font-sans)}
  body[class*="vm-page-"] header.vm-attraction-header .vm-discover-links a {
    display:flex;
    align-items:center;
    min-height:44px;
    border-radius:8px;
    font:500 14px/1.4 var(--font-sans);
  }
}

/* The native header otherwise keeps a hamburger past the drawer breakpoint. */
@media (min-width:900px) and (max-width:1279.98px) {
  body[class*="vm-page-"]:not(:has(main.apocv-booking)) header.site-header.vm-attraction-header {
    grid-template-columns:max-content minmax(0,1fr);
    column-gap:8px;
  }
  body[class*="vm-page-"]:not(:has(main.apocv-booking)) header.vm-attraction-header .desktop-nav {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:nowrap;
    min-width:0;
    gap:clamp(5px,calc(7vw - 57px),16px);
  }
  body[class*="vm-page-"]:not(:has(main.apocv-booking)) header.vm-attraction-header .desktop-nav > :is(a,details) {display:block!important}
  body[class*="vm-page-"]:not(:has(main.apocv-booking)) header.vm-attraction-header .desktop-nav > :is(.vm-header-saved,.vm-nav-mytickets,.button) {display:inline-flex!important;align-items:center}
  body[class*="vm-page-"]:not(:has(main.apocv-booking)) header.vm-attraction-header .desktop-nav > :is(.vm-nav-mytickets,.button) {padding-inline:10px}
  body[class*="vm-page-"]:not(:has(main.apocv-booking)) header.vm-attraction-header .menu-toggle {display:none}
}
