/* Client launch corrections, shared across all public React routes. */
html, body, button, input, select, textarea, .font-sans { font-family: 'DM Sans', sans-serif; }
h1,h2,h3,h4,h5,h6,.font-serif,.text-editorial { font-family: 'Playfair Display', Georgia, serif; }
h1,h2,h3 { text-wrap: balance; }
::selection { background: #d9b75f; color: #173e31; }
:focus-visible { outline: 3px solid #ad8130; outline-offset: 4px; }
.launch-hero-shade { background: linear-gradient(180deg,rgba(9,29,22,.12),rgba(9,29,22,.48) 58%,rgba(9,29,22,.64)); }
.launch-hero-tint { background: transparent; }
main section.cms-hero-packages,
main section.cms-hero-gallery { height: 56vh; min-height: 390px; }
section:has(img[alt="Safari landscape"]) h1 { text-shadow: 0 2px 18px rgba(0,0,0,.35); }
section:has(img[alt="Safari landscape"]) p { color: #fff; }
footer p[class], footer a[class] { color: #f1eee5; }
.launch-page-shade { background: linear-gradient(180deg,rgba(9,29,22,.24),rgba(9,29,22,.48)); }
main section.cms-hero-packages .text-primary-foreground\/70,
main section.cms-hero-gallery .text-primary-foreground\/70 { color: #fff; }
.launch-welcome-image { position: relative; aspect-ratio: 5/4; border-radius: 16px; overflow: hidden; }
.launch-contact-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.launch-contact-links a { padding: 12px 20px; background: #184536; color: #fff; border-radius: 8px; font-size: 15px; font-weight: 600; text-decoration: none; }
.launch-contact-links a:hover { background: #285c49; }
.launch-package-card h3 { font-size: 1.2rem; }
.launch-package-card { box-shadow: 0 8px 28px rgba(20,50,35,.07); }
@media (min-width: 1024px) {
  /* The supplied wildlife originals are portrait photos. Give them a portrait
     area instead of enlarging a thin crop across the entire desktop screen. */
  section:has(img[alt="Safari landscape"]) .img-safari { width: 50%; margin-left: auto; }
  section:has(img[alt="Safari landscape"]) .launch-hero-shade { background: linear-gradient(90deg,#173e31 46%,rgba(23,62,49,.1) 72%); }
  section:has(img[alt="Safari landscape"]) .max-w-3xl { width: 47%; margin-left: 0; }
  section:has(img[alt="Safari landscape"]) h1 { font-size: clamp(2.75rem,4vw,4.25rem); }
  main section.cms-hero-packages,
  main section.cms-hero-gallery { background: #173e31; }
  main section.cms-hero-packages .img-safari,
  main section.cms-hero-gallery .img-safari { width: 45%; margin-left: auto; }
  main section.cms-hero-packages > .relative,
  main section.cms-hero-gallery > .relative { width: 50%; margin-left: 0; margin-right: auto; }
  main section.cms-hero-packages h1,
  main section.cms-hero-gallery h1 { font-size: clamp(3rem,4.5vw,4.5rem); }
  .launch-page-shade { background: linear-gradient(90deg,#173e31 50%,rgba(23,62,49,.08) 75%); }
}
@media (max-width: 639px) {
  main section.cms-hero-packages,
  main section.cms-hero-gallery { height: auto; min-height: 380px; }
  .launch-package-card > div:last-child { padding: 20px; }
  section:has(img[alt="Safari landscape"]) h1 { font-size: clamp(2rem,8.2vw,3rem); }
  section:has(img[alt="Safari landscape"]) .container-editorial { padding-left: 48px; padding-right: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Non-home header imagery is owned by CMS Media Library selections. */
.cms-hero { background: #173e31; }
.cms-page-hero-background { position: absolute; inset: 0; overflow: hidden; }
.cms-page-hero-shade { position: absolute; inset: 0; background: rgba(9,29,22,.66); }
.cms-editorial-hero { position: relative; overflow: hidden; }
.cms-editorial-hero-content { position: relative; z-index: 1; }
.cms-editorial-hero p { color: #fff; }
.cms-gallery-status { padding: 1rem 1.5rem; color: #173e31; background: #edf3ee; text-align: center; }
.cms-gallery-status button { margin-left: 1rem; text-decoration: underline; font-weight: 600; }
