/* Phase 18: a brighter direct-booking surface and an intent-led Santa Teresa layer. */
.booking-bar[data-agoversion-phase18-booking="ready"] {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid #16443a30 !important;
  border-radius: 26px !important;
  color: var(--ago-ink-deep);
  background:
    radial-gradient(circle at 2% 0%, #ffbf3f32 0 15%, transparent 34%),
    radial-gradient(circle at 98% 100%, #18aaa22e 0 14%, transparent 34%),
    linear-gradient(135deg, #fffdf7, #fff4df 58%, #e8f5ed) !important;
  box-shadow: 0 24px 70px #0b30251f, 0 7px 20px #17372e12, inset 0 1px #fff !important;
}

.booking-bar[data-agoversion-phase18-booking="ready"]::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(115deg, var(--ago-mango), var(--ago-coral), var(--ago-orchid), var(--ago-lagoon));
  background-size: 260% 100%;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  animation: agoversion-booking-border 9s linear infinite;
}

.booking-bar[data-agoversion-phase18-booking="ready"] .booking-bar__guide {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.booking-bar__phase18-ribbon {
  grid-column: 1 / -1;
  min-height: 42px;
  padding: 9px 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: #f9fff7;
  background: linear-gradient(110deg, #123d33, #0c6c62 58%, #134d43);
  font-family: system-ui, sans-serif;
}

.booking-bar__phase18-ribbon span,
.booking-bar__phase18-ribbon small {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}

.booking-bar__phase18-ribbon span {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.booking-bar__phase18-ribbon small {
  color: #e2f6ef;
  font-size: 11px;
  font-weight: 650;
}

.booking-bar__phase18-ribbon i {
  width: 9px;
  height: 9px;
  border: 2px solid #ffe283;
  border-radius: 50%;
  background: var(--ago-mango);
  box-shadow: 0 0 0 5px #ffbf3f1f;
}

.booking-bar[data-agoversion-phase18-booking="ready"] > label {
  min-width: 0;
  min-height: 72px;
  padding: 11px 14px 10px !important;
  border-color: #174a3b19 !important;
  background: #fffdf8ad;
  transition: background 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.booking-bar[data-agoversion-phase18-booking="ready"] > label:hover,
.booking-bar[data-agoversion-phase18-booking="ready"] > label:focus-within {
  z-index: 2;
  background: #fff;
  box-shadow: inset 0 -3px var(--ago-lagoon), 0 12px 24px #123c3212;
}

.booking-bar[data-agoversion-phase18-booking="ready"] > label > span {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #356158 !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  letter-spacing: .13em !important;
}

.booking-bar[data-agoversion-phase18-booking="ready"] > label > span::before {
  width: 16px;
  color: #d24f42;
  font-size: 15px;
  line-height: 1;
  text-align: center;
}

.booking-bar label[data-agoversion-booking-field="arrival"] > span::before { content: "↘"; }
.booking-bar label[data-agoversion-booking-field="departure"] > span::before { content: "↗"; }
.booking-bar label[data-agoversion-booking-field="adults"] > span::before { content: "+"; }
.booking-bar label[data-agoversion-booking-field="children"] > span::before { content: "•"; }
.booking-bar label[data-agoversion-booking-field="rooms"] > span::before { content: "◇"; }

.booking-bar[data-agoversion-phase18-booking="ready"] :is(input, select) {
  min-height: 40px !important;
  color: #102b24 !important;
  font-size: 15px !important;
  font-weight: 750 !important;
  accent-color: var(--ago-coral);
}

.booking-bar[data-agoversion-phase18-booking="ready"] .booking-bar__button {
  position: relative;
  min-height: 72px !important;
  overflow: hidden;
  border: 0 !important;
  color: #10261f !important;
  background: linear-gradient(105deg, var(--ago-mango), #ffe28a 37%, #ff927c 69%, #ef708c) !important;
  box-shadow: inset 0 1px #ffffffbd, 0 12px 30px #db674234 !important;
  font-size: 12px !important;
  font-weight: 950 !important;
  letter-spacing: .095em !important;
  text-shadow: 0 1px #fff6;
  transition: transform 220ms ease, filter 220ms ease, box-shadow 220ms ease;
}

.booking-bar[data-agoversion-phase18-booking="ready"] .booking-bar__button::before {
  content: "";
  position: absolute;
  inset: -60% auto -60% -45%;
  width: 30%;
  transform: skewX(-18deg);
  background: linear-gradient(90deg, transparent, #fff9, transparent);
  animation: agoversion-booking-shine 5.8s ease-in-out infinite;
}

.booking-bar[data-agoversion-phase18-booking="ready"] .booking-bar__button:hover {
  filter: saturate(1.12) brightness(1.03);
  transform: translateY(-2px);
  box-shadow: inset 0 1px #fff, 0 18px 38px #cf573b45 !important;
}

.booking-bar[data-agoversion-phase18-booking="ready"] .booking-bar__button svg {
  width: 26px;
  height: 26px;
  padding: 5px;
  border-radius: 50%;
  color: #fff;
  background: #173f35;
  transition: transform 220ms ease;
}

.booking-bar[data-agoversion-phase18-booking="ready"] .booking-bar__button:hover svg {
  transform: translateX(4px) rotate(-8deg);
}

.mobile-dock__book[data-agoversion-phase18-book="ready"] {
  position: relative;
  isolation: isolate;
  margin: -9px 3px 5px !important;
  min-height: 68px !important;
  border: 1px solid #fff7bb94 !important;
  border-radius: 22px 8px 22px 8px !important;
  color: #11281f !important;
  background: linear-gradient(145deg, #ffe16f, var(--ago-mango) 38%, #ff8d73 74%, #eb739c) !important;
  box-shadow: 0 14px 28px #061a1666, inset 0 1px #fff !important;
  transform: translateY(-2px);
}

.mobile-dock__book[data-agoversion-phase18-book="ready"]::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -5px;
  border: 1px solid #ffca5666;
  border-radius: 26px 11px 26px 11px;
  opacity: .5;
  animation: agoversion-booking-pulse 3.8s ease-in-out infinite;
}

.mobile-dock__book[data-agoversion-phase18-book="ready"]::after {
  margin: 0 !important;
  font-size: 9px !important;
}

.mobile-dock__book[data-agoversion-phase18-book="ready"] svg {
  filter: drop-shadow(0 1px #fff8);
}

.agoversion-intent-navigator {
  position: relative;
  overflow: hidden;
  padding: clamp(76px, 8vw, 124px) max(18px, calc((100vw - 1240px) / 2));
  color: var(--ago-ink-deep);
  background:
    radial-gradient(circle at 8% 8%, #ffbf3f4a 0 6%, transparent 27%),
    radial-gradient(circle at 94% 92%, #18aaa242 0 8%, transparent 29%),
    linear-gradient(145deg, #fff4d8, #ffe8de 48%, #dff1e9);
}

.agoversion-intent-navigator::before,
.agoversion-intent-navigator::after {
  content: "";
  position: absolute;
  width: 180px;
  height: 180px;
  border: 1px solid #16473c26;
  border-radius: 50% 42% 58% 47%;
  pointer-events: none;
}

.agoversion-intent-navigator::before { top: -94px; left: 18%; transform: rotate(22deg); }
.agoversion-intent-navigator::after { right: -90px; bottom: -98px; transform: rotate(-14deg); }

.agoversion-intent-navigator__header {
  position: relative;
  z-index: 1;
  max-width: 1240px;
  margin: 0 auto 38px;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  align-items: end;
  gap: clamp(28px, 6vw, 86px);
}

.agoversion-intent-navigator__header h2 {
  max-width: 11ch;
  margin: 12px 0 0;
  color: #132d26;
  font-size: clamp(44px, 5.4vw, 76px);
  line-height: .96;
  letter-spacing: -.045em;
}

.agoversion-intent-navigator__header p {
  max-width: 50ch;
  margin: 0;
  color: #3d5b52;
  font-size: clamp(15px, 1.35vw, 18px);
  line-height: 1.65;
}

.agoversion-intent-navigator__header nav {
  margin-top: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
}

.agoversion-intent-navigator__header nav a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid #0f756c;
  color: #0a6a63;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.agoversion-intent-navigator__rail {
  position: relative;
  z-index: 1;
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.agoversion-intent-card {
  position: relative;
  min-height: clamp(310px, 33vw, 430px);
  overflow: hidden;
  border: 1px solid #ffffff70;
  border-radius: 30px 10px 30px 10px;
  background: #173b31;
  box-shadow: 0 22px 52px #17382f24;
}

.agoversion-intent-card:nth-child(3n + 2) { border-radius: 10px 30px 10px 30px; }
.agoversion-intent-card:nth-child(3n) { border-radius: 30px; }

.agoversion-intent-card figure,
.agoversion-intent-card figure::after,
.agoversion-intent-card figure img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.agoversion-intent-card figure { margin: 0; }

.agoversion-intent-card figure::after {
  content: "";
  z-index: 2;
  background: linear-gradient(180deg, #09221a10 10%, #09221a62 54%, #071b16ef 100%);
}

.agoversion-intent-card figure img {
  object-fit: cover;
  opacity: 0;
  transform: scale(1.04);
  animation: agoversion-intent-cycle var(--ago-intent-cycle) ease-in-out infinite;
}

.agoversion-intent-card figure img:nth-child(2) {
  animation-delay: calc(var(--ago-intent-cycle) / -2);
}

.agoversion-intent-card a {
  position: absolute;
  z-index: 3;
  inset: 0;
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: end;
  color: #fff;
}

.agoversion-intent-card a > span {
  position: absolute;
  top: 20px;
  left: 20px;
  width: 40px;
  height: 40px;
  border: 1px solid #fff7;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #152f27;
  background: #fff3cdd9;
  font-size: 10px;
  font-weight: 900;
  backdrop-filter: blur(8px);
}

.agoversion-intent-card h3 {
  margin: 0 0 8px;
  color: #fff9ec;
  font-size: clamp(30px, 3vw, 45px);
  line-height: .95;
  letter-spacing: -.03em;
}

.agoversion-intent-card p {
  max-width: 35ch;
  margin: 0;
  color: #f6eee0;
  font-size: 13px;
  line-height: 1.45;
}

.agoversion-intent-card strong {
  margin-top: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #ffd86e;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.agoversion-intent-card strong b {
  font-size: 15px;
  transition: transform 220ms ease;
}

.agoversion-intent-card:hover strong b { transform: translate(3px, -3px); }
.agoversion-intent-card:hover figure img { filter: saturate(1.1) contrast(1.02); }

/* Lower-home color rhythm: each useful block keeps its job but loses the
   industrial stack-of-gray-cards feeling. */
.home-signals {
  background:
    radial-gradient(circle at 6% 9%, #ffbf3f30 0 5%, transparent 24%),
    radial-gradient(circle at 96% 78%, #18aaa22e 0 7%, transparent 27%),
    linear-gradient(145deg, #fff4dc, #fff9ee 44%, #e3f2ed) !important;
}

.home-signals__intro::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -14px;
  width: min(180px, 45vw);
  height: 5px;
  display: block;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--ago-coral), var(--ago-mango), var(--ago-lagoon));
}

.home-signals__intro { position: relative; }

.home-signal-card {
  overflow: hidden;
  border: 1px solid #19483b20 !important;
  border-radius: 28px 9px 28px 9px !important;
  background: #fffdf7dd !important;
  box-shadow: 0 22px 48px #163c3115 !important;
}

.home-signal-card:nth-child(even) { border-radius: 9px 28px 9px 28px !important; }
.home-signal-card:nth-child(3n) { border-radius: 28px !important; }

.home-signal-card .eyebrow,
.home-signal-card [class*="eyebrow"] {
  color: #cf5042 !important;
}

.home-signal-card :is(.text-link, a[class*="link"]) {
  color: #08776f !important;
}

.home-trip-summary {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 88% 15%, #cf6da13d 0 7%, transparent 31%),
    radial-gradient(circle at 8% 92%, #18aaa23b 0 8%, transparent 31%),
    linear-gradient(135deg, #102820, #162f27 55%, #0f241e) !important;
}

.home-trip-summary::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -90px;
  right: 12%;
  width: 240px;
  height: 240px;
  border: 1px solid #ffca6266;
  border-radius: 46% 54% 42% 58%;
  transform: rotate(18deg);
}

.home-trip-summary__status span {
  border-color: #ffffff1f !important;
  background: #ffffff0c !important;
}

.home-trip-summary__status span:nth-child(1) svg { color: var(--ago-mango); }
.home-trip-summary__status span:nth-child(2) svg { color: #68d9ca; }
.home-trip-summary__status span:nth-child(3) svg { color: #f18bb8; }

.home-trip-summary__actions .button--gold {
  color: #11281f !important;
  background: linear-gradient(105deg, var(--ago-mango), #ffe38b 42%, #ff8d78 76%, #ef739b) !important;
  box-shadow: 0 14px 30px #060f0c55 !important;
}

.friends-strip {
  background:
    radial-gradient(circle at 88% 12%, #ff725e2d 0 8%, transparent 27%),
    linear-gradient(155deg, #fff7e6, #f5ecdf 48%, #dff1e9) !important;
}

.friends-strip .friend-card {
  overflow: hidden;
  border: 1px solid #ffffff91 !important;
  border-radius: 26px 8px 26px 8px !important;
  box-shadow: 0 20px 44px #153b301c !important;
}

.friends-strip .friend-card:nth-child(even) { border-radius: 8px 26px 8px 26px !important; }

.friends-strip__filters button[aria-pressed="true"],
.friends-strip__filters button.is-active {
  color: #11291f !important;
  background: linear-gradient(105deg, var(--ago-mango), #ff9b7d) !important;
}

.site-footer .footer-cta {
  position: relative;
}

.site-footer .footer-cta::before {
  content: "";
  width: min(560px, 78vw);
  height: 3px;
  margin: 0 auto 30px;
  display: block;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, var(--ago-coral), var(--ago-mango), var(--ago-lagoon), transparent);
}

.site-footer[data-agoversion-footer="compact"] .footer-guide > * {
  border-color: #ffffff22 !important;
  background: linear-gradient(145deg, #ffffff09, #ffffff03) !important;
}

@keyframes agoversion-booking-border {
  to { background-position: 260% 0; }
}

@keyframes agoversion-booking-shine {
  0%, 62% { left: -45%; }
  84%, 100% { left: 125%; }
}

@keyframes agoversion-booking-pulse {
  0%, 100% { opacity: .28; transform: scale(.96); }
  50% { opacity: .72; transform: scale(1.025); }
}

@keyframes agoversion-intent-cycle {
  0%, 42% { opacity: 1; transform: scale(1.04) translate3d(0, 0, 0); }
  50%, 92% { opacity: 0; transform: scale(1.12) translate3d(1.5%, -1%, 0); }
  100% { opacity: 1; transform: scale(1.04) translate3d(0, 0, 0); }
}

@media (min-width: 901px) {
  .home-signals { padding-block: 90px !important; }
  .booking-bar[data-agoversion-phase18-booking="ready"] {
    grid-template-columns: 1.2fr 1.2fr .72fr .72fr .72fr 1.35fr !important;
    gap: 0 !important;
  }
}

@media (max-width: 900px) {
  .agoversion-intent-navigator__header { grid-template-columns: 1fr; gap: 20px; }
  .agoversion-intent-navigator__header h2 { max-width: 12ch; }
  .agoversion-intent-navigator__rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .booking-bar[data-agoversion-phase18-booking="ready"] {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    border-radius: 22px 8px 22px 8px !important;
  }

  .booking-bar__phase18-ribbon {
    padding: 10px 13px;
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

  .booking-bar__phase18-ribbon small { padding-left: 18px; font-size: 10px; }
  .booking-bar[data-agoversion-phase18-booking="ready"] > label > span {
    font-size: 9px !important;
    letter-spacing: .06em !important;
  }
  .booking-bar[data-agoversion-phase18-booking="ready"] > label:nth-of-type(1),
  .booking-bar[data-agoversion-phase18-booking="ready"] > label:nth-of-type(2) { grid-column: span 3; }
  .booking-bar[data-agoversion-phase18-booking="ready"] > label:nth-of-type(n + 3) { grid-column: span 2; }
  .booking-bar[data-agoversion-phase18-booking="ready"] .booking-bar__button { grid-column: 1 / -1; min-height: 64px !important; }

  .agoversion-intent-navigator { padding: 74px 18px 82px; }
  .agoversion-intent-navigator__header { margin-bottom: 28px; }
  .agoversion-intent-navigator__header h2 { font-size: clamp(42px, 12vw, 56px); }
  .agoversion-intent-navigator__header p { font-size: 15px; }
  .agoversion-intent-navigator__header nav { display: grid; }
  .agoversion-intent-navigator__rail {
    width: calc(100% + 36px);
    margin-inline: -18px;
    padding: 0 18px 14px;
    display: flex;
    gap: 11px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: #13766a #ffffff66;
  }
  .agoversion-intent-card {
    flex: 0 0 min(82vw, 324px);
    min-height: 420px;
    scroll-snap-align: center;
  }
  .agoversion-intent-card a { padding: 22px; }
  .agoversion-intent-card h3 { font-size: 38px; }
}

@media (max-width: 340px) {
  .booking-bar[data-agoversion-phase18-booking="ready"] > label { padding-inline: 9px !important; }
  .booking-bar[data-agoversion-phase18-booking="ready"] :is(input, select) { font-size: 13px !important; }
  .booking-bar__phase18-ribbon small { max-width: 27ch; }
  .agoversion-intent-card { flex-basis: 86vw; min-height: 400px; }
}

@media (prefers-reduced-motion: reduce) {
  .booking-bar[data-agoversion-phase18-booking="ready"]::after,
  .booking-bar[data-agoversion-phase18-booking="ready"] .booking-bar__button::before,
  .mobile-dock__book[data-agoversion-phase18-book="ready"]::before,
  .agoversion-intent-card figure img {
    animation: none !important;
  }

  .agoversion-intent-card figure img:first-child { opacity: 1; transform: none; }
  .agoversion-intent-card figure img:nth-child(n + 2) { opacity: 0; }
  .booking-bar[data-agoversion-phase18-booking="ready"] :is(label, .booking-bar__button, svg),
  .agoversion-intent-card strong b { transition: none !important; }
}
