:root { --site-left: 5vw; --site-right: 5vw; --site-header-gap: 1.25rem; --site-hero-bottom: 5.5rem; --site-text-width: 70rem; --site-text-align: left; }
@media (max-width: 640px) { :root { --site-left: 4vw; --site-right: 4vw; } }
/* Pages fill the viewport and grow with their content, without footer blocks. */
body { min-height: 100svh; min-height: 100dvh; }
.travel-guides { margin: 2.5rem 0; }
.travel-guides > h2 { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 700; line-height: 1.3; margin-bottom: 1.25rem; }
.guide-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.guide-link { min-width: 0; display: flex; flex-direction: column; gap: .75rem; }
.guide-link h3 { font-size: 1.2rem; font-weight: 700; line-height: 1.4; }
.guide-link p { margin: 0; color: #e0e5e2; line-height: 1.65; }
.guide-link span { display: block; margin-top: auto; padding-top: .5rem; color: #fff; }
.guide-link:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.guide-hero { padding-top: calc(var(--cga-header-offset, 6.75rem) + 1.5rem); padding-bottom: 2rem; }
.guide-hero h1 { margin-top: 1rem; max-width: 25ch; font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 750; line-height: 1.15; }
.guide-answer, .trip-answer { margin-top: 1.25rem; max-width: 70ch; font-size: 1.2rem; line-height: 1.65; color: #fff; }
.guide-body { padding-top: 1.5rem; padding-bottom: 3rem; }
.guide-back, .guide-section-links a { text-decoration: underline; text-underline-offset: .2em; }
.guide-body > section { margin-top: 2.5rem; scroll-margin-top: calc(var(--cga-header-offset, 6.75rem) + 1rem); }
.guide-body p { max-width: 75ch; margin-top: 1rem; font-size: 1.1rem; line-height: 1.75; color: #e0e5e2; }
.guide-body ul { list-style: disc; padding-left: 1.5rem; margin-top: 1rem; max-width: 75ch; }
.guide-body li { padding-left: .25rem; margin-top: .6rem; line-height: 1.65; }
.guide-section-links { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-top: 1.25rem; }
.guide-section-links a { min-height: 44px; display: inline-flex; align-items: center; }
.guide-contents { padding: 1.5rem; margin-top: 2rem; border: 1px solid #ffffff30; border-radius: 12px; background: #0c1410e6; }
.guide-contents h2 { font-weight: 700; font-size: 1.1rem; }
.guide-contents ol { list-style: decimal; padding-left: 1.5rem; margin-top: .75rem; }
.guide-contents a { text-decoration: underline; text-underline-offset: .2em; }
.guide-body #enquire .btn-primary { margin-top: 1.5rem; }
.guide-sources { font-size: .95rem; }
@media (max-width: 640px) { .guide-links { grid-template-columns: 1fr; } .guide-hero h1 { max-width: none; } }
.trip-quick-links { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .65rem; margin-top: 1rem; color: #fff; font-size: clamp(1rem, 2vw, 1.2rem); }
.trip-quick-links a { display: inline-flex; align-items: center; min-height: 44px; padding: .25rem .2rem; white-space: nowrap; text-decoration: underline; text-underline-offset: .25em; border-radius: .25rem; }
.trip-quick-links a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.trip-quick-links > span { opacity: .65; }
.social-follow { margin-top: 1.5rem; color: #fff; }
.social-follow h2 { margin: 0 0 .65rem; font-size: 1rem; font-weight: 600; }
.social-links { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; }
.social-links a { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; color: #fff; text-decoration: none; transition: color .15s ease; }
.social-links svg { width: 22px; height: 22px; flex-shrink: 0; }
.social-external { font-size: .8rem; }
.social-links a:hover, .social-links a:focus-visible { background-color: var(--cga-red, #A21F25); color: #fff; }
.social-links a:focus-visible { outline: 2px solid var(--cga-red, #A21F25); outline-offset: 5px; border-radius: 3px; }
@media (prefers-reduced-motion: reduce) { .social-links a { transition: none; } }
.route-map-touch-toolbar { display: none; }
@media (pointer: coarse), (max-width: 760px) {
  .route-viewer iframe { pointer-events: none; }
  .route-viewer.map-interacting iframe { pointer-events: auto; }
  .route-map-touch-toolbar {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .4rem;
    position: sticky;
    top: 12px;
    z-index: 3;
    width: fit-content;
    max-width: calc(100% - 80px);
    margin: 12px 0 0 12px;
    padding: .65rem;
    border-radius: 12px;
    background: rgba(8, 10, 14, .94);
  }
  .route-map-touch-toolbar .btn-primary { min-height: 44px; font-size: .9rem; }
  .route-map-touch-hint { max-width: 32ch; font-size: .8rem; line-height: 1.4; color: #fff; }
}
.journey-page > main, .about-page > main, .courses-page > main {
  min-height: 100svh;
  min-height: 100dvh;
}
/* Shared alignment for all pages. Values come from content/layout.json. */
.site-content,
.sticky-header > .site-content {
  box-sizing: border-box;
  width: calc(100% - var(--site-left) - var(--site-right));
  max-width: var(--site-text-width);
  margin-left: var(--site-left);
  margin-right: var(--site-right);
  padding-left: 0;
  padding-right: 0;
  text-align: var(--site-text-align);
  min-width: 0;
}
.sticky-header > .site-content { max-width: none; }
/* Let long-form trip content use more of wide desktop screens. */
@media (min-width: 1440px) {
  .golftrip-page:not(.route-page) .story-prose.site-content,
  .golftrip-page:not(.route-page) .story-hero > .site-content {
    max-width: clamp(var(--site-text-width), 72vw, 110rem);
  }
  .golftrip-page .trip-answer { max-width: none; }
}
.site-section { padding-left: 0; padding-right: 0; }
.site-split-content { padding-left: var(--site-left); padding-right: var(--site-right); min-width: 0; }
.site-footer { text-align: var(--site-text-align); }
/* Homepage is one screen; navigation overlays the photograph. */
.home-page .hero-panel { height: 100svh; height: 100dvh; min-height: 0; }
.home-page.layout-strip .hero-panel > .strip-only { height: 100%; min-height: 0; }
.home-page.layout-split .hero-panel > .split-only > div { min-height: 0; }
@media (max-height: 700px) {
  .home-page .hero-panel .section-pad { padding-top: 1rem; padding-bottom: 1.5rem; }
  .home-page .hero-panel h1 { font-size: clamp(1.75rem, 5vw, 3rem); line-height: 1.1; margin-top: .5rem; }
  .home-page .hero-panel h1 + p { margin-top: .75rem; font-size: 1rem; line-height: 1.4; }
  .home-page .hero-panel .mt-8 { margin-top: 1rem; }
  .home-page.layout-strip .hero-panel > .strip-only .site-content { padding-bottom: 1.5rem; }
  .home-page .hero-panel .btn-primary, .home-page .hero-panel .btn-ghost { padding: .6rem 1rem; font-size: .875rem; }
}
.hero-photo-controls { right: auto; left: var(--site-left); max-width: calc(100% - var(--site-left) - var(--site-right)); }
.hero-video-play[hidden] { display: none; }

.layout-strip .hero-panel > .strip-only .site-content { padding-bottom: var(--site-hero-bottom); }

.story-hero > .site-content {
  padding-top: calc(var(--cga-header-offset) + var(--site-header-gap));
}
.layout-strip .story-prose [id] {
  scroll-margin-top: calc(var(--cga-header-offset) + var(--site-header-gap));
}

/* Homepage video control: separate from the Journey action row. */
.hero-panel > .hero-video-play {
  position: relative;
  z-index: 3;
  display: flex;
  width: fit-content;
  max-width: calc(100% - var(--site-left) - var(--site-right));
  margin: 0 var(--site-right) 5.5rem auto;
  justify-self: end;
  grid-column: 1 / -1;
  padding: 0.875rem 1.75rem;
  font-size: 1.4375rem;
  background-color: var(--cga-red);
  border-color: var(--cga-red);
  color: #fff;
}
.hero-panel > .hero-video-play:hover {
  background-color: var(--cga-red);
  filter: brightness(1.1);
}
.hero-panel > .hero-video-play[hidden] { display: none; }
[data-hero-slideshow] > .hero-photo-controls {
  position: fixed;
  top: 50%;
  right: var(--site-right);
  bottom: auto;
  left: auto;
  transform: translateY(-50%);
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(0, 0, 0, 0.48);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.16);
}
[data-hero-slideshow] > .hero-photo-controls button {
  padding: 0.2rem 0.55rem;
  background: rgba(0, 0, 0, 0.24);
  color: #c5c5c5;
  font-size: 0.75rem;
  font-weight: 500;
}
[data-hero-slideshow] > .hero-photo-controls button[aria-pressed="true"] {
  background: rgba(95, 95, 95, 0.5);
  color: #eee;
}
[data-hero-slideshow] > .hero-photo-controls .hero-photo-toggle { padding-inline: 0.65rem; }
[data-hero-slideshow] > .hero-photo-controls button:hover,
[data-hero-slideshow] > .hero-photo-controls button[aria-pressed="true"]:hover {
  background: #68151b;
  color: #fff;
}
@media (max-width: 1023px) {
  .layout-strip .hero-panel:has(> .hero-video-play:not([hidden])) > .strip-only .site-content {
    padding-bottom: 1.5rem;
  }
}

/* Golftrip sections use open, left-aligned content with red heading accents. */
/* Preserve the letter case authored in Golftrip content, including navigation. */
.golftrip-page,
.golftrip-page * {
  text-transform: none;
}
.golftrip-page {
  --golftrip-paper: transparent;
  --golftrip-ink: #f2f2f0;
  --golftrip-label: var(--cga-red);
}
.golftrip-page .story-prose,
.golftrip-page .golftrip-facts > article,
.golftrip-page #included article,
.golftrip-page #excluded article {
  text-align: left;
}
.golftrip-page .story-prose .eyebrow {
  display: table;
  max-width: 100%;
  padding: 0.3rem 0.65rem;
  border: 0;
  border-left: 3px solid var(--cga-red);
  border-radius: 0;
  background: var(--golftrip-paper);
  color: var(--golftrip-label);
  font-weight: 750;
  font-size: 0.8125rem;
  line-height: 1.5;
  letter-spacing: 0.14em;
}
.golftrip-page .story-hero .eyebrow {
  padding-left: 0.75rem;
  border-left: 3px solid var(--cga-red);
  color: var(--cga-red);
}
.golftrip-page .golftrip-facts > article,
.golftrip-page #included article,
.golftrip-page #excluded article,
.golftrip-page .golftrip-note,
.golftrip-page .story-prose .overflow-x-auto {
  background: var(--golftrip-paper);
  border: 0;
  border-radius: 0;
  padding: 1.25rem 0;
  box-shadow: none;
}
.golftrip-page .story-prose h3 {
  border-left: 3px solid var(--cga-red);
  padding-left: 0.75rem;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: normal;
}
.golftrip-page .golftrip-facts p {
  color: var(--golftrip-ink);
  font-size: 1.125rem;
  line-height: 1.6;
}
.golftrip-page .golftrip-facts > article p,
.golftrip-page #included article p,
.golftrip-page #excluded article p {
  margin-left: calc(0.75rem + 3px);
}
.golftrip-page #enquire {
  padding-left: clamp(1.25rem, 3vw, 2rem);
  background: var(--golftrip-paper);
  border: 0;
  border-left: 3px solid var(--cga-red);
  border-radius: 0;
  color: var(--golftrip-ink);
}
html[lang="nl"] .golftrip-page .story-prose > .eyebrow.mt-2,
html[lang="nl"] .golftrip-page #included > .eyebrow,
html[lang="nl"] .golftrip-page .golftrip-section-label {
  margin-top: 2rem;
}
.golftrip-page .golftrip-section-title {
  line-height: 1.3;
}
.golftrip-page .story-prose h2.story-h,
.golftrip-page .story-prose h2.golftrip-section-title {
  border-left: 0;
  border-top: 1px solid rgba(112, 25, 29, 0.45);
  padding-left: 0;
  padding-top: 1.4rem;
  color: #d2d5d5;
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  font-weight: 700;
}
.golftrip-page .story-prose #starting-price > h2 {
  border-top: 0;
  padding-top: 0;
}
.golftrip-page .story-hero:has(.trip-quick-links) > .site-content { padding-bottom: .75rem; }
.golftrip-page .story-prose:has(> .trip-answer) { padding-top: .75rem; }
.golftrip-page .story-prose > .trip-answer { margin-top: 0; }
.golftrip-page .story-prose > #starting-price { margin-top: 2rem; }
.golftrip-page .story-hero h1 { color: #d1d3d3; }
.golftrip-page .golftrip-summary-title { margin-top: 2rem; }
/* About uses the Golftrip page's open sections and red heading rule. */
.about-page .about-topics > h2,
.about-page .about-topic h3,
.about-page .editorial-columns h2,
.about-page .editorial-contact h2 {
  border-left: 3px solid var(--cga-red);
  padding-left: 0.75rem;
}
.about-page .about-tech h2 {
  border-left: 3px solid var(--cga-red);
  padding-left: 0.75rem;
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  font-weight: 700;
}
.about-page .about-tech p { margin-top: 1rem; line-height: 1.75; }
.about-page.golftrip-page #enquire h2 { border-left: 0; }
.about-page .editorial-card,
.about-page .editorial-panel,
.about-page .editorial-contact,
.about-page .editorial-label {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}
.about-page .about-topic {
  padding: 1rem 0;
}
.about-page .about-topic:hover,
.about-page .about-topic:focus-visible {
  border: 0;
  background: transparent;
}
.about-page .editorial-panel,
.about-page .editorial-contact {
  padding-left: 0;
  padding-right: 0;
}
.about-page .story-prose #enquire { background: transparent; }
.golftrip-page #enquire > p:not(.eyebrow) { color: #e4e5e3; }
.golftrip-page #enquire .eyebrow { background: none; border: 0; padding: 0; }
.golftrip-page #enquire .btn-primary,
.golftrip-page .hero-video-play {
  background-color: var(--cga-red);
  border-color: var(--cga-red);
  color: #fff;
}
.golftrip-page #enquire .btn-ghost {
  background: transparent;
  border-color: #6b7070;
  color: var(--golftrip-ink);
}
.golftrip-page #enquire .btn-ghost:hover,
.golftrip-page #enquire .btn-ghost:focus-visible { background: var(--cga-red); border-color: var(--cga-red); color: #fff; }
.golftrip-page #enquire a:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 4px;
}
.golftrip-page #journey a { text-underline-offset: 0.2em; }
.golftrip-page #journey a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@media (min-width: 1024px) {
  .hero-panel > .hero-video-play {
    position: absolute;
    top: 50%;
    right: var(--site-right);
    margin: 0;
    transform: translateY(-50%);
  }
  .hero-panel:has(> .hero-video-play:not([hidden])) > .storm-only.site-content,
  .hero-panel:has(> .hero-video-play:not([hidden])) > .strip-only .site-content {
    width: calc(100% - var(--site-left) - var(--site-right) - 9rem);
  }
}

/* Route viewer stays isolated from the site's global typography and layout. */
.route-page .sticky-header { display: block; }
.route-main { padding-top: calc(var(--cga-header-offset, 6.75rem) + var(--site-header-gap)); }
.route-intro { margin-bottom: 1.5rem; }
/* The iframe must sit above the fixed site header for its playback controls to remain clickable. */
.route-viewer { position: relative; z-index: 41; margin: 0 var(--site-right) 2rem var(--site-left); }
.route-viewer iframe { display: block; width: 100%; height: 900px; height: max(760px, 85dvh); border: 0; border-radius: 0; background: #080a0e; }
@media (max-width: 760px) {
  .route-viewer { margin-left: 0; margin-right: 0; }
  .route-viewer iframe { height: 950px; border-radius: 0; }
}

body.route-page { background-color: #080a0e; }

/* Horizontal modern homepage identity. */
.header-brand { display: inline-flex; align-items: center; gap: 16px; flex-shrink: 0; color: #fff; text-decoration: none; filter: drop-shadow(0 2px 4px rgba(0,0,0,.4)); }
.header-brand-symbol { width: 112px; height: 96px; object-fit: contain; }
.header-brand-name { display: flex; flex-direction: column; gap: 5px; font-size: 23px; font-weight: 800; line-height: 1.05; letter-spacing: .025em; text-align: left; }
.header-brand-name > span:last-child { font-size: 17px; font-weight: 600; letter-spacing: .22em; }
.header-brand:focus-visible { outline: 2px solid #fff; outline-offset: 6px; border-radius: 4px; }
@media (max-width: 640px) {
 .header-brand { gap: 8px; }
 .header-brand-symbol { width: 64px; height: 64px; }
 .header-brand-name { font-size: 14px; gap: 4px; }
 .header-brand-name > span:last-child { font-size: 11px; letter-spacing: .15em; }
 .home-page .sticky-header > .header-row { gap: 8px; }
 .home-page .header-controls { gap: 6px; }
}
@media (max-width: 380px) {
 .header-brand-symbol { width: 48px; height: 56px; }
 .header-brand-name { font-size: 12px; }
 .header-brand-name > span:last-child { font-size: 10px; letter-spacing: .1em; }
}
/* Preserve the original round identity and black bear. */
.header-brand-symbol { width: 128px; height: 128px; border-radius: 50%; }
@media (max-width: 640px) { .header-brand-symbol { width: 72px; height: 72px; } }
@media (max-width: 380px) { .header-brand-symbol { width: 54px; height: 54px; } }
/* Scale the header identity smoothly on larger displays. */
@media (min-width: 641px) {
  .header-brand { gap: clamp(16px, .9vw, 28px); }
  .header-brand-symbol { width: clamp(128px, 7vw, 240px); height: clamp(128px, 7vw, 240px); }
  .header-brand-name { font-size: clamp(23px, 1.3vw, 40px); gap: clamp(5px, .28vw, 9px); }
  .header-brand-name > span:last-child { font-size: clamp(17px, .96vw, 30px); }
}
@media (min-width: 1100px) {
  .logo-ball { width: clamp(144px, 7vw, 240px); height: clamp(144px, 7vw, 240px); }
}

/* Decorative per-background layers sit above photography and below page controls. */
.hero-image-layers { pointer-events: none; }
.home-page .hero-panel > .hero-image-layers { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.hero-layer-group { position: absolute; inset: 0; opacity: 0; transition: opacity var(--hero-transition-duration, 1200ms) ease; }
.hero-layer-group.is-active { opacity: 1; }
.hero-image-layer { position: absolute; color: #101510; }
.hero-image-layer[hidden] { display: none; }
.hero-image-layer > img { display: block; width: 100%; height: auto; }
/* Example CSS layer: a circle with optional text from hero-effects.json. */
.hero-layer-circle { aspect-ratio: 1; border: 2px solid currentColor; border-radius: 50%; display: grid; place-items: center; font: 600 clamp(16px, 3vmin, 36px) 'Courier New', monospace; }
@media (prefers-reduced-motion: reduce) { .hero-layer-group { transition: none; } }

/* Creative homepage overlay gallery. Each design is a single CSS layer. */
.hero-layer-aurora { aspect-ratio: 1.35; isolation: isolate; }
.hero-layer-aurora::before, .hero-layer-aurora::after { content: ''; position: absolute; inset: 0; border-radius: 50%; filter: blur(28px); animation: hero-aurora-drift 12s ease-in-out infinite alternate; }
.hero-layer-aurora::before { background: radial-gradient(ellipse at 35% 45%, #70efce66, transparent 58%), radial-gradient(ellipse at 65% 55%, #b1cfff55, transparent 60%); }
.hero-layer-aurora::after { inset: 15% -10%; background: conic-gradient(from 45deg, transparent, #f4dfa044, transparent 45%, #82dfc744, transparent); animation-direction: alternate-reverse; animation-duration: 17s; }
@keyframes hero-aurora-drift { from { transform: translate(-8%, 5%) rotate(-12deg) scale(.9); } to { transform: translate(8%, -8%) rotate(14deg) scale(1.12); } }
.hero-layer-contours { aspect-ratio: 1; border-radius: 48% 52% 65% 35%; background: repeating-radial-gradient(ellipse at 62% 42%, transparent 0 22px, currentColor 23px 24px, transparent 25px 43px); mask-image: radial-gradient(ellipse, #000 20%, transparent 72%); transform-origin: center; }
.hero-layer-target { aspect-ratio: 1; border: 1px solid currentColor; border-radius: 50%; background: linear-gradient(currentColor, currentColor) center / 1px 18% no-repeat, linear-gradient(90deg, currentColor, currentColor) center / 18% 1px no-repeat; box-shadow: 0 0 0 12px #ffffff08, inset 0 0 40px #ffffff08; }
.hero-layer-target::before { content: ''; position: absolute; inset: 12%; border: 1px dashed currentColor; border-radius: 50%; }
.hero-layer-target::after { content: 'PIN SEEKER / 150 Y'; position: absolute; bottom: 20%; width: 100%; text-align: center; font: 500 clamp(10px, 1.3vmin, 18px) monospace; letter-spacing: .2em; }
.hero-layer-compass { aspect-ratio: 1; border: 1px solid currentColor; border-radius: 50%; background: linear-gradient(currentColor, currentColor) center / 1px 75% no-repeat, linear-gradient(90deg, currentColor, currentColor) center / 75% 1px no-repeat; }
.hero-layer-compass::before { content: ''; position: absolute; inset: 8%; border: 1px solid currentColor; border-radius: 50%; }
/* Pause motion while a background is inactive; keep reduced-motion views static. */
.hero-layer-group:not(.is-active) .hero-layer-aurora::before, .hero-layer-group:not(.is-active) .hero-layer-aurora::after { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .hero-layer-aurora::before, .hero-layer-aurora::after { animation: none; } }
.hero-layer-compass::after { content: ''; position: absolute; inset: 24%; background: currentColor; clip-path: polygon(50% 0, 57% 43%, 100% 50%, 57% 57%, 50% 100%, 43% 57%, 0 50%, 43% 43%); opacity: .65; }

/* CSS keyframes move a pseudo-element, preserving the layer's JSON position. */
.hero-layer-floating-orb { aspect-ratio: 1; }
.hero-layer-floating-orb::before { content: ''; position: absolute; inset: 0; border: 1px solid currentColor; border-radius: 50%; background: radial-gradient(circle at 30% 25%, #fff9, #e9d59b44 35%, #a6f5d022 65%, transparent); box-shadow: 0 0 45px #f5e6bd33, inset -12px -12px 30px #ffffff15; animation: hero-orb-float 9s ease-in-out infinite; }
@keyframes hero-orb-float {
  0%, 100% { transform: translate(-70%, 35%) scale(.85); }
  35% { transform: translate(35%, -45%) scale(1.08); }
  70% { transform: translate(65%, 25%) scale(.95); }
}
.hero-layer-group:not(.is-active) .hero-layer-floating-orb::before { animation-play-state: paused; }
.hero-layer-three { aspect-ratio: 1; }
.hero-layer-three canvas { display: block; width: 100%; height: 100%; }
@media (prefers-reduced-motion: reduce) { .hero-layer-floating-orb::before { animation: none; } }

/* Animated CSS example; movement preserves the layer's JSON anchor. */
.hero-layer-floating-orb { aspect-ratio: 1; }
.hero-layer-floating-orb::before { content: ''; position: absolute; inset: 0; border: 1px solid currentColor; border-radius: 50%; background: radial-gradient(circle at 30% 25%, #fff9, #e9d59b44 35%, #a6f5d022 65%, transparent); box-shadow: 0 0 45px #f5e6bd33; animation: hero-orb-float 9s ease-in-out infinite; }
@keyframes hero-orb-float { 0%, 100% { transform: translate(-70%, 35%) scale(.85); } 35% { transform: translate(35%, -45%) scale(1.08); } 70% { transform: translate(65%, 25%) scale(.95); } }
.hero-layer-group:not(.is-active) .hero-layer-floating-orb::before { animation-play-state: paused; }
.hero-layer-three { aspect-ratio: 1; }
.hero-layer-three canvas { display: block; width: 100%; height: 100%; }
@media (prefers-reduced-motion: reduce) { .hero-layer-floating-orb::before { animation: none; } }

/* Draft travel conditions and compact, accessible reference tables. */
.conditions-status { display: inline-block; padding: .6rem 1rem; margin: 1rem 0; border: 1px solid var(--cga-red); border-radius: .35rem; font-weight: 700; background: #a21f2520; }
.guide-table-wrap { overflow-x: auto; margin: 1.5rem 0; }
.guide-table { width: 100%; border-collapse: collapse; text-align: left; }
.guide-table th, .guide-table td { padding: .85rem 1rem; border-bottom: 1px solid #ffffff30; }
.guide-table th { background: #ffffff0c; font-weight: 700; }
.guide-condition-link { text-decoration: underline; text-underline-offset: .2em; }

/* Independent native FAQ disclosures: several answers may remain open. */
.faq-item { margin: .8rem 0; border: 1px solid #ffffff30; border-radius: 10px; background: #0c1410e6; overflow: hidden; }
.faq-item > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.25rem; cursor: pointer; list-style: none; font-weight: 650; font-size: clamp(1rem, 1.4vw, 1.2rem); color: #f2f2f0; }
.faq-item > summary::-webkit-details-marker { display: none; }
.faq-item > summary::after { content: '+'; flex: 0 0 auto; font-size: 1.6rem; line-height: 1; color: #d9d9d9; }
.faq-item[open] > summary::after { content: '−'; }
.faq-item > summary:hover { background: #ffffff08; }
.faq-item > summary:focus-visible { outline: 2px solid #fff; outline-offset: -4px; border-radius: 8px; }
.faq-item[open] > summary { border-bottom: 1px solid #ffffff20; }
.faq-answer { padding: .1rem 1.25rem 1.25rem; }

/* Keep the FAQ title compact above the question list. */
.faq-page .guide-hero h1 { font-size: clamp(1.65rem, 3vw, 2.5rem); max-width: 34ch; line-height: 1.2; }
