/* Halloween 2026 — shared by /halloween/, /en/halloween/ and the eight night
 * pages. Lifted from the 2026-09 /halloween/ page so the campaign keeps its
 * look. Everything is prefixed .hw so it cannot leak into the shared sheets,
 * and every custom property carries a literal fallback: the page must still
 * read on hotel wifi if style.css fails to load.
 *
 * Mobile-first, measured at 390px. Every tappable thing is >= 44px by
 * construction (.hw-cta 56px, .hw-buy 48px, .hw-inline-link band, .hw-card). */
.hw {
  --hw-ink: var(--black, #0a0806);
  --hw-panel: var(--panel-dark, #15110d);
  --hw-line: var(--border-mid, rgba(184, 150, 12, 0.25));
  --hw-bone: var(--off-white, #f2ebe0);
  --hw-mute: var(--light-gray, #b3aca2);
  --hw-gold: var(--gold, #b8960c);
  --hw-blood: var(--crimson, #b91c1c);
  background: var(--hw-ink);
  color: var(--hw-bone);
  padding: 3.5rem 0 4rem;
  overflow-wrap: anywhere;
}
.hw *, .hw *::before, .hw *::after { box-sizing: border-box; }
.hw__wrap { width: 100%; max-width: 680px; margin: 0 auto; padding: 0 1.25rem; }
.hw__crumb { font-size: 0.8rem; margin: 0 0 1rem; color: var(--hw-mute); }
.hw__stamp {
  font-family: 'Special Elite', monospace;
  font-size: 0.7rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--hw-gold);
  margin: 0 0 0.9rem;
}
.hw__h1 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(2rem, 10vw, 3.4rem);
  line-height: 1.04;
  letter-spacing: -0.01em;
  margin: 0 0 1rem;
  color: var(--hw-bone);
}
.hw__lede { font-size: 1.02rem; line-height: 1.75; color: var(--hw-mute); margin: 0 0 1.5rem; max-width: 46ch; }
.hw__lede strong { color: var(--hw-bone); font-weight: 500; }
.hw__dates {
  font-family: 'Special Elite', monospace;
  font-size: 0.82rem;
  letter-spacing: 0.1em;
  line-height: 2;
  color: var(--hw-bone);
  border-top: 1px solid var(--hw-line);
  border-bottom: 1px solid var(--hw-line);
  padding: 0.9rem 0;
  margin: 0 0 1.75rem;
}
.hw__h2 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.4rem, 6vw, 1.9rem);
  line-height: 1.2;
  margin: 3rem 0 0.75rem;
  color: var(--hw-bone);
}
.hw__h3 { font-family: 'Fraunces', Georgia, serif; font-weight: 400; font-size: 1.15rem; margin: 1.75rem 0 0.5rem; color: var(--hw-bone); }
.hw__p { font-size: 0.95rem; line-height: 1.8; color: var(--hw-mute); margin: 0 0 1rem; max-width: 52ch; }
.hw__p strong { color: var(--hw-bone); font-weight: 500; }

/* Calls to action. 56px tall, full-bleed on a phone. */
.hw-cta {
  display: flex; align-items: center; justify-content: center; gap: 0.5rem;
  width: 100%; min-height: 56px; padding: 0.75rem 1.25rem;
  border: 1px solid var(--hw-gold); border-radius: 3px;
  background: var(--hw-gold); color: var(--hw-ink);
  font-family: 'Inter', system-ui, sans-serif; font-weight: 700; font-size: 0.85rem;
  letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; text-align: center;
  margin: 0 0 0.75rem;
}
.hw-cta:hover { background: #d6b219; border-color: #d6b219; color: var(--hw-ink); }
.hw-cta--ghost { background: transparent; color: var(--hw-gold); }
.hw-cta--ghost:hover { background: rgba(184, 150, 12, 0.12); color: var(--hw-gold); }
.hw-cta__note { font-size: 0.76rem; line-height: 1.6; color: var(--hw-mute); margin: 0 0 2rem; text-align: center; }
.hw-inline-link {
  display: inline-block; position: relative; color: var(--hw-gold);
  text-decoration: underline; text-underline-offset: 3px;
  padding-top: 14px; padding-bottom: 14px; margin-top: -14px; margin-bottom: -14px;
}

/* Night cards (hub). The whole card is the link. */
.hw-nights { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; gap: 0.85rem; }
.hw-card {
  display: block; min-height: 44px; text-decoration: none; color: inherit;
  border: 1px solid var(--hw-line); border-left: 3px solid var(--hw-blood);
  background: var(--hw-panel); padding: 1.1rem 1.15rem;
}
.hw-card:hover, .hw-card:focus-visible { border-color: var(--hw-gold); border-left-color: var(--hw-blood); }
.hw-card__when {
  font-family: 'Special Elite', monospace; font-size: 0.72rem; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--hw-gold); margin: 0 0 0.35rem;
}
.hw-card__name { font-family: 'Fraunces', Georgia, serif; font-weight: 400; font-size: 1.25rem; line-height: 1.25; margin: 0 0 0.45rem; color: var(--hw-bone); }
.hw-card__line { font-size: 0.88rem; line-height: 1.7; color: var(--hw-mute); margin: 0 0 0.35rem; }
.hw-card__go { font-size: 0.8rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--hw-gold); margin: 0.5rem 0 0; }

/* Price list — rows, not a table, so nothing can push past 390px. */
.hw-prices { list-style: none; margin: 1rem 0 0; padding: 0; border-top: 1px solid var(--hw-line); }
.hw-price {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between;
  gap: 0.25rem 1rem; padding: 0.85rem 0; border-bottom: 1px solid var(--hw-line);
}
.hw-price__name { flex: 1 1 12rem; min-width: 0; font-size: 0.95rem; color: var(--hw-bone); }
.hw-price__amt { font-family: 'Fraunces', Georgia, serif; font-size: 1.15rem; color: var(--hw-bone); white-space: nowrap; }
.hw-price__desc { flex: 1 1 100%; font-size: 0.82rem; line-height: 1.6; color: var(--hw-mute); margin: 0; }
.hw-price--off .hw-price__name, .hw-price--off .hw-price__amt { color: var(--hw-mute); text-decoration: line-through; }
.hw-price__tag {
  display: inline-block; font-family: 'Special Elite', monospace; font-size: 0.66rem;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--hw-ink); background: var(--hw-gold);
  padding: 0.1rem 0.4rem; margin-left: 0.35rem; vertical-align: 0.1em; text-decoration: none;
}

/* Buyable SKU cards (night pages). */
.hw-sku { border: 1px solid var(--hw-line); background: var(--hw-panel); padding: 1.15rem; margin: 0 0 0.85rem; }
.hw-sku--lead { border-color: var(--hw-gold); }
/* The featured combo (Pase Paciente 013): doubled gold edge, no extra width. */
.hw-sku--feat { box-shadow: inset 0 0 0 1px var(--hw-gold); background: rgba(184, 150, 12, 0.07); }
.hw-price--feat { border-left: 3px solid var(--hw-gold); padding-left: 0.75rem; }
.hw-sku__name {
  font-family: 'Special Elite', monospace; font-size: 0.76rem; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--hw-gold); margin: 0 0 0.4rem;
}
.hw-sku__price { font-family: 'Fraunces', Georgia, serif; font-size: 1.75rem; line-height: 1.1; color: var(--hw-bone); margin: 0 0 0.2rem; }
.hw-sku__tier { font-family: 'Special Elite', monospace; font-size: 0.74rem; letter-spacing: 0.04em; line-height: 1.6; color: var(--hw-mute); margin: 0 0 0.55rem; }
.hw-sku__desc { font-size: 0.88rem; line-height: 1.7; color: var(--hw-mute); margin: 0 0 0.9rem; }
.hw-buy {
  display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px;
  padding: 0.6rem 1rem; border: 1px solid var(--hw-gold); border-radius: 3px;
  background: var(--hw-gold); color: var(--hw-ink);
  font-family: 'Inter', system-ui, sans-serif; font-weight: 700; font-size: 0.82rem;
  letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; text-align: center;
}
.hw-buy:hover { background: #d6b219; color: var(--hw-ink); }
.hw-sku--minor .hw-buy { background: transparent; color: var(--hw-gold); }

/* FAQ */
.hw-faq { margin: 1rem 0 0; }
.hw-faq details { border-bottom: 1px solid var(--hw-line); }
.hw-faq summary {
  display: flex; align-items: center; min-height: 48px; padding: 0.6rem 0; cursor: pointer;
  font-size: 0.98rem; color: var(--hw-bone); list-style: none;
}
.hw-faq summary::-webkit-details-marker { display: none; }
.hw-faq summary::after { content: '+'; margin-left: auto; padding-left: 1rem; color: var(--hw-gold); }
.hw-faq details[open] summary::after { content: '–'; }
.hw-faq p { font-size: 0.9rem; line-height: 1.75; color: var(--hw-mute); margin: 0 0 1rem; }

/* Facts */
.hw-facts {
  border: 1px dashed var(--hw-line); padding: 1.15rem; margin: 1.25rem 0 0;
  font-family: 'Special Elite', monospace; font-size: 0.78rem; line-height: 2.05; color: var(--hw-mute);
}
.hw-facts dt { color: var(--hw-gold); letter-spacing: 0.12em; text-transform: uppercase; font-size: 0.7rem; margin-top: 0.6rem; }
.hw-facts dt:first-child { margin-top: 0; }
.hw-facts dd { margin: 0 0 0.35rem; color: var(--hw-bone); }
.hw-facts a {
  color: var(--hw-gold); display: inline-block; position: relative;
  padding-top: 16px; padding-bottom: 16px; margin-top: -16px; margin-bottom: -16px;
}
.hw-map { position: relative; width: 100%; aspect-ratio: 4 / 3; margin: 1.25rem 0 0; border: 1px solid var(--hw-line); background: var(--hw-panel); }
.hw-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(0.55) sepia(0.6) brightness(0.75) contrast(1.05) hue-rotate(-8deg); }

/* Other nights strip (night pages). */
.hw-others { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: 0.5rem; }
.hw-others a {
  display: flex; align-items: center; min-height: 48px; padding: 0.5rem 0.9rem;
  border: 1px solid var(--hw-line); color: var(--hw-bone); text-decoration: none; font-size: 0.9rem;
}
.hw-others a span { color: var(--hw-gold); font-family: 'Special Elite', monospace; font-size: 0.72rem; letter-spacing: 0.12em; margin-right: 0.75rem; white-space: nowrap; }

.hw-rule { border: 0; border-top: 1px solid var(--hw-line); margin: 3rem 0 0; }
.hw-legal {
  font-size: 0.78rem; line-height: 1.6; color: var(--hw-bone); text-align: center;
  border: 1px solid var(--hw-line); padding: 0.85rem 1rem; margin: 2.5rem 0 0;
}
.hw-foot {
  font-family: 'Special Elite', monospace; font-size: 0.7rem; letter-spacing: 0.1em;
  color: var(--hw-mute); text-align: center; margin: 1.5rem 0 0; line-height: 1.9;
}

@media (min-width: 768px) {
  .hw { padding-top: 5rem; }
  .hw-cta { width: auto; min-width: 320px; }
  .hw-nights { grid-template-columns: 1fr 1fr; }
  .hw-others { grid-template-columns: 1fr 1fr; }
}

.whatsapp-float { position: fixed; bottom: calc(24px + var(--k-safe-b, env(safe-area-inset-bottom, 0px))); right: 24px; background-color: #25D366; border-radius: 50%; width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(0,0,0,0.25); z-index: 9999; transition: transform 0.2s ease; text-decoration: none; }
.whatsapp-float:hover { transform: scale(1.1); }

/* ── 2026-10-15 rebuild: full-bleed hero over the faded campaign art ───── */
.hw--hero { padding-top: 0; }
.hw-hero {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: min(88vh, 760px); display: flex; align-items: flex-end;
  padding: 5.5rem 0 2.25rem; margin: 0 0 1rem; background: #0a0806;
}
.hw-hero::before {
  content: ''; position: absolute; inset: 0; z-index: -2;
  background: #0a0806 url('/images/halloween/hero-mobile.webp') center top / cover no-repeat;
  opacity: 0.72;
}
.hw-hero::after {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(120% 70% at 50% 20%, rgba(10, 8, 6, 0.15) 0%, rgba(10, 8, 6, 0.55) 70%),
    linear-gradient(180deg, rgba(10, 8, 6, 0.35) 0%, rgba(10, 8, 6, 0.2) 30%, rgba(10, 8, 6, 0.82) 62%, #0a0806 100%);
}
.hw-hero--night { min-height: min(80vh, 680px); }
.hw-hero .hw__wrap { position: relative; }
.hw-hero__h1 {
  font-size: clamp(2.5rem, 13vw, 4.6rem); font-weight: 500; line-height: 0.98;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.85); margin-bottom: 0.75rem;
}
.hw-hero__when {
  display: block; margin-top: 0.4rem; font-family: 'Special Elite', monospace;
  font-size: clamp(1rem, 4.6vw, 1.35rem); letter-spacing: 0.08em; text-transform: uppercase; color: #ff4d6d;
  line-height: 1.3;
}
.hw-hero__sub { font-size: 1.12rem; line-height: 1.5; color: var(--hw-bone); margin: 0 0 1rem; max-width: 30ch; text-shadow: 0 1px 12px rgba(0, 0, 0, 0.9); }
.hw-hero__dates {
  font-family: 'Special Elite', monospace; font-size: clamp(1rem, 4.4vw, 1.25rem); letter-spacing: 0.1em;
  text-transform: uppercase; color: #ff4d6d; margin: 0 0 0.5rem; text-shadow: 0 1px 10px rgba(0, 0, 0, 0.9);
}
.hw-hero__meta { font-size: 0.86rem; line-height: 1.6; color: var(--hw-bone); margin: 0 0 1.1rem; text-shadow: 0 1px 10px rgba(0, 0, 0, 0.9); }

.hw-badges { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.4rem; padding: 0; }
.hw-badge {
  font-size: 0.84rem; line-height: 1.35; color: var(--hw-bone);
  background: rgba(10, 8, 6, 0.72); border: 1px solid var(--hw-line); border-radius: 999px;
  padding: 0.5rem 0.85rem; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.hw-badge strong { color: #f5c542; font-weight: 700; }
.hw-badge--prize { border-color: var(--hw-gold); background: rgba(184, 150, 12, 0.22); }
.hw-badge a { color: inherit; text-decoration: none; display: inline-block; padding: 12px 0; margin: -12px 0; }

.hw-ig {
  display: inline-flex; align-items: center; gap: 0.55rem; min-height: 48px;
  color: var(--hw-bone); text-decoration: none; font-size: 0.92rem;
}
.hw-ig svg { color: #ff4d6d; flex: none; }
.hw-ig strong { color: var(--hw-gold); }
.hw-ig:hover strong { text-decoration: underline; }
.hw-ig--block {
  display: flex; justify-content: center; width: 100%; padding: 0.75rem 1rem;
  border: 1px solid var(--hw-line); background: var(--hw-panel); border-radius: 3px;
}
.hw-ig-wrap { margin: 2rem 0 0; }
.hw-cta__note--hot { color: #f5c542; font-weight: 600; }

/* 4-night picker: two big tiles a row on a phone. */
.hw-picker { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.hw-pick {
  display: flex; flex-direction: column; align-items: flex-start; height: 100%; min-height: 44px;
  padding: 1rem 0.95rem 0.95rem; text-decoration: none; color: var(--hw-bone);
  background: linear-gradient(160deg, rgba(185, 28, 28, 0.18), rgba(21, 17, 13, 0.95) 55%);
  border: 1px solid var(--hw-line); border-top: 3px solid var(--hw-blood);
  transition: border-color 0.15s ease, transform 0.15s ease;
}
.hw-pick:hover, .hw-pick:focus-visible { border-color: var(--hw-gold); transform: translateY(-2px); }
.hw-pick--31 { border-top-color: var(--hw-gold); background: linear-gradient(160deg, rgba(184, 150, 12, 0.22), rgba(21, 17, 13, 0.95) 55%); }
.hw-pick__day { font-family: 'Special Elite', monospace; font-size: 0.74rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--hw-gold); }
.hw-pick__dd { font-family: 'Fraunces', Georgia, serif; font-size: 3.4rem; line-height: 1; margin: 0.15rem 0 0; }
.hw-pick__mo { font-size: 0.82rem; color: var(--hw-mute); margin: 0 0 0.6rem; }
.hw-pick__from { font-size: 0.86rem; color: var(--hw-mute); }
.hw-pick__from strong { display: block; font-family: 'Fraunces', Georgia, serif; font-size: 1.35rem; font-weight: 500; color: var(--hw-bone); }
.hw-pick__tag { font-size: 0.74rem; line-height: 1.4; color: #f5c542; margin: 0.5rem 0 0; }
.hw-pick__tag--hot { color: #ff4d6d; }
.hw-pick__go {
  margin-top: auto; padding-top: 0.75rem; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--hw-gold);
}

/* Prize / cocktail / DJ. */
.hw-feats { display: grid; gap: 0.75rem; margin: 1rem 0 0; }
.hw-feat { border: 1px solid var(--hw-line); background: var(--hw-panel); padding: 1.1rem 1.15rem; }
.hw-feat--prize { border-color: var(--hw-gold); background: linear-gradient(160deg, rgba(184, 150, 12, 0.18), var(--hw-panel) 60%); }
.hw-feat__big { font-family: 'Fraunces', Georgia, serif; font-size: clamp(2.2rem, 11vw, 3rem); line-height: 1; color: #f5c542; margin: 0 0 0.4rem; }
.hw-feat__h { font-family: 'Fraunces', Georgia, serif; font-weight: 500; font-size: 1.15rem; margin: 0 0 0.35rem; color: var(--hw-bone); }
.hw-feat__p { font-size: 0.92rem; line-height: 1.7; color: var(--hw-mute); margin: 0; }

@media (min-width: 700px) {
  .hw-hero::before { background-image: url('/images/halloween/hero.webp'); background-position: center 40%; }
}
@media (min-width: 768px) {
  .hw--hero { padding-top: 0; }
  .hw-picker { grid-template-columns: repeat(4, 1fr); }
  .hw-feats { grid-template-columns: 1fr 1fr 1fr; }
  .hw-hero .hw-cta { display: inline-flex; margin-right: 0.75rem; }
}
