/* FlySafair partnership palette; darker action colours retain white-label contrast. */
:root {
  --brand-green: #EC008C;
  --brand: #B4006B;
  --brand-teal: #0093D0;
  --brand-dark: #7A0049;
  --brand-gradient: linear-gradient(120deg, #B4006B, #0078AA);
}
html { scroll-padding-top: 110px; }
body { overflow-x: clip; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible {
  outline: 3px solid #0078AA; outline-offset: 4px;
}
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip-link { position: fixed; top: -80px; left: 16px; z-index: 110; background: #fff; color: #7A0049; padding: 12px 20px; border-radius: 8px; }
.skip-link:focus { top: 12px; }
.wl-header { padding: 12px 28px; gap: 24px; min-height: 96px; }
.wl-header > .wl-home:first-child { display: inline-flex; line-height: normal; }
.wl-home { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; flex-shrink: 0; }
.wl-partner-badge, .wl-ez-badge { display: flex; align-items: center; justify-content: center; background: #fff; border-radius: 12px; padding: 6px 14px; }
.wl-partner-badge img { width: 126px; height: 63px; object-fit: contain; }
.wl-ez-badge img { width: 76px; height: 52px; object-fit: contain; }
.wl-partner-x { color: #667080; font-size: 22px; line-height: 1; }
.nav .wl-partner-x { color: #fff; }
.nav.on-light .wl-partner-x { color: #667080; }
.wl-nav-right { display: flex; align-items: center; gap: 22px; }
.wl-nav-links { display: flex; align-items: center; gap: 24px; }
.wl-nav-links a { font-size: .87rem; font-weight: 600; text-decoration: none; color: #374151; white-space: nowrap; }
.nav .wl-nav-links a { color: #fff; text-shadow: 0 1px 8px #17212b; }
.nav.on-light .wl-nav-links a { color: #374151; text-shadow: none; }
.wl-nav-links a:hover, .wl-nav-links a[aria-current] { text-decoration: underline; text-underline-offset: 6px; }
.wl-book { display: inline-block; padding: 12px 22px; border-radius: 999px; background: var(--brand-gradient); color: #fff !important; font-size: .85rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.wl-book:hover { filter: brightness(.94); }
.wl-menu-toggle { display: none; background: #fff; border: 1px solid #d9dfe5; border-radius: 10px; width: 44px; height: 44px; padding: 11px; cursor: pointer; }
.wl-menu-toggle span { display: block; background: #111827; height: 2px; margin: 4px 0; }
.wl-menu { position: fixed; inset: 96px 0 0; z-index: 49; padding: 24px; background: #f7f9f8; overflow-y: auto; display: flex; flex-direction: column; gap: 20px; }
.wl-menu > a { color: #111827; text-decoration: none; font-weight: 600; padding: 6px 0; }
.wl-menu > .wl-book { text-align: center; padding: 14px; }
.wl-partnership { background: #fff; padding: 100px 28px; }
.wl-partnership-inner { max-width: 1140px; margin: auto; }
.wl-eyebrow { color: #B4006B; font-size: .85rem; font-weight: 700; margin-bottom: 18px; }
.wl-partnership h2 { font: 800 clamp(2rem,4vw,3.25rem)/1.1 "Bricolage Grotesque", sans-serif; letter-spacing: -.025em; }
.wl-intro { max-width: 680px; line-height: 1.8; color: #4b5563; margin-top: 24px; font-size: 1.05rem; }
.wl-benefits { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 32px; margin-top: 54px; }
.wl-benefits article { border-top: 2px solid #ec008c; padding-top: 20px; }
.wl-benefits h3 { font-size: 1.1rem; margin-bottom: 12px; }
.wl-benefits p { color: #4b5563; line-height: 1.7; font-size: .96rem; }
.wl-footer { background: #f0f3f5; padding: 60px 28px 24px; color: #374151; border-top: 1px solid #dce1e6; }
.wl-footer-grid { max-width: 1200px; margin: auto; display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 40px; }
.wl-footer-grid h2 { font-size: .86rem; font-weight: 700; margin-bottom: 18px; color: #111827; }
.wl-footer-grid p { font-size: .9rem; line-height: 1.7; max-width: 32ch; margin: 18px 0; }
.wl-footer-grid > div > a:not(.wl-home) { display: block; color: #374151; font-size: .86rem; text-decoration: none; margin-bottom: 12px; overflow-wrap: anywhere; }
.wl-footer-grid > div > a:hover { text-decoration: underline; }
.wl-footer .wl-partner-badge img { width: 100px; height: 50px; }
.wl-footer .wl-ez-badge img { width: 60px; height: 42px; }
.wl-footer .wl-home { gap: 8px; }
.wl-footer-grid > div > a.wl-phone { font-size: 1.4rem; font-weight: 700; color: #7A0049; }
.wl-copyright { max-width: 1200px; margin: 38px auto 0; padding-top: 22px; border-top: 1px solid #dce1e6; font-size: .78rem; color: #596472; }
.wl-content { max-width: 940px; }
.wl-prose { line-height: 1.85; }
.wl-contact-actions { display: flex; flex-wrap: wrap; gap: 24px; margin: 0 0 32px; }
.wl-contact-actions a { font-weight: 600; }
.qa { scroll-margin-top: 112px; }
.qa summary { line-height: 1.55; }
.qa summary:focus-visible, .finder input:focus-visible { box-shadow: 0 0 0 3px rgb(0 120 170 / .24); }
mark { background: #fcddee; }
.phead h1 { font-family: "Bricolage Grotesque", sans-serif; }
.adhoc-component-main { min-height: 55vh; }
.wl-runtime-status { max-width: 680px; margin: 80px auto; padding: 32px; border: 1px solid #dce1e6; background: #fff; border-radius: 16px; }
.wl-runtime-status h1 { font: 800 2rem/1.15 "Bricolage Grotesque", sans-serif; margin-bottom: 16px; }
.wl-runtime-status p { margin-bottom: 16px; color: #4b5563; }
.sticky { height: 100svh; }
#scrub-road .sticky { background: #0a1628 url('../../frames/road/frame_0001.webp') center / cover no-repeat; }
#scrub-connection .sticky { background: #0a1628 url('../../frames/connection/frame_0001.webp') center / cover no-repeat; }
.overlay .reveal-line:first-child { opacity: 1; }
.nav-cta, .hero-cta-mobile { box-shadow: 0 4px 18px rgb(180 0 107 / .22); }
.reviews .btn-primary, .cta .btn-primary { background: var(--brand-gradient); }
@media (max-width: 1100px) {
  .wl-nav-links { display: none; }
  .wl-menu-toggle { display: block; }
  .wl-nav-right { gap: 12px; }
  .wl-footer-grid { grid-template-columns: 1.4fr 1fr; gap: 36px; }
}
@media (max-width: 620px) {
  .wl-header { padding: 10px 16px; min-height: 82px; gap: 8px; }
  .wl-header .wl-book { display: none; }
  .wl-partner-badge { padding: 4px 10px; }
  .wl-partner-badge img { width: 100px; height: 50px; }
  .wl-ez-badge { padding: 4px 8px; }
  .wl-ez-badge img { width: 56px; height: 40px; }
  .wl-home { gap: 8px; }
  .wl-menu { top: 82px; }
  .wl-partnership { padding: 64px 24px; }
  .wl-benefits { grid-template-columns: 1fr; gap: 24px; margin-top: 36px; }
  .wl-footer-grid { grid-template-columns: 1fr 1fr; gap: 28px 18px; }
  .wl-footer-grid > div:first-child { grid-column: 1/-1; }
  .wl-footer-grid > div:last-child { grid-column: 1/-1; }
  .wl-footer { padding: 42px 24px 24px; }
  .wl-runtime-status { margin: 32px 20px; padding: 24px; }
  .chan-grid { grid-template-columns: minmax(0,1fr); }
  .badge-row { width: calc(100% - 32px); gap: 6px; bottom: 100px; }
  .pill { padding: 7px 10px; font-size: .68rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .cinematic { height: 100svh; }
  .sticky { position: relative; }
  .reveal { opacity: 1; transform: none; }
  .overlay .reveal-line:not(:first-child) { display: none; }
}

html:not(.js) .reveal { opacity: 1; transform: none; }
html:not(.js) .cinematic { height: 100svh; }

.quotes-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.quote-card { min-width: 0; }
.reviews-note, .reviews-note.stale { color: #cbd5e1; }
@media (max-width: 760px) { .quotes-grid { grid-template-columns: minmax(0, 1fr); } }
