/* Scoped pre-launch implementation fixes; approved page sections remain intact. */
:root { --header-offset: 100px; }
html { scroll-padding-top: var(--header-offset); }
[id], :focus { scroll-margin-top: var(--header-offset); }
.primary-header { position: sticky; top: 0; z-index: 100; color: #fff; background: #07192f; }
.primary-header .nav { position: relative; }
.menu-toggle { display: none; color: #fff; background: transparent; border: 1px solid #8dcbd9; border-radius: 8px; min-height: 44px; padding: 8px 14px; }
.skip-link { z-index: 200 !important; }
.primary-header a:focus-visible,.menu-toggle:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.btn:hover,.btn:active,.card-cta:hover,.card-cta:active,.event-cta-btn:hover,.event-cta-btn:active,.nav-book:hover,.nav-book:active,.footer-social a:hover,.footer-social a:active,.footer-newsletter button:hover,.footer-newsletter button:active { transform: none !important; }
.btn,.card-cta,.event-cta-btn,.nav-book,.footer-social a { will-change: auto !important; }
.fit-toggle:active,.menu-toggle:active { filter: brightness(.93); }
button:disabled,input:disabled { cursor: not-allowed; opacity: .65; }
.footer-bottom small { white-space: normal; }
.footer-legal-group { flex-wrap: wrap; }
.footer-bottom nav a { min-height:44px; display:inline-flex; align-items:center; font-size:14px; }
.footer-country-label { font-size:14px; }
.footer-maple { display:block !important; }
.footer-consent { display:block !important; font-size:12px; line-height:1.6; }
.footer-bottom nav .review-legal-label { min-height:44px; display:inline-flex; align-items:center; font-size:14px; }
@media(max-width:760px) {
  .primary-header .nav { padding:12px 0; gap:12px; }
  .primary-header .brand-logo { width:178px; max-width:100%; }
  .menu-toggle { display:block; flex:none; }
  .primary-header .nav-links { display:none; position:absolute; top:100%; left:0; right:0; background:#07192f; padding:16px; border:1px solid #54728a; flex-direction:column; align-items:stretch; gap:8px; max-height:calc(100dvh - 100px); overflow:auto; }
  .primary-header .nav-links.is-open { display:flex; }
  .primary-header .nav-links a { display:flex; align-items:center; min-height:44px; padding:8px; }
  .footer-social { flex-wrap:wrap; }
  .footer-social a { min-width:44px; min-height:44px; }
  .footer-bottom { gap:8px; }
  .footer-legal-group nav { white-space:normal; flex-wrap:wrap; }
}
@media(max-width:760px) {
  /* Let each audience photograph fill its accordion header on phones. */
  .audience .fit-toggle {
    position:relative;
    isolation:isolate;
    grid-template-columns:minmax(0,1fr);
    align-items:center;
    justify-items:start;
    gap:8px;
    min-height:180px;
    padding:18px 13px 18px 7px;
    overflow:hidden;
    background:#f5f9fb;
  }
  .audience .fit-img {
    position:absolute;
    inset:0;
    z-index:0;
    width:100%;
    height:100%;
    min-height:0;
    max-height:none;
    object-fit:cover;
    opacity:.82;
    pointer-events:none;
  }
  .audience .fit-toggle::before {
    content:"";
    display:block;
    position:absolute;
    inset:0;
    z-index:1;
    width:100%;
    height:100%;
    border:0;
    background:linear-gradient(90deg,#fff 0%,#fff 28%,rgba(255,255,255,.95) 48%,rgba(255,255,255,.78) 64%,rgba(255,255,255,.30) 83%,rgba(255,255,255,.10) 100%);
    transform:none;
    transition:none;
    pointer-events:none;
  }
  .audience .fit-heading-text {
    position:relative;
    z-index:2;
    grid-column:1;
    width:64%;
    padding:0;
  }
  .audience .fit-title { color:#075c80; }
  .audience .fit-line { color:#07192f; }
  .audience .fit-indicator {
    position:absolute;
    z-index:2;
    grid-column:auto;
    top:50%;
    right:13px;
    transform:translateY(-50%);
    width:34px;
    height:34px;
    background:#fff;
    border-color:#477d98;
  }
  .audience .fit-indicator::after { top:10px; left:10px; }
}
@media(max-width:360px) {
  .audience .fit-toggle { grid-template-columns:minmax(0,1fr); gap:8px; padding:17px 10px 17px 6px; }
  .audience .fit-heading-text { padding:0; }
  .audience .fit-title { font-size:11px; }
  .audience .fit-line { font-size:17px; }
  .audience .fit-indicator { width:32px; height:32px; right:10px; }
  .audience .fit-indicator::after { top:9px; left:9px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; }
}
