/*
 * Conversion layer: CTA buttons, reveal-code widgets, offer sections,
 * treatment cards, reviews, gallery, location and quick-contact bars.
 */

:root {
  --wa: #128c4b;
  --wa-hover: #0f7a41;
  --wa-bright: #25d366;
  --gold-grad: linear-gradient(135deg, #ecd6a2 0%, #c89a52 55%, #b3833f 100%);
  --space-section: clamp(3.5rem, 6vw, 6rem);
}

/* ---------- CTA buttons ---------- */
.cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  min-height: 3.25rem;
  padding: .6rem 1.5rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font: 700 .8rem/1.2 var(--font-body);
  letter-spacing: .08em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
  overflow: hidden;
  transition: transform var(--trans-fast), filter var(--trans-base), background var(--trans-base), color var(--trans-base), border-color var(--trans-base), box-shadow var(--trans-base);
}

.cta svg { flex: 0 0 auto; }
.cta:active { transform: scale(.98); }
.cta:focus-visible { outline: 2px solid var(--c-aura-gold); outline-offset: 3px; }
.cta[hidden] { display: none; }

.cta--wa {
  background: var(--wa);
  color: #fff;
  box-shadow: 0 10px 24px -12px rgba(18, 140, 75, .8);
}
.cta--wa:hover { background: var(--wa-hover); color: #fff; }

.cta--gold {
  background: var(--gold-grad);
  color: #1a1411;
  box-shadow: 0 10px 24px -12px rgba(200, 154, 82, .8), inset 0 1px 0 rgba(255, 255, 255, .35);
}
.cta--gold:hover { filter: brightness(1.06); color: #1a1411; }

.cta--dark { background: var(--c-velvet-charcoal); color: var(--c-warm-ivory); }
.cta--dark:hover { background: var(--c-espresso); color: var(--c-warm-ivory); }

.cta--outline { background: transparent; color: var(--text-primary); border-color: var(--c-aura-gold); }
.cta--outline:hover { background: var(--c-champagne-gold); color: var(--c-velvet-charcoal); }

.cta--outline-light,
.cta--ghost { background: rgba(255, 255, 255, .04); color: var(--c-warm-ivory); border-color: rgba(246, 240, 231, .3); }
.cta--outline-light:hover,
.cta--ghost:hover { border-color: var(--c-champagne-gold); background: rgba(217, 186, 122, .12); color: #f3dca4; }

.cta--lg { min-height: 3.75rem; padding-inline: 2rem; font-size: .88rem; }
.cta--sm { min-height: 2.6rem; padding: .4rem .9rem; font-size: .7rem; letter-spacing: .06em; gap: .4rem; }
.cta--block { width: 100%; }

.cta--shine::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .5) 50%, transparent 70%);
  transform: translateX(-120%);
  animation: cta-shine 3.2s ease-in-out infinite;
}

.cta--pulse { animation: cta-pulse 2.2s ease-out infinite; }

@keyframes cta-shine {
  0%, 55% { transform: translateX(-120%); }
  100% { transform: translateX(120%); }
}

@keyframes cta-pulse {
  0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .55); }
  70% { box-shadow: 0 0 0 14px rgba(37, 211, 102, 0); }
  100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}

/* ---------- Live badge + countdown ---------- */
.live-badge {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .35rem .85rem;
  border: 1px solid rgba(217, 186, 122, .45);
  border-radius: 999px;
  background: rgba(217, 186, 122, .1);
  color: #f3dca4;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.live-badge__dot {
  display: inline-block;
  width: .5rem;
  height: .5rem;
  border-radius: 50%;
  background: #ff5a5a;
  box-shadow: 0 0 0 0 rgba(255, 90, 90, .6);
  animation: live-dot 1.6s ease-out infinite;
  vertical-align: middle;
}

@keyframes live-dot {
  0% { box-shadow: 0 0 0 0 rgba(255, 90, 90, .6); }
  100% { box-shadow: 0 0 0 8px rgba(255, 90, 90, 0); }
}

.countdown {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
}

.countdown__unit {
  display: grid;
  min-width: 4.1rem;
  padding: .55rem .4rem .45rem;
  border: 1px solid rgba(217, 186, 122, .35);
  border-radius: .8rem;
  background: rgba(0, 0, 0, .35);
  text-align: center;
}

.countdown__unit b {
  color: #f6e3b4;
  font: 600 1.9rem/1 var(--font-display);
  font-variant-numeric: tabular-nums;
}

.countdown__unit small {
  margin-top: .2rem;
  color: rgba(246, 240, 231, .55);
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.countdown i {
  color: rgba(217, 186, 122, .7);
  font: normal 1.5rem/1 var(--font-display);
}

[data-code-timer] { font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ---------- Reveal widget ---------- */
.reveal-box {
  display: grid;
  gap: .75rem;
  width: 100%;
}

.reveal-box__code,
.offer-ticket__code-box {
  position: relative;
  display: grid;
  place-items: center;
  gap: .15rem;
  width: 100%;
  min-height: 4.25rem;
  padding: .6rem;
  border: 1.5px dashed rgba(217, 186, 122, .55);
  border-radius: .9rem;
  background:
    repeating-linear-gradient(135deg, rgba(217, 186, 122, .06) 0 8px, transparent 8px 16px),
    rgba(0, 0, 0, .3);
  color: inherit;
  font: inherit;
  cursor: default;
}

.reveal-box__label,
.offer-ticket__code-label {
  color: rgba(246, 240, 231, .55);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.reveal-box__value,
.offer-ticket__code {
  color: rgba(246, 240, 231, .85);
  font: 700 clamp(1.25rem, 4.5vw, 1.55rem)/1.2 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  letter-spacing: .16em;
}

.is-revealed .reveal-box__code,
.is-revealed .offer-ticket__code-box {
  border-style: solid;
  border-color: var(--c-champagne-gold);
  background: rgba(217, 186, 122, .12);
  cursor: copy;
}

.is-revealed .reveal-box__value,
.is-revealed .offer-ticket__code {
  color: #f6e3b4;
  text-shadow: 0 0 18px rgba(217, 186, 122, .5);
}

.is-popping { animation: code-pop .5s cubic-bezier(.22, 1, .36, 1); }

@keyframes code-pop {
  0% { transform: scale(.94); }
  60% { transform: scale(1.03); }
  100% { transform: scale(1); }
}

.reveal-box__copied {
  position: absolute;
  top: .4rem;
  right: .6rem;
  color: var(--wa-bright);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.reveal-box__copied[hidden] { display: none; }

.reveal-box__after,
.offer-ticket__redeem {
  display: grid;
  gap: .6rem;
  animation: offer-fade .45s ease both;
}

.reveal-box__after[hidden],
.offer-ticket__redeem[hidden] { display: none; }

.reveal-box__hint {
  margin: 0;
  color: rgba(246, 240, 231, .6);
  font-size: .72rem;
  text-align: center;
}

@keyframes offer-fade {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}

/* ---------- Announcement ---------- */
.announcement {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .25rem 1rem;
  padding: .5rem 1rem;
  background: var(--c-deep-plum);
  color: var(--c-warm-ivory);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: .06em;
  text-align: center;
  text-transform: uppercase;
}

.announcement strong { color: #f6e3b4; }
.announcement a { color: var(--c-champagne-gold); font-weight: 700; text-decoration: none; }
.announcement a:hover { text-decoration: underline; }

/* ---------- Header ---------- */
.header-actions { display: flex; gap: .5rem; }
.header-actions .cta { white-space: nowrap; }

.mobile-wa-icon {
  display: none;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: var(--wa);
  color: #fff;
}

@media (max-width: 48rem) {
  .header-actions { display: none; }
  .mobile-wa-icon { display: inline-flex; }
  .booking-steps { gap: var(--space-6); }
  .site-header__inner { min-height: 4.5rem; }
}

/* ---------- Hero ---------- */
.hero { min-height: max(calc(100svh - 7.5rem), 36rem); padding-block: clamp(3rem, 7vh, 6rem); }
.hero__copy { margin-bottom: var(--space-6); }
.hero__offer {
  margin-bottom: var(--space-6);
  padding: .9rem 1.5rem;
  border: 1px solid rgba(217, 186, 122, .35);
  border-radius: 1rem;
  background: rgba(23, 20, 18, .45);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.hero__offer-label { display: flex; align-items: center; justify-content: center; gap: .5rem; }
.hero__offer-meta { margin: 0; color: var(--c-soft-sand); font-size: var(--text-sm); }
.hero__offer-meta strong { color: #f6e3b4; }

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .75rem;
  margin-bottom: var(--space-4);
}

.hero__reveal-link {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-bottom: var(--space-6);
  color: #f3dca4;
  font-size: var(--text-sm);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.hero__trust { flex-wrap: wrap; text-transform: none; letter-spacing: .02em; }
.hero__trust::before, .hero__trust::after { display: none; }
.hero__rating { display: inline-flex; align-items: center; gap: .4rem; color: var(--c-warm-ivory); text-decoration: none; }
.hero__rating strong { color: #fff; }
.hero__stars { color: #f5b400; letter-spacing: .05em; }

/* ---------- Flash deal ---------- */
.offers { padding-block: clamp(3rem, 6vw, 5rem); }

.flash-deal {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: center;
  margin-bottom: clamp(3rem, 6vw, 4.5rem);
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid rgba(217, 186, 122, .45);
  border-radius: 1.5rem;
  background:
    radial-gradient(30rem 18rem at 0% 0%, rgba(200, 154, 82, .22), transparent 70%),
    linear-gradient(150deg, #4a263d 0%, #2c1624 55%, #1a0f16 100%);
  box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .9);
}

.flash-deal__title {
  margin: 1rem 0 .5rem;
  font-size: clamp(3rem, 8vw, 5.25rem);
  font-weight: 600;
  line-height: .95;
  background: linear-gradient(180deg, #fbeabf 0%, #d9ba7a 50%, #a9793f 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.flash-deal__sub { margin-bottom: .75rem; color: var(--c-warm-ivory); font-size: var(--text-lg); }
.flash-deal__note { margin-bottom: 1.25rem; color: rgba(246, 240, 231, .7); font-size: var(--text-sm); }

.flash-deal__points {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.flash-deal__points li {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: #f3dca4;
  font-size: .78rem;
  font-weight: 600;
}

.flash-deal__side {
  display: grid;
  gap: 1rem;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border: 1px solid rgba(217, 186, 122, .25);
  border-radius: 1.25rem;
  background: rgba(0, 0, 0, .28);
}

.flash-deal__ends {
  margin: 0;
  color: rgba(246, 240, 231, .7);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-align: center;
  text-transform: uppercase;
}

.offers__intro { margin-bottom: clamp(2rem, 4vw, 3rem); }
.offer-ticket__stub { gap: .75rem; }
.offer-ticket__hint strong { color: #f6e3b4; }
.offer-ticket__terms { margin-top: 0; }

@media (max-width: 56rem) {
  .flash-deal { grid-template-columns: 1fr; text-align: center; }
  .flash-deal__points { justify-content: center; }
}

/* ---------- Treatment grid ---------- */
.services__head { margin-bottom: 1.5rem; }
.services__head .section__title { max-width: 30ch; }
.services__head .section__copy { max-width: 60ch; margin-bottom: 0; }

.services__filters {
  display: flex;
  gap: .5rem;
  margin: 0 0 1.75rem;
  padding-bottom: .25rem;
  overflow-x: auto;
  scrollbar-width: none;
}

.services__filters::-webkit-scrollbar { display: none; }

.services__chip {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 2.75rem;
  padding: .5rem 1.1rem;
  border: 1px solid rgba(140, 122, 109, .35);
  border-radius: 999px;
  background: var(--bg-primary);
  color: var(--text-primary);
  font: 600 .82rem/1 var(--font-body);
  cursor: pointer;
  transition: background var(--trans-fast), color var(--trans-fast), border-color var(--trans-fast);
}

.services__chip span {
  display: inline-grid;
  place-items: center;
  min-width: 1.4rem;
  height: 1.4rem;
  border-radius: 999px;
  background: rgba(140, 122, 109, .15);
  font-size: .7rem;
}

.services__chip:hover { border-color: var(--c-aura-gold); }
.services__chip.is-active { background: var(--c-velvet-charcoal); border-color: var(--c-velvet-charcoal); color: var(--c-warm-ivory); }
.services__chip.is-active span { background: rgba(246, 240, 231, .18); }
.services__chip:focus-visible { outline: 2px solid var(--c-aura-gold); outline-offset: 2px; }

.services__grid {
  --cols: 3;
  display: grid;
  grid-template-columns: repeat(var(--cols), minmax(0, 1fr));
  gap: 1.5rem;
}

.service-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border: 1px solid rgba(140, 122, 109, .22);
  border-radius: 1rem;
  background: var(--bg-primary);
  overflow: hidden;
  transition: transform var(--trans-base), box-shadow var(--trans-base), border-color var(--trans-base);
}

.service-card[hidden] { display: none; }

.service-card:hover {
  transform: translateY(-4px);
  border-color: var(--c-champagne-gold);
  box-shadow: 0 24px 40px -24px rgba(23, 20, 18, .35);
}

.service-card__media {
  position: relative;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: var(--bg-secondary);
}

.service-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--trans-slow);
}

.service-card:hover .service-card__media img { transform: scale(1.05); }

.service-card__badge {
  position: absolute;
  top: .75rem;
  left: .75rem;
  padding: .3rem .7rem;
  border-radius: 999px;
  background: rgba(255, 250, 243, .94);
  color: var(--c-velvet-charcoal);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.service-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 1.25rem 1.25rem 1.35rem;
}

.service-card__title {
  margin-bottom: .45rem;
  color: var(--text-primary);
  font-size: 1.55rem;
  font-weight: 500;
  line-height: 1.15;
}

.service-card__desc {
  margin-bottom: .85rem;
  font-size: .88rem;
  line-height: 1.55;
}

.service-card__best {
  margin-bottom: .6rem;
  color: var(--text-primary);
  font-size: .82rem;
  line-height: 1.45;
}

.service-card__best span {
  display: block;
  margin-bottom: .1rem;
  color: #8a6a2f;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.service-card__offer {
  display: flex;
  align-items: center;
  gap: .35rem;
  margin-bottom: 1rem;
  color: var(--wa);
  font-size: .78rem;
  font-weight: 600;
}

/* Buttons always sit on the card's bottom edge so every row lines up */
.service-card__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .5rem;
  margin-top: auto;
}

.cta--card {
  min-height: 3.1rem;
  padding: .45rem .6rem;
  border-radius: .7rem;
  gap: .5rem;
  font-size: .74rem;
  letter-spacing: .06em;
}

.cta--card span { display: grid; text-align: left; line-height: 1.15; }

.cta--card small {
  font-size: .6rem;
  font-weight: 500;
  letter-spacing: .02em;
  text-transform: none;
  opacity: .85;
}

/* Fills the last row so the grid never ends with a gap */
.service-help {
  grid-column: span var(--help-span, 2);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .75rem;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border-radius: 1rem;
  background:
    radial-gradient(22rem 14rem at 100% 0%, rgba(200, 154, 82, .22), transparent 70%),
    linear-gradient(150deg, #2a211c 0%, #171412 100%);
  color: var(--c-warm-ivory);
}

.service-help__eyebrow {
  margin: 0;
  color: var(--c-champagne-gold);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.service-help__title {
  max-width: 30ch;
  margin: 0 0 .5rem;
  color: var(--c-warm-ivory);
  font: 400 clamp(1.5rem, 2.6vw, 2rem)/1.2 var(--font-display);
}

.service-help__title em { color: #f3dca4; }
.service-help__actions { display: flex; flex-wrap: wrap; gap: .6rem; }

@media (max-width: 64rem) {
  .services__grid { --cols: 2; gap: 1.25rem; }
  .service-help { grid-column: span var(--help-span, 1); }
}

/* Mobile: horizontal cards — image left, details right, one per row */
@media (max-width: 40rem) {
  .services__grid { --cols: 1; gap: .9rem; }

  .service-card { flex-direction: row; }
  .service-card:hover { transform: none; }

  .service-card__media {
    flex: 0 0 38%;
    aspect-ratio: auto;
    min-height: 100%;
  }

  .service-card__media img { position: absolute; inset: 0; }

  .service-card__badge {
    top: .5rem;
    left: .5rem;
    padding: .25rem .5rem;
    font-size: .52rem;
    letter-spacing: .08em;
  }

  .service-card__body { padding: .85rem .8rem .9rem; min-width: 0; }
  .service-card__title { margin-bottom: .3rem; font-size: 1.25rem; }

  .service-card__desc {
    display: -webkit-box;
    margin-bottom: .5rem;
    overflow: hidden;
    font-size: .78rem;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
  }

  .service-card__best { margin-bottom: .45rem; font-size: .74rem; }
  .service-card__offer { display: none; }
  .service-card__best { margin-bottom: .7rem; }

  .service-card__actions { grid-template-columns: 1fr; gap: .4rem; }
  .cta--card { min-height: 2.85rem; justify-content: flex-start; padding-inline: .75rem; }

  .service-help { grid-column: 1 / -1; text-align: center; align-items: center; }
  .service-help__actions { flex-direction: column; width: 100%; }
  .service-help__actions .cta { width: 100%; }
}

/* ---------- Why us ---------- */
.why-us__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem 3rem;
  margin-bottom: clamp(2rem, 4vw, 3rem);
}

.why-us__head .section__title { margin-bottom: 0; }

.why-us__stats {
  display: grid;
  grid-template-columns: repeat(4, auto);
  gap: 0;
  margin: 0;
  border: 1px solid var(--border-light);
  border-radius: 1rem;
  background: #fff8ee;
  overflow: hidden;
}

.why-us__stats div { padding: .9rem 1.4rem; text-align: center; }
.why-us__stats div + div { border-left: 1px solid var(--border-light); }
.why-us__stats dt { order: 2; color: var(--text-secondary); font-size: .65rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.why-us__stats dd { margin: 0 0 .2rem; color: var(--text-primary); font: 600 2rem/1 var(--font-display); }
.why-us__stats dd span { color: #f5b400; font-size: 1.2rem; }
.why-us__stats div { display: flex; flex-direction: column-reverse; }

.why-us__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.why-us__item {
  padding: 1.5rem;
  border: 1px solid var(--border-light);
  border-radius: 1rem;
  background: #fffaf3;
  transition: border-color var(--trans-base), transform var(--trans-base);
}

.why-us__item:hover { border-color: var(--c-champagne-gold); transform: translateY(-3px); }

.why-us__icon {
  display: grid;
  place-items: center;
  width: 2.9rem;
  height: 2.9rem;
  margin-bottom: 1rem;
  border-radius: 50%;
  background: rgba(200, 154, 82, .14);
  color: var(--c-aura-gold);
}

.why-us__title { margin-bottom: .4rem; font-size: 1.35rem; font-weight: 600; }
.why-us__copy { margin: 0; font-size: .85rem; line-height: 1.55; }

.why-us__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .75rem;
  margin-top: clamp(2rem, 4vw, 2.75rem);
}

@media (max-width: 64rem) {
  .why-us__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 40rem) {
  .why-us__stats { grid-template-columns: repeat(2, 1fr); width: 100%; }
  .why-us__stats div:nth-child(3) { border-left: 0; }
  .why-us__stats div:nth-child(n+3) { border-top: 1px solid var(--border-light); }
  .why-us__grid { gap: .75rem; }
  .why-us__item { padding: 1rem; }
  .why-us__title { font-size: 1.1rem; }
  .why-us__copy { font-size: .78rem; }
}

/* ---------- Experience (tighter) ---------- */
.experience-pillars { margin-top: var(--space-8); gap: var(--space-6); }

/* ---------- Jacuzzi ---------- */
.jacuzzi-actions { gap: .75rem; }
.jacuzzi-highlights { margin-block: var(--space-6); }

/* ---------- Couple offer ---------- */
.couple-offer { padding-block: var(--space-section); }

.couple-offer__box {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  border: 1px solid rgba(200, 154, 82, .35);
  border-radius: 1.5rem;
  background: #fffaf3;
  overflow: hidden;
  box-shadow: 0 30px 60px -40px rgba(74, 38, 61, .5);
}

.couple-offer__media { position: relative; min-height: 20rem; }
.couple-offer__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.couple-offer__badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  display: grid;
  place-items: center;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 50%;
  background: var(--c-deep-plum);
  color: #f6e3b4;
  font: 600 1.6rem/1 var(--font-display);
  text-align: center;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .35);
  align-content: center;
}

.couple-offer__badge small { font: 700 .6rem/1.4 var(--font-body); letter-spacing: .16em; text-transform: uppercase; }

.couple-offer__content { padding: clamp(1.75rem, 4vw, 3.25rem); align-self: center; }
.couple-offer__title { margin-bottom: .75rem; font-size: clamp(2rem, 4vw, 2.9rem); }
.couple-offer__copy { max-width: 42ch; margin-bottom: 1.5rem; }
.couple-offer__actions { display: flex; flex-wrap: wrap; gap: .75rem; }

@media (max-width: 48rem) {
  .couple-offer__box { grid-template-columns: 1fr; }
  .couple-offer__media { min-height: 14rem; }
  .couple-offer__badge { width: 5.25rem; height: 5.25rem; font-size: 1.3rem; }
  .couple-offer__actions .cta { width: 100%; }
}

/* ---------- Reviews ---------- */
.reviews__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: clamp(1.75rem, 4vw, 2.5rem);
}

.reviews__head .section__title { margin-bottom: 0; }

.reviews__score {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.4rem;
  border: 1px solid var(--border-light);
  border-radius: 1rem;
  background: #fff;
  color: var(--text-primary);
  text-decoration: none;
  box-shadow: 0 12px 30px -20px rgba(23, 20, 18, .4);
  transition: transform var(--trans-base), box-shadow var(--trans-base);
}

.reviews__score:hover { transform: translateY(-2px); box-shadow: 0 18px 36px -20px rgba(23, 20, 18, .5); }
.reviews__score-body { display: grid; gap: .15rem; }
.reviews__score-top { display: flex; align-items: center; gap: .6rem; }
.reviews__rating { font: 600 2.2rem/1 var(--font-display); }
.reviews__count { color: var(--text-secondary); font-size: .8rem; }

.stars { display: inline-flex; gap: .1rem; color: #f5b400; }

.reviews__rail {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(13rem, 100%), 1fr));
  gap: 1rem;
}

.review-card {
  display: flex;
  flex-direction: column;
  gap: .6rem;
  min-width: 0;
  padding: 1.25rem;
  border: 1px solid rgba(140, 122, 109, .2);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 10px 30px -24px rgba(23, 20, 18, .45);
}

.review-card__head { display: flex; align-items: center; gap: .7rem; }

.review-card__avatar {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: var(--c-deep-plum);
  color: #f6e3b4;
  font-size: .8rem;
  font-weight: 700;
}

.review-card__who { display: grid; flex: 1; min-width: 0; line-height: 1.25; }
.review-card__who strong { overflow: hidden; color: var(--text-primary); font-size: .88rem; text-overflow: ellipsis; white-space: nowrap; }
.review-card__who small { color: var(--text-secondary); font-size: .72rem; }
.review-card__source { flex: 0 0 auto; }

.review-card__text { margin: 0; }
.review-card__text p { margin: 0; color: var(--text-primary); font-size: .9rem; line-height: 1.55; }

.reviews__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .75rem;
  margin-top: clamp(1.75rem, 4vw, 2.5rem);
}

@media (max-width: 48rem) {
  .reviews__score { width: 100%; }
  .reviews__rail {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: min(80%, 18rem);
    margin-inline: -1rem;
    padding: .25rem 1rem 1rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 1rem;
    scrollbar-width: none;
  }
  .reviews__rail::-webkit-scrollbar { display: none; }
  .review-card { scroll-snap-align: start; }
  .reviews__actions .cta { width: 100%; }
}

/* ---------- Gallery (always tiles, no holes) ---------- */
#gallery .section__copy { margin-bottom: 0; }

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: clamp(9rem, 17vw, 15rem);
  grid-auto-flow: dense;
  gap: .75rem;
  margin-block: clamp(1.75rem, 4vw, 2.5rem) 0;
}

.gallery-item { height: 100%; border-radius: .75rem; }
.gallery-item--feature { grid-column: span 2; grid-row: span 2; }
.gallery-item--banner { grid-column: 1 / -1; }

@media (max-width: 48rem) {
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 8.5rem; gap: .5rem; }
  .gallery-item--feature { grid-column: 1 / -1; grid-row: span 2; }
}

.conversion-break {
  margin-top: clamp(2rem, 4vw, 3rem);
  padding-top: 0;
  border-top: 0;
}

.conversion-break__title {
  margin-bottom: 1.25rem;
  font-size: clamp(1.5rem, 3.5vw, 2.25rem);
  line-height: 1.2;
}

.conversion-break__title em { color: var(--c-aura-gold); }
.conversion-break__actions { gap: .75rem; }

/* ---------- Facilities ---------- */
.facilities-layout { gap: clamp(2rem, 5vw, 4rem); }

.facilities-grid {
  margin: var(--space-6) 0 0;
  padding: var(--space-6) 0 0;
  list-style: none;
}

.facilities-item::before { display: none; }
.facilities-item svg { color: var(--c-aura-gold); }
.facilities-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: var(--space-8); }
.facilities-visual .img-wrapper { aspect-ratio: 4 / 3; }

@media (min-width: 64rem) {
  .facilities-visual .img-wrapper { aspect-ratio: 4 / 5; max-height: 34rem; }
}

/* ---------- How to book ---------- */
.how-to-book-header { margin-bottom: var(--space-8); }
.booking-steps { gap: var(--space-8); margin-bottom: var(--space-8); }
.booking-step__number { color: var(--c-aura-gold); }
.booking-actions { gap: .75rem; }

/* ---------- Location: card and map side by side (no overlap) ---------- */
.location-panel { grid-template-columns: minmax(0, 1fr); }

.location-map { height: clamp(18rem, 70vw, 24rem); }

.location-map__frame { filter: none; }

@media (min-width: 62rem) {
  .location-panel {
    grid-template-columns: minmax(22rem, 26rem) minmax(0, 1fr);
    min-height: 34rem;
  }

  .location-map {
    order: 2;
    height: auto;
    min-height: 100%;
  }

  .location-card { order: 1; }
}

/* ---------- FAQ ---------- */
.faq-accordion { margin-top: var(--space-8); gap: 0; }
.faq-summary { padding-block: var(--space-4); font-size: var(--text-lg); gap: 1rem; }

.faq-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: var(--space-8);
  padding: 1.25rem 1.5rem;
  border-radius: 1rem;
  background: var(--bg-primary);
}

.faq-cta p { margin: 0; color: var(--text-primary); font-weight: 600; }

/* ---------- Final CTA ---------- */
.final-cta { padding-block: clamp(3.5rem, 8vw, 6rem); }

.final-cta__container {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 26rem);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}

.final-cta__content { align-items: flex-start; text-align: left; }
.final-cta__offer { margin-bottom: 0; }

.final-cta__panel {
  display: grid;
  gap: 1rem;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border: 1px solid rgba(217, 186, 122, .4);
  border-radius: 1.25rem;
  background: rgba(23, 20, 18, .72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.final-cta__panel-title {
  margin: 0;
  color: var(--c-warm-ivory);
  font: 400 1.6rem/1.15 var(--font-display);
  text-align: center;
}

.final-cta__directions {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  color: var(--c-soft-sand);
  font-size: .8rem;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 56rem) {
  .final-cta__container { grid-template-columns: 1fr; }
  .final-cta__content { align-items: center; text-align: center; }
}

/* ---------- Floating actions (desktop) + mobile bar ---------- */
.floating-actions {
  position: fixed;
  right: clamp(1rem, 2.5vw, 1.75rem);
  bottom: clamp(1rem, 2.5vw, 1.75rem);
  z-index: calc(var(--z-header) + 1);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .6rem;
}

.floating-actions__offer {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .7rem 1.1rem;
  border: 0;
  border-radius: 999px;
  background: var(--gold-grad);
  color: #1a1411;
  font: 700 .75rem/1 var(--font-body);
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 12px 30px rgba(43, 23, 36, .35);
  animation: float-bob 3s ease-in-out infinite;
}

.floating-actions__btn {
  display: grid;
  place-items: center;
  width: 3.6rem;
  height: 3.6rem;
  border-radius: 50%;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 12px 28px rgba(23, 20, 18, .35);
  transition: transform var(--trans-fast);
}

.floating-actions__btn:hover { transform: scale(1.06); color: #fff; }
.floating-actions__btn--wa { background: var(--wa-bright); animation: cta-pulse 2.4s ease-out infinite; }
.floating-actions__btn--call { width: 3rem; height: 3rem; background: var(--c-deep-plum); }

@keyframes float-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

.mobile-cta {
  display: none;
  position: fixed;
  inset: auto 0 0;
  z-index: var(--z-header);
  grid-template-columns: 1fr 1fr 1fr;
  padding-bottom: env(safe-area-inset-bottom, 0px);
  background: var(--c-velvet-charcoal);
  box-shadow: 0 -6px 20px rgba(23, 20, 18, .25);
}

.mobile-cta > * {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-height: 3.75rem;
  padding: .5rem;
  border: 0;
  background: transparent;
  color: var(--c-warm-ivory);
  font: 700 .72rem/1.1 var(--font-body);
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
}

.mobile-cta__offer { color: #f3dca4 !important; }
.mobile-cta__call { background: var(--gold-grad) !important; color: #1a1411 !important; }
.mobile-cta__wa { background: var(--wa) !important; color: #fff !important; }

@media (max-width: 48rem) {
  .floating-actions { display: none; }
  .mobile-cta { display: grid; }
}

/* ---------- Offer popup ---------- */
.offer-modal[hidden] { display: none; }

.offer-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: rgba(15, 12, 10, .78);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  animation: offer-fade .3s ease both;
}

.offer-modal__dialog {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 1rem;
  width: min(100%, 28rem);
  max-height: calc(100svh - 2rem);
  overflow-y: auto;
  padding: clamp(1.75rem, 5vw, 2.5rem) clamp(1.25rem, 4vw, 2rem);
  border: 1px solid rgba(217, 186, 122, .5);
  border-radius: 1.5rem;
  background:
    radial-gradient(24rem 14rem at 50% 0%, rgba(200, 154, 82, .22), transparent 70%),
    linear-gradient(160deg, #4a263d 0%, #22121c 100%);
  color: var(--c-warm-ivory);
  text-align: center;
  box-shadow: 0 40px 80px rgba(0, 0, 0, .5);
}

.offer-modal__close {
  position: absolute;
  top: .5rem;
  right: .5rem;
  width: 2.75rem;
  height: 2.75rem;
  border: 0;
  background: transparent;
  color: var(--c-warm-ivory);
  font-size: 1.75rem;
  cursor: pointer;
}

.offer-modal__title {
  margin: 0;
  color: var(--c-warm-ivory);
  font-size: clamp(2rem, 7vw, 2.6rem);
  line-height: 1.05;
}

.offer-modal__title em { color: #f3dca4; font-style: normal; font-weight: 600; }
.offer-modal__copy { margin: 0; color: var(--c-soft-sand); font-size: .88rem; }

.offer-modal__skip {
  border: 0;
  background: transparent;
  color: rgba(246, 240, 231, .55);
  font: 500 .78rem/1 var(--font-body);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

body.offer-modal-open { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  .cta--pulse, .cta--shine::after, .floating-actions__offer, .floating-actions__btn--wa, .live-badge__dot { animation: none !important; }
}

/* ---------- Extra CTA rows ---------- */
.experience-actions,
.faq-cta__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.experience-actions { margin-top: var(--space-8); }
.location-card__ctas { display: grid; gap: .6rem; }

@media (max-width: 40rem) {
  .experience-actions .cta,
  .faq-cta__actions,
  .faq-cta__actions .cta,
  .why-us__actions .cta,
  .conversion-break__actions .cta,
  .facilities-actions .cta,
  .jacuzzi-actions .cta { width: 100%; }
}
