:root{
    --crema:#EDE6D9; --botella:#1E3A2E; --oliva:#6B7F5B; --terracota:#8B4E3C;

    --page:#EDE6D9;
    --panel:#F6F2E9;
    --panel-2:#E4DCCB;
    --ink:#2E2E2E;
    --ink-soft:#5F6157;
    --rule:rgba(30,58,46,.20);
    --rule-fuerte:rgba(30,58,46,.42);
    --emph-bg:#1E3A2E;
    --emph-ink:#EDE6D9;
    --emph-soft:#A9BBA6;
    --emph-rule:rgba(237,230,217,.26);
    --accent:#8B4E3C;
    --accent-ink:#F6F2E9;
    --oliva-ink:#54683F;
    --calido:#8B4E3C;
    --rule-calido:rgba(139,78,60,.32);
    --petit-1:#F7EFE6;
    --petit-mid:#F0DED1;
    --petit-2:#E2C6B4;
    --petit-glow:rgba(139,78,60,.20);
    --mq-1:#8B4E3C;
    --mq-2:#5E3327;
    --mq-ink:#F6EFE7;
    --dulce:#EFDED3;

    --fuente-display:"Bevan","Rockwell",Georgia,serif;
    --fuente-mano:"Caveat","Segoe Script",cursive;
    --fuente-texto:"Karla","Helvetica Neue",Arial,sans-serif;

    --gutter:clamp(16px,5vw,64px);
    --max:1180px;
    --curva:cubic-bezier(.2,.7,.3,1);
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --page:#14251C; --panel:#1B3226; --panel-2:#22402F;
      --ink:#E9E3D6; --ink-soft:#A6B4A2;
      --rule:rgba(237,230,217,.18); --rule-fuerte:rgba(237,230,217,.38);
      --emph-bg:#0F1D16; --emph-ink:#EDE6D9; --emph-soft:#9DB199;
      --emph-rule:rgba(237,230,217,.2);
      --accent:#C67E5F; --accent-ink:#14251C; --oliva-ink:#9DB58A;
      --calido:#D8916F; --rule-calido:rgba(216,145,111,.34);
      --petit-1:#241A16; --petit-mid:#331F18; --petit-2:#452819; --petit-glow:rgba(198,126,95,.26);
      --mq-1:#7A422F; --mq-2:#3B1E16; --mq-ink:#F3E6DC; --dulce:#2E1E17;
    }
  }
  :root[data-theme="dark"]{
    --page:#14251C; --panel:#1B3226; --panel-2:#22402F;
    --ink:#E9E3D6; --ink-soft:#A6B4A2;
    --rule:rgba(237,230,217,.18); --rule-fuerte:rgba(237,230,217,.38);
    --emph-bg:#0F1D16; --emph-ink:#EDE6D9; --emph-soft:#9DB199;
    --emph-rule:rgba(237,230,217,.2);
    --accent:#C67E5F; --accent-ink:#14251C; --oliva-ink:#9DB58A;
    --calido:#D8916F; --rule-calido:rgba(216,145,111,.34);
    --petit-1:#241A16; --petit-mid:#331F18; --petit-2:#452819; --petit-glow:rgba(198,126,95,.26);
    --mq-1:#7A422F; --mq-2:#3B1E16; --mq-ink:#F3E6DC; --dulce:#2E1E17;
  }

  *{box-sizing:border-box}
  body{
    margin:0;background:var(--page);color:var(--ink);
    font-family:var(--fuente-texto);font-size:16px;line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%}
  a{color:inherit}
  :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}

  .env{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
  .seccion{padding-block:clamp(56px,8vw,104px)}
  .seccion + .seccion{border-top:1px solid var(--rule)}

  /* ---------- movimiento ---------- */
  .js-rev{opacity:0;transform:translateY(18px)}
  .js-rev.on{opacity:1;transform:none;transition:opacity .7s ease,transform .7s var(--curva)}
  @media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
    .js-rev{opacity:1!important;transform:none!important}
  }

  .eyebrow{
    font-size:11px;letter-spacing:.22em;text-transform:uppercase;
    font-weight:700;color:var(--calido);margin:0 0 14px;
    display:flex;align-items:center;gap:12px;
  }
  .eyebrow::after{content:"";flex:1;height:1px;background:var(--rule)}
  .on-dark .eyebrow{color:var(--emph-soft)}
  .on-dark .eyebrow::after{background:var(--emph-rule)}

  h1,h2,h3{margin:0;text-wrap:balance;font-weight:400}
  .h2{font-family:var(--fuente-display);font-size:clamp(30px,4.6vw,50px);line-height:1;letter-spacing:-.015em}
  .h3{font-family:var(--fuente-texto);font-weight:700;font-size:19px;letter-spacing:.01em}
  .mano{font-family:var(--fuente-mano);font-weight:700;line-height:1.05}
  .sub{color:var(--ink-soft);max-width:60ch}
  .on-dark .sub{color:var(--emph-soft)}

  /* ---------- barra ---------- */
  .barra{
    position:sticky;top:env(safe-area-inset-top,0px);z-index:60;
    background:color-mix(in srgb,var(--page) 92%,transparent);
    backdrop-filter:blur(10px);border-bottom:1px solid var(--rule);
    transition:box-shadow .3s ease;
  }
  .barra.compacta{box-shadow:0 6px 24px rgba(30,58,46,.10)}
  .barra-in{display:flex;align-items:center;gap:18px;min-height:66px;transition:min-height .3s var(--curva)}
  .barra.compacta .barra-in{min-height:54px}
  .marca{display:flex;align-items:baseline;gap:9px;text-decoration:none;margin-right:auto}
  .marca b{font-family:var(--fuente-display);font-size:20px;letter-spacing:-.02em;line-height:1;transition:font-size .3s var(--curva)}
  .barra.compacta .marca b{font-size:17px}
  .marca i{
    font-family:var(--fuente-mano);font-style:normal;font-weight:700;font-size:17px;
    color:var(--calido);transition:opacity .25s ease,max-width .3s var(--curva);
    white-space:nowrap;overflow:hidden;max-width:160px;
  }
  .barra.compacta .marca i{opacity:0;max-width:0}
  .nav{display:flex;gap:20px;align-items:center}
  .nav a{
    text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.13em;
    text-transform:uppercase;color:var(--ink-soft);padding-block:6px;
    border-bottom:2px solid transparent;transition:color .2s ease,border-color .2s ease;
  }
  .nav a:hover{color:var(--ink);border-bottom-color:var(--accent)}

  .idiomas{display:flex;gap:1px;background:var(--rule-fuerte);border:1px solid var(--rule-fuerte);border-radius:2px;overflow:hidden}
  .idiomas button{
    font-family:var(--fuente-texto);font-size:11px;font-weight:700;letter-spacing:.1em;
    padding:7px 9px;border:0;background:var(--page);color:var(--ink-soft);cursor:pointer;
    transition:background .2s ease,color .2s ease;
  }
  .idiomas button:hover{color:var(--ink)}
  .idiomas button[aria-pressed="true"]{background:var(--emph-bg);color:var(--emph-ink)}

  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    font-family:var(--fuente-texto);font-weight:700;font-size:12px;
    letter-spacing:.13em;text-transform:uppercase;text-decoration:none;
    padding:11px 18px;border:1px solid var(--botella);border-radius:2px;
    background:var(--emph-bg);color:var(--emph-ink);cursor:pointer;
    transition:transform .15s var(--curva),box-shadow .2s ease,background .2s ease;
  }
  .btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(30,58,46,.18)}
  .btn:active{transform:translateY(0)}
  .btn.ghost{background:transparent;color:var(--ink);border-color:var(--rule-fuerte)}
  .btn.ghost:hover{background:var(--panel)}
  .btn.terra{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
  .btn.claro{background:var(--crema);color:var(--botella);border-color:var(--crema)}
  .menu-btn{display:none;background:none;border:1px solid var(--rule-fuerte);border-radius:2px;padding:9px 11px;cursor:pointer;color:var(--ink)}
  @media (max-width:1000px){
    .nav{
      display:none;position:absolute;left:0;right:0;top:100%;
      flex-direction:column;align-items:stretch;gap:0;
      background:var(--page);border-bottom:1px solid var(--rule);padding:6px var(--gutter) 16px;
    }
    .nav.abierto{display:flex;animation:baja .3s var(--curva)}
    @keyframes baja{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
    .nav a{padding:13px 0;border-bottom:1px solid var(--rule)}
    .menu-btn{display:block}
    .barra .btn.terra{display:none}
  }

  /* ---------- hero ---------- */
  .hero{background:var(--emph-bg);color:var(--emph-ink);position:relative;overflow:hidden}
  .hero::before{
    content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
    background:
      radial-gradient(120% 80% at 80% 0%, rgba(107,127,91,.28), transparent 62%),
      repeating-linear-gradient(103deg, rgba(237,230,217,.035) 0 2px, transparent 2px 7px);
  }
  .hero-in{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,5vw,64px);align-items:center;padding-block:clamp(48px,7vw,86px)}
  .hero-lema{font-family:var(--fuente-display);font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--emph-soft);margin:0 0 22px}
  .logotipo{font-family:var(--fuente-display);line-height:.82;letter-spacing:-.025em;margin:0}
  .logotipo span{display:block}
  .logotipo .l1{font-size:clamp(38px,6.6vw,68px)}
  .logotipo .l2{font-size:clamp(52px,11vw,116px)}
  .bajada{margin:18px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--emph-soft)}
  .filete{width:58px;height:2px;background:var(--emph-ink);display:inline-block}
  .hero p.intro{margin:26px 0 0;max-width:44ch;color:var(--emph-ink);opacity:.92;font-size:17px}
  .hero-acciones{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
  .cartel{position:relative;border:1px solid var(--emph-rule);background:rgba(237,230,217,.05);padding:26px 24px 22px;display:grid;gap:18px}
  .cartel .mano{font-size:clamp(28px,4.4vw,40px);color:var(--emph-ink)}
  .cartel .mano u{text-decoration:none;border-bottom:3px solid var(--accent);padding-bottom:2px}
  .rama{width:165px;height:auto;display:block;opacity:.9}
  .rama.espejo{transform:scaleX(-1)}
  .divisor{display:flex;align-items:center;justify-content:center;gap:16px;margin:0 0 16px}
  .divisor .rama{width:140px;opacity:.7}
  .cartel-frase{margin:0;padding:18px 0;border-block:1px solid var(--emph-rule);font-family:var(--fuente-mano);font-weight:700;font-size:clamp(21px,2.8vw,26px);line-height:1.15;color:var(--emph-soft)}
  .cartel-lista{list-style:none;margin:0;padding:0;display:grid;gap:9px}
  .cartel-lista li{display:flex;gap:12px;align-items:baseline;font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--emph-soft)}
  .cartel-lista li::before{content:"";width:7px;height:7px;background:var(--accent);flex:none;border-radius:50%}
  @media (max-width:860px){ .hero-in{grid-template-columns:1fr} }

  /* ---------- dos casas ---------- */
  .puertas{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:34px}
  .puerta{background:var(--panel);padding:clamp(22px,3.4vw,34px);display:grid;gap:14px;align-content:start;transition:background .3s ease}
  .puerta:hover{background:var(--panel-2)}
  .puerta h3{font-family:var(--fuente-display);font-size:clamp(22px,3vw,30px);line-height:1;letter-spacing:-.01em}
  .puerta p{margin:0;color:var(--ink-soft);font-size:15px}
  .puerta .horario{margin-top:4px;padding-top:14px;border-top:1px dashed var(--rule-fuerte);font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--ink)}
  .puerta.dulce{background:var(--dulce)}
  .puerta.dulce:hover{background:var(--panel)}
  .puerta.dulce h3{color:var(--calido)}
  @media (max-width:760px){.puertas{grid-template-columns:1fr}}

  /* ---------- carta ---------- */
  .carta-cab{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px}
  .tabs{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 26px}
  .tab{font-family:var(--fuente-texto);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:10px 16px;border:1px solid var(--rule-fuerte);background:transparent;color:var(--ink-soft);cursor:pointer;border-radius:2px;transition:all .2s ease}
  .tab:hover{color:var(--ink);border-color:var(--ink-soft)}
  .tab[aria-selected="true"]{background:var(--emph-bg);border-color:var(--emph-bg);color:var(--emph-ink)}
  .carta-cuerpo{display:grid;grid-template-columns:1fr 340px;gap:clamp(24px,4vw,48px);align-items:start}
  .panel-carta{animation:entra .35s var(--curva)}
  @keyframes entra{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .cat-nota{font-family:var(--fuente-mano);font-weight:700;font-size:26px;color:var(--calido);margin:0 0 14px}
  .plato{display:grid;grid-template-columns:1fr auto auto;gap:6px 16px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--rule)}
  .plato-n{font-weight:700;font-size:16px;grid-column:1}
  .plato-d{grid-column:1;grid-row:2;color:var(--ink-soft);font-size:14px;margin:0;max-width:52ch}
  .plato-p{font-weight:700;font-size:16px;font-variant-numeric:tabular-nums;grid-column:2;grid-row:1}
  .add{grid-column:3;grid-row:1 / span 2;align-self:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--rule-fuerte);background:transparent;color:var(--ink);font-size:20px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:all .2s var(--curva)}
  .add:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);transform:scale(1.12) rotate(90deg)}
  .etq{display:inline-block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--accent);border:1px solid var(--accent);padding:1px 6px;border-radius:2px;margin-left:8px;vertical-align:2px}

  /* ---------- pedido ---------- */
  .pedido{position:sticky;top:calc(env(safe-area-inset-top,0px) + 80px);background:var(--panel);border:1px solid var(--rule-fuerte);padding:20px}
  .modos{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:14px 0 16px}
  .modo{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:9px 4px;border:1px solid var(--rule-fuerte);background:transparent;color:var(--ink-soft);cursor:pointer;border-radius:2px;transition:all .2s ease}
  .modo[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
  .cesta{list-style:none;margin:0;padding:0;max-height:270px;overflow-y:auto}
  .cesta li{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px dashed var(--rule);animation:entra .3s var(--curva)}
  .cesta .cn{font-size:14px;line-height:1.3}
  .cesta .cn small{display:block;color:var(--ink-soft);font-size:12px;font-variant-numeric:tabular-nums}
  .cesta .cp{font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}
  .qty{display:flex;align-items:center;gap:2px}
  .qty button{width:24px;height:24px;border:1px solid var(--rule-fuerte);background:transparent;color:var(--ink);cursor:pointer;border-radius:2px;line-height:1;font-size:14px;transition:background .15s ease}
  .qty button:hover{background:var(--panel-2)}
  .qty span{min-width:22px;text-align:center;font-weight:700;font-size:13px;font-variant-numeric:tabular-nums}
  .vacia{color:var(--ink-soft);font-size:14px;font-style:italic;padding:14px 0;border-bottom:1px dashed var(--rule)}
  .totales{display:grid;gap:5px;margin:14px 0 4px;font-size:13px;font-variant-numeric:tabular-nums}
  .totales div{display:flex;justify-content:space-between;color:var(--ink-soft)}
  .totales .total{font-size:17px;font-weight:700;color:var(--ink);border-top:1px solid var(--rule-fuerte);padding-top:9px;margin-top:5px}
  .campo{display:grid;gap:5px;margin-top:11px}
  .campo label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--ink-soft)}
  .campo input,.campo select,.campo textarea{font-family:var(--fuente-texto);font-size:15px;padding:10px 11px;border:1px solid var(--rule-fuerte);background:var(--page);color:var(--ink);border-radius:2px;width:100%}
  .campo textarea{resize:vertical;min-height:72px}
  .fila{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .pedido .btn{width:100%;margin-top:16px}
  .letra-chica{font-size:12px;color:var(--ink-soft);margin:10px 0 0;line-height:1.45}
  @media (max-width:980px){ .carta-cuerpo{grid-template-columns:1fr} .pedido{position:static} }

  /* ---------- Petit ---------- */
  .petit{
    background:
      radial-gradient(70% 58% at 8% -5%, var(--petit-glow), transparent 62%),
      linear-gradient(168deg, var(--petit-1) 0%, var(--petit-mid) 38%, var(--petit-2) 100%);
  }
  .petit .acc{border-top-color:var(--rule-calido)}
  .petit .acc:last-of-type{border-bottom-color:var(--rule-calido)}
  .petit .acc-cab .signo{border-color:var(--rule-calido)}
  .petit .acc-int li{border-bottom-color:var(--rule-calido)}
  .petit .encargo{border-color:var(--rule-calido)}
  .petit-cab{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,56px);align-items:end}
  .petit-logo{font-family:var(--fuente-display);font-size:clamp(54px,11vw,120px);line-height:.85;letter-spacing:-.03em;color:var(--accent);margin:0}
  .petit-logo small{display:block;font-family:var(--fuente-mano);font-size:clamp(22px,3vw,30px);letter-spacing:0;color:var(--ink-soft);margin-top:8px}
  .petit-cuerpo{display:grid;grid-template-columns:1fr 360px;gap:clamp(24px,4vw,48px);align-items:start;margin-top:40px}
  @media (max-width:900px){ .petit-cab,.petit-cuerpo{grid-template-columns:1fr} }

  .acc{border-top:1px solid var(--rule-fuerte)}
  .acc:last-of-type{border-bottom:1px solid var(--rule-fuerte)}
  .acc-cab{
    width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
    background:none;border:0;cursor:pointer;padding:20px 0;color:var(--ink);text-align:left;
    font-family:var(--fuente-display);font-size:clamp(18px,2.4vw,23px);letter-spacing:-.01em;
  }
  .acc-cab:hover{color:var(--accent)}
  .acc-cab .signo{
    flex:none;width:28px;height:28px;border:1px solid var(--rule-fuerte);border-radius:50%;
    display:grid;place-items:center;position:relative;transition:transform .35s var(--curva),background .25s ease;
  }
  .acc-cab .signo::before,.acc-cab .signo::after{content:"";position:absolute;background:currentColor;transition:opacity .25s ease}
  .acc-cab .signo::before{width:11px;height:1.5px}
  .acc-cab .signo::after{width:1.5px;height:11px}
  .acc.abierto .acc-cab .signo{transform:rotate(135deg);background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
  .acc.abierto .acc-cab .signo::after{opacity:0}
  .acc-cuerpo{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--curva)}
  .acc.abierto .acc-cuerpo{grid-template-rows:1fr}
  .acc-int{overflow:hidden}
  .acc-int > ul{list-style:none;margin:0;padding:0 0 18px}
  .acc-int li{display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:11px 0;border-bottom:1px dashed var(--rule)}
  .acc-int li:last-child{border-bottom:0}
  .acc-int .an{font-weight:700;font-size:15px}
  .acc-int .ad{grid-column:1;font-size:13px;color:var(--ink-soft)}
  .acc-int .ap{font-weight:700;font-size:15px;font-variant-numeric:tabular-nums;grid-row:1;grid-column:2}
  .encargo{background:var(--panel);border:1px solid var(--rule-fuerte);padding:22px}
  .encargo .btn{width:100%;margin-top:16px}

  /* ---------- eventos ---------- */
  .eventos{margin-top:30px;border-top:1px solid var(--rule-fuerte)}
  .evento{display:grid;grid-template-columns:96px 1fr auto;gap:8px 24px;align-items:center;padding:22px 0;border-bottom:1px solid var(--rule);transition:padding-left .3s var(--curva)}
  .evento:hover{padding-left:10px}
  .fecha{font-family:var(--fuente-display);line-height:.9;text-align:center;border:1px solid var(--rule-fuerte);padding:10px 4px;transition:background .3s ease,color .3s ease}
  .evento:hover .fecha{background:var(--accent);color:var(--accent-ink)}
  .fecha .d{display:block;font-size:30px}
  .fecha .m{display:block;font-size:11px;letter-spacing:.2em;color:var(--oliva-ink);margin-top:5px}
  .evento:hover .fecha .m{color:var(--accent-ink);opacity:.8}
  .evento-txt p{margin:3px 0 0;color:var(--ink-soft);font-size:14px;max-width:58ch}
  .evento-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--oliva-ink)}
  .evento-meta span{border:1px solid var(--rule);padding:2px 8px;border-radius:2px}
  @media (max-width:700px){ .evento{grid-template-columns:72px 1fr} .evento .btn{grid-column:1 / -1;justify-self:start} }

  /* ---------- pared ---------- */
  .pared{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;margin-top:30px;align-items:start}
  .foto{background:var(--panel);border:1px solid var(--rule);padding:10px 10px 14px;display:grid;gap:10px;transition:transform .3s var(--curva),box-shadow .3s ease}
  .foto:nth-child(odd){transform:rotate(-.6deg)}
  .foto:nth-child(3n){transform:rotate(.7deg)}
  .foto:hover{transform:rotate(0) translateY(-6px) scale(1.02);box-shadow:0 14px 30px rgba(30,58,46,.18);z-index:2}
  .marco{aspect-ratio:4/5;width:100%;max-width:100%;display:grid;place-items:center;overflow:hidden;border:1px solid var(--rule);
    background:repeating-linear-gradient(45deg,rgba(30,58,46,.06) 0 6px,transparent 6px 12px),linear-gradient(160deg,var(--panel-2),var(--page))}
  .marco svg{width:34px;height:34px;opacity:.4}
  .foto figcaption{font-family:var(--fuente-mano);font-weight:700;font-size:20px;line-height:1.1;min-height:2.2em}
  .foto figcaption small{display:block;font-family:var(--fuente-texto);font-weight:700;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--calido);margin-top:4px}

  /* ---------- marquesina ---------- */
  .marquesina{background:linear-gradient(100deg,var(--mq-1) 0%,var(--mq-2) 100%);color:var(--mq-ink);padding-block:26px;overflow:hidden}
  .mq-pista{display:flex;width:max-content;animation:corre 42s linear infinite}
  .marquesina:hover .mq-pista{animation-play-state:paused}
  .mq-pista span{font-family:var(--fuente-mano);font-weight:700;font-size:clamp(24px,3.4vw,34px);padding-inline:32px;white-space:nowrap;display:flex;align-items:center;gap:32px}
  .mq-pista span::after{content:"";width:7px;height:7px;background:var(--mq-ink);opacity:.55;border-radius:50%;flex:none}
  @keyframes corre{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  @media (prefers-reduced-motion: reduce){ .mq-pista{animation:none;width:100%;flex-wrap:wrap;justify-content:center} }

  /* ---------- faq ---------- */
  .faq{max-width:760px;margin-top:26px}

  /* ---------- visita ---------- */
  .visita-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);align-items:start}
  .dato{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:15px 0;border-bottom:1px solid var(--rule)}
  .dato dt{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--calido)}
  .dato dd{margin:0;font-size:15px}
  .dato dd a{color:var(--accent);text-underline-offset:3px}
  .mapa{border:1px solid var(--rule-fuerte);background:var(--panel)}
  .mapa-txt{padding:clamp(22px,4vw,34px);display:grid;gap:12px;justify-items:start}
  .mapa-eyebrow{margin:0;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--calido)}
  .mapa-dir{margin:0;font-family:var(--fuente-display);font-size:clamp(20px,2.6vw,26px);line-height:1.25}
  .mapa-ref{margin:0;font-size:14px;color:var(--ink-soft)}
  @media (max-width:860px){.visita-in{grid-template-columns:1fr}}

  /* ---------- pie ---------- */
  .pie{background:var(--emph-bg);color:var(--emph-ink);padding-block:clamp(40px,6vw,64px) 28px}
  .pie-in{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:32px}
  .pie h4{margin:0 0 12px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--emph-soft)}
  .pie ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14px}
  .pie a{text-decoration:none;opacity:.85;transition:opacity .2s ease}
  .pie a:hover{opacity:1;text-decoration:underline;text-underline-offset:3px}
  .pie-logo{font-family:var(--fuente-display);font-size:clamp(32px,4.6vw,46px);line-height:.9;letter-spacing:-.02em;margin:0}
  .pie-logo small{display:block;font-family:var(--fuente-mano);font-size:26px;letter-spacing:0;color:var(--emph-soft);margin-top:6px}
  .pie-base{margin-top:36px;padding-top:20px;border-top:1px solid var(--emph-rule);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--emph-soft)}
  @media (max-width:760px){.pie-in{grid-template-columns:1fr}}

  .aviso{
    position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);z-index:90;
    background:var(--emph-bg);color:var(--emph-ink);border:1px solid var(--emph-rule);
    padding:12px 20px;font-size:13px;font-weight:700;letter-spacing:.06em;
    box-shadow:0 8px 30px rgba(0,0,0,.28);max-width:min(92vw,420px);text-align:center;
    transform:translate(-50%,0);animation:sube .3s var(--curva);
  }
  @keyframes sube{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}

  .arriba{
    position:fixed;right:18px;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);z-index:70;
    width:44px;height:44px;border-radius:50%;border:1px solid var(--rule-fuerte);
    background:var(--panel);color:var(--ink);cursor:pointer;display:grid;place-items:center;
    opacity:0;pointer-events:none;transform:translateY(12px);
    transition:opacity .3s ease,transform .3s var(--curva);
  }
  .arriba.on{opacity:1;pointer-events:auto;transform:none}
