/* Phase 24: conversion, media QA, gallery and direct-booking polish. */
:root {
  --ago24-ink: #102c25;
  --ago24-canopy: #114c41;
  --ago24-teal: #08766b;
  --ago24-sun: #f4b84f;
  --ago24-coral: #ec6a58;
  --ago24-paper: #fffaf0;
  --ago24-mist: #e7f3ec;
}

html[data-agoversion-phase24="ready"] {
  --focus-ring: #f4b84f;
}

html[data-agoversion-phase24="ready"] body {
  overflow-x: clip;
}

html[data-agoversion-phase24="ready"] :is(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: 3px;
}

html[data-agoversion-phase24="ready"] :is(.button, .booking-bar__button, .mobile-dock a, .mobile-dock button, .header-actions .button, .ago24-action, .ago24-filter, .ago24-lightbox__close, .ago24-lightbox__nav) {
  min-height: 44px !important;
  letter-spacing: 0;
}

html[data-agoversion-phase24="ready"] .button {
  min-height: 44px !important;
  height: auto;
}

html[data-agoversion-phase24="ready"] :is(.button, .booking-bar__button, .ago24-action, .ago24-filter) {
  border-radius: 8px;
}

html[data-agoversion-phase24="ready"] .hero[data-agoversion-phase24-hero="ready"] {
  min-height: min(830px, 100svh);
  isolation: isolate;
}

html[data-agoversion-phase24="ready"] .hero[data-agoversion-phase24-hero="ready"]::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  z-index: 1;
  height: 42%;
  pointer-events: none;
  background: linear-gradient(0deg, #071c17d9, #071c1700);
}

html[data-agoversion-phase24="ready"] .hero[data-agoversion-phase24-hero="ready"] .hero__content {
  z-index: 4;
  width: min(1180px, calc(100% - 32px));
  padding-bottom: 30px;
}

html[data-agoversion-phase24="ready"] .ago24-hero-sense {
  max-width: 620px;
  margin: 10px 0 0;
  color: #fff7d5;
  font: 800 1rem/1.35 system-ui, sans-serif;
  text-shadow: 0 2px 16px #051411;
}

html[data-agoversion-phase24="ready"] .ago24-hero-paths {
  width: min(760px, 100%);
  margin: 14px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

html[data-agoversion-phase24="ready"] .ago24-hero-paths a {
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid #fff2b866;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fffdf5;
  background: #06231d70;
  box-shadow: inset 0 1px #ffffff24;
  font: 850 .74rem/1 system-ui, sans-serif;
  text-decoration: none;
  text-shadow: 0 1px 8px #051411;
  backdrop-filter: blur(12px);
}

html[data-agoversion-phase24="ready"] .ago24-hero-paths a:hover {
  color: #1c332a;
  background: #ffe7a5;
}

html[data-agoversion-phase24="ready"] .ago24-hero-booking-shell {
  width: min(1120px, calc(100vw - 32px));
  margin: 16px 0 0;
  padding: 10px;
  border: 1px solid #ffe39a8c;
  border-radius: 12px;
  color: var(--ago24-ink);
  background: linear-gradient(115deg, #fffaf0f2, #fff3dfef 57%, #e3f3ebef);
  box-shadow: 0 20px 54px #061c1752, inset 0 1px #ffffffd9;
  backdrop-filter: blur(15px);
}

html[data-agoversion-phase24="ready"] .ago24-hero-booking-shell__top {
  margin: 0 0 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

html[data-agoversion-phase24="ready"] .ago24-hero-booking-shell__top strong {
  color: var(--ago24-canopy);
  font: 900 .88rem/1.2 system-ui, sans-serif;
}

html[data-agoversion-phase24="ready"] .ago24-hero-booking-shell__top small {
  max-width: 440px;
  color: #46665d;
  font: 700 .75rem/1.35 system-ui, sans-serif;
  text-align: right;
}

html[data-agoversion-phase24="ready"] .ago24-hero-booking-shell .booking-bar,
html[data-agoversion-phase24="ready"] .ago24-hero-booking-shell .ago24-kross-fallback {
  margin: 0 !important;
  width: 100%;
}

html[data-agoversion-phase24="ready"] .ago24-kross-fallback {
  display: grid;
  grid-template-columns: repeat(2, minmax(150px, 1fr)) minmax(120px, .7fr) minmax(190px, 1fr);
  gap: 8px;
}

html[data-agoversion-phase24="ready"] .ago24-kross-fallback label {
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid #16483d1c;
  border-radius: 8px;
  display: grid;
  gap: 5px;
  background: #fffdf8cc;
}

html[data-agoversion-phase24="ready"] .ago24-kross-fallback span {
  color: #526d64;
  font: 850 .64rem/1 system-ui, sans-serif;
  text-transform: uppercase;
}

html[data-agoversion-phase24="ready"] .ago24-kross-fallback :is(input, select) {
  width: 100%;
  min-height: 38px;
  border: 0;
  color: var(--ago24-ink);
  background: transparent;
  font: 850 1rem/1 system-ui, sans-serif;
}

html[data-agoversion-phase24="ready"] .ago24-action {
  border: 1px solid #ffe6a3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #fffdf5;
  background: linear-gradient(108deg, #075f57, #0b8b79 53%, #ec6a58);
  box-shadow: inset 0 1px #ffffff4d, 0 12px 26px #08584d35;
  font: 900 .75rem/1 system-ui, sans-serif;
  text-decoration: none;
  text-transform: uppercase;
}

html[data-agoversion-phase24="ready"] .hero__campaign-card[data-agoversion-phase24-mama="ready"] {
  max-width: 650px;
  padding: 12px;
  border-radius: 12px;
  align-items: stretch;
  flex-wrap: nowrap !important;
  background:
    linear-gradient(90deg, #0a3c34ed, #0d6d60de 58%, #8d3c5fe6),
    var(--ago24-mama-image, none) center/cover no-repeat;
}

html[data-agoversion-phase24="ready"] .hero__campaign-card[data-agoversion-phase24-mama="ready"]::before {
  display: none;
}

html[data-agoversion-phase24="ready"] .hero__campaign-card[data-agoversion-phase24-mama="ready"] .hero__campaign-copy {
  gap: 4px;
}

html[data-agoversion-phase24="ready"] .ago24-mama-detail {
  margin: 0;
  color: #fff6dd;
  font: 650 .76rem/1.35 system-ui, sans-serif;
}

html[data-agoversion-phase24="ready"] .ago24-gallery {
  padding: 64px max(20px, calc((100vw - 1180px) / 2));
  color: var(--ago24-ink);
  background:
    linear-gradient(180deg, #fff8eb, #eaf4ee 62%, #fffaf0);
}

html[data-agoversion-phase24="ready"] .ago24-gallery__head {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(260px, .9fr);
  gap: 22px;
  align-items: end;
}

html[data-agoversion-phase24="ready"] .ago24-gallery__head h2 {
  margin: 6px 0 0;
  color: #123b32;
  font: 700 2.2rem/1.04 Georgia, serif;
  letter-spacing: 0;
}

html[data-agoversion-phase24="ready"] .ago24-gallery__head p,
html[data-agoversion-phase24="ready"] .ago24-trip-bridge p {
  margin: 0;
  color: #43665d;
  font: 650 .95rem/1.55 system-ui, sans-serif;
}

html[data-agoversion-phase24="ready"] .ago24-gallery__filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

html[data-agoversion-phase24="ready"] .ago24-filter {
  min-height: 44px !important;
  padding: 0 13px;
  border: 1px solid #16483d26;
  color: #17453a;
  background: #fffdf8;
  font: 850 .72rem/1 system-ui, sans-serif;
  cursor: pointer;
}

html[data-agoversion-phase24="ready"] .ago24-filter[aria-pressed="true"] {
  color: #fffdf5;
  background: linear-gradient(108deg, #0b7469, #ec6a58);
}

html[data-agoversion-phase24="ready"] .ago24-gallery__grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

html[data-agoversion-phase24="ready"] .ago24-gallery-card {
  min-width: 0;
  border: 0;
  border-radius: 8px;
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  color: #fffdf5;
  background: #163c33;
  box-shadow: 0 18px 40px #17362e24;
  cursor: zoom-in;
}

html[data-agoversion-phase24="ready"] .ago24-gallery-card:nth-child(6n + 1),
html[data-agoversion-phase24="ready"] .ago24-gallery-card:nth-child(6n + 4) {
  grid-row: span 2;
  aspect-ratio: 4 / 5.9;
}

html[data-agoversion-phase24="ready"] .ago24-gallery-card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .35s ease;
}

html[data-agoversion-phase24="ready"] .ago24-gallery-card:hover img {
  transform: scale(1.035);
}

html[data-agoversion-phase24="ready"] .ago24-gallery-card figcaption {
  position: absolute;
  inset: auto 0 0;
  padding: 42px 12px 12px;
  display: grid;
  gap: 3px;
  background: linear-gradient(0deg, #04130fdc, #04130f00);
  text-align: left;
}

html[data-agoversion-phase24="ready"] .ago24-gallery-card strong {
  color: #fffaf0;
  font: 850 .86rem/1.2 system-ui, sans-serif;
}

html[data-agoversion-phase24="ready"] .ago24-gallery-card span {
  color: #ffd986;
  font: 800 .62rem/1.1 system-ui, sans-serif;
  text-transform: uppercase;
}

html[data-agoversion-phase24="ready"] [data-agoversion-phase24-original-gallery="soft-hidden"] {
  display: none !important;
}

html[data-agoversion-phase24="ready"] .ago24-lightbox {
  width: min(980px, calc(100vw - 24px));
  max-height: min(92vh, 860px);
  margin: auto;
  padding: 0;
  border: 1px solid #fff1bc;
  border-radius: 10px;
  color: #fffdf5;
  background: #071c17;
  box-shadow: 0 28px 86px #000000a6;
}

html[data-agoversion-phase24="ready"] .ago24-lightbox::backdrop {
  background: #04100dde;
  backdrop-filter: blur(8px);
}

html[data-agoversion-phase24="ready"] .ago24-lightbox__shell {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

html[data-agoversion-phase24="ready"] .ago24-lightbox img {
  width: 100%;
  max-height: 74vh;
  display: block;
  object-fit: contain;
  background: #071c17;
}

html[data-agoversion-phase24="ready"] .ago24-lightbox__caption {
  padding: 12px 16px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: #fff6db;
}

html[data-agoversion-phase24="ready"] .ago24-lightbox__close,
html[data-agoversion-phase24="ready"] .ago24-lightbox__nav {
  border: 1px solid #fff4bd70;
  border-radius: 8px;
  color: #fffdf5;
  background: #071c17b8;
  cursor: pointer;
}

html[data-agoversion-phase24="ready"] .ago24-lightbox__close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 44px;
}

html[data-agoversion-phase24="ready"] .ago24-lightbox__nav {
  position: absolute;
  top: 45%;
  width: 46px;
}

html[data-agoversion-phase24="ready"] .ago24-lightbox__nav[data-dir="-1"] { left: 10px; }
html[data-agoversion-phase24="ready"] .ago24-lightbox__nav[data-dir="1"] { right: 10px; }

html[data-agoversion-phase24="ready"] .ago24-trip-bridge {
  margin: 0 auto 28px;
  padding: 18px;
  width: min(1120px, calc(100vw - 32px));
  border: 1px solid #16483d1f;
  border-radius: 12px;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(260px, .9fr);
  gap: 16px;
  color: var(--ago24-ink);
  background: linear-gradient(125deg, #fffaf0, #e7f3ec);
  box-shadow: 0 16px 42px #17362e1c;
}

html[data-agoversion-phase24="ready"] .ago24-trip-bridge h2 {
  margin: 0 0 8px;
  color: #123b32;
  font: 700 1.65rem/1.08 Georgia, serif;
}

html[data-agoversion-phase24="ready"] .ago24-trip-bridge__facts {
  margin: 12px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  list-style: none;
}

html[data-agoversion-phase24="ready"] .ago24-trip-bridge__facts li {
  padding: 10px;
  border-radius: 8px;
  background: #fffdf8;
  color: #42675d;
  font: 750 .78rem/1.35 system-ui, sans-serif;
}

html[data-agoversion-phase24="ready"] .ago24-trip-bridge__actions {
  display: grid;
  align-content: center;
  gap: 8px;
}

html[data-agoversion-phase24="ready"] .ago24-trip-bridge__note {
  color: #55736a;
  font: 700 .72rem/1.35 system-ui, sans-serif;
}

html[data-agoversion-phase24="ready"] .site-footer [data-agoversion-phase24-footer-link="ready"] {
  min-height: 36px;
}

@media (min-width: 901px) {
  html[data-agoversion-phase24="ready"] .ago24-hero-booking-shell .booking-bar[data-agoversion-phase21-booking="ready"] {
    grid-template-columns: 1fr 1fr .6fr .6fr .68fr 1.25fr !important;
  }
}

@media (max-width: 900px) {
  html[data-agoversion-phase24="ready"] .hero[data-agoversion-phase24-hero="ready"] {
    min-height: auto;
  }

  html[data-agoversion-phase24="ready"] .ago24-hero-booking-shell__top,
  html[data-agoversion-phase24="ready"] .ago24-gallery__head,
  html[data-agoversion-phase24="ready"] .ago24-trip-bridge {
    grid-template-columns: 1fr;
  }

  html[data-agoversion-phase24="ready"] .ago24-hero-booking-shell__top {
    align-items: start;
  }

  html[data-agoversion-phase24="ready"] .ago24-hero-booking-shell__top small {
    text-align: left;
  }

  html[data-agoversion-phase24="ready"] .ago24-kross-fallback {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  html[data-agoversion-phase24="ready"] .hero__campaign-card[data-agoversion-phase24-mama="ready"] {
    max-width: min(590px, calc(100vw - 36px));
    padding: 10px 11px;
    align-items: center;
  }

  html[data-agoversion-phase24="ready"] .hero__campaign-card[data-agoversion-phase24-mama="ready"] .ago24-mama-detail {
    display: none;
  }

  html[data-agoversion-phase24="ready"] .ago24-gallery__filters {
    justify-content: flex-start;
  }

  html[data-agoversion-phase24="ready"] .ago24-gallery__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 761px) and (max-width: 900px) {
  html[data-agoversion-phase24="ready"] .hero[data-agoversion-phase24-hero="ready"] .ago24-hero-paths,
  html[data-agoversion-phase24="ready"] .hero[data-agoversion-phase24-hero="ready"] .ago24-hero-booking-shell {
    display: none;
  }

  html[data-agoversion-phase24="ready"] .hero[data-agoversion-phase24-hero="ready"] .ago24-hero-sense {
    margin-top: 4px;
  }
}

@media (max-width: 520px) {
  html[data-agoversion-phase24="ready"] .hero[data-agoversion-phase24-hero="ready"] .hero__content {
    width: min(100%, calc(100vw - 24px));
    padding-bottom: 18px;
  }

  html[data-agoversion-phase24="ready"] .ago24-hero-sense {
    font-size: .9rem;
  }

  html[data-agoversion-phase24="ready"] .ago24-hero-paths {
    gap: 6px;
  }

  html[data-agoversion-phase24="ready"] .ago24-hero-paths a {
    min-height: 36px;
    padding-inline: 10px;
    font-size: .68rem;
  }

  html[data-agoversion-phase24="ready"] .ago24-hero-booking-shell {
    width: min(100%, calc(100vw - 24px));
    padding: 8px;
  }

  html[data-agoversion-phase24="ready"] .ago24-kross-fallback,
  html[data-agoversion-phase24="ready"] .ago24-trip-bridge__facts {
    grid-template-columns: 1fr;
  }

  html[data-agoversion-phase24="ready"] .hero__campaign-card[data-agoversion-phase24-mama="ready"] {
    max-width: 100%;
  }

  html[data-agoversion-phase24="ready"] .ago24-gallery {
    padding: 44px 14px;
  }

  html[data-agoversion-phase24="ready"] .ago24-gallery__grid {
    gap: 8px;
  }

  html[data-agoversion-phase24="ready"] .ago24-gallery-card figcaption {
    padding: 34px 9px 9px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-agoversion-phase24="ready"] *,
  html[data-agoversion-phase24="ready"] *::before,
  html[data-agoversion-phase24="ready"] *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
  }
}
