/* Shared public styles. The two illustrated homepage components carry their own type system. */
body:not([class*="vm-page"]) {--font-sans:DM,"DM Sans","Segoe UI",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,"Segoe UI",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}
@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:auto;min-width:20px;height:20px;padding:0 6px;background:#183c34;color:white;border-radius:10px;
    display:grid;place-items:center;font:700 11px/1.5 var(--font-sans);
  }
  body.is-booking:has(main.apocv-booking) .site-header .menu-toggle[aria-controls="mobile-menu"] {display:none}
}

/* Attraction header: the native markup inside one inner wrap, styled as the Majorelle prototype's header (.hdr / .hdr-in / .brand / .nav / .acts). */
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 {display:block;box-sizing:border-box;height:auto;min-height:0;padding:0;background:#071b32;color:#fff;position:sticky;top:0;z-index:20;grid-template-columns:none}
body[class*="vm-page-"] header.vm-attraction-header > .hdr-in {box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;max-width:1160px;min-height:64px;margin:0 auto;padding:10px max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left))}
body[class*="vm-page-"] header.vm-attraction-header .apo-header-brand {display:grid;grid-template-columns:auto auto;column-gap:8px;row-gap:0;align-items:center;justify-content:start;flex:0 0 auto;width:auto;min-width:0;height:auto;align-self:auto;margin:0;padding:0;container-type:normal;color:#fff;text-decoration:none;font:400 15px/1.55 var(--font-sans);letter-spacing:0}
body[class*="vm-page-"] header.vm-attraction-header .apo-header-sun {position:static;width:32px;height:32px;margin:0;border-radius:50%;background:#fec61d;display:grid;place-items:center}
body[class*="vm-page-"] header.vm-attraction-header .apo-header-sun svg {width:18px;height:18px;fill:none;stroke:#071b32;stroke-width:2;stroke-linecap:round}
body[class*="vm-page-"] header.vm-attraction-header .apo-header-wordmark {display:block;margin:0;padding:0;font:700 23px/1 var(--font-sans);letter-spacing:-.3px;color:#fec61d}
body[class*="vm-page-"] header.vm-attraction-header .apo-header-dot {color:#8a9a3a;font-weight:900}
body[class*="vm-page-"] header.vm-attraction-header .apo-header-tagline {grid-column:1 / -1;display:block;margin:-1px 0 0;padding:0;font:400 11px/1.55 var(--font-sans);letter-spacing:0;text-transform:none;color:#fff;white-space:nowrap}
body[class*="vm-page-"] header.vm-attraction-header .desktop-nav {display:flex;flex:0 0 auto;align-items:center;justify-content:flex-start;gap:12px;margin:0;padding:0;font:500 13.5px/1.55 var(--font-sans)}
body[class*="vm-page-"] header.vm-attraction-header .hdr-acts {display:flex;align-items:center;gap:12px;margin:0;padding:0}
body[class*="vm-page-"] header.vm-attraction-header .desktop-nav > a,body[class*="vm-page-"] header.vm-attraction-header .vm-discover > summary {min-height:0;margin:0;padding:0;color:#fff;opacity:.92;text-decoration:none;white-space:nowrap;font:500 13.5px/1.55 var(--font-sans)}
body[class*="vm-page-"] header.vm-attraction-header .desktop-nav > a:hover {opacity:1;color:#fff;text-decoration:underline;text-underline-offset:4px}
body[class*="vm-page-"] header.vm-attraction-header .vm-discover > summary:hover {opacity:.92;color:#fff;text-decoration:none}
body[class*="vm-page-"] header.vm-attraction-header :is(a,button,summary):focus-visible {outline:2px solid #0736c9;outline-offset:3px;box-shadow:none}
body[class*="vm-page-"] header.vm-attraction-header :is(.desktop-nav,.hdr-acts) > .button:hover,body[class*="vm-page-"] header.vm-attraction-header :is(.desktop-nav,.hdr-acts) > .button:active,body[class*="vm-page-"] header.vm-attraction-header :is(.desktop-nav,.hdr-acts) > .button:focus-visible {background:linear-gradient(115deg,#0731c2,#0826aa);color:#fff;box-shadow:none}
body[class*="vm-page-"] header.vm-attraction-header .vm-discover-links a:focus-visible {background:none;color:#071b32}
body[class*="vm-page-"] header.vm-attraction-header .menu-toggle:hover {opacity:1}
body[class*="vm-page-"] header.vm-attraction-header .vm-discover {position:relative}
body[class*="vm-page-"] header.vm-attraction-header .vm-discover > summary {list-style:none;cursor:pointer}
body[class*="vm-page-"] header.vm-attraction-header:has(.hdr-acts) .vm-discover > summary {display:block}
body[class*="vm-page-"] header.vm-attraction-header .vm-discover > summary > span {display:inline;font:inherit;line-height:inherit}
body[class*="vm-page-"] header.vm-attraction-header .vm-discover > summary::-webkit-details-marker {display:none}
body[class*="vm-page-"] header.vm-attraction-header .vm-discover-links {position:absolute;top:30px;left:-12px;min-width:240px;display:grid;padding:8px;border:1px solid #ded8c9;border-radius:12px;background:#fdfcf8;color:#071b32;box-shadow:0 16px 40px rgba(7,27,50,.18);z-index:30}
body[class*="vm-page-"] header.vm-attraction-header .vm-discover-links a {display:block;min-height:0;padding:9px 10px;border-radius:8px;font:500 14px/1.55 var(--font-sans);color:#071b32;opacity:1;text-decoration:none}
body[class*="vm-page-"] header.vm-attraction-header .vm-discover-links a:hover {background:#f4f0e4;text-decoration:none}
body[class*="vm-page-"] header.vm-attraction-header .vm-discover-links a > span {color:inherit;margin:0}
body[class*="vm-page-"] header.vm-attraction-header .vm-discover-links a > span::before {content:" "}
body[class*="vm-page-"] header.vm-attraction-header .vm-header-saved {display:inline-flex;align-items:center;gap:6px;opacity:1}
body[class*="vm-page-"] header.vm-attraction-header .vm-header-saved svg {width:22px;height:22px;stroke:#fff;stroke-width:2;fill:none}
body[class*="vm-page-"] header.vm-attraction-header .vm-header-saved [data-vm-saved-count] {display:grid;place-items:center;width:22px;height:22px;padding:0;border-radius:50%;background:#2a3b55;font:600 11px/1.55 var(--font-sans);color:#fff}
body[class*="vm-page-"] header.vm-attraction-header .vm-language-switcher {margin:0}
body[class*="vm-page-"] header.vm-attraction-header .vm-language-enable {display:inline-flex;align-items:center;gap:8px;width:auto;min-width:0;height:40px;min-height:0;padding:0 9px;border:1px solid #6f7f93;border-radius:9px;background:transparent;color:#fff;font:500 13px/normal var(--font-sans);cursor:pointer}
body[class*="vm-page-"] header.vm-attraction-header .vm-language-enable .vm-language-flag {width:22px;height:16px;object-fit:cover;margin:0}
/* The prototype's drawing of the English flag, in the header and in the copy majorelle.js puts in the drawer. Other languages keep their plugin flags. */
body[class*="vm-page-"] :is(header.vm-attraction-header .vm-language-enable,#mobile-menu.ac-mj-drawer .top .flag) .vm-language-flag[src*="/en.svg"] {content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 36'%3E%3Crect width='60' height='36' fill='%23012169'/%3E%3Cpath d='M0 0l60 36M60 0L0 36' stroke='%23fff' stroke-width='7'/%3E%3Cpath d='M0 0l60 36M60 0L0 36' stroke='%23C8102E' stroke-width='3'/%3E%3Cpath d='M30 0v36M0 18h60' stroke='%23fff' stroke-width='11'/%3E%3Cpath d='M30 0v36M0 18h60' stroke='%23C8102E' stroke-width='6'/%3E%3C/svg%3E");object-fit:contain}
body[class*="vm-page-"] header.vm-attraction-header .vm-language-text {display:none;white-space:nowrap}
body[class*="vm-page-"] header.vm-attraction-header .vm-language-label {display:inline-block;vertical-align:bottom}
body[class*="vm-page-"] header.vm-attraction-header .vm-language-text > span[aria-hidden] {font-size:0;margin-left:0}
body[class*="vm-page-"] header.vm-attraction-header .vm-language-text > span[aria-hidden]::after {content:" ▾";font-size:13px}
body[class*="vm-page-"] header.vm-attraction-header .vm-nav-mytickets {display:inline-flex;align-items:center;height:40px;min-height:0;padding:0 16px;border:1px solid #6f7f93;border-radius:9px;font:500 13.5px/1.55 var(--font-sans);color:#fff;opacity:1}
body[class*="vm-page-"] header.vm-attraction-header :is(.desktop-nav,.hdr-acts) > .button {display:inline-flex;align-items:center;gap:8px;height:40px;min-height:0;padding:0 18px;border:0;border-radius:9px;background:linear-gradient(115deg,#0731c2,#0826aa);color:#fff;font:600 13.5px/1.55 var(--font-sans);opacity:1;transition:all 0s}
body[class*="vm-page-"] header.vm-attraction-header .menu-toggle {display:grid;gap:6px;width:22px;min-width:0;height:auto;min-height:0;margin:0;padding:0;background:none;border:0;font:400 13.3333px/normal var(--font-sans);transition:all 0s;cursor:pointer}
body[class*="vm-page-"] header.vm-attraction-header .menu-toggle span {display:block;width:22px;height:2px;margin:0;background:#fff}
@media (max-width:899.98px) {
  body[class*="vm-page-"] header.vm-attraction-header:has(.hdr-acts) .desktop-nav {display:none}
  body[class*="vm-page-"] header.vm-attraction-header:not(:has(.hdr-acts)) .desktop-nav {margin-left:auto}
  body[class*="vm-page-"] header.vm-attraction-header:not(:has(.hdr-acts)) .menu-toggle {margin-left:-4px}
  body[class*="vm-page-"] header.vm-attraction-header :is(.desktop-nav,.hdr-acts) > :is(a,details,.vm-nav-mytickets,.button) {display:none}
  body[class*="vm-page-"] header.vm-attraction-header :is(.desktop-nav,.hdr-acts) > .vm-header-saved {display:inline-flex}
}
@media (min-width:900px) {
  body:not([class*="vm-page-"]) header .desktop-nav > a {font:500 14px/1.5 var(--font-sans)}
  body[class*="vm-page-"] header.vm-attraction-header .desktop-nav {gap:22px}
  body[class*="vm-page-"] header.vm-attraction-header .desktop-nav > :is(a,details) {display:block}
  body[class*="vm-page-"]:has(main.apocv-booking) header.vm-attraction-header .desktop-nav > .vm-discover-desktop {display:none}
  body[class*="vm-page-"] header.vm-attraction-header :is(.desktop-nav,.hdr-acts) > :is(.vm-header-saved,.vm-nav-mytickets,.button) {display:inline-flex}
  body[class*="vm-page-"] header.vm-attraction-header .apo-header-brand {font-size:15.5px}
  body[class*="vm-page-"] header.vm-attraction-header .vm-language-text {display:inline}
  body[class*="vm-page-"] header.vm-attraction-header .vm-language-enable .vm-language-flag {width:20px;height:14px}
  body[class*="vm-page-"] header.vm-attraction-header .menu-toggle {display:none}
}

/* Under 340px the prototype's header runs 13px past the screen. Tighten it so the page never scrolls sideways; every control stays. */
@media (max-width:339.98px) {
  body[class*="vm-page-"] header.vm-attraction-header > .hdr-in {gap:8px;padding-inline:10px}
  body[class*="vm-page-"] header.vm-attraction-header .hdr-acts {gap:8px}
  body[class*="vm-page-"] header.vm-attraction-header .vm-header-saved {gap:2px}
}

/* Arrows. The site's own DM Sans files contain arrow glyphs; the prototypes' web-font subset does not, so their arrows come from the next family in the stack.
   These faces hand only those characters to the same fonts Chrome reports for the prototypes (CSS.getPlatformFontsForNode). A later @font-face wins for its range;
   where a local font is missing the face is treated as absent and the site's own glyph is used. Weights are exact on purpose: a face with a different weight
   descriptor from the site's own would be a separate face to the matcher, and letters would fall through it. No file is downloaded. */
@font-face {font-family:"DM Sans";src:local("Segoe UI"),local("Arial");font-weight:400;unicode-range:U+2190,U+2192,U+2194-2199}
@font-face {font-family:"DM Sans";src:local("Segoe UI Semibold"),local("Arial");font-weight:500;unicode-range:U+2190,U+2192}
@font-face {font-family:"DM Sans";src:local("Segoe UI Semibold"),local("Arial Bold");font-weight:600;unicode-range:U+2190,U+2192}
@font-face {font-family:"DM Sans";src:local("Segoe UI Bold"),local("Arial Bold");font-weight:700;unicode-range:U+2190,U+2192}
@font-face {font-family:"DM Sans";src:local("Segoe UI Symbol");font-weight:500;unicode-range:U+2194-2199}
@font-face {font-family:"DM Sans";src:local("Segoe UI Symbol");font-weight:600;unicode-range:U+2194-2199}
@font-face {font-family:"DM Sans";src:local("Segoe UI Symbol");font-weight:700;unicode-range:U+2194-2199}
