/* ===== Sevilla Restaurant — Interactive Menu ===== */

:root {
  --green: #2ECC71;
  --green-deep: #1F9D55;
  --green-soft: #6BE89B;
  --orange: #F39C12;
  --orange-deep: #D87B0A;
  --orange-soft: #FFB74D;
  --gold: #d4a24c;
  --sand: #FFF8EE;
  --sand-deep: #f5ead2;
  --cream: #FFFDF7;
  --ink: #2c1810;
  --ink-soft: #6b5544;
  --line: rgba(31, 157, 85, .15);
  --shadow-sm: 0 2px 8px rgba(31, 157, 85, .08);
  --shadow-md: 0 8px 28px rgba(31, 157, 85, .12);
  --shadow-lg: 0 20px 60px rgba(31, 157, 85, .18);
  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'Inter', system-ui, -apple-system, sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
  overflow-x: clip;
  width: 100%;
  max-width: 100vw;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--sans);
  color: var(--ink);
  background-color: var(--sand);
  background-image: var(--tex-stone-light), var(--tex-cream);
  background-size: 600px 600px, 200px 200px;
  background-repeat: repeat, repeat;
  background-attachment: scroll, scroll;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  overflow-x: clip;
  overscroll-behavior-x: none;
  width: 100%;
  max-width: 100vw;
  position: relative;
}

/* Use fixed bg only on desktop where it's smoother */
@media (min-width: 900px) and (hover: hover) {
  body {
    background-attachment: fixed, fixed;
  }
}

/* DO NOT lock scroll — was causing issues */
/* Scroll lock during the intro splash — guarantees the page is at top when intro fades.
   The fixed positioning during intro makes browser scroll-restoration physically impossible. */
body.intro-active {
  overflow: hidden;
  position: fixed;
  inset: 0;
  width: 100%;
}

a { color: inherit; }

/* Keyboard accessibility — visible focus ring for all interactive elements */
*:focus { outline: none; }
a:focus-visible,
button:focus-visible,
.chip:focus-visible,
.lcard:focus-visible,
.wine-gate__btn:focus-visible,
.btn:focus-visible,
.back-to-top:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Honor reduced-motion preference — kill all decorative animations */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Keyboard focus visibility (WCAG 2.4.7) */
:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 3px;
  border-radius: 4px;
}
.chip:focus-visible,
.wine-gate__btn:focus-visible,
.btn:focus-visible,
.back-to-top:focus-visible,
/* ===== HERO ===== */
.btn {
  font-family: var(--sans);
  font-weight: 600;
  font-size: 15px;
  padding: 14px 28px;
  border-radius: 999px;
  border: 2px solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition: all .25s ease;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.btn--lg { padding: 16px 36px; font-size: 16px; }
.btn--primary {
  background: var(--orange);
  color: #fff;
  box-shadow: 0 8px 22px rgba(243, 156, 18, .4);
}
.btn--primary:hover {
  background: var(--orange-deep);
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(243, 156, 18, .5);
}
.btn--ghost {
  background: transparent;
  color: inherit;
  border-color: currentColor;
}
.btn--ghost:hover {
  background: rgba(255, 255, 255, .12);
  transform: translateY(-2px);
}

@media (max-width: 640px) {
}

/* ===== INTRO / SPLASH ANIMATION ===== */
.intro {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background:
    var(--tex-stone-dark),
    var(--tex-dark),
    radial-gradient(ellipse at center, rgba(94, 107, 79, .4) 0%, transparent 70%),
    linear-gradient(135deg, #2a3322 0%, #1a2014 50%, #0f1408 100%);
  background-size: 600px 600px, 200px 200px, 100% 100%, 100% 100%;
  background-repeat: repeat, repeat, no-repeat, no-repeat;
  color: #f5efdc;
  overflow: hidden;
  opacity: 1;
  transition: opacity .9s cubic-bezier(0.65, 0, 0.35, 1);
  /* CSS auto-hide as a hard guarantee — fires even if JS fails */
  animation: introAutoHide .01s ease 5s forwards;
}

/* Hard CSS fallback: kill intro after 5s no matter what */
@keyframes introAutoHide {
  to {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

.intro.is-leaving {
  opacity: 0;
  pointer-events: none;
}

.intro.is-removed {
  display: none;
}

.intro__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(94, 107, 79, .15) 100%);
  pointer-events: none;
  z-index: 1;
}

.intro__inner {
  position: relative;
  z-index: 2;
  padding: 0 24px;
}

.intro__ornament {
  color: #d4a24c;
  display: block;
  margin: 0 auto 22px;
  opacity: 0;
  animation: introFadeUp 1s .25s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.intro__kicker {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 6px;
  text-transform: uppercase;
  color: rgba(245, 239, 220, .65);
  margin-bottom: 26px;
  opacity: 0;
  animation: introFadeUp 1s .45s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.intro__brand {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 700;
  font-size: clamp(72px, 14vw, 168px);
  line-height: 1;
  letter-spacing: -2px;
  margin-bottom: 14px;
  background: linear-gradient(135deg, #FFE9B0 0%, #FFB74D 40%, #d4a24c 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 12px 30px rgba(0,0,0,.5));
  opacity: 0;
  transform: translateY(20px) scale(.92);
  animation: introBrand 1.6s .65s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.intro__tag {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(18px, 2.4vw, 26px);
  color: rgba(245, 239, 220, .85);
  margin-bottom: 28px;
  opacity: 0;
  animation: introFadeUp 1s 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.intro__tag em {
  color: #d4a24c;
  font-weight: 600;
}

.intro__divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  opacity: 0;
  animation: introFadeUp 1s 1.45s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.intro__divider .line {
  width: 70px;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, #d4a24c 100%);
}
.intro__divider .line:last-child {
  background: linear-gradient(90deg, #d4a24c 0%, transparent 100%);
}
.intro__divider .diamond {
  color: #d4a24c;
  font-size: 10px;
  opacity: .85;
}

@keyframes introFadeUp {
  from { opacity: 0; transform: translateY(15px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes introBrand {
  0% {
    opacity: 0;
    transform: translateY(30px) scale(.88);
    filter: drop-shadow(0 12px 30px rgba(0,0,0,.5)) blur(8px);
  }
  60% {
    opacity: 1;
    transform: translateY(0) scale(1.02);
    filter: drop-shadow(0 16px 36px rgba(0,0,0,.55)) blur(0);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: drop-shadow(0 12px 30px rgba(0,0,0,.5)) blur(0);
  }
}

/* Body lock while intro is showing */
body.intro-active {
  overflow: hidden;
  height: 100vh;
}

/* Landing cards entrance after intro finishes */
.lcard {
  opacity: 0;
  transform: translateY(28px);
}
.lcard.is-entered {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .8s cubic-bezier(0.16, 1, 0.3, 1), transform .8s cubic-bezier(0.16, 1, 0.3, 1);
}
.landing__header {
  opacity: 0;
  transform: translateY(-12px);
}
.landing__header.is-entered {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .9s cubic-bezier(0.16, 1, 0.3, 1), transform .9s cubic-bezier(0.16, 1, 0.3, 1);
}

@media (max-width: 640px) {
  .intro__brand { font-size: 86px; letter-spacing: -1px; }
  .intro__tag { font-size: 16px; }
  .intro__kicker { font-size: 10px; letter-spacing: 4px; }
}

/* ===== TEXTURE UTILITIES (paper / noise) ===== */
:root {
  /* Higher opacity / more visible noise textures */
  --tex-paper: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.18  0 0 0 0 0.10  0 0 0 0 0.04  0 0 0 0.28 0'/></filter><rect width='180' height='180' filter='url(%23n)' opacity='0.65'/></svg>");
  --tex-cream: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.6  0 0 0 0 0.45  0 0 0 0 0.25  0 0 0 0.16 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>");
  --tex-dark: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 0.95  0 0 0 0 0.8  0 0 0 0.09 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>");
  --tex-leaf: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'><g fill='none' stroke='%23ffffff' stroke-width='0.8' opacity='0.06'><path d='M60 200 Q40 130 80 60 Q120 -10 160 60 Q200 130 180 200'/><path d='M30 220 Q20 180 60 140'/><path d='M210 30 Q220 90 180 130'/><path d='M120 240 Q100 180 140 120'/></g></svg>");
  /* Linen / weave for elegant overlay */
  --tex-linen: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'><g fill='none' stroke='%23000' stroke-width='0.3' opacity='0.05'><path d='M0 20 L80 20 M0 40 L80 40 M0 60 L80 60'/><path d='M20 0 L20 80 M40 0 L40 80 M60 0 L60 80'/></g></svg>");

  /* ELEGANT STONE / MARBLE textures (light and dark variants) */
  --tex-stone-light: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400' viewBox='0 0 400 400'><filter id='m'><feTurbulence type='fractalNoise' baseFrequency='0.012' numOctaves='5' seed='7'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.18 0'/><feGaussianBlur stdDeviation='1'/></filter><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.5  0 0 0 0 0.38  0 0 0 0 0.22  0 0 0 0.12 0'/></filter><rect width='400' height='400' filter='url(%23m)'/><rect width='400' height='400' filter='url(%23g)'/><g stroke='%23ffffff' stroke-width='0.5' fill='none' opacity='0.10'><path d='M0 80 Q120 120 240 90 T400 100'/><path d='M0 200 Q140 230 260 210 T400 230'/><path d='M0 320 Q100 290 220 320 T400 310'/><path d='M50 0 Q70 60 80 140'/><path d='M310 0 Q300 70 320 150'/></g></svg>");
  --tex-stone-dark: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400' viewBox='0 0 400 400'><filter id='m'><feTurbulence type='fractalNoise' baseFrequency='0.012' numOctaves='5' seed='11'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 0.95  0 0 0 0 0.82  0 0 0 0.16 0'/><feGaussianBlur stdDeviation='1.2'/></filter><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 0.92  0 0 0 0 0.75  0 0 0 0.10 0'/></filter><rect width='400' height='400' filter='url(%23m)'/><rect width='400' height='400' filter='url(%23g)'/><g stroke='%23d4a24c' stroke-width='0.4' fill='none' opacity='0.12'><path d='M0 90 Q120 130 240 100 T400 110'/><path d='M0 210 Q140 240 260 220 T400 240'/><path d='M0 330 Q100 300 220 330 T400 320'/><path d='M60 0 Q80 60 90 140'/><path d='M320 0 Q310 70 330 150'/></g></svg>");
  --tex-stone-sage: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400' viewBox='0 0 400 400'><filter id='m'><feTurbulence type='fractalNoise' baseFrequency='0.014' numOctaves='5' seed='13'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 0.98  0 0 0 0 0.85  0 0 0 0.20 0'/><feGaussianBlur stdDeviation='1.4'/></filter><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='0.88' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 0.9  0 0 0 0.09 0'/></filter><rect width='400' height='400' filter='url(%23m)'/><rect width='400' height='400' filter='url(%23g)'/><g stroke='%23ffffff' stroke-width='0.5' fill='none' opacity='0.08'><path d='M0 100 Q130 130 250 100 T400 110'/><path d='M0 230 Q150 260 280 240 T400 250'/><path d='M0 350 Q120 320 240 350 T400 340'/></g></svg>");
}

/* ===== LANDING · ELECCIÓN DE SECCIÓN ===== */
.landing {
  background:
    var(--tex-stone-sage),
    var(--tex-leaf),
    radial-gradient(ellipse at top, rgba(255, 255, 255, .08), transparent 60%),
    linear-gradient(180deg,
      #5e6b4f 0%,
      #5e6b4f 55%,
      #6e7a5e 75%,
      #97a481 88%,
      #c4cab1 94%,
      #e8e3cf 98%,
      var(--sand) 100%);
  background-size: 600px 600px, 240px 240px, 100% 100%, 100% 100%;
  background-repeat: repeat, repeat, no-repeat, no-repeat;
  padding: clamp(20px, 3vh, 36px) clamp(16px, 4vw, 50px) clamp(36px, 5vh, 56px);
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.landing__header {
  text-align: center;
  margin-bottom: clamp(14px, 2.5vh, 24px);
  color: #f5efdc;
  flex-shrink: 0;
}
.landing__kicker {
  display: inline-block;
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: rgba(245, 239, 220, .65);
  margin-bottom: 6px;
}
.landing__title {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 700;
  font-size: clamp(24px, 4vw, 40px);
  color: #f5efdc;
  line-height: 1.05;
  margin-bottom: 4px;
}
.landing__sub {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(12px, 1.3vw, 15px);
  color: rgba(245, 239, 220, .75);
  letter-spacing: 1px;
}

.landing__cards {
  max-width: 980px;
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: clamp(6px, 1vh, 10px);
  flex: 1;
  min-height: 0;
}

.lcard {
  position: relative;
  display: grid;
  grid-template-columns: 80px 1fr 90px;
  align-items: center;
  background-color: #f5efdc;
  background-image: var(--tex-stone-light), var(--tex-cream);
  background-size: 600px 600px, 200px 200px;
  background-repeat: repeat, repeat;
  border-radius: 14px;
  padding: 10px 18px;
  flex: 1 1 0;
  min-height: 0;
  text-decoration: none;
  color: #3b4533;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .15);
  transition: all .35s cubic-bezier(0.16, 1, 0.3, 1);
  border: 1px solid rgba(245, 239, 220, .35);
}

.lcard::before {
  content: "";
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 6px;
  background: #5e6b4f;
  opacity: 0;
  transition: opacity .3s ease;
}

.lcard:hover {
  transform: translateY(-4px) scale(1.01);
  box-shadow: 0 16px 36px rgba(0, 0, 0, .25);
  background: #fbf6e3;
}
.lcard:hover::before { opacity: 1; }

.lcard__leaves {
  color: #5e6b4f;
  opacity: .55;
  transform: translateX(-6px);
  pointer-events: none;
  align-self: stretch;
  display: flex;
  align-items: center;
  max-height: 100%;
  overflow: hidden;
}
.lcard__leaves svg {
  height: 100%;
  width: auto;
  max-height: 100%;
}

.lcard__content {
  padding-left: 4px;
  min-width: 0;
}

.lcard__title {
  font-family: 'Italianno', 'Cormorant Garamond', 'Playfair Display', cursive;
  font-style: normal;
  font-weight: 400;
  font-size: clamp(54px, 11vw, 96px);
  letter-spacing: 0;
  line-height: 0.85;
  color: #b25538;
  font-feature-settings: 'liga', 'dlig', 'kern', 'swsh';
  -webkit-font-smoothing: antialiased;
  font-synthesis: none;
  line-height: 1;
  display: inline-block;
  position: relative;
  padding-bottom: 10px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  text-shadow: 0 1px 0 rgba(255,255,255,.4);
}
.lcard__title::before {
  content: "·";
  display: inline-block;
  font-family: 'Cormorant Garamond', serif;
  font-style: normal;
  font-size: .35em;
  margin-right: 14px;
  color: rgba(178, 85, 56, .55);
  font-weight: 400;
  vertical-align: middle;
}
.lcard__title::after {
  content: "";
  position: absolute;
  bottom: 6px;
  left: 22px;
  width: 38%;
  height: 1px;
  background: linear-gradient(90deg, rgba(178, 85, 56, .8) 0%, rgba(178, 85, 56, 0) 100%);
  transition: width .45s cubic-bezier(0.16, 1, 0.3, 1);
}
.lcard:hover .lcard__title::after { width: 75%; }

.lcard__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(36px, 6vw, 64px);
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .15));
  transition: transform .4s cubic-bezier(0.16, 1, 0.3, 1);
}
.lcard:hover .lcard__icon {
  transform: scale(1.12) rotate(-4deg);
}

/* Custom SVG icons — elegant line-art style */
.lcard__icon--svg {
  color: #b25538;
  opacity: .82;
  filter: drop-shadow(0 2px 6px rgba(178, 85, 56, .25));
}
.lcard__icon--svg svg {
  width: clamp(48px, 7vw, 72px);
  height: clamp(48px, 7vw, 72px);
}
.lcard:hover .lcard__icon--svg {
  opacity: 1;
  transform: scale(1.08) rotate(-2deg);
  color: #9a4530;
}

@media (max-width: 720px) {
  .lcard__icon--svg svg { width: 44px; height: 44px; }
}
@media (max-width: 380px) {
  .lcard__icon--svg svg { width: 36px; height: 36px; }
}

/* Variant accents (subtle differentiator on hover via the left bar) */
.lcard--menu::before      { background: #5e6b4f; }
.lcard--desserts::before  { background: #c98a4a; }
.lcard--cocktails::before { background: #a85a5a; }
.lcard--wines::before     { background: #6b2c3a; }
.lcard--events::before    { background: #c9a44a; }

@media (max-width: 720px) {
  .landing { padding: 16px 12px; }
  .landing__header { margin-bottom: 12px; }
  .landing__title { font-size: 22px; }
  .landing__sub { font-size: 11px; letter-spacing: .5px; }
  .lcard {
    grid-template-columns: 50px 1fr 64px;
    padding: 8px 14px;
    gap: 6px;
    border-radius: 12px;
  }
  .lcard__leaves svg { width: 40px; }
  .lcard__title { font-size: 58px; letter-spacing: 0; padding-bottom: 8px; }
  .lcard__icon { font-size: 38px; }
}

@media (max-width: 380px) {
  .lcard { grid-template-columns: 38px 1fr 50px; padding: 6px 10px; }
  .lcard__title { font-size: 48px; letter-spacing: 0; }
  .lcard__icon { font-size: 30px; }
}

/* Back to top floating button */
.back-to-top {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 200;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: #46523b;
  color: #f5efdc;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow:
    0 12px 30px rgba(0, 0, 0, .35),
    inset 0 0 0 1px rgba(245, 239, 220, .15);
  transition: all .3s cubic-bezier(0.16, 1, 0.3, 1);
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
}
.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.back-to-top:hover {
  background: #5e6b4f;
  transform: translateY(-3px) scale(1.06);
}

@media (max-width: 640px) {
  .back-to-top { bottom: 16px; right: 16px; width: 46px; height: 46px; }
  .back-to-top svg { width: 18px; height: 18px; }
}

/* ===== STICKY CATEGORY NAV ===== */
.catnav {
  position: sticky;
  top: 0;
  z-index: 50;
  background-color: rgba(255, 248, 238, .96);
  background-image: var(--tex-stone-light), var(--tex-cream);
  background-size: 600px 600px, 200px 200px;
  background-repeat: repeat, repeat;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
  padding: 14px 20px;
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  max-width: 100vw;
  overflow: hidden;
  overscroll-behavior-x: contain;
}

.catnav__scroll {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  flex: 1;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 2px 0;
  scroll-behavior: smooth;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
}
.catnav__scroll::-webkit-scrollbar { display: none; }

/* Auto-marquee when not interacting */
.catnav.is-auto .catnav__scroll {
  scroll-behavior: auto;
}

.chip {
  flex-shrink: 0;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 500;
  padding: 9px 18px;
  border-radius: 999px;
  border: 1.5px solid var(--line);
  background: transparent;
  color: var(--green-deep);
  cursor: pointer;
  transition: all .2s ease;
  white-space: nowrap;
}
.chip:hover { border-color: var(--green); }
.chip.is-active {
  background: var(--green);
  color: #fff;
  border-color: var(--green);
  box-shadow: 0 4px 12px rgba(46, 204, 113, .3);
}

/* ===== CHIP DE VINOS (destacado) ===== */
.chip--wine {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 12px 9px 14px;
  background: linear-gradient(135deg, #2c1810 0%, #1a0e0a 100%);
  border: 1.5px solid var(--gold);
  color: #FFE9B0;
  font-weight: 600;
  letter-spacing: .3px;
  position: relative;
  box-shadow:
    0 4px 16px rgba(212, 162, 76, .35),
    inset 0 0 0 1px rgba(255, 233, 176, .15);
  animation: wineChipPulse 2.8s ease-in-out infinite;
}

.chip--wine:hover {
  background: linear-gradient(135deg, #4a2818 0%, #2c1810 100%);
  border-color: #FFE9B0;
  color: #fff;
  transform: translateY(-2px);
  box-shadow:
    0 8px 24px rgba(212, 162, 76, .5),
    inset 0 0 0 1px rgba(255, 233, 176, .25);
}

.chip--wine.is-active {
  background: linear-gradient(135deg, var(--gold) 0%, #c89438 100%);
  border-color: #FFE9B0;
  color: #1a0e0a;
  box-shadow:
    0 6px 20px rgba(212, 162, 76, .6),
    inset 0 0 0 1px rgba(255, 255, 255, .3);
  animation: none;
}

.chip--wine .chip__icon {
  color: var(--gold);
  transition: color .25s ease;
  flex-shrink: 0;
}
.chip--wine:hover .chip__icon { color: #FFE9B0; }
.chip--wine.is-active .chip__icon { color: #1a0e0a; }

.chip--wine .chip__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  font-size: 9px;
  background: var(--gold);
  color: #1a0e0a;
  border-radius: 50%;
  margin-left: 2px;
  font-weight: 700;
  flex-shrink: 0;
}
.chip--wine.is-active .chip__badge {
  background: #1a0e0a;
  color: var(--gold);
}

@keyframes wineChipPulse {
  0%, 100% {
    box-shadow:
      0 4px 16px rgba(212, 162, 76, .35),
      inset 0 0 0 1px rgba(255, 233, 176, .15),
      0 0 0 0 rgba(212, 162, 76, .4);
  }
  50% {
    box-shadow:
      0 4px 18px rgba(212, 162, 76, .5),
      inset 0 0 0 1px rgba(255, 233, 176, .25),
      0 0 0 8px rgba(212, 162, 76, 0);
  }
}

@media (max-width: 640px) {
  .chip--wine { padding: 8px 11px 8px 12px; font-size: 12px; gap: 5px; }
  .chip--wine .chip__icon { width: 12px; height: 12px; }
  .chip--wine .chip__badge { width: 14px; height: 14px; font-size: 8px; }
}

@media (max-width: 640px) {
  .catnav { padding: 10px 14px; }
  .chip { font-size: 13px; padding: 8px 14px; }
}

/* ===== MENU SECTIONS ===== */
.menu { padding: 40px 0 0; }

.section {
  padding: 60px clamp(20px, 5vw, 60px);
  scroll-margin-top: 80px;
  max-width: 100%;
  overflow-x: clip;
  background-color: var(--sand);
  background-image: var(--tex-stone-light), var(--tex-cream);
  background-size: 600px 600px, 200px 200px;
  background-repeat: repeat, repeat;
}
.section--alt {
  background-color: var(--cream);
  background-image: var(--tex-stone-light), var(--tex-cream);
  background-size: 600px 600px, 200px 200px;
  background-repeat: repeat, repeat;
}
.section--feature {
  background:
    var(--tex-stone-sage),
    var(--tex-leaf),
    radial-gradient(ellipse at top, rgba(255, 255, 255, .06), transparent 60%),
    linear-gradient(135deg, #5e6b4f 0%, #4a553e 100%);
  background-size: 600px 600px, 240px 240px, 100% 100%, 100% 100%;
  background-repeat: repeat, repeat, no-repeat, no-repeat;
  color: var(--cream);
  position: relative;
}
.section--feature .section__kicker { color: var(--orange-soft); }

.section__head {
  max-width: 1200px;
  margin: 0 auto 40px;
  text-align: left;
}
.section__head--center { text-align: center; }
.section__kicker {
  display: inline-block;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 12px;
}
.section__head h2 {
  font-family: var(--serif);
  font-size: clamp(36px, 5vw, 56px);
  font-weight: 700;
  font-style: italic;
  color: #b25538;
  line-height: 1;
  margin-bottom: 12px;
}
.section--feature .section__head h2 { color: #fff; }
.section__head p {
  font-size: 16px;
  color: var(--ink-soft);
  max-width: 600px;
}
.section--feature .section__head p { color: rgba(255, 253, 247, .82); }
.section__head em { color: var(--orange-deep); font-weight: 500; }

/* ===== GRID + CARDS ===== */
.grid {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 56px;
}

.card {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 18px 0;
  cursor: default;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-align: left;
  border-bottom: 1px dashed rgba(31, 157, 85, .18);
}
.section--feature .card { border-bottom-color: rgba(255, 255, 255, .14); }

/* Photo-feature card variant (only for hero items per section) */
.card--photo {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(220px, 38%) 1fr;
  gap: 28px;
  align-items: center;
  padding: 24px 22px;
  background: rgba(255, 253, 247, .65);
  border: 1px solid rgba(178, 85, 56, .18);
  border-bottom: 1px solid rgba(178, 85, 56, .18);
  border-radius: 16px;
  margin: 8px 0 14px;
  box-shadow: 0 8px 28px rgba(60, 30, 16, .07);
}
.section--feature .card--photo {
  background: rgba(255, 253, 247, .08);
  border-color: rgba(255, 233, 176, .22);
  box-shadow: 0 12px 32px rgba(0,0,0,.25);
}
.card__photo {
  overflow: hidden;
  border-radius: 12px;
  aspect-ratio: 4/5;
  box-shadow: 0 6px 20px rgba(60, 30, 16, .18);
}
.card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s cubic-bezier(0.16, 1, 0.3, 1);
}
.card--photo:hover .card__photo img { transform: scale(1.04); }
.card--photo .card__body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.card--photo .card__head { min-width: 0; flex-wrap: wrap; }
.card--photo .card__title { min-width: 0; flex-shrink: 1; }
.card--photo .card__price { flex-shrink: 0; }
.card--photo .card__dots { flex-shrink: 1; min-width: 12px; }
@media (max-width: 720px) {
  .card--photo {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 16px;
  }
  .card__photo { aspect-ratio: 16/10; }
}

/* Ambient gallery for events */
.ambient-gallery {
  max-width: 1100px;
  margin: 36px auto 0;
  text-align: center;
}
.ambient-gallery__kicker {
  display: inline-block;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 18px;
}
.ambient-gallery__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.ambient-gallery figure {
  margin: 0;
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 4/5;
  box-shadow: 0 8px 24px rgba(60, 30, 16, .12);
  transition: transform .4s cubic-bezier(0.16, 1, 0.3, 1);
}
.ambient-gallery figure:hover { transform: translateY(-4px); }
.ambient-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 720px) {
  .ambient-gallery__grid { grid-template-columns: repeat(2, 1fr); }
}

.card__head {
  display: flex;
  align-items: baseline;
  gap: 0;
}
.card__title {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 600;
  color: var(--green-deep);
  line-height: 1.2;
  flex: 0 0 auto;
  max-width: calc(100% - 60px);
}
.section--feature .card__title { color: #fff; }
.card--noprice .card__title { max-width: 100%; }
.card__dots {
  flex: 1 1 auto;
  height: 1px;
  border-bottom: 1.5px dotted rgba(31, 157, 85, .35);
  margin: 0 10px;
  transform: translateY(-5px);
  min-width: 14px;
}
.section--feature .card__dots { border-bottom-color: rgba(255, 255, 255, .35); }
.card__price {
  font-family: var(--serif);
  font-weight: 600;
  font-size: 18px;
  color: var(--orange-deep);
  white-space: nowrap;
  flex: 0 0 auto;
}
.section--feature .card__price { color: var(--orange-soft); }
.card__sub {
  font-size: 13px;
  color: var(--ink-soft);
  font-style: italic;
  margin-top: -2px;
}
.section--feature .card__sub { color: rgba(255, 253, 247, .7); }
.card__desc {
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--ink-soft);
  margin-top: 6px;
  max-width: 60ch;
}
.section--feature .card__desc { color: rgba(255, 253, 247, .8); }

.card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.tag {
  font-size: 11px;
  font-weight: 500;
  padding: 3px 9px;
  border-radius: 999px;
  background: var(--sand-deep);
  color: var(--green-deep);
  letter-spacing: .3px;
}
.tag--hot { background: rgba(243, 156, 18, .14); color: var(--orange-deep); }
.tag--star { background: rgba(212, 162, 76, .18); color: #a3771f; }
.section--feature .tag { background: rgba(255, 255, 255, .14); color: var(--cream); }

.sides-note {
  max-width: 1100px;
  margin: 28px auto 0;
  padding: 20px 24px;
  background: rgba(255, 255, 255, .65);
  border: 1px dashed var(--line);
  border-radius: 14px;
  font-size: 13.5px;
  color: var(--ink-soft);
  line-height: 1.7;
}
.sides-note--dark {
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .2);
  color: rgba(255, 253, 247, .85);
}
.sides-note strong {
  display: block;
  color: var(--green-deep);
  font-family: var(--sans);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.sides-note--dark strong { color: var(--orange-soft); }
.sides-note > div + div { margin-top: 14px; }
.sides-note em { color: var(--orange-deep); font-style: italic; font-weight: 600; }
.sides-note--dark em { color: var(--orange-soft); }

/* Liquor disclosure (after Cócteles grid) */
.liquor-note {
  max-width: 900px;
  margin: 36px auto 0;
  padding: 18px 22px;
  text-align: center;
  border-top: 1px solid rgba(178, 85, 56, .18);
  font-family: var(--sans);
  color: var(--ink-soft);
}
.liquor-note__brands {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .3px;
  line-height: 1.55;
  margin-bottom: 6px;
}
.liquor-note__dist {
  font-size: 11px;
  font-style: italic;
  opacity: .85;
  margin-bottom: 8px;
}
.liquor-note__warn {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--orange-deep);
}

/* ===== WINE LIST (elegante) ===== */
.section--wine {
  background:
    var(--tex-stone-dark),
    var(--tex-dark),
    radial-gradient(ellipse at top left, rgba(212, 162, 76, .12), transparent 55%),
    radial-gradient(ellipse at bottom right, rgba(120, 30, 50, .25), transparent 55%),
    linear-gradient(135deg, #1a0e0a 0%, #2a1410 50%, #1a0a14 100%);
  background-size: 600px 600px, 200px 200px, 100% 100%, 100% 100%, 100% 100%;
  background-repeat: repeat, repeat, no-repeat, no-repeat, no-repeat;
  color: #f3e9d6;
  position: relative;
  padding: 0;
  overflow: hidden;
}

/* Inner content padding when gate is gone */
.section--wine > .wine-ornament,
.section--wine > .section__head,
.section--wine > .wine-list,
.section--wine > .wine-note {
  padding-left: clamp(24px, 5vw, 60px);
  padding-right: clamp(24px, 5vw, 60px);
}
.section--wine > .wine-ornament { padding-top: 80px; }
.section--wine > .wine-note { padding-bottom: 70px; }

/* Hide content while gate is showing (gate covers it visually with sticky height) */
.section--wine.gate-closed > .wine-ornament,
.section--wine.gate-closed > .section__head,
.section--wine.gate-closed > .wine-list,
.section--wine.gate-closed > .wine-note {
  visibility: hidden;
  height: 0;
  overflow: hidden;
  padding-top: 0;
  padding-bottom: 0;
  margin: 0;
}

/* ===== WINE GATE (entrada elegante - full viewport hero-style) ===== */
.wine-gate {
  position: relative;
  z-index: 20;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 60px 24px;
  overflow: hidden;
  background:
    var(--tex-stone-dark),
    var(--tex-dark),
    radial-gradient(ellipse at center, rgba(0,0,0,.1) 0%, rgba(10,7,5,.5) 70%, rgba(10,7,5,.8) 100%),
    radial-gradient(ellipse at top, rgba(212, 162, 76, .18), transparent 60%),
    linear-gradient(135deg, #1a0e0a 0%, #2c1410 50%, #1a0a14 100%);
  background-size: 600px 600px, 200px 200px, 100% 100%, 100% 100%, 100% 100%;
  background-repeat: repeat, repeat, no-repeat, no-repeat, no-repeat;
}

/* Animated subtle vignette glow */
.wine-gate::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 40% at center 70%, rgba(212, 162, 76, .12), transparent 70%);
  animation: wineGlow 6s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes wineGlow {
  from { opacity: .4; }
  to { opacity: .85; }
}

/* Curtain panels for the reveal animation */
.wine-gate__panels {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
}
.wine-gate__panel {
  position: absolute;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, #1a0e0a 0%, #2c1410 100%);
  transition: transform 1s cubic-bezier(0.85, 0, 0.15, 1);
}
.wine-gate__panel--top { top: 0; transform: translateY(-100%); }
.wine-gate__panel--bottom { bottom: 0; transform: translateY(100%); }
.wine-gate.is-leaving .wine-gate__panel--top { transform: translateY(0); }
.wine-gate.is-leaving .wine-gate__panel--bottom { transform: translateY(0); }

.wine-gate__content {
  position: relative;
  z-index: 3;
  max-width: 640px;
  animation: wineGateIn 1.4s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes wineGateIn {
  from {
    opacity: 0;
    transform: translateY(20px);
    filter: blur(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}

.wine-gate__ornament {
  color: var(--gold);
  margin-bottom: 16px;
  opacity: 0;
  animation: gateFadeUp .9s .25s ease-out forwards;
}

.wine-gate__kicker {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 5px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 18px;
  opacity: 0;
  animation: gateFadeUp .9s .4s ease-out forwards;
}

.wine-gate__title {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 700;
  font-size: clamp(56px, 10vw, 110px);
  line-height: 1;
  margin-bottom: 10px;
  background: linear-gradient(135deg, #FFE9B0 0%, var(--gold) 50%, #c89438 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 8px 24px rgba(0,0,0,.6));
  opacity: 0;
  animation: gateFadeUp 1.1s .55s ease-out forwards;
}

.wine-gate__sub {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(20px, 2.8vw, 28px);
  color: #f3e9d6;
  margin-bottom: 24px;
  opacity: 0;
  animation: gateFadeUp 1s .8s ease-out forwards;
}
.wine-gate__sub em {
  background: linear-gradient(135deg, #FFE9B0 0%, var(--gold) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 600;
}

.wine-gate__divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 22px 0 22px;
  opacity: 0;
  animation: gateFadeUp 1s .95s ease-out forwards;
}
.wine-gate__divider .line {
  width: 60px;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 100%);
}
.wine-gate__divider .line:last-child {
  background: linear-gradient(90deg, var(--gold) 0%, transparent 100%);
}
.wine-gate__divider .diamond {
  color: var(--gold);
  font-size: 10px;
  opacity: .8;
}

.wine-gate__tag {
  font-family: var(--sans);
  font-style: normal;
  font-size: 15px;
  font-weight: 500;
  color: rgba(252, 240, 210, .95);
  letter-spacing: .4px;
  line-height: 1.55;
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 38px;
  opacity: 0;
  animation: gateFadeUp 1s 1.1s ease-out forwards;
}

.wine-gate__btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  background: transparent;
  color: #fff;
  border: 1.5px solid var(--gold);
  font-family: var(--sans);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 5px;
  text-transform: uppercase;
  padding: 17px 42px;
  border-radius: 999px;
  cursor: pointer;
  transition: all .4s cubic-bezier(0.16, 1, 0.3, 1);
  overflow: hidden;
  opacity: 0;
  animation: gateFadeUp 1s 1.3s ease-out forwards, gatePulse 2.6s 2.2s ease-in-out infinite;
}

.wine-gate__btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #8B4513 0%, var(--gold) 100%);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .5s cubic-bezier(0.85, 0, 0.15, 1);
  z-index: 0;
}
.wine-gate__btn:hover::before { transform: scaleX(1); }
.wine-gate__btn:hover {
  border-color: #FFE9B0;
  transform: translateY(-3px);
  box-shadow: 0 16px 40px rgba(212, 162, 76, .35);
}

.wine-gate__btn-text,
.wine-gate__btn-arrow {
  position: relative;
  z-index: 1;
}
.wine-gate__btn-arrow {
  display: inline-flex;
  transition: transform .35s ease;
}
.wine-gate__btn:hover .wine-gate__btn-arrow {
  transform: translateX(6px);
}

.wine-gate__hint {
  margin-top: 28px;
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(243, 233, 214, .35);
  opacity: 0;
  animation: gateFadeUp 1s 1.5s ease-out forwards;
}

@keyframes gateFadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes gatePulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(212, 162, 76, 0); }
  50% { box-shadow: 0 0 0 14px rgba(212, 162, 76, 0); }
  0% { box-shadow: 0 0 0 0 rgba(212, 162, 76, .35); }
}

/* Leaving: content fades, panels close, then gate fades out */
.wine-gate.is-leaving .wine-gate__content {
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity .35s ease, transform .35s ease;
}
.wine-gate.is-gone {
  opacity: 0;
  pointer-events: none;
  transition: opacity .5s ease;
}
.wine-gate.is-removed {
  display: none;
}

@media (max-width: 640px) {
  .wine-gate { padding: 30px 18px; }
  .wine-gate__title { font-size: 60px; }
  .wine-gate__sub { font-size: 18px; }
  .wine-gate__tag { font-size: 14px; letter-spacing: .3px; margin-bottom: 30px; }
  .wine-gate__btn { padding: 15px 34px; font-size: 12px; letter-spacing: 4px; }
  .wine-gate__hint { font-size: 9px; margin-top: 22px; }
}
.section--wine::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 50%, transparent 100%);
  opacity: .6;
}
.section--wine::after {
  content: "";
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 50%, transparent 100%);
  opacity: .4;
}

.section--wine .section__kicker {
  color: var(--gold);
  font-size: 11px;
  letter-spacing: 5px;
}
.section--wine .section__head h2 {
  font-family: var(--serif);
  color: #f3e9d6;
  font-style: italic;
  font-size: clamp(40px, 5.5vw, 64px);
  background: linear-gradient(135deg, #f3e9d6 0%, var(--gold) 60%, #c89438 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 14px;
}
.section--wine .section__head p {
  color: rgba(243, 233, 214, .65);
  font-family: var(--serif);
  font-style: italic;
  font-size: 15px;
  max-width: 520px;
  margin: 0 auto;
}

.wine-ornament {
  display: block;
  margin: 0 auto 26px;
  color: var(--gold);
  opacity: .8;
  text-align: center;
}

.wine-list {
  max-width: 1080px;
  margin: 40px auto 0;
}

.wine-cat {
  text-align: center;
  margin: 36px 0 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(212, 162, 76, .25);
  position: relative;
}
.wine-cat:first-child { margin-top: 0; }
.wine-cat__title {
  font-family: var(--serif);
  font-style: italic;
  font-size: 26px;
  color: var(--gold);
  letter-spacing: 4px;
  text-transform: uppercase;
  font-weight: 400;
}
.wine-cat__sub {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-size: 12px;
  color: rgba(243, 233, 214, .45);
  letter-spacing: 2px;
  margin-top: 4px;
}

.wine-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 50px;
}

.wine {
  padding: 18px 0;
  border-bottom: 1px dashed rgba(212, 162, 76, .18);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.wine:last-child { border-bottom: none; }

.wine__head {
  display: flex;
  align-items: baseline;
  gap: 0;
}
.wine__name {
  font-family: var(--serif);
  font-style: italic;
  font-size: 19px;
  color: #f3e9d6;
  font-weight: 600;
  flex: 0 0 auto;
  max-width: calc(100% - 90px);
}
.wine__dots {
  flex: 1 1 auto;
  height: 1px;
  border-bottom: 1px dotted rgba(212, 162, 76, .35);
  margin: 0 10px;
  transform: translateY(-5px);
  min-width: 14px;
}
.wine__price {
  font-family: var(--serif);
  font-size: 15px;
  color: var(--gold);
  font-weight: 500;
  white-space: nowrap;
  flex: 0 0 auto;
  letter-spacing: .5px;
}

.wine__meta {
  font-family: var(--serif);
  font-style: italic;
  font-size: 12.5px;
  color: rgba(243, 233, 214, .55);
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.wine__notes {
  font-size: 13px;
  color: rgba(243, 233, 214, .7);
  line-height: 1.5;
  font-style: italic;
  margin-top: 2px;
}

.wine-note {
  max-width: 700px;
  margin: 50px auto 0;
  text-align: center;
  font-family: var(--serif);
  font-style: italic;
  font-size: 13px;
  color: rgba(243, 233, 214, .55);
  line-height: 1.7;
  padding-top: 28px;
  border-top: 1px solid rgba(212, 162, 76, .15);
}
.wine-note__pill {
  display: inline-block;
  font-family: var(--sans);
  font-style: normal;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold);
  padding: 5px 14px;
  border: 1px solid rgba(212, 162, 76, .35);
  border-radius: 999px;
  margin-right: 10px;
}

@media (max-width: 720px) {
  .section--wine { padding: 50px 18px 50px; }
  .wine-grid { grid-template-columns: 1fr; gap: 0; }
  .wine { padding: 14px 0; }
  .wine__name { font-size: 16px; max-width: calc(100% - 70px); }
  .wine__price { font-size: 13px; }
  .wine__meta { font-size: 11px; letter-spacing: 1px; }
  .wine__notes { font-size: 12px; }
  .wine-cat { margin: 28px 0 14px; padding-bottom: 10px; }
  .wine-cat__title { font-size: 21px; letter-spacing: 3px; }
  .wine-cat__sub { font-size: 11px; }
  .wine-note { font-size: 12px; margin-top: 32px; padding-top: 20px; }
  .wine-note__pill { display: block; margin: 0 auto 10px; width: max-content; }
}

/* Highlight on chip selection (active section gets a soft glow) */
.section.is-highlighted .section__head h2 {
  position: relative;
  display: inline-block;
}
.section.is-highlighted .section__head h2::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -6px;
  height: 4px;
  background: var(--orange);
  border-radius: 4px;
  animation: highlightBar .6s ease;
}
@keyframes highlightBar {
  from { transform: scaleX(0); transform-origin: left; }
  to { transform: scaleX(1); transform-origin: left; }
}

/* ===== MOBILE — keep 2 columns visible while scrolling ===== */
@media (max-width: 720px) {
  .grid { grid-template-columns: 1fr 1fr; gap: 0 14px; }
  .card { padding: 14px 0; gap: 4px; }
  .card__desc { display: none; }
  /* Important spec-carrying items keep their description visible even in compact 2-col */
  .card--keepdesc .card__desc { display: block; font-size: 11px; line-height: 1.35; margin-top: 3px; }
  .card__title { font-size: 13.5px; max-width: calc(100% - 44px); }
  .card__price { font-size: 13px; }
  .card__sub { font-size: 10.5px; line-height: 1.3; }
  .card__dots { margin: 0 5px; min-width: 6px; }
  .card__tags { margin-top: 4px; gap: 3px; }
  .tag { font-size: 9px; padding: 2px 6px; letter-spacing: .2px; }
  /* Photo-feature cards keep readable sizes regardless of grid compression */
  .card--photo { padding: 16px; gap: 14px; }
  .card--photo .card__title { font-size: 17px; max-width: 100%; }
  .card--photo .card__price { font-size: 17px; }
  .card--photo .card__sub { font-size: 13px; }
  .card--photo .card__desc { display: block; font-size: 13px; }
  .card--photo .card__dots { margin: 0 8px; }
  .card--photo .card__tags { gap: 6px; }
  .card--photo .tag { font-size: 11px; padding: 4px 10px; }
  .section { padding: 36px clamp(14px, 4vw, 32px); }
  .section__head { margin-bottom: 18px; text-align: center; }
  .section__head h2 { font-size: 28px; margin-bottom: 4px; }
  .section__head p { font-size: 13px; margin: 0 auto; }
  .section__kicker { font-size: 10px; letter-spacing: 2px; }
  .sides-note { padding: 14px 16px; font-size: 12px; }
}

@media (max-width: 380px) {
  .grid { gap: 0 10px; }
  .card__title { font-size: 12.5px; }
  .card__price { font-size: 12px; }
  .card--photo .card__title { font-size: 16px; }
  .card--photo .card__price { font-size: 16px; }
}

/* ===== EVENTOS (estilo menú) ===== */
.section--events {
  position: relative;
  padding: 60px clamp(20px, 5vw, 60px);
}
.section--events::before {
  content: "";
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  border-radius: 4px;
  background: linear-gradient(90deg, var(--orange) 0%, var(--gold) 50%, var(--green) 100%);
  opacity: .75;
}

.grid--events {
  max-width: 1100px;
  gap: 0 56px;
}

.card--event .card__head {
  align-items: baseline;
  flex-wrap: wrap;
  min-width: 0;
  column-gap: 10px;
}
.card--event .card__title {
  font-size: 22px;
  color: var(--green-deep);
  font-style: italic;
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
  flex-shrink: 1;
  flex-wrap: wrap;
}
.card--event .card__dots { flex-shrink: 1; min-width: 8px; }
.card--event .card__price { flex-shrink: 0; }
.card--event .card__emoji {
  font-style: normal;
  font-size: 22px;
  line-height: 1;
  flex-shrink: 0;
}
.card--event .card__price {
  color: var(--orange-deep);
  font-style: italic;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.card--event .card__sub {
  color: var(--orange-deep);
  font-style: italic;
  font-size: 12.5px;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-top: 1px;
}
.card--event .card__desc {
  margin-top: 8px;
  line-height: 1.55;
}
.card--event .card__tags {
  margin-top: 12px;
  gap: 5px;
}
.card--event .tag {
  font-size: 10.5px;
  padding: 3px 9px;
  background: rgba(46, 204, 113, .1);
  color: var(--green-deep);
  border: 1px solid rgba(46, 204, 113, .18);
  letter-spacing: .2px;
}

.events-cta {
  max-width: 700px;
  margin: 36px auto 0;
  text-align: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

@media (max-width: 720px) {
  .grid--events { grid-template-columns: 1fr 1fr; gap: 0 18px; }
  .card--event .card__title { font-size: 14px; gap: 4px; }
  .card--event .card__emoji { font-size: 14px; }
  .card--event .card__price { font-size: 10px; letter-spacing: .5px; }
  .card--event .card__sub { font-size: 10px; letter-spacing: .5px; }
  .card--event .card__desc { display: none; }
  .card--event .card__tags { margin-top: 6px; gap: 3px; }
  .card--event .tag { font-size: 9px; padding: 2px 6px; }
}

@media (max-width: 380px) {
  .grid--events { grid-template-columns: 1fr; }
  .card--event .card__desc { display: block; font-size: 12px; }
}
@media (max-width: 640px) {
  .events { padding: 36px 16px 44px; }
}

/* ===== LOCATIONS ===== */
.loc-card__badge--open {
  background: linear-gradient(135deg, var(--green) 0%, var(--green-deep) 100%);
  box-shadow: 0 6px 16px rgba(46, 204, 113, .4);
}

.locations__grid--single {
  grid-template-columns: 1fr;
  max-width: 580px;
}
.loc-card__addr--phone {
  background: rgba(243, 156, 18, .14);
  color: var(--green-deep);
}
.loc-card__addr--phone svg { color: var(--orange-deep); }
.loc-card__addr--phone:hover {
  background: var(--orange-deep);
  color: #fff;
}
.loc-card__addr--phone:hover svg { color: #fff; }
/* ===== FOOTER ===== */
.footer {
  background:
    var(--tex-stone-dark),
    var(--tex-dark),
    linear-gradient(135deg, #1a1410 0%, #2c1810 100%);
  background-size: 600px 600px, 200px 200px, 100% 100%;
  background-repeat: repeat, repeat, no-repeat;
  color: rgba(255, 253, 247, .85);
  padding: 60px clamp(20px, 5vw, 60px) 30px;
}
.footer__inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 40px;
  align-items: start;
}
@media (max-width: 720px) {
  .footer__inner { grid-template-columns: 1fr; gap: 30px; }
}
.footer__brand h3 {
  font-family: var(--serif);
  font-style: italic;
  font-size: 32px;
  color: #fff;
  margin: 4px 0 10px;
}
.footer__est {
  display: inline-block;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--orange);
}
.footer__brand p { margin-bottom: 8px; font-size: 14px; }
.footer__pr { font-size: 13px; opacity: .8; }
.footer__pr strong { color: var(--orange-soft); }
.footer__pr em { color: var(--green-soft); font-style: italic; font-weight: 600; }
.footer__since {
  margin-top: 14px;
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-size: 14px;
  color: var(--gold);
  letter-spacing: .3px;
  opacity: .9;
}
.footer__links {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 14px;
}
.footer__links a {
  text-decoration: none;
  color: rgba(255, 253, 247, .8);
  transition: color .2s;
}
.footer__links a:hover { color: var(--orange-soft); }
.footer__warn {
  max-width: 1100px;
  margin: 40px auto 0;
  padding: 18px 20px;
  font-size: 11px;
  line-height: 1.6;
  color: rgba(255, 253, 247, .55);
  border-top: 1px solid rgba(255, 253, 247, .15);
  padding-top: 22px;
}

.footer__credit {
  max-width: 1100px;
  margin: 18px auto 0;
  text-align: center;
  font-size: 11px;
  color: rgba(255, 253, 247, .4);
  letter-spacing: 1px;
  font-style: italic;
}
.footer__credit a {
  color: var(--orange-soft);
  text-decoration: none;
  font-weight: 600;
  font-style: normal;
  transition: color .2s;
}
.footer__credit a:hover { color: #fff; }

/* ===== WEBSPACE PROMO ===== */
/* ----- Rotating conic gradient (subtle aurora) ----- */
@keyframes wsConicSpin {
  to { transform: rotate(360deg); }
}

/* ----- Mesh blobs (more visible movement) ----- */
.ws-promo__orb--1 {
  width: 420px; height: 420px;
  background: radial-gradient(circle, #25D366 0%, transparent 70%);
  top: -120px; left: -120px;
  opacity: .55;
  animation: wsOrbDrift1 16s ease-in-out infinite alternate;
}
.ws-promo__orb--2 {
  width: 360px; height: 360px;
  background: radial-gradient(circle, var(--orange) 0%, transparent 70%);
  bottom: -100px; right: -80px;
  opacity: .5;
  animation: wsOrbDrift2 19s ease-in-out infinite alternate;
}
.ws-promo__orb--3 {
  width: 300px; height: 300px;
  background: radial-gradient(circle, var(--gold) 0%, transparent 70%);
  top: 40%; left: 45%;
  opacity: .35;
  animation: wsOrbDrift3 22s ease-in-out infinite alternate;
}
.ws-promo__orb--4 {
  width: 280px; height: 280px;
  background: radial-gradient(circle, #128C7E 0%, transparent 70%);
  top: 10%; right: 30%;
  opacity: .45;
  animation: wsOrbDrift4 18s ease-in-out infinite alternate;
}

@keyframes wsOrbDrift1 {
  0% { transform: translate(0, 0) scale(1); }
  100% { transform: translate(120px, 80px) scale(1.25); }
}
@keyframes wsOrbDrift2 {
  0% { transform: translate(0, 0) scale(1.1); }
  100% { transform: translate(-100px, -90px) scale(1); }
}
@keyframes wsOrbDrift3 {
  0% { transform: translate(-50%, -50%) scale(1); }
  100% { transform: translate(-30%, -65%) scale(1.3); }
}
@keyframes wsOrbDrift4 {
  0% { transform: translate(0, 0) scale(.9); }
  100% { transform: translate(-80px, 110px) scale(1.2); }
}

/* ----- Animated grid pattern ----- */
@keyframes wsGridSlide {
  from { background-position: 0 0, 0 0; }
  to { background-position: 60px 60px, 60px 60px; }
}

/* ----- Drifting particles ----- */
@keyframes wsParticleRise {
  0% {
    transform: translateY(0) translateX(0) scale(0);
    opacity: 0;
  }
  10% {
    opacity: .9;
    transform: translateY(-50px) translateX(8px) scale(1);
  }
  50% {
    transform: translateY(-50vh) translateX(-15px) scale(1);
    opacity: .7;
  }
  90% {
    opacity: .4;
    transform: translateY(-95vh) translateX(20px) scale(.8);
  }
  100% {
    transform: translateY(-100vh) translateX(0) scale(0);
    opacity: 0;
  }
}

/* ----- Shine lines (top & bottom) ----- */
.ws-promo__shine--top { top: 0; }
.ws-promo__shine--bottom {
  bottom: 0;
  animation-delay: -4s;
}
@keyframes wsShine {
  0%, 100% {
    opacity: .25;
    background-position: -100% 0;
  }
  50% {
    opacity: .9;
    background-position: 100% 0;
  }
}

@media (prefers-reduced-motion: reduce) {
}

/* When the WebSpace CTA is shown alone (no left brand section) */
.ws-promo__inner--solo {
  grid-template-columns: minmax(0, 480px);
  justify-content: center;
}
.ws-promo__inner--solo .ws-promo__cta {
  width: 100%;
}

/* ----- Left side ----- */
.ws-promo__brand-text {
  display: flex;
  flex-direction: column;
}
.ws-promo__brand-text strong {
  font-family: var(--serif);
  font-style: italic;
  font-size: 24px;
  color: #fff;
  letter-spacing: .5px;
}

.ws-promo__feat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: rgba(37, 211, 102, .12);
  border: 1px solid rgba(37, 211, 102, .25);
  border-radius: 50%;
  font-size: 14px;
  flex-shrink: 0;
}

/* ----- Right side (CTA card) ----- */
.ws-promo__cta-kicker {
  display: inline-block;
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: #25D366;
  margin-bottom: 10px;
}
.ws-promo__cta-title {
  font-family: var(--serif);
  font-style: italic;
  font-size: 26px;
  color: #fff;
  line-height: 1.2;
  margin-bottom: 8px;
}
.ws-promo__cta-title em {
  color: #25D366;
  font-weight: 700;
}
.ws-promo__cta-text {
  font-size: 13px;
  color: rgba(243, 233, 214, .65);
  margin-bottom: 22px;
}

.ws-promo__wa-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: rgba(255, 255, 255, .18);
  border-radius: 10px;
  flex-shrink: 0;
}
.ws-promo__wa-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  text-align: left;
  line-height: 1.2;
}
.ws-promo__wa-text strong {
  font-size: 15px;
  letter-spacing: .3px;
}
.ws-promo__wa-text em {
  font-style: normal;
  font-size: 12px;
  opacity: .85;
  margin-top: 2px;
  letter-spacing: 1px;
}
.ws-promo__wa-arrow {
  display: inline-flex;
  transition: transform .3s ease;
  flex-shrink: 0;
}
@media (max-width: 880px) {
  .ws-promo__cta-title { font-size: 22px; }
  .ws-promo__wa-icon { width: 36px; height: 36px; }
}

/* ===== WhatsApp Floating Button ===== */
@keyframes waPulse {
  0% { transform: scale(1); opacity: .5; }
  100% { transform: scale(1.6); opacity: 0; }
}
@keyframes waBounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

@media (max-width: 640px) {
}


/* ===== Toggle de Idioma ===== */
body.lang-es-only .card__sub {
  display: none;
}
body.lang-es-only .wine-cat__sub {
  display: none;
}


/* ===== POP-UP PROMOCIÓN · EVENTO ===== */
.promo {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .45s ease, visibility .45s ease;
}
.promo.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.promo__overlay {
  position: absolute;
  inset: 0;
  background: rgba(8, 6, 4, .82);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.promo__card {
  position: relative;
  width: min(420px, 100%);
  max-height: calc(100dvh - 40px);
  overflow-y: auto;
  text-align: center;
  padding: 38px 30px 30px;
  color: #f3e7cf;
  border: 1px solid rgba(212, 162, 76, .45);
  border-radius: 18px;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(212, 162, 76, .22) 0%, rgba(212, 162, 76, 0) 55%),
    linear-gradient(170deg, #15110a 0%, #0b0805 60%, #100c07 100%);
  box-shadow: 0 30px 80px rgba(0, 0, 0, .7), 0 0 0 1px rgba(0, 0, 0, .4);
  transform: translateY(18px) scale(.97);
  transition: transform .5s cubic-bezier(.2, .8, .25, 1);
  -webkit-overflow-scrolling: touch;
}
.promo.is-open .promo__card { transform: translateY(0) scale(1); }

.promo__close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  font-size: 26px;
  line-height: 1;
  color: var(--gold);
  background: rgba(0, 0, 0, .35);
  border: 1px solid rgba(212, 162, 76, .4);
  border-radius: 50%;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease, color .2s ease;
  z-index: 2;
}
.promo__close:hover {
  background: var(--gold);
  color: #15110a;
  transform: rotate(90deg);
}

.promo__invite {
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #cdbd9c;
  margin-bottom: 16px;
  padding: 0 34px;
}
.promo__invite strong { color: var(--gold); font-weight: 600; }

.promo__pre {
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 2px;
}
.promo__star {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: clamp(40px, 13vw, 56px);
  line-height: 1.12;
  color: #e9c878;
  background: linear-gradient(180deg, #f6dd9e 0%, #d4a24c 55%, #b07d2c 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 2px 18px rgba(212, 162, 76, .25);
  margin-bottom: 10px;
  padding: 4px 6px 8px;
  overflow: visible;
}
.promo__por {
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: #cdbd9c;
}
.promo__artist {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: clamp(26px, 8vw, 34px);
  letter-spacing: .02em;
  color: var(--gold);
  margin-bottom: 14px;
}
.promo__desc {
  font-family: var(--sans);
  font-size: 13px;
  line-height: 1.55;
  color: #d7cab0;
  max-width: 320px;
  margin: 0 auto 20px;
}

.promo__when {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 14px 16px;
  margin: 0 auto 16px;
  width: fit-content;
  border: 1px solid rgba(212, 162, 76, .35);
  border-radius: 12px;
  background: rgba(0, 0, 0, .25);
}
.promo__date { line-height: 1; text-align: center; }
.promo__dow {
  display: block;
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #cdbd9c;
  margin-bottom: 2px;
}
.promo__day {
  display: block;
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: 46px;
  color: var(--gold);
}
.promo__time {
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #d7cab0;
  border-left: 1px solid rgba(212, 162, 76, .3);
  padding-left: 16px;
}
.promo__hour { color: var(--gold); }

.promo__place {
  font-family: var(--sans);
  font-size: 13px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #e9ddc4;
  margin-bottom: 18px;
}
.promo__place span { color: var(--gold); }

.promo__deal {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 18px;
  margin-bottom: 22px;
}
.promo__deal > div:not(.promo__deal-sep) {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.promo__deal-sep { width: 1px; background: rgba(212, 162, 76, .3); }
.promo__deal-k {
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #b8a986;
}
.promo__deal-v {
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 600;
  color: #f0e6d0;
  max-width: 130px;
}
.promo__price {
  font-family: 'Playfair Display', serif;
  font-size: 26px !important;
  font-weight: 700;
  color: var(--gold);
}
.promo__price em { font-family: var(--sans); font-size: 10px; font-style: normal; font-weight: 500; color: #b8a986; display: block; letter-spacing: .1em; text-transform: uppercase; }

.promo__cta {
  display: block;
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .02em;
  color: #15110a;
  text-decoration: none;
  padding: 15px 18px;
  border-radius: 999px;
  background: linear-gradient(135deg, #f0cd83 0%, #d4a24c 55%, #c08f38 100%);
  box-shadow: 0 8px 24px rgba(212, 162, 76, .3);
}
.promo__cta--beat {
  transform-origin: center;
  animation: promoBeat 1.4s ease-in-out infinite;
}
@keyframes promoBeat {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 8px 24px rgba(212, 162, 76, .3);
  }
  18% {
    transform: scale(1.06);
    box-shadow: 0 12px 34px rgba(212, 162, 76, .55);
  }
  32% { transform: scale(1.0); }
  46% {
    transform: scale(1.04);
    box-shadow: 0 12px 30px rgba(212, 162, 76, .45);
  }
}

/* ===== Pop-up con flyer del evento ===== */
.promo__sr {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.promo__card--flyer {
  width: min(440px, 100%);
  padding: 0 0 14px;
  text-align: center;
  background:
    radial-gradient(120% 60% at 50% 0%, rgba(212, 162, 76, .18) 0%, rgba(212, 162, 76, 0) 55%),
    #0b0805;
}
.promo__flyer {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px 18px 0 0;
}
.promo__card--flyer .promo__cta {
  margin: 14px 14px 0;
}
.promo__cta--wa {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
}

@media (max-width: 380px) {
  .promo__card { padding: 34px 20px 24px; }
  .promo__card--flyer { padding: 0 0 12px; }
  .promo__desc { font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .promo, .promo__card, .promo__close { transition: none; }
  .promo__cta--beat { animation: none; }
}

/* ===== Promo · Evento (flyer fijo al final) ===== */
.evento {
  padding: clamp(44px, 6vw, 72px) 20px;
  text-align: center;
  background:
    linear-gradient(180deg, #1a120b 0%, rgba(11, 8, 5, 0) 24%),
    radial-gradient(120% 55% at 50% 0%, rgba(212, 162, 76, .14) 0%, rgba(212, 162, 76, 0) 55%),
    #0b0805;
}
.evento__inner { max-width: 460px; margin: 0 auto; }
.evento__kicker {
  display: inline-block;
  font-family: var(--sans);
  font-size: 12px; font-weight: 600; letter-spacing: .28em; text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 22px;
}
.evento__flyer {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 16px;
  border: 1px solid rgba(212, 162, 76, .35);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .55);
}
.evento__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin-top: 22px;
  font-family: var(--sans);
  font-size: 15px; font-weight: 700; letter-spacing: .02em;
  color: #15110a;
  text-decoration: none;
  padding: 15px 30px;
  border-radius: 999px;
  background: linear-gradient(135deg, #f0cd83 0%, #d4a24c 55%, #c08f38 100%);
  box-shadow: 0 8px 24px rgba(212, 162, 76, .3);
  transition: transform .15s ease, box-shadow .15s ease;
}
.evento__cta:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(212, 162, 76, .45); }
@media (max-width: 480px) {
  .evento__cta { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .evento__cta { transition: none; }
}

/* ===== Promo · Diseño Web (WebSpace LLC) — discreta ===== */
.webpromo {
  padding: 16px 20px;
  text-align: center;
  background: var(--sand-deep);
  border-top: 1px solid rgba(44, 24, 16, .08);
}
.webpromo__line {
  margin: 0;
  font-family: var(--sans);
  font-size: 12.5px;
  line-height: 1.6;
  letter-spacing: .01em;
  color: var(--ink-soft);
}
.webpromo__line strong { color: var(--ink); font-weight: 600; }
.webpromo__sep { margin: 0 9px; opacity: .35; }
.webpromo__link {
  color: #b78327;
  text-decoration: none;
  font-weight: 600;
  border-bottom: 1px solid rgba(183, 131, 39, .35);
  transition: border-color .15s ease;
}
.webpromo__link:hover { border-bottom-color: #b78327; }
@media (max-width: 420px) {
  .webpromo__sep { display: block; height: 0; margin: 4px 0; border: 0; }
}
