  :root{
    /* Paleta SORBO — neutros cálidos (carbón · beige · piedra · crema) */
    --cream:#e7dfcb;        /* crema papel base */
    --cream-2:#d6cab2;      /* beige/tan algo más profundo */
    --paper:#f4efe4;        /* papel claro (secciones tipo carta) */
    --ink:#2a251f;          /* texto oscuro cálido sobre claro */
    --coffee:#403a33;       /* piedra media (bandas cálidas) */
    --coffee-dark:#1f1b17;  /* carbón espresso / hero / footer */
    --espresso:#2a2620;     /* carbón cálido (bandas oscuras) */
    --terracotta:#3f3a33;   /* ACENTO principal -> piedra oscura */
    --terracotta-dark:#242019; /* acento fuerte / hover -> carbón */
    --green:#3f3a33;        /* (alias de acento piedra) */
    --green-dark:#2a2620;   /* (alias de carbón) */
    --stone:#7c7367;        /* gris cálido medio para eyebrows/labels */
    --gold:#a89a80;         /* taupe apagado (líneas, bordes, acentos) */
    --text-light:#f6f1e8;   /* texto claro cálido, nunca blanco puro */
    --logo-cream:#e9e0d3;   /* crema del wordmark SORBO */
    --line: rgba(42,37,31,0.12);
    /* Sombras y radios unificados */
    --shadow-sm: 0 10px 28px -18px rgba(31,27,23,0.34);
    --shadow: 0 20px 50px -22px rgba(31,27,23,0.42);
    --shadow-lg: 0 34px 66px -30px rgba(31,27,23,0.50);
    --r-sm:10px;
    --r-md:14px;
    --r-lg:18px;
    --r-pill:100px;
    --ease: cubic-bezier(.22,.68,0,1.01);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;overflow-x:clip;}
  html:focus-within{scroll-behavior:smooth;}
  body{
    font-family:'Inter',sans-serif;
    background:var(--cream);
    color:var(--ink);
    overflow-x:clip;
    line-height:1.6;
    text-rendering:optimizeLegibility;
  }
  h1,h2,h3,h4,.serif{font-family:'Fraunces',serif;}
  a{color:inherit;text-decoration:none;}
  :focus-visible{outline:3px solid var(--gold);outline-offset:4px;}
  img{max-width:100%;display:block;}
  ul{list-style:none;}
  .container{width:min(1180px, 92%);margin:0 auto;}
  .skip-link{
    position:fixed;left:18px;top:18px;z-index:3000;
    background:var(--coffee-dark);color:var(--text-light);padding:10px 16px;border-radius:var(--r-sm);
    transform:translateY(-160%);transition:transform .2s;
  }
  .skip-link:focus{transform:translateY(0);}
  .eyebrow{
    display:inline-flex;align-items:center;gap:.5em;
    font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;
    color:var(--stone);font-weight:600;margin-bottom:14px;
  }
  .eyebrow::before{content:"";width:26px;height:1px;background:var(--gold);display:inline-block;}
  .btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:15px 30px;border-radius:var(--r-pill);
    font-weight:600;font-size:.92rem;letter-spacing:.02em;
    border:1px solid transparent;cursor:pointer;
    transition:transform .45s var(--ease), box-shadow .45s var(--ease), background .3s, color .3s, border-color .3s;
    white-space:nowrap;
  }
  .btn-primary{background:var(--terracotta);color:var(--text-light);}
  .btn-primary:hover{background:var(--terracotta-dark);transform:translateY(-3px);box-shadow:0 14px 30px -12px rgba(31,27,23,.5);}
  .btn-ghost{border-color:rgba(255,247,238,.6);color:var(--text-light);}
  .btn-ghost:hover{background:rgba(255,247,238,.14);transform:translateY(-3px);}
  .btn-dark{background:transparent;color:var(--coffee-dark);border-color:rgba(42,37,31,.28);}
  .btn-dark:hover{background:var(--coffee-dark);color:var(--cream);border-color:var(--coffee-dark);transform:translateY(-3px);}

  /* ---------- reveal animations ---------- */
  [data-reveal]{opacity:0;transition:opacity .9s var(--ease), transform .9s var(--ease);will-change:transform,opacity;}
  [data-reveal="up"]{transform:translateY(48px);}
  [data-reveal="left"]{transform:translateX(-56px);}
  [data-reveal="right"]{transform:translateX(56px);}
  [data-reveal="scale"]{transform:scale(.9);}
  /* en móvil, los reveals laterales pasan a un fade vertical más discreto */
  @media(max-width:760px){
    [data-reveal="left"],[data-reveal="right"]{transform:translateY(40px);}
  }
  [data-reveal="wipe"]{opacity:1;filter:none;transform:none;position:relative;}
  [data-reveal="wipe"]::after{content:"";position:absolute;inset:0;background:var(--coffee);z-index:5;transform-origin:right center;transition:transform 1.05s var(--ease);}
  [data-reveal].in-view{opacity:1;transform:translate(0,0) scale(1);}
  [data-reveal="wipe"].in-view::after{transform:scaleX(0);}

  /* ---------- progress bar / cursor / grain ---------- */
  .progress-bar{position:fixed;top:0;left:0;height:3px;width:0%;background:linear-gradient(90deg,var(--terracotta),var(--gold));z-index:2000;}
  .cursor-dot{position:fixed;top:0;left:0;width:8px;height:8px;border-radius:50%;background:#fff;pointer-events:none;z-index:2100;transform:translate(-50%,-50%);mix-blend-mode:difference;}
  .cursor-ring{position:fixed;top:0;left:0;width:34px;height:34px;border-radius:50%;border:1px solid #fff;pointer-events:none;z-index:2099;transform:translate(-50%,-50%);mix-blend-mode:difference;transition:width .35s var(--ease),height .35s var(--ease),border-color .35s,background .35s;}
  .cursor-ring.grow{width:60px;height:60px;background:rgba(255,255,255,.16);border-color:#fff;}
  html.has-cursor, html.has-cursor a, html.has-cursor button, html.has-cursor .btn{cursor:none;}
  @media(hover:none){.cursor-dot,.cursor-ring{display:none !important;}}
  .grain{position:fixed;inset:0;z-index:1500;pointer-events:none;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

  /* ---------- section index rail ---------- */
  .section-rail{position:fixed;right:28px;top:50%;transform:translateY(-50%);z-index:950;display:flex;flex-direction:column;gap:16px;align-items:center;mix-blend-mode:difference;}
  .section-rail a{font-size:.68rem;font-weight:700;color:var(--text-light);letter-spacing:.05em;position:relative;padding:5px 2px;line-height:1;transition:opacity .3s;opacity:.4;}
  .section-rail a::before{content:"";position:absolute;left:50%;bottom:-13px;width:1px;height:10px;background:#fff;opacity:.5;transform:translateX(-50%);}
  .section-rail a:last-child::before{display:none;}
  .section-rail a.active{opacity:1;}
  .section-rail a.active::after{content:"";position:absolute;left:-10px;top:50%;width:4px;height:4px;border-radius:50%;background:#fff;transform:translateY(-50%);}
  @media(max-width:1150px){.section-rail{display:none;}}

  /* ---------- diagonal section dividers ---------- */
  .section-divider{display:block;position:absolute;left:0;bottom:-1px;width:100%;height:70px;z-index:3;}
  @media(max-width:760px){.section-divider{height:34px;}}

  /* ---------- hero badge ---------- */
  .hero-badge{position:absolute;right:7%;bottom:150px;z-index:3;width:112px;height:112px;display:flex;align-items:center;justify-content:center;}
  .hero-badge svg{width:100%;height:100%;position:absolute;inset:0;animation:spin 15s linear infinite;}
  .hero-badge .badge-center{position:relative;font-size:1.3rem;filter:drop-shadow(0 2px 5px rgba(0,0,0,.45));}
  @keyframes spin{to{transform:rotate(360deg);}}
  @media(max-width:900px){.hero-badge{display:none;}}

  [data-reveal-delay="1"]{transition-delay:.12s;}
  [data-reveal-delay="2"]{transition-delay:.24s;}
  [data-reveal-delay="3"]{transition-delay:.36s;}
  [data-reveal-delay="4"]{transition-delay:.48s;}
  [data-reveal-delay="5"]{transition-delay:.6s;}

  /* ---------- nav ---------- */
  header{
    position:fixed;top:0;left:0;width:100%;z-index:1000;
    padding:26px 0;transition:padding .4s var(--ease), background .4s var(--ease), box-shadow .4s var(--ease);
  }
  header .container{display:flex;align-items:center;justify-content:space-between;}
  header.scrolled{padding:14px 0;background:rgba(231,223,203,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 8px 30px -18px rgba(31,27,23,.4);}
  .logo{display:flex;align-items:center;gap:12px;font-family:'Cinzel',serif;font-weight:700;font-size:1.3rem;letter-spacing:.08em;color:var(--logo-cream);transition:color .4s;}
  header.scrolled .logo{color:var(--ink);}
  .logo img{width:38px;height:38px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px rgba(255,255,255,.5);}
  header.scrolled .logo img{box-shadow:0 0 0 2px rgba(42,30,21,.15);}
  nav.links{display:flex;gap:36px;align-items:center;}
  nav.links a{
    font-size:.86rem;font-weight:500;letter-spacing:.03em;color:var(--text-light);
    position:relative;padding:4px 0;transition:color .4s;
  }
  header.scrolled nav.links a{color:var(--ink);}
  nav.links a::after{
    content:"";position:absolute;left:0;bottom:-2px;height:1px;width:0;
    background:currentColor;transition:width .4s var(--ease);
  }
  nav.links a:hover::after{width:100%;}
  .nav-actions{display:flex;align-items:center;gap:16px;}
  .burger{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:1100;background:none;border:none;padding:6px;}
  .burger span{width:24px;height:2px;background:var(--text-light);transition:all .3s;}
  header.scrolled .burger span{background:var(--ink);}

  /* ---------- hero ---------- */
  .hero{
    position:relative;min-height:100svh;display:flex;align-items:flex-end;
    overflow:hidden;background:var(--coffee-dark);
  }
  .hero-bg{
    position:absolute;inset:0;
    background:url('IMG/hero-bg.jpg') 60% 46%/cover no-repeat;
    transform:scale(1.12);will-change:transform;
  }
  /* hero mobile pos */
  @media(max-width:760px){.hero-bg{background-size:auto 122%;background-position:60% 86%;}}

  .hero-bg video{
    position:absolute;inset:0;width:100%;height:100%;
    object-fit:cover;object-position:center 42%;
  }
  .hero::after{
    content:"";position:absolute;inset:0;
    background:
      radial-gradient(120% 92% at 10% 100%, rgba(23,16,13,.92) 0%, rgba(23,16,13,.66) 32%, rgba(23,16,13,.2) 58%, transparent 74%),
      radial-gradient(90% 70% at 88% 6%, rgba(214,202,178,.10) 0%, transparent 55%),
      linear-gradient(180deg, rgba(23,16,13,.5) 0%, rgba(23,16,13,.22) 34%, rgba(23,16,13,.64) 70%, rgba(23,16,13,.97) 100%);
  }
  .hero-content{position:relative;z-index:2;color:var(--text-light);padding-bottom:90px;width:100%;}
  .hero-content .container{max-width:820px;}
  .hero-kicker{
    display:inline-flex;align-items:center;gap:10px;font-size:.74rem;letter-spacing:.28em;
    text-transform:uppercase;color:#f7ecdc;margin-bottom:24px;
    padding:9px 18px;border-radius:var(--r-pill);
    background:rgba(23,16,13,.42);border:1px solid rgba(168,154,128,.28);
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
    opacity:0;animation:fadeUp 1s var(--ease) .3s forwards;
  }
  .hero-kicker .dot{width:6px;height:6px;border-radius:50%;background:var(--gold);}
  .hero h1{
    font-size:clamp(3rem, 8.4vw, 6.4rem);font-weight:500;line-height:1.0;
    letter-spacing:-.02em;
    text-shadow:0 4px 30px rgba(0,0,0,.5), 0 1px 4px rgba(0,0,0,.6);
  }
  .hero h1 span{display:block;overflow:hidden;}
  .hero h1 span em{
    font-style:italic;font-weight:300;display:block;
    transform:translateY(110%);animation:slideUp 1.1s var(--ease) forwards;
  }
  .hero h1 span:nth-child(1) em{animation-delay:.15s;}
  .hero h1 span:nth-child(2) em{animation-delay:.32s;}
  @keyframes slideUp{to{transform:translateY(0);}}
  @keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
  .hero p.lead{
    margin-top:26px;max-width:520px;font-size:1.08rem;color:#f3e8d8;
    text-shadow:0 2px 14px rgba(0,0,0,.5), 0 1px 2px rgba(0,0,0,.6);
    opacity:0;animation:fadeUp 1s var(--ease) .6s forwards;
  }
  .hero-actions{margin-top:38px;display:flex;gap:16px;flex-wrap:wrap;opacity:0;animation:fadeUp 1s var(--ease) .8s forwards;}
  .scroll-cue{
    position:absolute;bottom:34px;left:50%;transform:translateX(-50%);z-index:2;
    display:flex;flex-direction:column;align-items:center;gap:8px;color:#f0dcc4;
    font-size:.68rem;letter-spacing:.25em;text-transform:uppercase;opacity:.85;
  }
  .scroll-cue .line{width:1px;height:38px;background:linear-gradient(#f0dcc4, transparent);animation:scrollLine 1.8s ease-in-out infinite;}
  @keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top;}50%{transform:scaleY(1);transform-origin:top;}50.01%{transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;}}

  /* ---------- marquee ---------- */
  .marquee{
    background:var(--terracotta);color:var(--text-light);overflow:hidden;
    height:42px;position:relative;contain:layout paint;
    display:flex;align-items:center;
  }
  .marquee-track{display:flex;width:max-content;animation:marquee 32s linear infinite;}
  .marquee-track span{
    font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;
    padding:0 1.7rem;white-space:nowrap;display:flex;align-items:center;gap:1.7rem;
  }
  .marquee-track span::after{content:"";width:5px;height:5px;border-radius:50%;background:rgba(255,247,238,.76);}
  @keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

  /* ---------- section basics ---------- */
  section{position:relative;padding:130px 0;}
  .section-head{max-width:640px;margin-bottom:60px;}
  .section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
  .section-head h2{font-size:clamp(2rem,4vw,3.1rem);font-weight:500;line-height:1.12;}
  .section-head p{margin-top:18px;font-size:1.05rem;color:#5a4a3c;}

  /* ---------- about ---------- */
  #nosotros{background:var(--paper);}
  .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
  .about-media{position:relative;}
  .about-media .frame{
    position:relative;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow);
    aspect-ratio:4/5;
  }
  .about-media .frame img,
  .about-media .frame video{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease);}
  .about-media:hover .frame img,
  .about-media:hover .frame video{transform:scale(1.06);}
  .about-media .tag-card{
    position:absolute;bottom:-30px;right:-30px;
    background:rgba(23,16,13,.42);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    border:1px solid rgba(168,154,128,.32);color:var(--text-light);
    padding:16px 20px;border-radius:var(--r-md);box-shadow:0 18px 36px -20px rgba(0,0,0,.5);max-width:185px;
  }
  .about-media .tag-card.tag-card--left{right:auto;left:-30px;}
  .about-media .tag-card .num{font-family:'Fraunces',serif;font-size:1.4rem;color:var(--gold);}
  .about-media .tag-card p{font-size:.75rem;margin-top:3px;color:#e6dccd;}
  .about-cta{margin-top:30px;}
  @media(max-width:860px){.about-media .tag-card.tag-card--left{left:14px;right:14px;bottom:-24px;}}

  /* ---------- video band (San Telmo) — video vertical ---------- */
  .video-band{position:relative;overflow:hidden;background:var(--coffee-dark);color:var(--text-light);}
  .video-band::before{content:"";position:absolute;inset:0;pointer-events:none;
    background:radial-gradient(70% 60% at 88% 12%, rgba(214,202,178,.12) 0%, transparent 55%);}
  .vb-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center;}
  .vb-text .eyebrow{color:var(--gold);}
  .vb-text .eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--terracotta);display:inline-block;}
  .vb-text h2{font-family:'Fraunces',serif;font-weight:500;font-size:clamp(2rem,4.2vw,3.2rem);line-height:1.08;margin-bottom:16px;}
  .vb-text p{font-size:1.05rem;color:#e9d9c6;max-width:46ch;margin-bottom:30px;}
  .vb-media{position:relative;width:min(380px,88vw);margin:0 auto;aspect-ratio:9/16;overflow:hidden;
    border-radius:var(--r-md);
    -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 8%,#000 86%,transparent 100%);
    mask-image:linear-gradient(180deg,transparent 0,#000 8%,#000 86%,transparent 100%);}
  .vb-media video{width:100%;height:100%;object-fit:cover;display:block;}
  @media(max-width:860px){
    .vb-grid{grid-template-columns:1fr;gap:34px;}
    .vb-text{text-align:center;}
    .vb-text .eyebrow{justify-content:center;}
    .vb-media{order:-1;width:min(320px,82vw);}
  }
  .about-text h2{font-size:clamp(1.9rem,3.6vw,2.7rem);font-weight:500;line-height:1.18;margin-bottom:22px;}
  .about-text p{color:#5a4a3c;margin-bottom:16px;font-size:1.05rem;}
  .about-text p.accent{font-family:'Fraunces',serif;font-style:italic;font-size:1.25rem;color:var(--terracotta-dark);margin-top:24px;}

  /* ---------- features (café especialidad) ---------- */
  #cafe{background:linear-gradient(rgba(23,16,13,.84),rgba(23,16,13,.93)), url('IMG/granos.jpg') center/cover no-repeat;color:var(--cream);}
  #cafe .section-head p{color:#cbb2a0;}
  #cafe .section-head h2{color:var(--text-light);}
  .feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:rgba(255,255,255,.08);border-radius:var(--r-md);overflow:hidden;}
  .feature-card{
    background:var(--coffee-dark);padding:46px 36px;transition:background .5s var(--ease);
  }
  .feature-card:hover{background:#2e2015;}
  .feature-card .icon{
    width:52px;height:52px;border-radius:50%;border:1px solid rgba(214,164,98,.5);
    display:flex;align-items:center;justify-content:center;margin-bottom:26px;color:var(--gold);
  }
  .feature-card h3{font-size:1.25rem;font-weight:500;margin-bottom:12px;}
  .feature-card p{color:#c4b3a0;font-size:.94rem;}
  @media(max-width:760px){
    #cafe{padding:70px 0;}
    #cafe .section-head{margin-bottom:30px;}
    .feature-card{padding:24px 24px;}
    .feature-card .icon{width:42px;height:42px;margin-bottom:14px;}
    .feature-card h3{margin-bottom:6px;}
  }

  /* ---------- menu destacados ---------- */
  #menu{background:var(--cream);}
  .menu-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;}
  .menu-category{
    background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;
    box-shadow:var(--shadow-sm);
    transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .35s;
  }
  .menu-category:hover{transform:translateY(-6px);border-color:rgba(42,37,31,.2);box-shadow:0 26px 56px -34px rgba(42,37,31,.5);}
  .menu-category-photo{aspect-ratio:4/3;overflow:hidden;background:var(--cream-2);}
  .menu-category-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ease);}
  .menu-category:hover .menu-category-photo img{transform:scale(1.06);}
  .menu-category-body{padding:22px 22px 24px;}
  .menu-category-label{
    display:block;margin-bottom:10px;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
    font-weight:700;color:var(--terracotta-dark);
  }
  .menu-category h3{font-size:1.25rem;font-weight:500;margin-bottom:8px;}
  .menu-category p{font-size:.9rem;color:#6d5c4d;line-height:1.65;margin-bottom:18px;}
  .menu-category .badge{
    display:inline-flex;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--terracotta-dark);
    font-weight:700;background:rgba(42,37,31,.07);border:1px solid rgba(42,37,31,.14);border-radius:var(--r-pill);
    padding:7px 10px;
  }
  .card-more{margin-top:16px;border-top:1px solid rgba(42,37,31,.1);padding-top:12px;}
  .card-more summary{
    list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;
    cursor:pointer;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;
    color:var(--terracotta-dark);
  }
  .card-more summary::-webkit-details-marker{display:none;}
  .card-more summary::after{content:"+";font-size:1rem;line-height:1;transition:transform .25s var(--ease);}
  .card-more[open] summary::after{transform:rotate(45deg);}
  .card-more p{margin:10px 0 0;font-size:.86rem;line-height:1.65;color:#766554;}
  .menu-cta{margin-top:44px;}
  @media(max-width:1080px){.menu-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
  @media(max-width:560px){
    .menu-category-grid{grid-template-columns:1fr;gap:16px;}
    .menu-category-photo{aspect-ratio:16/9;}
    .menu-category-body{padding:18px 18px 20px;}
  }

  /* ---------- saludable / cards grid ---------- */
  #saludable{background:var(--espresso);color:var(--cream);overflow:hidden;}
  #saludable .section-head p{color:#cbb2a0;}
  #saludable .section-head h2{color:var(--text-light);}
  .dish-scroller{
    width:100%;
    contain:layout paint;
  }
  .dish-track{
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;
  }
  @media(prefers-reduced-motion:reduce){
    html, html:focus-within{scroll-behavior:auto;}
    *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
    [data-reveal]{opacity:1 !important;transform:none !important;}
    [data-reveal="wipe"]::after,.cursor-dot,.cursor-ring{display:none !important;}
    .marquee-track{animation:none !important;}
  }
  .dish-card{
    background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
    border-radius:var(--r-md);overflow:hidden;transition:transform .5s var(--ease), border-color .5s;
  }
  .dish-card:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.35);}
  .dish-card .ph{aspect-ratio:4/3;overflow:hidden;}
  .dish-card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
  .dish-card:hover .ph img{transform:scale(1.06);}
  .dish-card .body{padding:22px 24px 28px;}
  .dish-card h4{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:500;margin-bottom:8px;}
  .dish-card p{font-size:.86rem;color:#d8dfd5;}
  .dish-more{border-top-color:rgba(255,255,255,.12);}
  .dish-more summary{color:#f0dcc4;}
  .dish-more p{color:#cdd6cb;}
  @media(max-width:1120px){.dish-track{grid-template-columns:repeat(3,minmax(0,1fr));}}
  @media(max-width:820px){.dish-track{grid-template-columns:repeat(2,minmax(0,1fr));}}
  @media(max-width:560px){
    .dish-track{grid-template-columns:1fr;gap:16px;}
    .dish-card .ph{aspect-ratio:16/10;}
    .dish-card .body{padding:18px 20px 22px;}
  }

  /* ---------- gallery ---------- */
  #galeria{background:var(--paper);}
  .gallery-grid{
    display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:172px;gap:14px;
  }
  .gallery-grid a{position:relative;overflow:hidden;border-radius:var(--r-sm);display:block;}
  .gallery-grid a img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
  .gallery-grid a.g-big{background:var(--cream-2);}
  .gallery-grid a.g-big img{object-fit:cover;object-position:center 58%;}
  .gallery-grid a:hover img{transform:scale(1.08);}
  .gallery-grid a::after{
    content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(23,16,13,.6));
    opacity:0;transition:opacity .4s;
  }
  .gallery-grid a:hover::after{opacity:1;}
  .gallery-grid a .ig-icon{
    position:absolute;bottom:14px;right:14px;width:32px;height:32px;border-radius:50%;
    background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;
    opacity:0;transform:translateY(8px);transition:all .4s;color:var(--coffee);
  }
  .gallery-grid a:hover .ig-icon{opacity:1;transform:translateY(0);}
  .g-big{grid-column:span 2;grid-row:span 2;}

  /* ---------- unificación cálida de fotografías y video ----------
     Tratamiento suave y uniforme para dar coherencia de temperatura,
     brillo y contraste a todo el material visual sin perder identidad. */
  .menu-category-photo img,
  .dish-card .ph img,
  .gallery-grid a img,
  .about-media .frame img,
  .about-media .frame video,
  .vb-media video{
    filter:saturate(1.05) contrast(1.04) brightness(1.02);
  }

  /* ---------- instagram frame ---------- */
  .ig-frame{
    position:relative;border-radius:var(--r-lg);padding:1px;
    background:rgba(42,37,31,.12);
    box-shadow:var(--shadow);
  }
  .ig-frame-inner{
    background:var(--paper);border-radius:calc(var(--r-lg) - 1px);
    padding:clamp(18px,3.2vw,34px);
  }
  .ig-frame-head{
    display:flex;align-items:center;justify-content:space-between;gap:16px;
    padding-bottom:20px;margin-bottom:22px;border-bottom:1px solid rgba(42,37,31,.1);
  }
  .ig-brand{display:flex;align-items:center;gap:14px;}
  .ig-glyph{
    width:46px;height:46px;border-radius:50%;flex:none;color:var(--text-light);
    display:flex;align-items:center;justify-content:center;
    background:linear-gradient(135deg,#feda75,#fa7e1e 22%,#d62976 55%,#962fbf 78%,#4f5bd5);
    box-shadow:0 6px 16px -6px rgba(214,41,118,.7);
  }
  .ig-id{display:flex;flex-direction:column;gap:2px;line-height:1.15;}
  .ig-name{
    font-family:'Fraunces',serif;font-size:1.16rem;font-weight:500;color:var(--coffee);
  }
  .ig-handle{
    font-weight:700;font-size:.9rem;text-decoration:none;letter-spacing:.01em;
    background:linear-gradient(135deg,#fa7e1e,#d62976 55%,#962fbf);
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
    transition:opacity .3s;
  }
  .ig-handle:hover{opacity:.7;}
  .ig-follow{
    flex:none;display:inline-flex;align-items:center;justify-content:center;
    padding:9px 22px;border-radius:var(--r-pill);
    font-weight:600;font-size:.9rem;color:var(--text-light);letter-spacing:.01em;
    background:linear-gradient(135deg,#feda75,#fa7e1e 22%,#d62976 55%,#962fbf 78%,#4f5bd5);
    box-shadow:0 8px 20px -8px rgba(214,41,118,.55);
    transition:transform .25s var(--ease), box-shadow .25s, filter .25s;
  }
  .ig-follow:hover{transform:translateY(-2px);filter:saturate(1.1) brightness(1.03);box-shadow:0 14px 28px -10px rgba(214,41,118,.6);}
  .ig-frame-foot{display:flex;justify-content:center;margin-top:28px;}
  .ig-more{
    display:inline-flex;align-items:center;gap:10px;
    padding:13px 28px;border-radius:var(--r-pill);text-decoration:none;
    font-weight:600;font-size:.95rem;color:#c72a6f;
    background:linear-gradient(var(--paper),var(--paper)) padding-box,
              linear-gradient(135deg,#feda75,#fa7e1e 22%,#d62976 55%,#962fbf 78%,#4f5bd5) border-box;
    border:2px solid transparent;
    transition:transform .25s var(--ease), box-shadow .25s;
  }
  .ig-more:hover{transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(214,41,118,.55);}
  .ig-more svg{flex:none;}
  @media(max-width:760px){
    .gallery-grid{grid-auto-rows:150px;gap:10px;}
  }
  @media(max-width:560px){
    .ig-frame-head{align-items:center;gap:12px;}
    .ig-follow{padding:8px 18px;font-size:.84rem;}
    .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:135px;}
    .g-big{grid-column:span 2;grid-row:span 2;}
    .ig-more{width:100%;justify-content:center;}
  }

  /* ---------- espacio ---------- */
  #espacio{background:var(--coffee);color:var(--cream);}
  #espacio .section-head p{color:#d3c3b2;}
  .espacio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
  .espacio-card{
    padding:34px 32px;border:1px solid rgba(255,255,255,.14);border-radius:var(--r-md);
    transition:transform .5s var(--ease), background .5s;
  }
  .espacio-card:hover{transform:translateY(-6px);background:rgba(255,255,255,.05);}
  .espacio-card h3{font-size:1.25rem;font-weight:500;margin-bottom:12px;}
  .espacio-card p{color:#d3c3b2;font-size:.94rem;}

  /* ---------- location ---------- */
  #ubicacion{background:var(--cream);}
  .loc-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:0;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);}
  .loc-info{background:var(--coffee-dark);color:var(--cream);padding:60px 50px;display:flex;flex-direction:column;justify-content:center;gap:26px;}
  .loc-info h2{font-size:clamp(1.8rem,3.4vw,2.4rem);font-weight:500;line-height:1.14;}
  .loc-row{display:flex;gap:16px;align-items:flex-start;}
  .loc-row .ic{color:var(--gold);flex-shrink:0;margin-top:3px;}
  .loc-row h4{font-size:.95rem;font-weight:600;margin-bottom:4px;}
  .loc-row p, .loc-row a{font-size:.9rem;color:#cbb2a0;}
  .loc-row a:hover{color:var(--text-light);}
  .loc-map iframe{width:100%;height:100%;min-height:460px;border:0;filter:saturate(.85) contrast(1.02);}

  /* ---------- footer ---------- */
  footer{background:var(--coffee-dark);color:#b7aa97;padding:88px 0 34px;}
  .footer-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:48px;padding-bottom:52px;border-bottom:1px solid rgba(168,154,128,.22);}
  .footer-brand{max-width:320px;}
  .footer-brand .logo{color:var(--logo-cream);font-size:1.7rem;letter-spacing:.08em;margin-bottom:16px;}
  .footer-brand p{max-width:300px;font-size:.9rem;line-height:1.7;}
  .footer-cols{display:flex;gap:72px;flex-wrap:wrap;}
  .footer-col h5{color:var(--gold);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:18px;}
  .footer-col a{display:block;font-size:.9rem;margin-bottom:12px;color:#b7aa97;transition:color .3s, transform .3s;}
  .footer-col a:hover{color:var(--text-light);transform:translateX(4px);}
  .footer-bottom{padding-top:26px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;font-size:.8rem;letter-spacing:.02em;color:#8f8577;}
  .footer-bottom span:last-child{font-family:'Fraunces',serif;font-style:italic;font-size:.92rem;color:var(--gold);}
  .social-row{display:flex;gap:12px;margin-top:18px;}
  .social-row a{
    width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.2);
    display:flex;align-items:center;justify-content:center;transition:all .35s var(--ease);
  }
  .social-row a:hover{background:var(--gold);border-color:var(--gold);color:var(--coffee-dark);transform:translateY(-4px);}

  /* ---------- back to top ---------- */
  .to-top{
    position:fixed;bottom:26px;right:26px;width:48px;height:48px;border-radius:50%;
    background:var(--terracotta);color:var(--text-light);display:flex;align-items:center;justify-content:center;
    z-index:900;opacity:0;pointer-events:none;transform:translateY(10px);
    transition:all .4s var(--ease);box-shadow:0 12px 26px -10px rgba(31,27,23,.55);
  }
  .to-top.show{opacity:1;pointer-events:auto;transform:translateY(0);}

  @media(max-width:980px){
    section{padding:96px 0;}                 /* escalón intermedio de ritmo para tablet */
    .section-head{margin-bottom:48px;}
    .about-grid{grid-template-columns:1fr;gap:40px;}
    .about-media .tag-card{right:10px;}
    .feature-grid{grid-template-columns:1fr;}
    .espacio-grid{grid-template-columns:1fr;}
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
    .g-big{grid-column:span 2;}
    .loc-grid{grid-template-columns:1fr;}
    .footer-top{flex-direction:column;}
  }
  @media(max-width:760px){
    body.nav-open{overflow:hidden;}
    .hero{min-height:92svh;align-items:flex-end;}
    .hero-content{padding-bottom:72px;}
    .hero p.lead{max-width:32rem;font-size:1rem;line-height:1.65;}
    .hero-actions{margin-top:30px;gap:12px;}
    .hero-actions .btn{min-height:50px;justify-content:center;padding-inline:22px;}
    nav.links{
      position:fixed;inset:0 0 0 auto;width:78%;height:100svh;background:var(--coffee-dark);z-index:1050;
      flex-direction:column;justify-content:center;align-items:flex-start;padding:0 44px;
      transform:translateX(100%);transition:transform .5s var(--ease);gap:26px;
    }
    nav.links.open{transform:translateX(0);}
    nav.links a{color:var(--text-light) !important;font-size:1.15rem;}
    .burger{display:flex;}
    .nav-actions .btn-primary{display:none;}
    section{padding:74px 0;}
    .section-head{margin-bottom:38px;}
    .feature-grid{border-radius:0;}
    .loc-info{padding:44px 26px;gap:20px;}
    .loc-map iframe{min-height:320px;}
  }
  @media(max-width:460px){
    .hero-content{padding-bottom:58px;}
    .hero h1{font-size:2.6rem;}
    .hero-actions{flex-direction:column;align-items:stretch;}
    .hero-actions .btn{width:100%;}
  }

  /* FAQ */
  .faq-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:14px;}
  .faq-item{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:6px 26px;transition:border-color .25s;}
  .faq-item[open]{border-color:var(--terracotta);}
  .faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;font-family:'Fraunces',serif;font-size:1.08rem;color:var(--coffee-dark);}
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item .faq-ic{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--cream-2);color:var(--terracotta);display:flex;align-items:center;justify-content:center;font-size:1.1rem;transition:transform .25s;}
  .faq-item[open] .faq-ic{transform:rotate(45deg);background:var(--terracotta);color:var(--text-light);}
  .faq-item p{padding:0 0 20px;color:var(--ink);opacity:.8;font-size:.96rem;line-height:1.7;}

  /* ---------- FAQ page (subpágina) ---------- */
  .subpage-hero{
    position:relative;padding:150px 0 90px;background:var(--coffee-dark);color:var(--text-light);
    overflow:hidden;
  }
  .subpage-hero::after{content:"";position:absolute;inset:0;
    background:radial-gradient(90% 80% at 85% 10%, rgba(214,202,178,.12) 0%, transparent 55%);pointer-events:none;}
  .subpage-hero .container{position:relative;z-index:2;}
  .subpage-hero .eyebrow{color:var(--gold);}
  .subpage-hero .eyebrow::before{background:var(--gold);}
  .subpage-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:500;line-height:1.08;max-width:16ch;}
  .subpage-hero p{margin-top:18px;font-size:1.05rem;color:#e9d9c6;max-width:60ch;}
  .back-link{display:inline-flex;align-items:center;gap:8px;margin-bottom:26px;font-size:.85rem;
    letter-spacing:.04em;color:var(--gold);transition:gap .3s;}
  .back-link:hover{gap:14px;}
  .faq-page{background:var(--cream);padding:90px 0 110px;}
  .faq-cta{max-width:820px;margin:46px auto 0;text-align:center;}
  .faq-cta .btn{margin:6px;}

  /* ---------- optimización de rendimiento en móvil ----------
     En pantallas táctiles/chicas evitamos efectos que repintan
     toda la pantalla en cada frame de scroll (grano con blend,
     backdrop-filter del header, blur de tarjetas y parallax). */
  @media (hover:none), (max-width:900px){
    .grain{display:none;}
    header.scrolled{
      background:var(--cream);
      backdrop-filter:none;-webkit-backdrop-filter:none;
    }
    .about-media .tag-card{
      backdrop-filter:none;-webkit-backdrop-filter:none;
      background:rgba(23,16,13,.82);
    }
    .hero-bg{will-change:auto;}
  }
