/* ═══════════════════════════════════════════════════════════════
   PUNKU — Stylesheet v1.0
   Base compartida + estilos por página
═══════════════════════════════════════════════════════════════ */

/* ─── 01. BASE COMPARTIDA (reset, variables, cursor, nav, footer, reveal) ─── */

/* ─── RESET & BASE ─────────────────────────────── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; font-size: 16px; }

    :root {
      --black:   #080807;
      --deep:    #111110;
      --coal:    #1a1917;
      --warm:    #f0ece3;
      --muted:   #8a8478;
      --gold:    #b89a5e;
      --gold-lt: #d4b878;
      --border:  rgba(240,236,227,0.08);
      --border-gold: rgba(184,154,94,0.3);
      --ff-display: 'Libre Baskerville', Georgia, serif;
      --ff-sc:      'Libre Baskerville', Georgia, serif;
      --ff-mono:    'Space Mono', monospace;
      --ff-body:    'DM Sans', sans-serif;
      --rust:       #9A2A1A;
      --vermilion:  #c44a2d;
    }

    body {
      background: var(--black);
      color: var(--warm);
      font-family: var(--ff-body);
      font-weight: 300;
      line-height: 1.6;
      overflow-x: hidden;
      cursor: none;
    }

    /* ─── CUSTOM CURSOR ────────────────────────────── */
    .cursor {
      position: fixed; top: 0; left: 0;
      width: 10px; height: 10px;
      background: var(--gold);
      border-radius: 50%;
      pointer-events: none;
      z-index: 9999;
      transform: translate(-50%, -50%);
      transition: transform 0.1s ease, width 0.3s ease, height 0.3s ease, background 0.3s ease;
      mix-blend-mode: difference;
    }
    .cursor-ring {
      position: fixed; top: 0; left: 0;
      width: 36px; height: 36px;
      border: 1px solid var(--gold-lt);
      border-radius: 50%;
      pointer-events: none;
      z-index: 9998;
      transform: translate(-50%, -50%);
      transition: transform 0.18s ease, width 0.3s ease, height 0.3s ease, opacity 0.3s;
      opacity: 0.5;
    }
    body:hover .cursor { opacity: 1; }

    /* ─── GRAIN OVERLAY ────────────────────────────── */
    body::before {
      content: '';
      position: fixed;
      inset: 0;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");
      opacity: 0.028;
      pointer-events: none;
      z-index: 1000;
    }

    /* ─── NAV ──────────────────────────────────────── */
    nav {
      position: fixed; top: 0; left: 0; right: 0;
      z-index: 900;
      background: rgba(8,8,7,0.55) !important;
      transition: background 0.5s ease, padding 0.4s ease;
    }
    nav.scrolled {
      background: rgba(8,8,7,0.94);
      backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--border);
    }
    .nav-inner {
      padding: 1.2rem 3rem 0.8rem;
    }
    nav.scrolled .nav-inner {
      padding: 0.8rem 3rem 0.6rem;
    }
    .nav-logo {
      display: flex;
      justify-content: center;
      text-decoration: none;
      margin-bottom: 0.8rem;
    }
    nav.scrolled .nav-logo { margin-bottom: 0.5rem; }
    .nav-row {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1.5rem;
    }
    .nav-links {
      display: flex; gap: 1.8rem;
      list-style: none;
    }
    .nav-links a, .nav-link {
      font-family: var(--ff-mono);
      font-size: 0.56rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--muted);
      text-decoration: none;
      transition: color 0.3s;
      padding-bottom: 3px;
      border-bottom: 1px solid transparent;
    }
    .nav-links a:hover, .nav-link:hover { color: var(--warm); }
    .nav-links a.active, .nav-link.active {
      color: var(--gold);
      border-bottom-color: var(--gold);
    }
    .nav-cta {
      font-family: var(--ff-mono);
      font-size: 0.56rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--black);
      background: var(--gold);
      padding: 0.4rem 1rem;
      text-decoration: none;
      transition: background 0.3s, transform 0.2s;
      margin-left: 0.5rem;
    }
    .nav-cta:hover { background: var(--gold-lt); transform: translateY(-1px); }

    /* ─── HERO ─────────────────────────────────────── */
    #hero {
      position: relative;
      height: 100vh; min-height: 600px;
      display: flex; flex-direction: column;
      justify-content: flex-end;
      padding: 0 3rem 5rem;
      overflow: hidden;
    }
    .hero-bg {
      position: absolute; inset: 0;
      background:
        linear-gradient(to top, rgba(8,8,7,1) 0%, rgba(8,8,7,0.55) 40%, rgba(8,8,7,0.15) 100%),
        linear-gradient(135deg, #1a1714 0%, #0d0c0a 50%, #181614 100%);
      z-index: 0;
    }
    /* Photo placeholder — replace with actual img tag */
    .hero-photo-placeholder {
      position: absolute; inset: 0;
      background: linear-gradient(135deg, #1c1a16 0%, #0f0e0c 60%, #1a1612 100%);
      z-index: 0;
      display: flex; align-items: center; justify-content: center;
    }
    .hero-photo-placeholder::after {
      content: '[ foto ambiente punku ]';
      font-family: var(--ff-sc);
      font-size: 0.65rem;
      letter-spacing: 0.3em;
      color: rgba(138,132,120,0.25);
    }
    .hero-photo-placeholder::before {
      content: '';
      position: absolute; inset: 0;
      background: 
        radial-gradient(ellipse 60% 50% at 70% 40%, rgba(184,154,94,0.04) 0%, transparent 70%),
        radial-gradient(ellipse 40% 60% at 20% 60%, rgba(240,236,227,0.02) 0%, transparent 60%);
    }
    .hero-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(to top, rgba(8,8,7,0.97) 0%, rgba(8,8,7,0.4) 50%, rgba(8,8,7,0.1) 100%);
      z-index: 1;
    }
    .hero-content { position: relative; z-index: 2; }
    .hero-label {
      font-family: var(--ff-sc);
      font-size: 0.65rem;
      letter-spacing: 0.4em;
      color: var(--gold);
      margin-bottom: 1.2rem;
      opacity: 0;
      animation: fadeUp 1s 0.3s forwards;
    }
    .hero-title {
      font-family: var(--ff-display);
      font-size: clamp(5rem, 14vw, 13rem);
      font-weight: 300;
      line-height: 0.88;
      letter-spacing: -0.02em;
      color: var(--warm);
      opacity: 0;
      animation: fadeUp 1.1s 0.5s forwards;
      margin-bottom: 1.8rem;
    }
    .hero-title em {
      font-style: italic;
      color: var(--gold);
    }
    .hero-tagline {
      font-family: var(--ff-display);
      font-size: clamp(1rem, 2vw, 1.35rem);
      font-weight: 300;
      font-style: italic;
      color: var(--muted);
      max-width: 480px;
      margin-bottom: 3rem;
      line-height: 1.5;
      opacity: 0;
      animation: fadeUp 1s 0.8s forwards;
    }
    .hero-actions {
      display: flex; gap: 1.5rem; align-items: center;
      opacity: 0;
      animation: fadeUp 1s 1.1s forwards;
    }
    .btn-primary {
      font-family: var(--ff-sc);
      font-size: 0.65rem;
      letter-spacing: 0.3em;
      background: var(--gold);
      color: var(--black);
      padding: 0.85rem 2rem;
      text-decoration: none;
      transition: background 0.3s, transform 0.2s;
      display: inline-block;
    }
    .btn-primary:hover { background: var(--gold-lt); transform: translateY(-2px); }
    .btn-ghost {
      font-family: var(--ff-sc);
      font-size: 0.65rem;
      letter-spacing: 0.3em;
      border: 1px solid var(--border-gold);
      color: var(--warm);
      padding: 0.85rem 2rem;
      text-decoration: none;
      transition: border-color 0.3s, color 0.3s, transform 0.2s;
      display: inline-block;
    }
    .btn-ghost:hover { border-color: var(--gold); color: var(--gold); transform: translateY(-2px); }
    .btn-text {
      font-family: var(--ff-sc);
      font-size: 0.65rem;
      letter-spacing: 0.3em;
      color: var(--muted);
      text-decoration: none;
      display: flex; align-items: center; gap: 0.5rem;
      transition: color 0.3s;
    }
    .btn-text::after { content: '→'; transition: transform 0.3s; }
    .btn-text:hover { color: var(--warm); }
    .btn-text:hover::after { transform: translateX(4px); }

    /* Hero side info */
    .hero-side {
      position: absolute; right: 3rem; bottom: 5rem;
      z-index: 2;
      text-align: right;
      opacity: 0;
      animation: fadeIn 1s 1.4s forwards;
    }
    .hero-side p {
      font-family: var(--ff-sc);
      font-size: 0.6rem;
      letter-spacing: 0.25em;
      color: var(--muted);
      line-height: 2;
    }
    .hero-side span { color: var(--warm); }

    /* Scroll indicator */
    .scroll-hint {
      position: absolute; bottom: 2rem; left: 50%;
      transform: translateX(-50%);
      z-index: 2;
      display: flex; flex-direction: column; align-items: center; gap: 0.5rem;
      opacity: 0;
      animation: fadeIn 1s 2s forwards;
    }
    .scroll-hint span {
      font-family: var(--ff-sc);
      font-size: 0.55rem;
      letter-spacing: 0.4em;
      color: var(--muted);
    }
    .scroll-line {
      width: 1px; height: 40px;
      background: linear-gradient(to bottom, var(--gold), transparent);
      animation: scrollPulse 2s ease-in-out infinite;
    }

    /* ─── SECTIONS SHARED ──────────────────────────── */
    section { position: relative; }
    .section-inner {
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 3rem;
    }
    .section-label {
      font-family: var(--ff-sc);
      font-size: 0.6rem;
      letter-spacing: 0.45em;
      color: var(--gold);
      margin-bottom: 1.2rem;
      display: flex; align-items: center; gap: 1rem;
    }
    .section-label::before {
      content: '';
      display: block;
      width: 30px; height: 1px;
      background: var(--gold);
    }

    /* ─── FILOSOFÍA ────────────────────────────────── */
    #filosofia {
      padding: 9rem 0 8rem;
    }
    .filosofia-grid {
      display: grid;
      grid-template-columns: 1fr 2fr;
      gap: 5rem;
      align-items: start;
    }
    .filosofia-left {}
    .filosofia-left h2 {
      font-family: var(--ff-display);
      font-size: clamp(2.5rem, 5vw, 4.5rem);
      font-weight: 300;
      line-height: 1.05;
      color: var(--warm);
    }
    .filosofia-left h2 em {
      font-style: italic;
      color: var(--gold);
    }
    .filosofia-right {}
    .filosofia-right p {
      font-size: 1.1rem;
      font-weight: 300;
      line-height: 1.85;
      color: rgba(240,236,227,0.7);
      margin-bottom: 1.5rem;
    }
    .filosofia-right p strong {
      font-weight: 500;
      color: var(--warm);
    }
    .filosofia-divider {
      width: 100%; height: 1px;
      background: var(--border);
      margin: 5rem 0;
    }
    /* Stats row */
    .stats-row {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 2rem;
      padding-top: 1rem;
    }
    .stat {}
    .stat-num {
      font-family: var(--ff-display);
      font-size: 3rem;
      font-weight: 300;
      color: var(--warm);
      line-height: 1;
      margin-bottom: 0.4rem;
    }
    .stat-num em { color: var(--gold); font-style: normal; }
    .stat-label {
      font-family: var(--ff-sc);
      font-size: 0.6rem;
      letter-spacing: 0.3em;
      color: var(--muted);
      line-height: 1.6;
    }

    /* ─── PRÓXIMOS EVENTOS ─────────────────────────── */
    #eventos {
      padding: 7rem 0 8rem;
      border-top: 1px solid var(--border);
    }
    .eventos-header {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      margin-bottom: 3.5rem;
    }
    .eventos-title {
      font-family: var(--ff-display);
      font-size: clamp(2rem, 4vw, 3.5rem);
      font-weight: 300;
      color: var(--warm);
    }
    .eventos-link {
      font-family: var(--ff-sc);
      font-size: 0.62rem;
      letter-spacing: 0.3em;
      color: var(--gold);
      text-decoration: none;
      display: flex; align-items: center; gap: 0.5rem;
      transition: gap 0.3s;
    }
    .eventos-link::after { content: '→'; }
    .eventos-link:hover { gap: 0.9rem; }
    .eventos-grid {
      display: grid;
      grid-template-columns: 1.4fr 1fr 1fr;
      gap: 1.5px;
      background: var(--border);
    }
    .evento-card {
      background: var(--deep);
      padding: 2.5rem;
      transition: background 0.35s;
      cursor: pointer;
    }
    .evento-card:hover { background: var(--coal); }
    .evento-card.featured {
      background: var(--coal);
      grid-row: span 1;
    }
    .evento-tipo {
      font-family: var(--ff-sc);
      font-size: 0.58rem;
      letter-spacing: 0.4em;
      padding: 0.3rem 0.7rem;
      display: inline-block;
      margin-bottom: 1.5rem;
    }
    .tipo-cultural { background: rgba(184,154,94,0.12); color: var(--gold); }
    .tipo-musica   { background: rgba(240,236,227,0.06); color: var(--muted); }
    .tipo-fiesta   { background: rgba(240,236,227,0.12); color: var(--warm); }
    .evento-fecha {
      font-family: var(--ff-display);
      font-size: 3.5rem;
      font-weight: 300;
      line-height: 1;
      color: var(--warm);
      margin-bottom: 0.3rem;
    }
    .evento-fecha .mes {
      font-size: 1rem;
      font-style: italic;
      color: var(--muted);
      display: block;
      margin-top: 0.2rem;
    }
    .evento-nombre {
      font-family: var(--ff-display);
      font-size: 1.5rem;
      font-weight: 400;
      color: var(--warm);
      margin: 1.2rem 0 0.5rem;
      line-height: 1.2;
    }
    .evento-desc {
      font-size: 0.85rem;
      color: var(--muted);
      line-height: 1.7;
      margin-bottom: 2rem;
    }
    .evento-footer {
      display: flex; align-items: center; justify-content: space-between;
      padding-top: 1.5rem;
      border-top: 1px solid var(--border);
    }
    .evento-hora {
      font-family: var(--ff-sc);
      font-size: 0.6rem;
      letter-spacing: 0.25em;
      color: var(--muted);
    }
    .evento-reservar {
      font-family: var(--ff-sc);
      font-size: 0.58rem;
      letter-spacing: 0.3em;
      color: var(--gold);
      text-decoration: none;
      transition: color 0.3s;
    }
    .evento-reservar:hover { color: var(--gold-lt); }

    /* ─── LA CARTA ─────────────────────────────────── */
    #carta {
      padding: 8rem 0;
      border-top: 1px solid var(--border);
    }
    .carta-layout {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 6rem;
      align-items: start;
    }
    .carta-left h2 {
      font-family: var(--ff-display);
      font-size: clamp(2.5rem, 4.5vw, 4rem);
      font-weight: 300;
      line-height: 1.05;
      color: var(--warm);
      margin-bottom: 1.5rem;
    }
    .carta-left h2 em { font-style: italic; color: var(--gold); }
    .carta-left p {
      font-size: 0.95rem;
      color: var(--muted);
      line-height: 1.85;
      margin-bottom: 2.5rem;
    }
    .carta-photo {
      aspect-ratio: 3/4;
      background: var(--coal);
      background-size: cover;
      background-position: center;
      display: flex; align-items: center; justify-content: center;
      position: relative;
      overflow: hidden;
    }
    .carta-photo::after {
      content: '[ foto coctel ]';
      font-family: var(--ff-sc);
      font-size: 0.6rem;
      letter-spacing: 0.3em;
      color: rgba(138,132,120,0.2);
    }
    .carta-photo::before {
      content: '';
      position: absolute; inset: 0;
      background: radial-gradient(ellipse at 60% 30%, rgba(184,154,94,0.06), transparent 60%);
    }
    .carta-right {}
    .coctel-list { margin-top: 1rem; }
    .coctel-item {
      padding: 1.6rem 0;
      border-bottom: 1px solid var(--border);
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 1rem;
      transition: padding-left 0.3s;
      cursor: pointer;
    }
    .coctel-item:hover { padding-left: 0.5rem; }
    .coctel-item:first-child { border-top: 1px solid var(--border); }
    .coctel-nombre {
      font-family: var(--ff-display);
      font-size: 1.25rem;
      font-weight: 400;
      color: var(--warm);
      margin-bottom: 0.3rem;
    }
    .coctel-base {
      font-family: var(--ff-sc);
      font-size: 0.58rem;
      letter-spacing: 0.3em;
      color: var(--gold);
    }
    .coctel-desc {
      font-size: 0.82rem;
      color: var(--muted);
      line-height: 1.6;
      margin-top: 0.5rem;
      grid-column: 1 / -1;
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.4s ease;
    }
    .coctel-item:hover .coctel-desc { max-height: 80px; }
    .coctel-precio {
      font-family: var(--ff-display);
      font-size: 1.1rem;
      font-weight: 300;
      color: var(--muted);
      white-space: nowrap;
    }

    /* ─── PUNKU LAB ────────────────────────────────── */
    #lab {
      padding: 8rem 0;
      background: var(--deep);
      border-top: 1px solid var(--border);
    }
    .lab-header {
      margin-bottom: 4rem;
    }
    .lab-title-group {
      display: flex; align-items: baseline; gap: 1.5rem; margin-bottom: 0.5rem;
    }
    .lab-title-group h2 {
      font-family: var(--ff-display);
      font-size: clamp(2.5rem, 5vw, 4rem);
      font-weight: 300;
      color: var(--warm);
    }
    .lab-sub {
      font-family: var(--ff-sc);
      font-size: 0.75rem;
      letter-spacing: 0.4em;
      color: var(--gold);
    }
    .lab-header p {
      font-size: 0.95rem;
      color: var(--muted);
      max-width: 520px;
      line-height: 1.8;
    }
    .lab-products {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.5px;
      background: var(--border);
    }
    .lab-product {
      background: var(--black);
      padding: 3rem 2.5rem;
      position: relative;
      overflow: hidden;
      transition: background 0.35s;
    }
    .lab-product:hover { background: var(--coal); }
    .lab-product::before {
      content: '';
      position: absolute; top: 0; left: 0; right: 0;
      height: 2px;
      background: linear-gradient(90deg, transparent, var(--gold), transparent);
      opacity: 0;
      transition: opacity 0.35s;
    }
    .lab-product:hover::before { opacity: 1; }
    .lab-product-num {
      font-family: var(--ff-display);
      font-size: 5rem;
      font-weight: 300;
      color: rgba(240,236,227,0.03);
      position: absolute; top: 1rem; right: 1.5rem;
      line-height: 1;
    }
    .lab-product-photo {
      width: 100%; aspect-ratio: 2/3;
      background: var(--coal);
      margin-bottom: 2rem;
      display: flex; align-items: center; justify-content: center;
      position: relative;
    }
    .lab-product-photo::after {
      content: '[ foto botella ]';
      font-family: var(--ff-sc);
      font-size: 0.55rem;
      letter-spacing: 0.3em;
      color: rgba(138,132,120,0.2);
    }
    .lab-product-name {
      font-family: var(--ff-display);
      font-size: 1.8rem;
      font-weight: 400;
      color: var(--warm);
      margin-bottom: 0.3rem;
    }
    .lab-product-subtitle {
      font-family: var(--ff-sc);
      font-size: 0.6rem;
      letter-spacing: 0.35em;
      color: var(--gold);
      margin-bottom: 1rem;
    }
    .lab-product-desc {
      font-size: 0.85rem;
      color: var(--muted);
      line-height: 1.75;
      margin-bottom: 2rem;
    }
    .lab-product-footer {
      display: flex; align-items: center; justify-content: space-between;
      padding-top: 1.5rem;
      border-top: 1px solid var(--border);
    }
    .lab-product-price {
      font-family: var(--ff-display);
      font-size: 1.4rem;
      font-weight: 300;
      color: var(--warm);
    }
    .lab-product-price span {
      font-size: 0.7rem;
      font-family: var(--ff-sc);
      letter-spacing: 0.2em;
      color: var(--muted);
      margin-left: 0.3rem;
    }
    .lab-product-cta {
      font-family: var(--ff-sc);
      font-size: 0.58rem;
      letter-spacing: 0.3em;
      color: var(--gold);
      text-decoration: none;
      transition: color 0.3s;
    }
    .lab-product-cta:hover { color: var(--gold-lt); }

    /* ─── NOCHES ───────────────────────────────────── */
    #noches {
      padding: 8rem 0;
      border-top: 1px solid var(--border);
    }
    .noches-title {
      font-family: var(--ff-display);
      font-size: clamp(2.5rem, 5vw, 4rem);
      font-weight: 300;
      color: var(--warm);
      margin-bottom: 3.5rem;
    }
    .noches-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2rem;
    }
    .noche-card {
      padding: 2.5rem;
      border: 1px solid var(--border);
      position: relative;
      transition: border-color 0.35s;
    }
    .noche-card:hover { border-color: var(--border-gold); }
    .noche-dia {
      font-family: var(--ff-display);
      font-size: 2.5rem;
      font-weight: 300;
      color: var(--warm);
      margin-bottom: 0.3rem;
    }
    .noche-tipo {
      font-family: var(--ff-sc);
      font-size: 0.58rem;
      letter-spacing: 0.35em;
      color: var(--gold);
      margin-bottom: 1.5rem;
    }
    .noche-desc {
      font-size: 0.88rem;
      color: var(--muted);
      line-height: 1.75;
    }
    .noche-icon {
      position: absolute; top: 2rem; right: 2rem;
      font-size: 1.5rem;
      opacity: 0.2;
    }

    /* ─── FOOTER ───────────────────────────────────── */
    footer {
      background: var(--deep);
      border-top: 1px solid var(--border);
      padding: 6rem 0 3rem;
    }
    .footer-inner {
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 3rem;
    }
    .footer-top {
      display: grid;
      grid-template-columns: 2fr 1fr 1fr 1fr;
      gap: 3rem;
      padding-bottom: 4rem;
      border-bottom: 1px solid var(--border);
      margin-bottom: 3rem;
    }
    .footer-brand {}
    .footer-logo {
      font-family: var(--ff-sc);
      font-size: 1.8rem;
      letter-spacing: 0.3em;
      color: var(--warm);
      display: block;
      margin-bottom: 1rem;
    }
    .footer-brand p {
      font-size: 0.88rem;
      color: var(--muted);
      line-height: 1.8;
      max-width: 260px;
    }
    .footer-col h4 {
      font-family: var(--ff-sc);
      font-size: 0.62rem;
      letter-spacing: 0.35em;
      color: var(--gold);
      margin-bottom: 1.5rem;
    }
    .footer-col ul { list-style: none; }
    .footer-col ul li {
      font-size: 0.88rem;
      color: var(--muted);
      margin-bottom: 0.6rem;
      line-height: 1.5;
    }
    .footer-col ul li a {
      color: var(--muted);
      text-decoration: none;
      transition: color 0.3s;
    }
    .footer-col ul li a:hover { color: var(--warm); }
    .footer-bottom {
      display: flex; align-items: center; justify-content: space-between;
    }
    .footer-bottom p {
      font-family: var(--ff-sc);
      font-size: 0.58rem;
      letter-spacing: 0.2em;
      color: rgba(138,132,120,0.4);
    }
    .footer-social {
      display: flex; gap: 1.5rem;
    }
    .footer-social a {
      font-family: var(--ff-sc);
      font-size: 0.6rem;
      letter-spacing: 0.25em;
      color: var(--muted);
      text-decoration: none;
      transition: color 0.3s;
    }
    .footer-social a:hover { color: var(--gold); }

    /* ─── ANIMATIONS ───────────────────────────────── */
    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(30px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes fadeIn {
      from { opacity: 0; }
      to   { opacity: 1; }
    }
    @keyframes scrollPulse {
      0%, 100% { opacity: 0.3; transform: scaleY(1); }
      50%       { opacity: 0.8; transform: scaleY(1.2); }
    }

    /* Reveal on scroll */
    .reveal {
      opacity: 0;
      transform: translateY(40px);
      transition: opacity 0.8s ease, transform 0.8s ease;
    }
    .reveal.visible {
      opacity: 1;
      transform: translateY(0);
    }
    .reveal-delay-1 { transition-delay: 0.1s; }
    .reveal-delay-2 { transition-delay: 0.2s; }
    .reveal-delay-3 { transition-delay: 0.35s; }
    .reveal-delay-4 { transition-delay: 0.5s; }

    /* ─── SCROLLBAR ────────────────────────────────── */
    ::-webkit-scrollbar { width: 4px; }
    ::-webkit-scrollbar-track { background: var(--black); }
    ::-webkit-scrollbar-thumb { background: var(--border-gold); }

    /* ─── MOBILE ───────────────────────────────────── */
    
/* ─── HAMBURGER MENU ─── */
.nav-hamburger {
      display:none;background:none;border:none;cursor:pointer;
      padding:8px;position:absolute;right:1.5rem;top:50%;
      transform:translateY(-50%);z-index:10;
      flex-direction:column;gap:5px;
    }
.nav-hamburger span {
      display:block;width:22px;height:1.5px;background:var(--warm);
      transition:all .3s ease;
    }
nav.menu-open .nav-hamburger span:nth-child(1) {
      transform:rotate(45deg) translate(5px,5px);
    }
nav.menu-open .nav-hamburger span:nth-child(2) { opacity:0; }
nav.menu-open .nav-hamburger span:nth-child(3) {
      transform:rotate(-45deg) translate(5px,-5px);
    }
.nav-mobile-overlay {
      display:none;position:fixed;inset:0;
      background:rgba(8,8,7,.97);z-index:899;
      flex-direction:column;align-items:center;justify-content:center;
      gap:2.5rem;
    }
.nav-mobile-overlay.open { display:flex; }
.nav-mobile-overlay a {
      font-family:var(--ff-display);font-size:clamp(1.6rem,4vw,2.2rem);
      font-weight:400;color:var(--warm);text-decoration:none;
      opacity:.85;transition:opacity .25s,color .25s;
    }
.nav-mobile-overlay a:hover { opacity:1;color:var(--gold); }
.nav-mobile-overlay .nav-cta-mobile {
      font-family:var(--ff-sc);font-size:.7rem;letter-spacing:.35em;
      padding:.7rem 2rem;border:1px solid var(--gold);color:var(--gold);
      margin-top:1rem;
    }
.nav-mobile-overlay .nav-cta-mobile:hover { background:var(--gold);color:var(--deep); }

/* ─── RESPONSIVE — global ─── */
html { overflow-x:hidden; }
body { overflow-x:hidden; }


/* ─── CURSOR: hide on touch/mobile ─── */
@media (max-width:960px), (hover:none), (pointer:coarse) {
  .cursor, .cursor-ring { display:none !important; }
}

/* ─── BITÁCORA PREVIEW (front-page) ─── */
#bitacora { padding:6rem 0; }
.bitacora-preview-layout {
  display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;
}
.bitacora-preview-image {
  position:relative;overflow:hidden;
}
.bitacora-preview-image img {
  width:100%;height:auto;display:block;max-height:70vh;object-fit:cover;
}
.bitacora-intro {
  font-family:var(--ff-body);font-size:1rem;line-height:1.7;
  color:var(--muted);margin-bottom:2.5rem;max-width:420px;
}
.bitacora-latest {
  border-left:1px solid var(--border);padding-left:1.5rem;margin-bottom:2.5rem;
}
.bitacora-latest-label {
  font-family:var(--ff-sc);font-size:.55rem;letter-spacing:.35em;
  text-transform:uppercase;color:var(--gold);display:block;margin-bottom:.8rem;
}
.bitacora-latest-title {
  font-family:var(--ff-display);font-size:clamp(1.4rem,2.5vw,2rem);
  font-weight:400;color:var(--warm);margin-bottom:.8rem;
}
.bitacora-latest-cats {
  display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.8rem;
}
.bitacora-cat-tag {
  font-family:var(--ff-sc);font-size:.5rem;letter-spacing:.25em;
  text-transform:uppercase;color:var(--muted);
  border:1px solid var(--border);padding:.25rem .6rem;
}
.bitacora-latest-excerpt {
  font-family:var(--ff-body);font-size:.9rem;line-height:1.6;
  color:var(--muted);margin-bottom:.8rem;
}
.bitacora-latest-date {
  font-family:var(--ff-sc);font-size:.55rem;letter-spacing:.2em;color:var(--muted);
}

@media (max-width: 960px) {
      nav { padding:1rem 1.2rem; }
      nav.scrolled { padding: 0.8rem 1.2rem; }
      .nav-hamburger { display:flex; }
      .nav-links { display: none !important; }
      .nav-cta { display:none; }
      .nav-logo-img { width: 120px; }
      nav.scrolled .nav-logo-img { width: 100px; }
      .nav-inner { padding: 0.8rem 1rem 0.5rem; }
      .nav-row { justify-content: center; }
      .section-inner { padding: 0 1.5rem; }
      #hero { padding: 0 1.5rem 4rem; }
      .hero-actions { flex-wrap: wrap; gap: 1rem; }
      .hero-side { display: none; }
      .filosofia-grid { grid-template-columns: 1fr; gap: 2.5rem; }
      .stats-row { grid-template-columns: repeat(2, 1fr); }
      .eventos-grid { grid-template-columns: 1fr; }
      .carta-layout { grid-template-columns: 1fr; }
      .carta-photo { aspect-ratio: 16/9; background-size: cover !important; background-position: center !important; }
      .lab-products { grid-template-columns: 1fr; }
      .noches-grid { grid-template-columns: 1fr; }
      .footer-top { grid-template-columns: 1fr 1fr; }
      .footer-bottom { flex-direction: column; gap: 1rem; text-align: center; }
    }

/* ─── 02. LA CARTA ─── */

/* Grain */
/* Cursor */
/* ─── NAV ─── */
.nav-links a:hover, .nav-links a.active { color:var(--warm); }
/* ─── PAGE HERO ─── */
.carta-hero {
      min-height: 60vh;
      display: grid;
      grid-template-columns: 1fr 1fr;
      position: relative;
      margin-top: 0;
    }
.hero-text-col {
      background: var(--black);
      display: flex; flex-direction: column; justify-content: flex-end;
      padding: 10rem 4rem 5rem 3rem;
      position: relative; z-index: 1;
    }
.hero-photo-col {
      background: var(--coal);
      position: relative; overflow: hidden;
    }
.hero-photo-col::after {
      content: attr(data-label);
      position: absolute; inset: 0;
      display: flex; align-items: center; justify-content: center;
      font-family: var(--ff-sc); font-size: .62rem; letter-spacing: .3em;
      color: rgba(138,132,120,.18);
    }
.hero-photo-col::before {
      content: '';
      position: absolute; inset: 0; z-index: 1;
      background:
        linear-gradient(to right, rgba(8,8,7,.5) 0%, transparent 40%),
        radial-gradient(ellipse at 60% 40%, rgba(184,154,94,.06), transparent 60%);
    }
/* Diagonal divider */
.hero-text-col::after {
      content: '';
      position: absolute; top: 0; right: -40px; bottom: 0;
      width: 80px;
      background: var(--black);
      clip-path: polygon(0 0, 40px 0, 100% 100%, 0 100%);
      z-index: 2;
    }
.ph-label {
      font-family: var(--ff-sc); font-size: .62rem; letter-spacing: .45em; color: var(--gold);
      display: flex; align-items: center; gap: 1rem; margin-bottom: 1.4rem;
    }
.ph-label::before { content: ''; display: block; width: 30px; height: 1px; background: var(--gold); }
.carta-hero h1 {
      font-family: var(--ff-display);
      font-size: clamp(3.5rem, 8vw, 7rem);
      font-weight: 300; line-height: .9;
      color: var(--warm);
      margin-bottom: 1.8rem;
    }
.carta-hero h1 em { font-style: italic; color: var(--gold); }
.hero-desc {
      font-size: .95rem; color: var(--muted); line-height: 1.85;
      max-width: 400px; margin-bottom: 2.5rem;
    }
.hero-nota {
      font-family: var(--ff-sc); font-size: .58rem; letter-spacing: .3em;
      color: rgba(138,132,120,.45); line-height: 1.9;
    }
.hero-nota strong { color: var(--muted); font-weight: 400; }
/* ─── STICKY NAV CARTA ─── */
.carta-nav-wrap {
      position: sticky; top: 68px; z-index: 800;
      background: rgba(8,8,7,.97);
      backdrop-filter: blur(10px);
      border-bottom: 1px solid var(--border);
    }
.carta-nav {
      max-width: 1200px; margin: 0 auto;
      padding: 0 3rem;
      display: flex; align-items: center; gap: 0;
      overflow-x: auto;
      scrollbar-width: none;
    }
.carta-nav::-webkit-scrollbar { display: none; }
.cnav-item {
      font-family: var(--ff-sc); font-size: .62rem; letter-spacing: .3em;
      color: var(--muted); background: transparent; border: none;
      padding: 1.1rem 1.5rem; cursor: pointer; white-space: nowrap;
      border-bottom: 2px solid transparent;
      transition: color .25s, border-color .25s;
    }
.cnav-item:hover { color: var(--warm); }
.cnav-item.active { color: var(--gold); border-bottom-color: var(--gold); }
/* ─── MAIN LAYOUT ─── */
.carta-main {
      max-width: 1200px; margin: 0 auto;
      padding: 0 3rem;
    }
/* ─── SECTION ─── */
.carta-section {
      padding: 6rem 0 2rem;
      scroll-margin-top: 120px;
    }
.cs-header {
      display: grid; grid-template-columns: 1fr 2fr;
      gap: 3rem; align-items: start;
      margin-bottom: 4rem;
      padding-bottom: 3rem;
      border-bottom: 1px solid var(--border);
    }
.cs-left {}
.cs-num {
      font-family: var(--ff-display); font-size: 5rem; font-weight: 300;
      color: rgba(240,236,227,.04); line-height: 1;
      margin-bottom: -.5rem;
    }
.cs-label {
      font-family: var(--ff-sc); font-size: .6rem; letter-spacing: .4em; color: var(--gold);
      display: flex; align-items: center; gap: .8rem; margin-bottom: .8rem;
    }
.cs-label::before { content: ''; width: 20px; height: 1px; background: var(--gold); display: block; }
.cs-title {
      font-family: var(--ff-display); font-size: clamp(2rem, 4vw, 3.2rem);
      font-weight: 300; line-height: 1.05; color: var(--warm);
    }
.cs-title em { font-style: italic; color: var(--gold); }
.cs-right {}
.cs-desc {
      font-size: .92rem; color: var(--muted); line-height: 1.9; margin-bottom: 1.2rem;
    }
.cs-insumo {
      display: inline-flex; align-items: center; gap: .6rem;
      font-family: var(--ff-sc); font-size: .58rem; letter-spacing: .3em;
      color: var(--gold); border: 1px solid var(--border-gold);
      padding: .35rem .9rem;
      text-decoration: none; transition: background .25s;
    }
.cs-insumo:hover { background: rgba(184,154,94,.07); }
.cs-insumo::after { content: '↗'; font-size: .7rem; }
/* ─── COCKTAIL LIST ─── */
.cocktail-list {}
.cocktail-row {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 2rem;
      padding: 1.8rem 0;
      border-bottom: 1px solid var(--border);
      cursor: pointer;
      transition: padding-left .3s ease;
      position: relative;
    }
.cocktail-row:first-child { border-top: 1px solid var(--border); }
.cocktail-row:hover { padding-left: .8rem; }
.cocktail-row::before {
      content: '';
      position: absolute; left: 0; top: 50%;
      transform: translateY(-50%) scaleY(0);
      width: 2px; height: 60%;
      background: var(--gold);
      transition: transform .3s ease;
    }
.cocktail-row:hover::before { transform: translateY(-50%) scaleY(1); }
.cr-info {}
.cr-name {
      font-family: var(--ff-display); font-size: 1.5rem; font-weight: 400;
      color: var(--warm); line-height: 1.1; margin-bottom: .35rem;
    }
.cr-base {
      font-family: var(--ff-sc); font-size: .58rem; letter-spacing: .3em;
      color: var(--gold); margin-bottom: .5rem;
    }
.cr-desc {
      font-size: .85rem; color: var(--muted); line-height: 1.75;
      max-height: 0; overflow: hidden;
      transition: max-height .4s ease, margin .3s ease;
    }
.cocktail-row:hover .cr-desc,
.cocktail-row.open .cr-desc { max-height: 80px; margin-top: .3rem; }
.cr-tags {
      display: flex; gap: .5rem; margin-top: .6rem;
      max-height: 0; overflow: hidden;
      transition: max-height .4s ease;
    }
.cocktail-row:hover .cr-tags,
.cocktail-row.open .cr-tags { max-height: 40px; }
.cr-tag {
      font-family: var(--ff-sc); font-size: .5rem; letter-spacing: .25em;
      padding: .2rem .55rem; border: 1px solid var(--border);
      color: rgba(138,132,120,.6);
    }
.cr-tag.tag-propio { border-color: var(--border-gold); color: var(--gold); }
.cr-price {
      font-family: var(--ff-display); font-size: 1.3rem; font-weight: 300;
      color: var(--muted); white-space: nowrap;
      align-self: start; padding-top: .25rem;
      transition: color .3s;
    }
.cocktail-row:hover .cr-price { color: var(--warm); }
/* ─── SECTION DIVIDER ─── */
.section-break {
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 0; height: 280px;
      margin: 3rem 0 0;
    }
.sb-photo {
      background: var(--coal); position: relative; overflow: hidden;
    }
.sb-photo::after {
      content: attr(data-label);
      position: absolute; inset: 0;
      display: flex; align-items: center; justify-content: center;
      font-family: var(--ff-sc); font-size: .58rem; letter-spacing: .28em;
      color: rgba(138,132,120,.18);
    }
.sb-photo::before {
      content: '';
      position: absolute; inset: 0; z-index: 1;
      background: radial-gradient(ellipse at 40% 60%, rgba(184,154,94,.05), transparent 60%);
    }
.sb-text {
      background: var(--deep);
      display: flex; flex-direction: column; justify-content: center;
      padding: 3rem;
    }
.sb-text blockquote {
      font-family: var(--ff-display);
      font-size: clamp(1.3rem, 2.5vw, 1.9rem);
      font-weight: 300; font-style: italic;
      color: var(--warm); line-height: 1.45;
      border-left: 2px solid var(--gold);
      padding-left: 1.8rem;
    }
.sb-text blockquote em { color: var(--gold); font-style: normal; }
.sb-attr {
      font-family: var(--ff-sc); font-size: .58rem; letter-spacing: .3em;
      color: var(--muted); margin-top: 1.5rem; padding-left: 1.8rem;
    }
/* ─── NO ALCOHÓLICOS ─── */
.na-grid {
      display: grid; grid-template-columns: repeat(3, 1fr);
      gap: 1.5px; background: var(--border);
      margin-top: 2rem;
    }
.na-card {
      background: var(--deep); padding: 2rem;
      transition: background .3s;
    }
.na-card:hover { background: var(--coal); }
.na-name { font-family: var(--ff-display); font-size: 1.3rem; font-weight: 400; color: var(--warm); margin-bottom: .3rem; }
.na-desc { font-size: .82rem; color: var(--muted); line-height: 1.7; margin-bottom: 1.2rem; }
.na-footer { display: flex; justify-content: space-between; align-items: center; padding-top: 1rem; border-top: 1px solid var(--border); }
.na-price { font-family: var(--ff-display); font-size: 1.1rem; font-weight: 300; color: var(--muted); }
.na-tag { font-family: var(--ff-sc); font-size: .52rem; letter-spacing: .28em; color: var(--muted); border: 1px solid var(--border); padding: .2rem .5rem; }
/* ─── NOTA FINAL ─── */
.nota-final {
      background: var(--deep);
      border: 1px solid var(--border);
      padding: 3rem;
      margin: 5rem 0;
      display: grid; grid-template-columns: auto 1fr;
      gap: 3rem; align-items: center;
    }
.nf-icon {
      font-family: var(--ff-display); font-size: 4rem; font-weight: 300;
      color: var(--gold); opacity: .4; line-height: 1;
    }
.nf-text h3 {
      font-family: var(--ff-display); font-size: 1.5rem; font-weight: 400;
      color: var(--warm); margin-bottom: .6rem;
    }
.nf-text p { font-size: .88rem; color: var(--muted); line-height: 1.8; max-width: 550px; }
/* ─── LAB BANNER ─── */
.lab-banner {
      background: var(--coal);
      border: 1px solid var(--border-gold);
      padding: 3.5rem 3rem;
      display: flex; align-items: center; justify-content: space-between;
      gap: 2rem; margin-bottom: 6rem;
      transition: border-color .3s;
    }
.lab-banner:hover { border-color: var(--gold); }
.lb-left {}
.lb-eyebrow { font-family: var(--ff-sc); font-size: .6rem; letter-spacing: .4em; color: var(--gold); margin-bottom: .8rem; }
.lb-title { font-family: var(--ff-display); font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 300; color: var(--warm); }
.lb-title em { font-style: italic; color: var(--gold); }
.lb-desc { font-size: .88rem; color: var(--muted); line-height: 1.75; margin-top: .8rem; max-width: 480px; }
.lb-cta {
      font-family: var(--ff-sc); font-size: .65rem; letter-spacing: .3em;
      color: var(--black); background: var(--gold);
      padding: .9rem 2rem; white-space: nowrap; text-decoration: none;
      transition: background .3s; flex-shrink: 0;
    }
.lb-cta:hover { background: var(--gold-lt); }
/* ─── FOOTER ─── */
.footer-logo-sm { font-family: var(--ff-sc); font-size: 1rem; letter-spacing: .35em; color: var(--muted); text-decoration: none; }
.footer-links   { display: flex; gap: 2rem; }
.footer-links a { font-family: var(--ff-sc); font-size: .58rem; letter-spacing: .25em; color: rgba(138,132,120,.5); text-decoration: none; transition: color .3s; }
.footer-links a:hover { color: var(--muted); }
/* ─── REVEAL ─── */
.rd1 { transition-delay: .1s; } .rd2 { transition-delay: .2s; } .rd3 { transition-delay: .3s; }
@media (max-width: 960px) {
      nav { padding:1.2rem 1.5rem; } .nav-links { display: none; }
      .carta-hero { grid-template-columns: 1fr; min-height: auto; }
      .hero-photo-col { display: none; }
      .hero-text-col { padding: 8rem 1.5rem 4rem; }
      .hero-text-col::after { display: none; }
      .carta-nav { padding:1.2rem 1.5rem; }
      .carta-main { padding: 0 1.5rem; }
      .cs-header { grid-template-columns: 1fr; gap: 1.5rem; }
      .section-break { grid-template-columns: 1fr; height: auto; }
      .sb-photo { display: none; }
      .na-grid { grid-template-columns: 1fr; }
      .nota-final { grid-template-columns: 1fr; gap: 1.5rem; }
      .lab-banner { flex-direction: column; align-items: flex-start; }
      footer { flex-direction: column; gap: 1.5rem; padding: 2rem 1.5rem; }
    }

/* ─── 03. PUNKU LAB ─── */

/* ─── NAV ─── */
.nav-links a:hover,.nav-links a.active { color:var(--warm); }
/* ─── HERO ─── */
.lab-hero {
      min-height: 100vh;
      display: grid;
      grid-template-rows: 1fr auto;
      position: relative;
      overflow: hidden;
    }
.lab-hero-bg {
      position: absolute; inset: 0;
      background: linear-gradient(160deg, #0f0e0c 0%, #141210 50%, #0a0908 100%);
    }
/* Ambient glow */
.lab-hero-bg::before {
      content: '';
      position: absolute;
      top: 20%; left: 60%;
      width: 600px; height: 600px;
      background: radial-gradient(circle, rgba(184,154,94,.06) 0%, transparent 70%);
      border-radius: 50%;
    }
.lab-hero-bg::after {
      content: '';
      position: absolute;
      bottom: 10%; left: 10%;
      width: 400px; height: 400px;
      background: radial-gradient(circle, rgba(240,236,227,.02) 0%, transparent 70%);
      border-radius: 50%;
    }
.lab-hero-content {
      position: relative; z-index: 2;
      display: grid;
      grid-template-columns: 1fr 1fr;
      align-items: end;
      padding: 10rem 3rem 5rem;
      gap: 4rem;
      max-width: 1200px; margin: 0 auto; width: 100%;
    }
.lh-left {}
.lh-eyebrow {
      font-family: var(--ff-sc); font-size: .62rem; letter-spacing: .5em;
      color: var(--gold); display: flex; align-items: center; gap: 1rem;
      margin-bottom: 1.5rem;
    }
.lh-eyebrow::before { content:''; width:30px; height:1px; background:var(--gold); display:block; }
.lh-title {
      font-family: var(--ff-display);
      font-size: clamp(4rem, 10vw, 9rem);
      font-weight: 300; line-height: .85;
      color: var(--warm);
      margin-bottom: .3rem;
    }
.lh-sub {
      font-family: var(--ff-sc);
      font-size: clamp(1rem, 2.5vw, 1.8rem);
      letter-spacing: .4em;
      color: var(--gold);
      margin-bottom: 3rem;
    }
.lh-desc {
      font-size: 1rem; color: var(--muted); line-height: 1.9;
      max-width: 440px;
    }
.lh-right {
      display: flex; flex-direction: column; gap: 2rem;
      padding-bottom: .5rem;
    }
.lh-stat {
      border-left: 1px solid var(--border-gold);
      padding: 1rem 1.5rem;
    }
.lh-stat-n {
      font-family: var(--ff-display); font-size: 2.8rem; font-weight: 300;
      color: var(--warm); line-height: 1;
    }
.lh-stat-n em { color: var(--gold); font-style: normal; }
.lh-stat-l {
      font-family: var(--ff-sc); font-size: .58rem; letter-spacing: .3em;
      color: var(--muted); margin-top: .3rem;
    }
.lab-hero-ticker {
      position: relative; z-index: 2;
      border-top: 1px solid var(--border);
      padding: 1.2rem 0;
      overflow: hidden;
      max-width: 100%;
    }
.ticker-track {
      display: flex; gap: 4rem;
      white-space: nowrap;
      animation: ticker 20s linear infinite;
    }
.ticker-track:hover { animation-play-state: paused; }
.ticker-item {
      font-family: var(--ff-sc); font-size: .6rem; letter-spacing: .4em;
      color: var(--muted); display: flex; align-items: center; gap: 4rem;
    }
.ticker-item::after { content: '◆'; color: var(--gold); font-size: .45rem; }
@keyframes ticker {
      from { transform: translateX(0); }
      to   { transform: translateX(-50%); }
    }
/* ─── FILOSOFÍA LAB ─── */
.lab-filosofia {
      max-width: 1200px; margin: 0 auto;
      padding: 8rem 3rem;
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 6rem; align-items: center;
    }
.lf-photo {
      aspect-ratio: 3/4;
      background: var(--coal); position: relative; overflow: hidden;
    }
.lf-photo::after {
      content: 'foto — proceso de destilación';
      position: absolute; inset: 0;
      display: flex; align-items: center; justify-content: center;
      font-family: var(--ff-sc); font-size: .6rem; letter-spacing: .28em;
      color: rgba(138,132,120,.18);
    }
.lf-photo::before {
      content: '';
      position: absolute; inset: 0; z-index: 1;
      background: radial-gradient(ellipse at 40% 30%, rgba(184,154,94,.07), transparent 60%);
    }
/* Floating label on photo */
.lf-photo-label {
      position: absolute; bottom: 2rem; left: 2rem; z-index: 2;
      background: rgba(8,8,7,.85); border: 1px solid var(--border-gold);
      padding: 1rem 1.5rem; backdrop-filter: blur(8px);
    }
.lf-photo-label p { font-family:var(--ff-sc); font-size:.58rem; letter-spacing:.28em; color:var(--gold); }
.lf-photo-label span { font-family:var(--ff-display); font-size:1.2rem; font-weight:300; color:var(--warm); display:block; margin-top:.2rem; }
.lf-text {}
.lf-label { font-family:var(--ff-sc);font-size:.6rem;letter-spacing:.45em;color:var(--gold);display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem; }
.lf-label::before { content:'';width:30px;height:1px;background:var(--gold);display:block; }
.lf-title { font-family:var(--ff-display);font-size:clamp(2.2rem,4vw,3.5rem);font-weight:300;line-height:1.05;color:var(--warm);margin-bottom:1.8rem; }
.lf-title em { font-style:italic;color:var(--gold); }
.lf-p { font-size:.95rem;color:var(--muted);line-height:1.9;margin-bottom:1.4rem; }
.lf-p strong { color:var(--warm);font-weight:500; }
/* ─── PROCESS STEPS ─── */
.process-section {
      background: var(--deep);
      border-top: 1px solid var(--border);
      border-bottom: 1px solid var(--border);
      padding: 7rem 0;
    }
.process-inner {
      max-width: 1200px; margin: 0 auto;
      padding: 0 3rem;
    }
.process-header { margin-bottom: 4rem; }
.process-header h2 { font-family:var(--ff-display);font-size:clamp(2rem,4vw,3.2rem);font-weight:300;color:var(--warm); }
.process-header h2 em { font-style:italic;color:var(--gold); }
.process-steps {
      display: grid; grid-template-columns: repeat(4,1fr);
      gap: 1.5px; background: var(--border);
    }
.step {
      background: var(--black);
      padding: 2.5rem 2rem;
      position: relative; overflow: hidden;
      transition: background .3s;
    }
.step:hover { background: var(--coal); }
.step-n {
      font-family: var(--ff-display); font-size: 5rem; font-weight: 300;
      color: rgba(240,236,227,.03); line-height: 1;
      position: absolute; top: 1rem; right: 1.5rem;
    }
.step-icon {
      font-size: 1.4rem; opacity: .35; margin-bottom: 1.5rem; display: block;
    }
.step-title { font-family:var(--ff-display);font-size:1.4rem;font-weight:400;color:var(--warm);margin-bottom:.6rem; }
.step-desc  { font-size:.82rem;color:var(--muted);line-height:1.75; }
.step::after {
      content: '';
      position: absolute; bottom: 0; left: 0; right: 0;
      height: 2px;
      background: linear-gradient(90deg, var(--gold), transparent);
      transform: scaleX(0); transform-origin: left;
      transition: transform .4s ease;
    }
.step:hover::after { transform: scaleX(1); }
/* ─── PRODUCTOS ─── */
.productos-section {
      padding: 8rem 0;
      max-width: 1200px; margin: 0 auto;
    }
.productos-header {
      padding: 0 3rem;
      display: flex; align-items: baseline; justify-content: space-between;
      margin-bottom: 4rem;
    }
.productos-header h2 { font-family:var(--ff-display);font-size:clamp(2rem,4vw,3rem);font-weight:300;color:var(--warm); }
.productos-header h2 em { font-style:italic;color:var(--gold); }
.productos-header p { font-family:var(--ff-sc);font-size:.6rem;letter-spacing:.3em;color:var(--muted); }
/* Individual product — alternating layout */
.producto {
      display: grid;
      grid-template-columns: 1fr 1fr;
      min-height: 600px;
      border-top: 1px solid var(--border);
    }
.producto:last-child { border-bottom: 1px solid var(--border); }
.producto.reverse { direction: rtl; }
.producto.reverse > * { direction: ltr; }
.prod-photo {
      background: var(--coal); position: relative; overflow: hidden;
      min-height: 500px;
    }
.prod-photo::after {
      content: attr(data-label);
      position: absolute; inset: 0;
      display: flex; align-items: center; justify-content: center;
      font-family: var(--ff-sc); font-size: .6rem; letter-spacing: .28em;
      color: rgba(138,132,120,.18);
    }
.prod-photo::before {
      content: '';
      position: absolute; inset: 0; z-index: 1;
      background: radial-gradient(ellipse at 50% 40%, rgba(184,154,94,.06), transparent 60%);
    }
/* Lote badge */
.prod-lote {
      position: absolute; top: 2rem; right: 2rem; z-index: 2;
      background: rgba(8,8,7,.85); border: 1px solid var(--border);
      padding: .6rem 1rem; backdrop-filter: blur(8px);
      font-family: var(--ff-sc); font-size: .55rem; letter-spacing: .3em;
      color: var(--muted);
    }
.prod-lote strong { color: var(--gold); display: block; font-size: .65rem; }
.prod-body {
      background: var(--deep);
      padding: 4rem;
      display: flex; flex-direction: column; justify-content: center;
    }
.prod-num {
      font-family: var(--ff-display); font-size: 6rem; font-weight: 300;
      color: rgba(240,236,227,.03); line-height: 1; margin-bottom: -1rem;
    }
.prod-label { font-family:var(--ff-sc);font-size:.6rem;letter-spacing:.45em;color:var(--gold);display:flex;align-items:center;gap:.8rem;margin-bottom:1rem; }
.prod-label::before { content:'';width:20px;height:1px;background:var(--gold);display:block; }
.prod-name { font-family:var(--ff-display);font-size:clamp(2.5rem,5vw,4.5rem);font-weight:300;line-height:.9;color:var(--warm);margin-bottom:.5rem; }
.prod-name em { font-style:italic;color:var(--gold); }
.prod-subtitle { font-family:var(--ff-sc);font-size:.65rem;letter-spacing:.4em;color:var(--muted);margin-bottom:2rem; }
.prod-divider { width:40px;height:1px;background:var(--border-gold);margin-bottom:2rem; }
.prod-desc { font-size:.92rem;color:var(--muted);line-height:1.9;margin-bottom:2rem; }
.prod-desc strong { color:var(--warm);font-weight:500; }
/* Notes */
.prod-notes {
      display: grid; grid-template-columns: 1fr 1fr 1fr;
      gap: 1px; background: var(--border);
      margin-bottom: 2.5rem;
    }
.note-item { background:var(--black);padding:1rem .8rem; }
.note-key { font-family:var(--ff-sc);font-size:.5rem;letter-spacing:.3em;color:rgba(138,132,120,.5);margin-bottom:.3rem; }
.note-val { font-family:var(--ff-sc);font-size:.65rem;letter-spacing:.15em;color:var(--warm); }
.prod-footer {
      display: flex; align-items: center; justify-content: space-between;
      padding-top: 2rem; border-top: 1px solid var(--border);
      gap: 1.5rem;
    }
.prod-price-wrap {}
.prod-price { font-family:var(--ff-display);font-size:2.5rem;font-weight:300;color:var(--warm);line-height:1; }
.prod-price-note { font-family:var(--ff-sc);font-size:.55rem;letter-spacing:.25em;color:var(--muted);margin-top:.2rem; }
.prod-avail {
      font-family:var(--ff-sc);font-size:.55rem;letter-spacing:.3em;
      padding:.3rem .8rem; border:1px solid;
    }
.avail-si { border-color:rgba(184,154,94,.4);color:var(--gold);background:rgba(184,154,94,.06); }
.avail-pocas { border-color:rgba(196,184,168,.3);color:var(--fiesta);background:rgba(196,184,168,.05); }
.avail-no { border-color:var(--border);color:var(--muted); }
.btn-consultar {
      font-family:var(--ff-sc);font-size:.62rem;letter-spacing:.3em;
      background:var(--gold);color:var(--black);
      border:none;padding:.8rem 1.8rem;cursor:pointer;
      text-decoration:none;display:inline-block;
      transition:background .3s, transform .2s;
    }
.btn-consultar:hover { background:var(--gold-lt);transform:translateY(-1px); }
.btn-consultar.ghost {
      background:transparent;color:var(--muted);
      border:1px solid var(--border);
    }
.btn-consultar.ghost:hover { border-color:var(--border-gold);color:var(--warm);background:transparent;transform:none; }
/* ─── INGREDIENTES HIGHLIGHT ─── */
.ingredientes-section {
      background: var(--deep);
      border-top: 1px solid var(--border);
      padding: 7rem 0;
    }
.ing-inner {
      max-width: 1200px; margin: 0 auto;
      padding: 0 3rem;
    }
.ing-header { margin-bottom: 4rem; }
.ing-label { font-family:var(--ff-sc);font-size:.6rem;letter-spacing:.45em;color:var(--gold);display:flex;align-items:center;gap:1rem;margin-bottom:1rem; }
.ing-label::before { content:'';width:30px;height:1px;background:var(--gold);display:block; }
.ing-header h2 { font-family:var(--ff-display);font-size:clamp(2rem,4vw,3rem);font-weight:300;color:var(--warm); }
.ing-header h2 em { font-style:italic;color:var(--gold); }
.ing-grid {
      display: grid; grid-template-columns: repeat(5,1fr);
      gap: 1.5px; background: var(--border);
    }
.ing-item {
      background: var(--black); padding: 2rem 1.5rem;
      transition: background .3s; cursor: default;
      position: relative; overflow: hidden;
    }
.ing-item:hover { background: var(--coal); }
.ing-item::after {
      content: '';
      position: absolute; top: 0; left: 0; right: 0;
      height: 1px;
      background: var(--gold);
      transform: scaleX(0);
      transition: transform .35s ease;
    }
.ing-item:hover::after { transform: scaleX(1); }
.ing-icon { font-size: 1.5rem; opacity: .2; margin-bottom: 1rem; display: block; }
.ing-name { font-family:var(--ff-display);font-size:1.2rem;font-weight:400;color:var(--warm);margin-bottom:.3rem; }
.ing-origin { font-family:var(--ff-sc);font-size:.52rem;letter-spacing:.3em;color:var(--gold);margin-bottom:.6rem; }
.ing-desc { font-size:.78rem;color:var(--muted);line-height:1.65; }
/* ─── PEDIDOS SECTION ─── */
.pedidos-section {
      padding: 8rem 3rem;
      max-width: 1200px; margin: 0 auto;
    }
.pedidos-grid {
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 1.5px; background: var(--border);
    }
.pedidos-info {
      background: var(--deep); padding: 4rem;
    }
.pi-label { font-family:var(--ff-sc);font-size:.6rem;letter-spacing:.45em;color:var(--gold);display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem; }
.pi-label::before { content:'';width:30px;height:1px;background:var(--gold);display:block; }
.pi-title { font-family:var(--ff-display);font-size:clamp(2rem,4vw,3rem);font-weight:300;line-height:1.05;color:var(--warm);margin-bottom:1.5rem; }
.pi-title em { font-style:italic;color:var(--gold); }
.pi-desc { font-size:.92rem;color:var(--muted);line-height:1.9;margin-bottom:2.5rem; }
.pi-items { display:flex;flex-direction:column;gap:.8rem; }
.pi-item {
      display: flex; align-items: flex-start; gap: 1rem;
      padding: 1.2rem;
      border: 1px solid var(--border);
      transition: border-color .25s;
    }
.pi-item:hover { border-color: var(--border-gold); }
.pi-item-icon { font-size: 1.1rem; opacity:.3; flex-shrink:0; margin-top:.1rem; }
.pi-item-text {}
.pi-item-title { font-family:var(--ff-sc);font-size:.62rem;letter-spacing:.25em;color:var(--warm);margin-bottom:.2rem; }
.pi-item-desc  { font-size:.8rem;color:var(--muted);line-height:1.6; }
.pedidos-form {
      background: var(--coal); padding: 4rem;
    }
.pf-title { font-family:var(--ff-sc);font-size:.65rem;letter-spacing:.4em;color:var(--gold);margin-bottom:2rem; }
.form-row { margin-bottom:1.2rem; }
.form-row label { font-family:var(--ff-sc);font-size:.58rem;letter-spacing:.3em;color:var(--muted);display:block;margin-bottom:.5rem; }
.form-row input,
.form-row select,
.form-row textarea {
      width:100%;background:var(--black);border:1px solid var(--border);
      color:var(--warm);font-family:var(--ff-body);font-size:.85rem;font-weight:300;
      padding:.75rem 1rem;outline:none;transition:border-color .25s;
      appearance:none; resize:none;
    }
.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus { border-color:var(--border-gold); }
.form-row input::placeholder,
.form-row textarea::placeholder { color:rgba(138,132,120,.4); }
.form-grid2 { display:grid;grid-template-columns:1fr 1fr;gap:1rem; }
.form-note { font-size:.75rem;color:rgba(138,132,120,.45);margin-bottom:1.5rem;line-height:1.65; }
.btn-enviar {
      width:100%;font-family:var(--ff-sc);font-size:.65rem;letter-spacing:.35em;
      background:var(--gold);color:var(--black);border:none;padding:1rem;
      cursor:pointer;transition:background .3s,transform .2s;
    }
.btn-enviar:hover { background:var(--gold-lt);transform:translateY(-1px); }
.form-success { display:none;text-align:center;padding:2rem 0; }
.form-success.visible { display:block;animation:fadeUp .4s ease; }
.form-success .check { font-size:2rem;opacity:.5;margin-bottom:1rem; }
.form-success h4 { font-family:var(--ff-display);font-size:1.8rem;font-weight:300;color:var(--warm);margin-bottom:.5rem; }
.form-success p { font-size:.85rem;color:var(--muted);line-height:1.75; }
@keyframes fadeUp { from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)} }
/* ─── FOOTER ─── */
.footer-logo-sm { font-family:var(--ff-sc);font-size:1rem;letter-spacing:.35em;color:var(--muted);text-decoration:none; }
.footer-links   { display:flex;gap:2rem; }
.footer-links a { font-family:var(--ff-sc);font-size:.58rem;letter-spacing:.25em;color:rgba(138,132,120,.5);text-decoration:none;transition:color .3s; }
.footer-links a:hover { color:var(--muted); }
/* Reveal */
.rd1{transition-delay:.1s} .rd2{transition-delay:.2s} .rd3{transition-delay:.3s} .rd4{transition-delay:.45s}
@media (max-width:960px) {
      nav { padding:1.2rem 1.5rem; } .nav-links { display:none; }
      .lab-hero-content { grid-template-columns:1fr;padding:8rem 1.5rem 4rem; }
      .lh-right { flex-direction:row;flex-wrap:wrap;gap:1rem; }
      .lab-filosofia { grid-template-columns:1fr;padding:5rem 1.5rem;gap:3rem; }
      .lf-photo { aspect-ratio:16/9; }
      .process-inner { padding:0 1.5rem; }
      .process-steps { grid-template-columns:1fr 1fr; }
      .productos-section { padding:5rem 0; }
      .productos-header { padding:0 1.5rem; flex-direction:column;gap:.5rem; }
      .producto { grid-template-columns:1fr; }
      .prod-photo { min-height:260px; }
      .prod-body { padding:2.5rem 1.5rem; }
      .ing-inner { padding:0 1.5rem; }
      .ing-grid { grid-template-columns:1fr 1fr; }
      .pedidos-section { padding:5rem 1.5rem; }
      .pedidos-grid { grid-template-columns:1fr; }
      .pedidos-info,.pedidos-form { padding:2.5rem; }
      footer { flex-direction:column;gap:1.5rem;padding:2rem 1.5rem; }
    }

/* ─── 04. LAS NOCHES ─── */

/* ─── NAV ─── */
.nav-links a:hover, .nav-links a.active { color:var(--warm); }
/* ─── PAGE HERO ─── */
.noches-hero {
      padding: 10rem 3rem 6rem;
      max-width: 1200px; margin: 0 auto;
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 5rem; align-items: end;
    }
.nh-left {}
.nh-eyebrow {
      font-family: var(--ff-sc); font-size: .62rem; letter-spacing: .45em;
      color: var(--gold); display: flex; align-items: center; gap: 1rem;
      margin-bottom: 1.4rem;
    }
.nh-eyebrow::before { content:''; display:block; width:30px; height:1px; background:var(--gold); }
.nh-title {
      font-family: var(--ff-display);
      font-size: clamp(3.5rem, 8vw, 7.5rem);
      font-weight: 300; line-height: .88;
      color: var(--warm);
    }
.nh-title em { font-style: italic; color: var(--gold); }
.nh-right { padding-bottom: .5rem; }
.nh-right p {
      font-size: .98rem; color: var(--muted); line-height: 1.9;
      margin-bottom: 2rem; max-width: 420px;
    }
.nh-horario {
      display: flex; flex-direction: column; gap: .6rem;
    }
.nh-hora-item {
      display: flex; align-items: center; justify-content: space-between;
      padding: .9rem 1.2rem;
      border: 1px solid var(--border);
      transition: border-color .3s;
    }
.nh-hora-item:hover { border-color: var(--border-gold); }
.nh-hora-dia  { font-family:var(--ff-sc); font-size:.68rem; letter-spacing:.28em; color:var(--warm); }
.nh-hora-tipo { font-family:var(--ff-sc); font-size:.55rem; letter-spacing:.28em; }
.nh-hora-tipo.cultural { color:var(--cultural); }
.nh-hora-tipo.musica   { color:var(--musica); }
.nh-hora-tipo.fiesta   { color:var(--fiesta); }
.nh-hora-time { font-family:var(--ff-sc); font-size:.6rem; letter-spacing:.22em; color:var(--muted); }
/* ─── NOCHES SHOWCASE ─── */
.noches-showcase {
      border-top: 1px solid var(--border);
    }
/* Individual noche — fullwidth alternating */
.noche-panel {
      display: grid; grid-template-columns: 1fr 1fr;
      min-height: 520px;
      border-bottom: 1px solid var(--border);
    }
.noche-panel.reverse { direction: rtl; }
.noche-panel.reverse > * { direction: ltr; }
.np-visual {
      position: relative; overflow: hidden;
      background: var(--coal);
    }
.np-visual::after {
      content: attr(data-label);
      position: absolute; inset: 0;
      display: flex; align-items: center; justify-content: center;
      font-family: var(--ff-sc); font-size: .6rem; letter-spacing: .28em;
      color: rgba(138,132,120,.18);
    }
/* Overlay gradient */
.np-visual::before {
      content: '';
      position: absolute; inset: 0; z-index: 1;
      background: radial-gradient(ellipse at 50% 50%, rgba(184,154,94,.04), transparent 65%);
    }
/* Large day number watermark */
.np-day-watermark {
      position: absolute; z-index: 2;
      font-family: var(--ff-display);
      font-size: clamp(8rem, 18vw, 16rem);
      font-weight: 300; line-height: 1;
      color: rgba(240,236,227,.04);
      bottom: -1rem; right: 1rem;
      pointer-events: none;
      letter-spacing: -.02em;
    }
/* Color accent bar */
.np-accent {
      position: absolute; top: 0; left: 0; bottom: 0;
      width: 3px; z-index: 3;
    }
.accent-cultural { background: var(--cultural); }
.accent-musica   { background: var(--musica); }
.accent-fiesta   { background: var(--fiesta); }
.np-body {
      background: var(--deep);
      padding: 4rem;
      display: flex; flex-direction: column; justify-content: center;
    }
.np-num {
      font-family: var(--ff-display); font-size: 5rem; font-weight: 300;
      color: rgba(240,236,227,.04); line-height: 1; margin-bottom: -.5rem;
    }
.np-tipo {
      font-family: var(--ff-sc); font-size: .58rem; letter-spacing: .4em;
      padding: .3rem .8rem; display: inline-block; margin-bottom: 1.2rem;
    }
.np-tipo.cultural { color:var(--cultural); background:var(--cultural-bg); border:1px solid rgba(184,154,94,.15); }
.np-tipo.musica   { color:var(--musica);   background:var(--musica-bg);   border:1px solid rgba(122,143,138,.15); }
.np-tipo.fiesta   { color:var(--fiesta);   background:var(--fiesta-bg);   border:1px solid rgba(196,184,168,.12); }
.np-dia {
      font-family: var(--ff-display);
      font-size: clamp(2.5rem, 5vw, 4.5rem);
      font-weight: 300; line-height: .95;
      color: var(--warm); margin-bottom: .8rem;
    }
.np-dia em { font-style: italic; color: var(--gold); }
.np-horario {
      font-family: var(--ff-sc); font-size: .6rem; letter-spacing: .3em;
      color: var(--muted); margin-bottom: 2rem;
    }
.np-divider { width: 40px; height: 1px; background: var(--border-gold); margin-bottom: 2rem; }
.np-desc {
      font-size: .92rem; color: var(--muted); line-height: 1.9;
      margin-bottom: 1.8rem;
    }
.np-desc strong { color: var(--warm); font-weight: 500; }
/* Format tags */
.np-formats {
      display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 2.5rem;
    }
.np-format {
      font-family: var(--ff-sc); font-size: .55rem; letter-spacing: .25em;
      padding: .35rem .8rem; border: 1px solid var(--border);
      color: var(--muted); transition: all .25s;
    }
.np-format:hover { border-color: var(--border-gold); color: var(--warm); }
.np-cta {
      font-family: var(--ff-sc); font-size: .62rem; letter-spacing: .3em;
      color: var(--black); background: var(--gold);
      border: none; padding: .85rem 2rem;
      cursor: pointer; text-decoration: none; display: inline-block;
      transition: background .3s, transform .2s; align-self: flex-start;
    }
.np-cta:hover { background: var(--gold-lt); transform: translateY(-1px); }
.np-cta.ghost {
      background: transparent; color: var(--muted);
      border: 1px solid var(--border);
    }
.np-cta.ghost:hover { border-color: var(--border-gold); color: var(--warm); background: transparent; transform: none; }
/* ─── INTERMEZZO ─── */
.intermezzo {
      background: var(--deep);
      border-bottom: 1px solid var(--border);
      padding: 6rem 3rem;
      text-align: center;
    }
.intermezzo blockquote {
      font-family: var(--ff-display);
      font-size: clamp(1.6rem, 3.5vw, 2.8rem);
      font-weight: 300; font-style: italic;
      color: var(--warm); line-height: 1.35;
      max-width: 800px; margin: 0 auto 1.5rem;
    }
.intermezzo blockquote em { color: var(--gold); font-style: normal; }
.intermezzo cite {
      font-family: var(--ff-sc); font-size: .6rem; letter-spacing: .35em;
      color: var(--muted); font-style: normal;
    }
/* ─── CALENDARIO (embedded) ─── */
#calendario {
      padding: 7rem 0 8rem;
      border-top: 1px solid var(--border);
      scroll-margin-top: 80px;
    }
.cal-wrap {
      max-width: 1200px; margin: 0 auto;
      padding: 0 3rem;
    }
.cal-section-header {
      display: flex; align-items: flex-end; justify-content: space-between;
      margin-bottom: 3.5rem;
    }
.cal-section-header h2 {
      font-family: var(--ff-display);
      font-size: clamp(2rem, 4vw, 3.2rem);
      font-weight: 300; color: var(--warm);
    }
.cal-section-header h2 em { font-style: italic; color: var(--gold); }
.cal-section-header a {
      font-family: var(--ff-sc); font-size: .62rem; letter-spacing: .3em;
      color: var(--gold); text-decoration: none;
      display: flex; align-items: center; gap: .5rem; transition: gap .3s;
    }
.cal-section-header a::after { content: '→'; }
.cal-section-header a:hover { gap: .9rem; }
.cal-layout {
      display: grid; grid-template-columns: 1fr 360px;
      gap: 3rem; align-items: start;
    }
/* Calendar */
.cal-nav {
      display: flex; align-items: center; justify-content: space-between;
      margin-bottom: 2rem;
    }
.cal-month-label {
      font-family: var(--ff-display); font-size: 2rem; font-weight: 300; color: var(--warm);
    }
.cal-month-label span { font-style: italic; color: var(--gold); margin-left: .4rem; }
.cal-arrows { display: flex; gap: .5rem; }
.cal-arr {
      width: 36px; height: 36px; border: 1px solid var(--border);
      background: transparent; color: var(--muted); cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      font-size: 1rem; transition: all .25s;
    }
.cal-arr:hover { border-color: var(--border-gold); color: var(--warm); }
.cal-weekdays {
      display: grid; grid-template-columns: repeat(7,1fr);
      margin-bottom: .5rem;
    }
.cal-wd {
      font-family: var(--ff-sc); font-size: .55rem; letter-spacing: .3em;
      color: var(--muted); text-align: center; padding: .5rem 0;
    }
/* highlight open days header */
.cal-wd.open-header { color: var(--gold); }
.cal-days { display: grid; grid-template-columns: repeat(7,1fr); gap: 3px; }
.cal-day {
      min-height: 110px;
      display: flex; flex-direction: column;
      padding: .55rem .5rem;
      border: 1px solid transparent;
      transition: background .2s;
      position: relative;
    }
.cal-day.has-event { cursor: pointer; }
.cal-day.has-event:hover { background: var(--coal); border-color: var(--border); }
.cal-day.has-event:hover .day-reserve { opacity: 1; transform: translateY(0); }
.cal-day.selected { background: var(--coal); border-color: var(--border-gold) !important; }
.cal-day.selected .day-reserve { opacity: 1; transform: translateY(0); }
.cal-day.open-day { background: rgba(240,236,227,.013); }
.cal-day.other-month { opacity: .15; pointer-events: none; }
.cal-day.today .day-num::after {
      content: ''; position: absolute; bottom: -3px; left: 50%; transform: translateX(-50%);
      width: 4px; height: 4px; background: var(--gold); border-radius: 50%;
    }
.day-num {
      font-family: var(--ff-display); font-size: 1.1rem; font-weight: 300;
      color: var(--muted); position: relative; line-height: 1; margin-bottom: .4rem;
    }
.cal-day.has-event .day-num { color: var(--warm); }
.cal-day.selected .day-num  { color: var(--gold); }
.day-event-block { display: flex; flex-direction: column; gap: .28rem; width: 100%; flex: 1; }
.day-event-tipo {
      font-family: var(--ff-sc); font-size: .47rem; letter-spacing: .28em; line-height: 1;
    }
.day-event-tipo.tipo-cultural { color: var(--cultural); }
.day-event-tipo.tipo-musica   { color: var(--musica); }
.day-event-tipo.tipo-fiesta   { color: var(--fiesta); }
.day-event-name {
      font-family: var(--ff-display); font-size: .8rem; font-weight: 400; color: var(--warm);
      line-height: 1.2;
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    }
.day-event-excerpt {
      font-size: .66rem; color: var(--muted); line-height: 1.4;
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    }
.day-reserve {
      margin-top: auto; width: 100%;
      font-family: var(--ff-sc); font-size: .5rem; letter-spacing: .25em;
      color: var(--black); background: var(--gold);
      border: none; padding: .32rem .4rem;
      cursor: pointer; opacity: 0; transform: translateY(4px);
      transition: opacity .25s, transform .25s, background .2s;
      text-align: center; display: block;
    }
.day-reserve:hover { background: var(--gold-lt); }
.cal-legend {
      display: flex; gap: 2rem; margin-top: 1.5rem;
      padding-top: 1.5rem; border-top: 1px solid var(--border);
    }
.legend-item { display:flex; align-items:center; gap:.5rem; }
.legend-dot  { width:7px; height:7px; border-radius:50%; }
.legend-label{ font-family:var(--ff-sc); font-size:.55rem; letter-spacing:.25em; color:var(--muted); }
/* Event panel */
.event-panel { position: sticky; top: 6rem; }
.panel-empty {
      border: 1px solid var(--border); padding: 3rem 2rem; text-align: center;
    }
.panel-empty-icon { font-size:2rem; opacity:.12; margin-bottom:1rem; }
.panel-empty p { font-family:var(--ff-sc); font-size:.62rem; letter-spacing:.3em; color:var(--muted); line-height:1.9; }
.panel-content { display:none; }
.panel-content.active { display:block; animation: panelIn .4s ease; }
@keyframes panelIn { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }
.panel-tipo {
      font-family:var(--ff-sc); font-size:.58rem; letter-spacing:.4em;
      padding:.35rem .8rem; display:inline-block; margin-bottom:1.5rem;
    }
.panel-tipo.tipo-cultural { background:var(--cultural-bg); color:var(--cultural); }
.panel-tipo.tipo-musica   { background:var(--musica-bg);   color:var(--musica); }
.panel-tipo.tipo-fiesta   { background:var(--fiesta-bg);   color:var(--fiesta); }
.panel-fecha { font-family:var(--ff-display); font-size:4rem; font-weight:300; color:var(--warm); line-height:1; margin-bottom:.2rem; }
.panel-fecha-sub { font-family:var(--ff-sc); font-size:.6rem; letter-spacing:.3em; color:var(--muted); margin-bottom:1.5rem; }
.panel-divider { width:100%; height:1px; background:var(--border); margin:1.5rem 0; }
.panel-nombre { font-family:var(--ff-display); font-size:1.8rem; font-weight:400; color:var(--warm); line-height:1.15; margin-bottom:1rem; }
.panel-desc   { font-size:.88rem; color:var(--muted); line-height:1.8; margin-bottom:1.5rem; }
.panel-meta   { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:2rem; }
.meta-key { font-family:var(--ff-sc); font-size:.55rem; letter-spacing:.3em; color:rgba(138,132,120,.5); margin-bottom:.3rem; }
.meta-val { font-family:var(--ff-sc); font-size:.7rem; letter-spacing:.15em; color:var(--warm); }
.panel-form { border-top:1px solid var(--border); padding-top:1.8rem; }
.form-title { font-family:var(--ff-sc); font-size:.65rem; letter-spacing:.35em; color:var(--gold); margin-bottom:1.4rem; }
.form-row { margin-bottom:1rem; }
.form-row label { font-family:var(--ff-sc); font-size:.58rem; letter-spacing:.3em; color:var(--muted); display:block; margin-bottom:.45rem; }
.form-row input, .form-row select {
      width:100%; background:var(--coal); border:1px solid var(--border);
      color:var(--warm); font-family:var(--ff-body); font-size:.85rem; font-weight:300;
      padding:.7rem 1rem; outline:none; transition:border-color .25s; appearance:none;
    }
.form-row input:focus, .form-row select:focus { border-color: var(--border-gold); }
.form-row input::placeholder { color:rgba(138,132,120,.4); }
.form-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-note { font-size:.75rem; color:rgba(138,132,120,.5); margin-bottom:1.5rem; line-height:1.6; }
.btn-reservar {
      width:100%; font-family:var(--ff-sc); font-size:.65rem; letter-spacing:.3em;
      background:var(--gold); color:var(--black); border:none; padding:1rem;
      cursor:pointer; transition:background .3s, transform .2s;
    }
.btn-reservar:hover { background:var(--gold-lt); transform:translateY(-1px); }
.form-success { display:none; text-align:center; padding:2rem 1rem; animation:panelIn .4s ease; }
.form-success.visible { display:block; }
.form-success .check { font-size:2rem; margin-bottom:1rem; opacity:.5; }
.form-success h4 { font-family:var(--ff-display); font-size:1.5rem; font-weight:300; color:var(--warm); margin-bottom:.5rem; }
.form-success p { font-size:.82rem; color:var(--muted); line-height:1.75; }
/* ─── PRÓXIMOS COMO LISTA ─── */
.proximos-section {
      max-width: 1200px; margin: 0 auto;
      padding: 0 3rem 7rem;
      border-top: 1px solid var(--border);
    }
.prox-header {
      display: flex; align-items: baseline; justify-content: space-between;
      padding-top: 3.5rem; margin-bottom: 2.5rem;
    }
.prox-header h3 { font-family:var(--ff-display); font-size:1.8rem; font-weight:300; color:var(--warm); }
.prox-header span { font-family:var(--ff-sc); font-size:.58rem; letter-spacing:.3em; color:var(--muted); }
.prox-list {}
.prox-item {
      display: grid; grid-template-columns: 70px 1fr auto;
      gap: 2rem; align-items: center;
      padding: 1.6rem 0; border-bottom: 1px solid var(--border);
      cursor: pointer; transition: padding-left .3s;
    }
.prox-item:first-child { border-top: 1px solid var(--border); }
.prox-item:hover { padding-left: .6rem; }
.prox-date { text-align: center; }
.prox-day   { font-family:var(--ff-display); font-size:2rem; font-weight:300; color:var(--warm); line-height:1; }
.prox-month { font-family:var(--ff-sc); font-size:.52rem; letter-spacing:.28em; color:var(--muted); }
.prox-info {}
.prox-tipo  { font-family:var(--ff-sc); font-size:.52rem; letter-spacing:.3em; margin-bottom:.35rem; display:inline-block; }
.prox-tipo.tipo-cultural { color:var(--cultural); }
.prox-tipo.tipo-musica   { color:var(--musica); }
.prox-tipo.tipo-fiesta   { color:var(--fiesta); }
.prox-nombre { font-family:var(--ff-display); font-size:1.25rem; font-weight:400; color:var(--warm); margin-bottom:.15rem; }
.prox-hora   { font-family:var(--ff-sc); font-size:.58rem; letter-spacing:.22em; color:var(--muted); }
.prox-action {
      font-family:var(--ff-sc); font-size:.58rem; letter-spacing:.28em;
      color:var(--gold); white-space:nowrap;
      display:flex; align-items:center; gap:.5rem;
    }
.prox-action::after { content:'→'; transition:transform .3s; }
.prox-item:hover .prox-action::after { transform:translateX(4px); }
/* ─── FOOTER ─── */
.footer-logo-sm { font-family:var(--ff-sc); font-size:1rem; letter-spacing:.35em; color:var(--muted); text-decoration:none; }
.footer-links   { display:flex; gap:2rem; }
.footer-links a { font-family:var(--ff-sc); font-size:.58rem; letter-spacing:.25em; color:rgba(138,132,120,.5); text-decoration:none; transition:color .3s; }
.footer-links a:hover { color:var(--muted); }
.rd1{transition-delay:.1s} .rd2{transition-delay:.2s} .rd3{transition-delay:.32s}
@media (max-width:960px) {
      nav { padding:1.2rem 1.5rem; } .nav-links { display:none; }
      .noches-hero { grid-template-columns:1fr; padding:8rem 1.5rem 4rem; gap:2.5rem; }
      .noche-panel { grid-template-columns:1fr; }
      .np-visual { min-height:240px; }
      .np-body { padding:2.5rem 1.5rem; }
      .intermezzo { padding:4rem 1.5rem; }
      .cal-wrap { padding:0 1.5rem; }
      .cal-layout { grid-template-columns:1fr; }
      .event-panel { position:static; }
      .proximos-section { padding:0 1.5rem 5rem; }
      .prox-item { grid-template-columns:60px 1fr; }
      .prox-action { display:none; }
      footer { flex-direction:column; gap:1.5rem; padding:2rem 1.5rem; }
    }

/* ─── 05. EVENTOS ─── */

/* Grain */
/* Cursor */
/* ─── NAV ─── */
.nav-links a:hover, .nav-links a.active { color: var(--warm); }
/* ─── PAGE HEADER ─── */
.page-header {
      padding: 10rem 3rem 5rem;
      max-width: 1200px; margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4rem;
      align-items: end;
    }
.page-header-label {
      font-family: var(--ff-sc); font-size: .62rem; letter-spacing: .45em; color: var(--gold);
      display: flex; align-items: center; gap: 1rem; margin-bottom: 1.2rem;
    }
.page-header-label::before { content: ''; display: block; width: 30px; height: 1px; background: var(--gold); }
.page-header h1 {
      font-family: var(--ff-display); font-size: clamp(3rem, 7vw, 6rem); font-weight: 300; line-height: .95; color: var(--warm);
    }
.page-header h1 em { font-style: italic; color: var(--gold); }
.page-header-right { padding-bottom: .5rem; }
.page-header-right p { font-size: .95rem; color: var(--muted); line-height: 1.85; max-width: 380px; margin-bottom: 2rem; }
/* ─── FILTERS ─── */
.filters-bar {
      max-width: 1200px; margin: 0 auto;
      padding: 0 3rem 3rem;
      display: flex; align-items: center; gap: 1rem;
      border-bottom: 1px solid var(--border);
    }
.filter-label { font-family: var(--ff-sc); font-size: .58rem; letter-spacing: .35em; color: var(--muted); margin-right: .5rem; }
.filter-btn {
      font-family: var(--ff-sc); font-size: .6rem; letter-spacing: .3em;
      padding: .45rem 1.1rem;
      border: 1px solid var(--border);
      background: transparent; color: var(--muted);
      cursor: pointer; transition: all .25s;
    }
.filter-btn:hover { border-color: var(--border-gold); color: var(--warm); }
.filter-btn.active { border-color: var(--gold); color: var(--gold); background: var(--cultural-bg); }
.filter-btn.f-musica.active { border-color: var(--musica); color: var(--musica); background: var(--musica-bg); }
.filter-btn.f-fiesta.active { border-color: var(--fiesta); color: var(--fiesta); background: var(--fiesta-bg); }
.filter-btn.f-all.active { border-color: var(--border-gold); color: var(--warm); background: rgba(240,236,227,.04); }
/* ─── MAIN LAYOUT ─── */
.main-layout {
      max-width: 1200px; margin: 0 auto;
      padding: 3rem;
      display: grid;
      grid-template-columns: 1fr 380px;
      gap: 3rem;
      align-items: start;
    }
/* ─── CALENDAR ─── */
.calendar-wrap {}
.cal-nav {
      display: flex; align-items: center; justify-content: space-between;
      margin-bottom: 2rem;
    }
.cal-month {
      font-family: var(--ff-display); font-size: 2.2rem; font-weight: 300; color: var(--warm);
    }
.cal-month span { font-style: italic; color: var(--gold); margin-left: .4rem; }
.cal-arrows { display: flex; gap: .5rem; }
.cal-arr {
      width: 38px; height: 38px; border: 1px solid var(--border);
      background: transparent; color: var(--muted); cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      font-size: 1rem; transition: all .25s;
    }
.cal-arr:hover { border-color: var(--border-gold); color: var(--warm); }
.cal-grid {}
.cal-weekdays {
      display: grid; grid-template-columns: repeat(7, 1fr);
      margin-bottom: .5rem;
    }
.cal-wd {
      font-family: var(--ff-sc); font-size: .55rem; letter-spacing: .3em;
      color: var(--muted); text-align: center; padding: .6rem 0;
    }
.cal-days {
      display: grid; grid-template-columns: repeat(7, 1fr);
      gap: 3px;
    }
.cal-day {
      min-height: 120px;
      display: flex; flex-direction: column;
      align-items: flex-start; justify-content: flex-start;
      padding: .6rem .55rem .55rem;
      position: relative;
      cursor: default;
      transition: background .2s;
      border: 1px solid transparent;
      vertical-align: top;
    }
.cal-day.has-event { cursor: pointer; }
.cal-day.has-event:hover { background: var(--coal); border-color: var(--border); }
.cal-day.has-event:hover .day-reserve { opacity: 1; transform: translateY(0); }
.cal-day.selected { background: var(--coal); border-color: var(--border-gold) !important; }
.cal-day.selected .day-reserve { opacity: 1; transform: translateY(0); }
.cal-day.today .day-num::after {
      content: ''; position: absolute; bottom: -3px; left: 50%; transform: translateX(-50%);
      width: 4px; height: 4px; background: var(--gold); border-radius: 50%;
    }
.cal-day.other-month { opacity: .15; pointer-events: none; }
.cal-day.open-day { background: rgba(240,236,227,.015); }
.day-num {
      font-family: var(--ff-display); font-size: 1.1rem; font-weight: 300; color: var(--muted);
      position: relative; line-height: 1; margin-bottom: .45rem; align-self: flex-start;
    }
.cal-day.has-event .day-num { color: var(--warm); }
.cal-day.selected .day-num { color: var(--gold); }
/* Event preview inside cell */
.day-event-block {
      display: flex; flex-direction: column; gap: .3rem;
      width: 100%; flex: 1;
    }
.day-event-tipo {
      font-family: var(--ff-sc); font-size: .48rem; letter-spacing: .3em;
      line-height: 1;
    }
.day-event-tipo.tipo-cultural { color: var(--cultural); }
.day-event-tipo.tipo-musica   { color: var(--musica); }
.day-event-tipo.tipo-fiesta   { color: var(--fiesta); }
.day-event-name {
      font-family: var(--ff-display); font-size: .82rem; font-weight: 400;
      color: var(--warm); line-height: 1.25;
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    }
.day-event-excerpt {
      font-size: .68rem; color: var(--muted); line-height: 1.4;
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    }
/* Reserve button inside cell */
.day-reserve {
      margin-top: auto; padding-top: .5rem; width: 100%;
      font-family: var(--ff-sc); font-size: .52rem; letter-spacing: .28em;
      color: var(--black); background: var(--gold);
      border: none; padding: .35rem .5rem;
      cursor: pointer;
      opacity: 0; transform: translateY(4px);
      transition: opacity .25s ease, transform .25s ease, background .2s;
      text-align: center;
      display: block;
    }
.day-reserve:hover { background: var(--gold-lt); }
.dot { width: 5px; height: 5px; border-radius: 50%; }
.dot-cultural { background: var(--cultural); }
.dot-musica   { background: var(--musica); }
.dot-fiesta   { background: var(--fiesta); }
/* ─── LEGEND ─── */
.cal-legend {
      display: flex; gap: 2rem; margin-top: 1.5rem;
      padding-top: 1.5rem;
      border-top: 1px solid var(--border);
    }
.legend-item {
      display: flex; align-items: center; gap: .5rem;
    }
.legend-dot { width: 7px; height: 7px; border-radius: 50%; }
.legend-label { font-family: var(--ff-sc); font-size: .55rem; letter-spacing: .25em; color: var(--muted); }
/* ─── EVENT DETAIL PANEL ─── */
.event-panel {
      position: sticky; top: 6rem;
    }
.panel-empty {
      border: 1px solid var(--border);
      padding: 3rem 2rem;
      text-align: center;
    }
.panel-empty-icon {
      font-size: 2rem; opacity: .15; margin-bottom: 1rem;
    }
.panel-empty p {
      font-family: var(--ff-sc); font-size: .62rem; letter-spacing: .3em; color: var(--muted);
      line-height: 1.8;
    }
.panel-content { display: none; }
.panel-content.active { display: block; animation: panelIn .4s ease; }
@keyframes panelIn {
      from { opacity: 0; transform: translateY(10px); }
      to   { opacity: 1; transform: translateY(0); }
    }
.panel-tipo {
      font-family: var(--ff-sc); font-size: .58rem; letter-spacing: .4em;
      padding: .35rem .8rem; display: inline-block; margin-bottom: 1.5rem;
    }
.panel-tipo.tipo-cultural { background: var(--cultural-bg); color: var(--cultural); }
.panel-tipo.tipo-musica   { background: var(--musica-bg); color: var(--musica); }
.panel-tipo.tipo-fiesta   { background: var(--fiesta-bg); color: var(--fiesta); }
.panel-fecha {
      font-family: var(--ff-display); font-size: 4rem; font-weight: 300; color: var(--warm); line-height: 1;
      margin-bottom: .2rem;
    }
.panel-fecha-sub {
      font-family: var(--ff-sc); font-size: .6rem; letter-spacing: .3em; color: var(--muted);
      margin-bottom: 1.5rem;
    }
.panel-divider { width: 100%; height: 1px; background: var(--border); margin: 1.5rem 0; }
.panel-nombre {
      font-family: var(--ff-display); font-size: 1.8rem; font-weight: 400; color: var(--warm); line-height: 1.15;
      margin-bottom: 1rem;
    }
.panel-desc {
      font-size: .88rem; color: var(--muted); line-height: 1.8; margin-bottom: 1.5rem;
    }
.panel-meta {
      display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;
      margin-bottom: 2rem;
    }
.meta-item {}
.meta-key { font-family: var(--ff-sc); font-size: .55rem; letter-spacing: .3em; color: rgba(138,132,120,.5); margin-bottom: .3rem; }
.meta-val { font-family: var(--ff-sc); font-size: .7rem; letter-spacing: .15em; color: var(--warm); }
/* ─── RESERVATION FORM ─── */
.panel-form { border-top: 1px solid var(--border); padding-top: 1.8rem; }
.form-title { font-family: var(--ff-sc); font-size: .65rem; letter-spacing: .35em; color: var(--gold); margin-bottom: 1.4rem; }
.form-row { margin-bottom: 1rem; }
.form-row label { font-family: var(--ff-sc); font-size: .58rem; letter-spacing: .3em; color: var(--muted); display: block; margin-bottom: .45rem; }
.form-row input, .form-row select {
      width: 100%;
      background: var(--coal); border: 1px solid var(--border);
      color: var(--warm); font-family: var(--ff-body); font-size: .85rem; font-weight: 300;
      padding: .7rem 1rem;
      outline: none; transition: border-color .25s;
      appearance: none;
    }
.form-row input:focus, .form-row select:focus { border-color: var(--border-gold); }
.form-row input::placeholder { color: rgba(138,132,120,.4); }
.form-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-note { font-size: .75rem; color: rgba(138,132,120,.5); margin-bottom: 1.5rem; line-height: 1.6; }
.btn-reservar {
      width: 100%;
      font-family: var(--ff-sc); font-size: .65rem; letter-spacing: .3em;
      background: var(--gold); color: var(--black);
      border: none; padding: 1rem;
      cursor: pointer; transition: background .3s, transform .2s;
    }
.btn-reservar:hover { background: var(--gold-lt); transform: translateY(-1px); }
/* ─── SUCCESS STATE ─── */
.form-success {
      display: none;
      text-align: center;
      padding: 2rem 1rem;
      animation: panelIn .4s ease;
    }
.form-success.visible { display: block; }
.form-success .check { font-size: 2rem; margin-bottom: 1rem; opacity: .6; }
.form-success h4 { font-family: var(--ff-display); font-size: 1.5rem; font-weight: 300; color: var(--warm); margin-bottom: .5rem; }
.form-success p { font-size: .82rem; color: var(--muted); line-height: 1.7; }
/* ─── UPCOMING LIST ─── */
.upcoming-section {
      max-width: 1200px; margin: 0 auto;
      padding: 4rem 3rem 6rem;
      border-top: 1px solid var(--border);
    }
.upcoming-header {
      display: flex; align-items: baseline; justify-content: space-between;
      margin-bottom: 2.5rem;
    }
.upcoming-header h2 {
      font-family: var(--ff-display); font-size: 2rem; font-weight: 300; color: var(--warm);
    }
.upcoming-header span {
      font-family: var(--ff-sc); font-size: .6rem; letter-spacing: .3em; color: var(--muted);
    }
.upcoming-list {}
.upcoming-item {
      display: grid;
      grid-template-columns: 80px 1fr auto;
      gap: 2rem;
      align-items: center;
      padding: 1.8rem 0;
      border-bottom: 1px solid var(--border);
      cursor: pointer;
      transition: padding-left .3s;
    }
.upcoming-item:hover { padding-left: .5rem; }
.upcoming-item:first-child { border-top: 1px solid var(--border); }
.up-date { text-align: center; }
.up-day { font-family: var(--ff-display); font-size: 2.2rem; font-weight: 300; color: var(--warm); line-height: 1; }
.up-month { font-family: var(--ff-sc); font-size: .55rem; letter-spacing: .3em; color: var(--muted); }
.up-info {}
.up-tipo { font-family: var(--ff-sc); font-size: .55rem; letter-spacing: .35em; margin-bottom: .4rem; display: inline-block; }
.up-tipo.tipo-cultural { color: var(--cultural); }
.up-tipo.tipo-musica   { color: var(--musica); }
.up-tipo.tipo-fiesta   { color: var(--fiesta); }
.up-nombre { font-family: var(--ff-display); font-size: 1.35rem; font-weight: 400; color: var(--warm); margin-bottom: .2rem; }
.up-hora { font-family: var(--ff-sc); font-size: .6rem; letter-spacing: .25em; color: var(--muted); }
.up-action {
      font-family: var(--ff-sc); font-size: .6rem; letter-spacing: .3em;
      color: var(--gold); white-space: nowrap;
      transition: gap .3s;
      display: flex; align-items: center; gap: .5rem;
    }
.up-action::after { content: '→'; transition: transform .3s; }
.upcoming-item:hover .up-action::after { transform: translateX(4px); }
/* ─── FOOTER ─── */
.footer-logo-sm { font-family: var(--ff-sc); font-size: 1rem; letter-spacing: .35em; color: var(--muted); text-decoration: none; }
.footer-links { display: flex; gap: 2rem; }
.footer-links a { font-family: var(--ff-sc); font-size: .58rem; letter-spacing: .25em; color: rgba(138,132,120,.5); text-decoration: none; transition: color .3s; }
.footer-links a:hover { color: var(--muted); }
/* ─── REVEAL ─── */
.reveal-d1 { transition-delay: .1s; }
.reveal-d2 { transition-delay: .2s; }
.reveal-d3 { transition-delay: .3s; }
/* Scrollbar */
@media (max-width: 960px) {
      nav { padding:1.2rem 1.5rem; }
      .nav-links { display: none; }
      .page-header { grid-template-columns: 1fr; padding: 8rem 1.5rem 3rem; gap: 2rem; }
      .filters-bar { padding: 0 1.5rem 2rem; flex-wrap: wrap; }
      .main-layout { grid-template-columns: 1fr; padding: 2rem 1.5rem; }
      .event-panel { position: static; }
      .upcoming-section { padding: 3rem 1.5rem 4rem; }
      .upcoming-item { grid-template-columns: 60px 1fr; }
      .up-action { display: none; }
      footer { flex-direction: column; gap: 1.5rem; padding: 2rem 1.5rem; }
    }

/* ─── 06. BITÁCORA ─── */

/* Grain */
/* Cursor */
/* ─── NAV ─── */
.nav-links a:hover,.nav-links a.active { color:var(--warm); }
/* ─── PAGE HEADER ─── */
.page-header {
      padding: 10rem 3rem 4rem;
      max-width: 1200px; margin: 0 auto;
      display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: end;
    }
.ph-label { font-family:var(--ff-sc);font-size:.62rem;letter-spacing:.45em;color:var(--gold);display:flex;align-items:center;gap:1rem;margin-bottom:1.2rem; }
.ph-label::before { content:'';display:block;width:30px;height:1px;background:var(--gold); }
.page-header h1 { font-family:var(--ff-display);font-size:clamp(3rem,7vw,6rem);font-weight:300;line-height:.95;color:var(--warm); }
.page-header h1 em { font-style:italic;color:var(--gold); }
.ph-right p { font-size:.95rem;color:var(--muted);line-height:1.85;max-width:400px;margin-bottom:2rem; }
.ph-counter { font-family:var(--ff-display);font-size:3.5rem;font-weight:300;color:rgba(240,236,227,.06);line-height:1;margin-bottom:.3rem; }
.ph-counter-label { font-family:var(--ff-sc);font-size:.58rem;letter-spacing:.35em;color:var(--muted); }
/* ─── TOOLBAR ─── */
.toolbar {
      max-width:1200px;margin:0 auto;padding:0 3rem 2.5rem;
      display:flex;align-items:center;justify-content:space-between;gap:2rem;
      border-bottom:1px solid var(--border);
    }
.toolbar-left { display:flex;align-items:center;gap:1rem;flex-wrap:wrap; }
.filter-label { font-family:var(--ff-sc);font-size:.58rem;letter-spacing:.35em;color:var(--muted); }
.filter-btn {
      font-family:var(--ff-sc);font-size:.6rem;letter-spacing:.3em;
      padding:.4rem 1rem;border:1px solid var(--border);
      background:transparent;color:var(--muted);cursor:pointer;transition:all .25s;
    }
.filter-btn:hover { border-color:var(--border-gold);color:var(--warm); }
.filter-btn.active { border-color:var(--gold);color:var(--gold);background:var(--cultural-bg); }
.filter-btn.f-musica.active  { border-color:var(--musica);color:var(--musica);background:var(--musica-bg); }
.filter-btn.f-fiesta.active  { border-color:var(--fiesta);color:var(--fiesta);background:var(--fiesta-bg); }
.filter-btn.f-all.active     { border-color:var(--border-gold);color:var(--warm);background:rgba(240,236,227,.04); }
.search-wrap { position:relative; }
.search-wrap input {
      background:var(--coal);border:1px solid var(--border);
      color:var(--warm);font-family:var(--ff-body);font-size:.82rem;font-weight:300;
      padding:.55rem 1rem .55rem 2.2rem;width:220px;outline:none;
      transition:border-color .25s,width .35s;
    }
.search-wrap input:focus { border-color:var(--border-gold);width:280px; }
.search-wrap input::placeholder { color:rgba(138,132,120,.4); }
.search-icon { position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--muted);font-size:.75rem;pointer-events:none; }
/* ─── FEATURED POST ─── */
.featured-wrap { max-width:1200px;margin:0 auto;padding:3rem 3rem 2.5rem; }
.featured-post {
      display:grid;grid-template-columns:1fr 1fr;gap:0;
      border:1px solid var(--border);
      cursor:pointer;transition:border-color .35s;
      margin-bottom:1.5px;
    }
.featured-post:hover { border-color:var(--border-gold); }
.featured-photo {
      aspect-ratio:4/3;background:var(--coal);position:relative;overflow:hidden;
    }
.featured-photo .photo-placeholder {
      position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    }
.featured-photo .photo-placeholder::after {
      content:attr(data-label);font-family:var(--ff-sc);font-size:.6rem;letter-spacing:.3em;color:rgba(138,132,120,.2);
    }
.featured-photo::before {
      content:'';position:absolute;inset:0;z-index:1;
      background:radial-gradient(ellipse at 30% 40%,rgba(184,154,94,.05),transparent 60%);
    }
.featured-label {
      position:absolute;top:1.5rem;left:1.5rem;z-index:2;
      font-family:var(--ff-sc);font-size:.55rem;letter-spacing:.4em;
      padding:.3rem .7rem;
    }
.featured-label.tipo-cultural { background:var(--cultural-bg);color:var(--cultural);border:1px solid rgba(184,154,94,.2); }
.featured-label.tipo-musica   { background:var(--musica-bg);color:var(--musica);border:1px solid rgba(122,143,138,.2); }
.featured-label.tipo-fiesta   { background:var(--fiesta-bg);color:var(--fiesta);border:1px solid rgba(196,184,168,.15); }
.featured-body {
      padding:3rem;display:flex;flex-direction:column;justify-content:space-between;
      background:var(--deep);
    }
.feat-meta { display:flex;align-items:center;gap:1.5rem;margin-bottom:1.5rem; }
.feat-date { font-family:var(--ff-sc);font-size:.6rem;letter-spacing:.3em;color:var(--muted); }
.feat-tag  { font-family:var(--ff-sc);font-size:.55rem;letter-spacing:.35em;padding:.25rem .6rem; }
.feat-tag.tipo-cultural { color:var(--cultural);background:var(--cultural-bg); }
.feat-tag.tipo-musica   { color:var(--musica);background:var(--musica-bg); }
.feat-tag.tipo-fiesta   { color:var(--fiesta);background:var(--fiesta-bg); }
.feat-title { font-family:var(--ff-display);font-size:clamp(1.8rem,3vw,2.8rem);font-weight:400;line-height:1.1;color:var(--warm);margin-bottom:1.2rem; }
.feat-excerpt { font-size:.9rem;color:var(--muted);line-height:1.85;flex:1; }
.feat-footer { display:flex;align-items:center;justify-content:space-between;padding-top:2rem;border-top:1px solid var(--border);margin-top:2rem; }
.feat-autor { font-family:var(--ff-sc);font-size:.6rem;letter-spacing:.25em;color:var(--muted); }
.feat-read  { font-family:var(--ff-sc);font-size:.6rem;letter-spacing:.3em;color:var(--gold);display:flex;align-items:center;gap:.5rem;transition:gap .3s; }
.feat-read::after { content:'→';transition:transform .3s; }
.featured-post:hover .feat-read { gap:.9rem; }
/* ─── GRID ─── */
.grid-wrap { max-width:1200px;margin:0 auto;padding:1.5rem 3rem 0; }
.posts-grid {
      display:grid;grid-template-columns:repeat(3,1fr);
      gap:1.5px;background:var(--border);
    }
.post-card {
      background:var(--deep);cursor:pointer;
      transition:background .3s;display:flex;flex-direction:column;
    }
.post-card:hover { background:var(--coal-lt); }
.post-card.hidden { display:none; }
.card-photo {
      aspect-ratio:16/10;background:var(--coal);position:relative;overflow:hidden;
      flex-shrink:0;
    }
.card-photo .photo-placeholder {
      position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    }
.card-photo .photo-placeholder::after {
      content:attr(data-label);font-family:var(--ff-sc);font-size:.55rem;letter-spacing:.25em;color:rgba(138,132,120,.18);
    }
.card-label {
      position:absolute;top:1rem;left:1rem;z-index:2;
      font-family:var(--ff-sc);font-size:.5rem;letter-spacing:.35em;padding:.25rem .6rem;
    }
.card-label.tipo-cultural { background:var(--cultural-bg);color:var(--cultural);border:1px solid rgba(184,154,94,.2); }
.card-label.tipo-musica   { background:var(--musica-bg);color:var(--musica);border:1px solid rgba(122,143,138,.2); }
.card-label.tipo-fiesta   { background:var(--fiesta-bg);color:var(--fiesta);border:1px solid rgba(196,184,168,.15); }
.card-body { padding:1.8rem;display:flex;flex-direction:column;flex:1; }
.card-date { font-family:var(--ff-sc);font-size:.55rem;letter-spacing:.28em;color:var(--muted);margin-bottom:.8rem; }
.card-title { font-family:var(--ff-display);font-size:1.35rem;font-weight:400;line-height:1.2;color:var(--warm);margin-bottom:.7rem; }
.card-excerpt { font-size:.82rem;color:var(--muted);line-height:1.75;flex:1;margin-bottom:1.5rem; }
.card-footer { display:flex;align-items:center;justify-content:space-between;padding-top:1.2rem;border-top:1px solid var(--border); }
.card-read { font-family:var(--ff-sc);font-size:.58rem;letter-spacing:.28em;color:var(--gold);display:flex;align-items:center;gap:.4rem;transition:gap .25s; }
.card-read::after { content:'→'; }
.post-card:hover .card-read { gap:.8rem; }
.card-tiempo { font-family:var(--ff-sc);font-size:.55rem;letter-spacing:.2em;color:rgba(138,132,120,.4); }
/* No results */
.no-results { padding:4rem 0;text-align:center;display:none; }
.no-results.visible { display:block; }
.no-results p { font-family:var(--ff-sc);font-size:.65rem;letter-spacing:.35em;color:var(--muted);line-height:2; }
/* ─── LOAD MORE ─── */
.load-more-wrap { max-width:1200px;margin:0 auto;padding:3rem;text-align:center;border-top:1px solid var(--border); }
.btn-load {
      font-family:var(--ff-sc);font-size:.65rem;letter-spacing:.35em;
      border:1px solid var(--border-gold);color:var(--warm);
      background:transparent;padding:.9rem 2.5rem;cursor:pointer;
      transition:all .3s;
    }
.btn-load:hover { background:var(--cultural-bg);border-color:var(--gold);color:var(--gold); }
.btn-load.hidden { display:none; }
/* ─── POST MODAL ─── */

/* ─── PLAYLIST LABEL ─── */
.playlist-label {
      font-family:var(--ff-sc);font-size:.6rem;letter-spacing:.35em;
      color:var(--gold);margin-bottom:1rem !important;
      display:flex;align-items:center;gap:.5rem;
    }
.playlist-link {
      display:inline-block;font-family:var(--ff-sc);font-size:.55rem;
      letter-spacing:.25em;color:var(--muted);margin-top:.8rem;
      text-decoration:none;transition:color .25s;
    }
.playlist-link:hover { color:var(--gold); }

.modal-overlay {
      position:fixed;inset:0;background:rgba(8,8,7,.95);z-index:9500;
      display:flex;align-items:flex-start;justify-content:center;
      padding:7rem 2rem 3rem;
      opacity:0;pointer-events:none;transition:opacity .4s ease;
      overflow-y:auto;
    }
.modal-overlay.open { opacity:1;pointer-events:all; }
.modal {
      background:var(--deep);border:1px solid var(--border);
      max-width:780px;width:100%;
      transform:translateY(30px);transition:transform .4s ease;
      position:relative;
    }
.modal-overlay.open .modal { transform:translateY(0); }
.modal-close {
      position:absolute;top:1.5rem;right:1.5rem;z-index:2;
      background:transparent;border:1px solid var(--border);
      color:var(--muted);font-size:.85rem;
      width:36px;height:36px;cursor:pointer;
      display:flex;align-items:center;justify-content:center;
      transition:all .25s;
    }
.modal-close:hover { border-color:var(--border-gold);color:var(--warm); }
.modal-hero {
      background:var(--coal);position:relative;overflow:hidden;
      min-height:200px;
    }
.modal-hero-img {
      width:100%;height:auto;display:block;
      max-height:72vh;object-fit:contain;
    }
.modal-hero .photo-placeholder {
      position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    }
.modal-hero .photo-placeholder::after {
      content:attr(data-label);font-family:var(--ff-sc);font-size:.65rem;letter-spacing:.3em;color:rgba(138,132,120,.2);
    }
.modal-body { padding:3rem; }
.modal-meta { display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem; }
.modal-tag { font-family:var(--ff-sc);font-size:.55rem;letter-spacing:.35em;padding:.28rem .65rem; }
.modal-tag.tipo-cultural { color:var(--cultural);background:var(--cultural-bg); }
.modal-tag.tipo-musica   { color:var(--musica);background:var(--musica-bg); }
.modal-tag.tipo-fiesta   { color:var(--fiesta);background:var(--fiesta-bg); }
.modal-date { font-family:var(--ff-sc);font-size:.6rem;letter-spacing:.28em;color:var(--muted); }
.modal-title { font-family:var(--ff-display);font-size:clamp(2rem,4vw,3rem);font-weight:400;line-height:1.1;color:var(--warm);margin-bottom:2rem; }
.modal-divider { width:40px;height:1px;background:var(--gold);margin-bottom:2rem; }
.modal-content p {
      font-size:.95rem;color:rgba(240,236,227,.7);line-height:1.95;margin-bottom:1.5rem;
    }
.modal-content .wp-block-embed {
      margin:2rem 0;
    }
.modal-content .wp-block-embed__wrapper {
      position:relative;width:100%;
    }
.modal-content .wp-block-embed__wrapper iframe,
.modal-content iframe {
      width:100%;height:360px;display:block;border:none;
    }
.modal-content p strong { color:var(--warm);font-weight:500; }
.modal-content p em { font-family:var(--ff-display);font-size:1.1rem;font-style:italic;color:var(--gold-lt); }
.modal-gallery {
      display:grid;grid-template-columns:1fr 1fr;gap:4px;
      margin:2rem 0;
    }
.gallery-thumb {
      aspect-ratio:4/3;background:var(--coal);position:relative;
    }
.gallery-thumb .photo-placeholder {
      position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    }
.gallery-thumb .photo-placeholder::after {
      content:attr(data-label);font-family:var(--ff-sc);font-size:.5rem;letter-spacing:.2em;color:rgba(138,132,120,.18);
    }
.modal-quote {
      border-left:2px solid var(--gold);padding:1.5rem 2rem;margin:2rem 0;
      background:rgba(184,154,94,.04);
    }
.modal-quote p {
      font-family:var(--ff-display);font-size:1.3rem;font-style:italic;color:var(--warm);
      line-height:1.6;margin:0;
    }
.modal-footer {
      display:flex;align-items:center;justify-content:space-between;
      padding-top:2rem;border-top:1px solid var(--border);margin-top:2.5rem;
    }
.modal-footer-label { font-family:var(--ff-sc);font-size:.58rem;letter-spacing:.3em;color:var(--muted); }
.btn-eventos {
      font-family:var(--ff-sc);font-size:.6rem;letter-spacing:.3em;
      color:var(--black);background:var(--gold);
      padding:.7rem 1.5rem;border:none;cursor:pointer;text-decoration:none;
      display:inline-block;transition:background .3s;
    }
.btn-eventos:hover { background:var(--gold-lt); }
/* ─── SIDEBAR / STATS ─── */
.stats-band {
      background:var(--deep);border-top:1px solid var(--border);border-bottom:1px solid var(--border);
      padding:3rem 0;margin:0;
    }
.stats-inner {
      max-width:1200px;margin:0 auto;padding:0 3rem;
      display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;
    }
.stat-item { text-align:center; }
.stat-n { font-family:var(--ff-display);font-size:3rem;font-weight:300;color:var(--warm);line-height:1; }
.stat-n em { color:var(--gold);font-style:normal; }
.stat-l { font-family:var(--ff-sc);font-size:.58rem;letter-spacing:.3em;color:var(--muted);margin-top:.4rem; }
/* ─── FOOTER ─── */
.footer-logo-sm { font-family:var(--ff-sc);font-size:1rem;letter-spacing:.35em;color:var(--muted);text-decoration:none; }
.footer-links   { display:flex;gap:2rem; }
.footer-links a { font-family:var(--ff-sc);font-size:.58rem;letter-spacing:.25em;color:rgba(138,132,120,.5);text-decoration:none;transition:color .3s; }
.footer-links a:hover { color:var(--muted); }
/* Reveal */
.rd1 { transition-delay:.1s; } .rd2 { transition-delay:.2s; } .rd3 { transition-delay:.3s; }
@media (max-width:960px) {
      nav { padding:1.2rem 1.5rem;position:relative; }
      .nav-hamburger { display:flex; }
      .nav-links { display:none !important; }
      .nav-cta { display:none; }
      .nav-row { justify-content:center; }
      .page-header { grid-template-columns:1fr;padding:8rem 1.5rem 3rem;gap:2rem; }
      .toolbar { padding:0 1.5rem 2rem;flex-direction:column;align-items:flex-start; }
      .featured-wrap,.grid-wrap,.load-more-wrap { padding-left:1.5rem;padding-right:1.5rem; }
      .featured-post { grid-template-columns:1fr; }
      .featured-photo { aspect-ratio:3/4; }
      .posts-grid { grid-template-columns:1fr; }
      .stats-inner { grid-template-columns:repeat(2,1fr); }
      footer { flex-direction:column;gap:1.5rem;padding:2rem 1.5rem; }
      .modal-overlay { padding:0;z-index:9500;align-items:flex-start; }
      .modal { max-width:100%;min-height:100vh;border:none; }
      .modal-hero { min-height:200px;position:relative; }
      .modal-hero-img { max-height:50vh;width:100%;object-fit:cover;object-position:center top;display:block; }
      .modal-body { padding:1.5rem; }
      .modal-title { font-size:1.6rem; }
      .modal-close {
        position:fixed;top:1rem;right:1rem;z-index:9999;
        background:rgba(8,8,7,.85);border:1px solid var(--border);
        color:var(--warm);font-size:1.2rem;
        width:40px;height:40px;
        display:flex;align-items:center;justify-content:center;
      }
      .modal-gallery { grid-template-columns:1fr; }
      .modal-content iframe { height:220px; }
    }
/* ─── 07. FOOTER EXTENDIDO ─── */
footer { background:var(--deep); border-top:1px solid var(--border); padding:4rem 3rem 3rem; }
.footer-inner { max-width:1200px; margin:0 auto; }
.footer-top { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:3rem; margin-bottom:3rem; padding-bottom:3rem; border-bottom:1px solid var(--border); }
.footer-brand .footer-logo { font-family:var(--ff-sc); font-size:1.5rem; letter-spacing:.35em; color:var(--warm); text-decoration:none; display:block; margin-bottom:1rem; }
.footer-brand p { font-size:.82rem; color:var(--muted); line-height:1.75; max-width:220px; }
.footer-col h4 { font-family:var(--ff-sc); font-size:.58rem; letter-spacing:.35em; color:var(--gold); margin-bottom:1.2rem; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:.55rem; }
.footer-col ul li { font-family:var(--ff-sc); font-size:.6rem; letter-spacing:.22em; color:var(--muted); }
.footer-col ul li a { color:var(--muted); text-decoration:none; transition:color .3s; }
.footer-col ul li a:hover { color:var(--warm); }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; }
.footer-bottom p { font-family:var(--ff-sc); font-size:.55rem; letter-spacing:.25em; color:rgba(138,132,120,.35); }
.footer-social { display:flex; gap:1.5rem; }
.footer-social a { font-family:var(--ff-sc); font-size:.55rem; letter-spacing:.25em; color:rgba(138,132,120,.4); text-decoration:none; transition:color .3s; }
.footer-social a:hover { color:var(--muted); }
@media (max-width:960px) {
  .footer-top { grid-template-columns:1fr 1fr; gap:2rem; }
  .footer-brand { grid-column:1/-1; }
  .footer-bottom { flex-direction:column; gap:1rem; text-align:center; }
}
@media (max-width:600px) {
  .footer-top { grid-template-columns:1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   PUNKU v2 — Ajustes tipográficos + Grid híbrido Variant
═══════════════════════════════════════════════════════════════ */

/* ─── TIPOGRAFÍA: Libre Baskerville compensaciones ─── */
.hero-title { font-size: clamp(4.2rem, 12vw, 10.5rem); font-weight: 400; letter-spacing: -0.01em; }
.hero-tagline { font-size: clamp(0.95rem, 1.8vw, 1.2rem); }
.nav-logo { font-size: 1.15rem; letter-spacing: 0.25em; text-transform: uppercase; font-weight: 700; }
.section-label { font-size: 0.58rem; letter-spacing: 0.4em; text-transform: uppercase; font-weight: 400; }
.hero-label { font-size: 0.62rem; letter-spacing: 0.35em; text-transform: uppercase; font-weight: 400; }
.btn-primary, .btn-ghost, .btn-text { font-size: 0.62rem; letter-spacing: 0.25em; text-transform: uppercase; }
.btn-primary { font-weight: 700; }
.hero-side p { font-size: 0.58rem; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 400; }
.scroll-hint span { font-size: 0.52rem; letter-spacing: 0.35em; text-transform: uppercase; font-weight: 400; }
.filosofia-left h2 { font-size: clamp(2.2rem, 4.5vw, 4rem); font-weight: 400; }
.stat-num { font-weight: 400; }
.stat-label { font-size: 0.58rem; letter-spacing: 0.15em; text-transform: uppercase; font-weight: 400; }
body { font-weight: 300; }
.footer-logo { font-size: 1.15rem; letter-spacing: 0.25em; text-transform: uppercase; font-weight: 700; }

/* ─── MONO font utility ─── */
.t-mono {
  font-family: var(--ff-mono);
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* ─── RUST accent color ─── */
.section-label { color: var(--rust, var(--gold)); }
.section-label::before { background: var(--rust, var(--gold)); }

/* ─── GRID BORDERS (Variant-inspired) ─── */
.grid-border { border: 1px solid rgba(240,236,227,0.10); }
.grid-border-r { border-right: 1px solid rgba(240,236,227,0.10); }
.grid-border-b { border-bottom: 1px solid rgba(240,236,227,0.10); }

/* ─── STICKERS (Variant-inspired) ─── */
.sticker {
  display: inline-block;
  font-family: var(--ff-mono);
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: var(--rust);
  color: var(--warm);
  padding: 5px 14px;
  border-radius: 20px;
  border: 1px solid var(--vermilion);
  white-space: nowrap;
}
.sticker-gold {
  background: var(--gold);
  color: var(--black);
  border-color: var(--gold-lt);
}

/* ─── PRODUCT CARD (LAB grid style) ─── */
.lab-product-card {
  border: 1px solid rgba(240,236,227,0.10);
  display: flex;
  flex-direction: column;
}
.lab-product-card .card-header {
  display: flex;
  justify-content: space-between;
  padding: 10px 16px;
  border-bottom: 1px solid rgba(240,236,227,0.10);
}
.lab-product-card .card-meta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px dotted rgba(240,236,227,0.10);
}
.lab-product-card .card-footer {
  padding: 14px 16px;
  border-top: 1px solid rgba(240,236,227,0.10);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* ─── AVAILABILITY BADGES (updated) ─── */
.avail-si { background: rgba(44,64,43,0.3); color: #7aa672; }
.avail-pocas { background: rgba(184,154,94,0.2); color: var(--gold); }
.avail-no { background: rgba(154,42,26,0.2); color: var(--vermilion); }
.prod-avail {
  font-family: var(--ff-mono);
  font-size: 0.5rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 2px 10px;
  border-radius: 10px;
}

/* ─── COCTEL ROW TAGS ─── */
.cr-tag {
  font-family: var(--ff-mono);
  font-size: 0.44rem;
  font-weight: 700;
  text-transform: uppercase;
  border: 1px solid rgba(240,236,227,0.10);
  color: var(--muted);
  padding: 3px 10px;
  border-radius: 3px;
}
.cr-tag.tag-propio {
  border-color: var(--vermilion);
  color: var(--vermilion);
}

/* ─── SPACER utility ─── */
.spacer-sm { height: 2rem; }
.spacer-md { height: 3rem; border-bottom: 1px solid rgba(240,236,227,0.10); }
.spacer-lg { height: 4rem; border-bottom: 1px solid rgba(240,236,227,0.10); border-top: 1px solid rgba(240,236,227,0.10); }

/* ─── LOGO IMAGEN ─── */
.nav-logo-img {
  display: block;
  width: 180px;
  height: auto;
  object-fit: contain;
  transition: opacity 0.3s, width 0.3s;
}
.nav-logo:hover .nav-logo-img { opacity: 0.85; }
nav.scrolled .nav-logo-img { width: 140px; }

/* ─── BITÁCORA PREVIEW mobile ─── */
@media (max-width:960px) {
  #bitacora { padding:4rem 0; }
  .bitacora-preview-layout { grid-template-columns:1fr;gap:2rem; }
  .bitacora-preview-image img { max-height:50vh; }
  .bitacora-intro { max-width:100%; }
}

