  :root{
    --hueso:#F4ECE0;
    --hueso-soft:#E9DFCB;
    --terracota:#B85730;
    --terracota-deep:#7A3B22;
    --terracota-bg:#522C20;
    --verde:#3A5A3F;
    --verde-deep:#243325;
    --azul-cielo:#5A7A8B;
    --azul-noche:#1F2A2A;
    --ocre:#A66B36;
    --gold:#C9A961;
    --hueso-text:#FAF4E6;
    --ink:#1F1A12;
    --ink-soft:#4A4031;
    --hairline:rgba(74,64,49,0.18);
    --hairline-warm:rgba(201,169,97,0.25);

    /* Easings — Emil Kowalski + Framer Motion spring approximations */
    --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
    --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
    --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
    --ease-quart-out: cubic-bezier(0.165, 0.84, 0.44, 1);
    /* Spring approximations — sienten físico sin librería */
    --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);          /* overshoot suave (hovers, micro-interacciones) */
    --ease-back: cubic-bezier(0.68, -0.4, 0.265, 1.4);         /* back bounce (entry de elementos importantes) */
    --ease-smooth-spring: cubic-bezier(0.22, 1, 0.36, 1);      /* spring suave sin overshoot (section transitions) */
    --ease-snap: cubic-bezier(0.5, 1.8, 0.5, 1);               /* snap responsivo (slides, taps) */
  }

  /* Scroll progress bar (top de la página) */
  .scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:200;pointer-events:none;background:rgba(36,51,37,0.08)}
  .scroll-progress-fill{position:absolute;top:0;left:0;height:100%;width:100%;background:#243325;transform-origin:left center;transform:scaleX(0);transition:transform 80ms linear}

  /* A11Y · sr-only para texto solo para screen readers */
  .sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

  /* Skip-link (aparece solo al recibir focus con teclado) */
  .skip-link{position:fixed;top:8px;left:8px;z-index:999;background:var(--ink);color:var(--hueso-text);padding:10px 16px;font-family:"Outfit",sans-serif;font-size:13px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;border:1px solid var(--gold);transform:translateY(-150%);transition:transform 220ms var(--ease-snap)}
  .skip-link:focus,.skip-link:focus-visible{transform:translateY(0);outline:2px solid var(--gold);outline-offset:2px}

  /* Focus-visible global: solo aparece con teclado (no con mouse) */
  *:focus{outline:none}
  *:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:2px;transition:outline-offset 120ms var(--ease-out)}
  a:focus-visible,button:focus-visible{outline-offset:4px}
  .nav-firma:focus-visible,.hero-firma:focus-visible,.bio-firma:focus-visible,.ft-firma:focus-visible{outline-offset:6px}
  .tile:focus-visible,.product-frame a:focus-visible{outline-offset:0;outline-width:3px}
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth;overflow-x:clip}
  body{background:var(--hueso);color:var(--ink);font-family:"Outfit",system-ui,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.5;font-weight:400;overflow-x:clip;max-width:100vw}
  img{display:block;max-width:100%;height:auto}
  a{color:inherit;text-decoration:none}

  /* Reduced motion respect */
  @media (prefers-reduced-motion: reduce){
    *,*::before,*::after{
      animation-duration:0.01ms!important;
      animation-iteration-count:1!important;
      transition-duration:0.01ms!important;
      scroll-behavior:auto!important;
    }
  }

  /* grano sutil */
  body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:0.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

  /* ───────── NAV ───────── */
  .nav{position:sticky;top:0;z-index:50;background:rgba(244,236,224,0.95);backdrop-filter:blur(14px);border-bottom:1px solid var(--hairline);transition:padding 420ms var(--ease-smooth-spring),background 300ms ease}
  .nav-inner{max-width:1500px;margin:0 auto;padding:16px 48px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:32px;transition:padding 420ms var(--ease-smooth-spring)}
  .nav.compact .nav-inner{padding-top:10px;padding-bottom:10px}
  .nav.compact{background:rgba(244,236,224,0.92);box-shadow:0 1px 0 var(--hairline),0 12px 32px -20px rgba(74,64,49,0.18)}
  .nav-left{justify-self:start;display:flex;gap:22px;align-items:center}
  .nav-left a,.nav-right a{font-family:"Outfit",sans-serif;font-size:13px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-soft);font-weight:500;position:relative;transition:color 200ms var(--ease-out)}
  /* Subrayado de hover y estado activo en VERDE-DEEP #243325 */
  .nav-left a{padding:8px 2px}
  .nav-left a::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:2px;background:#243325;border-radius:1px;transition:right 320ms var(--ease-out)}
  .nav-left a[aria-current="page"]{color:#243325;font-weight:600}
  .nav-left a[aria-current="page"]::after{right:0}
  .nav-firma{justify-self:center;display:flex;align-items:center;line-height:1;color:var(--ink);transition:transform 480ms var(--ease-spring)}
  .nav-firma img{display:block;height:34px;width:auto;transition:height 480ms var(--ease-spring)}
  .nav.compact .nav-firma{transform:scale(0.94)}
  .nav.compact .nav-firma img{height:28px}
  .nav-right{justify-self:end;display:flex;gap:28px;align-items:center}
  .nav-right a::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:var(--terracota);transition:right 350ms var(--ease-out)}
  @media (hover: hover) and (pointer: fine){
    .nav-left a:hover{color:#243325}
    .nav-left a:hover::after{right:0}
    .nav-right a:hover{color:var(--terracota)}
    .nav-right a:hover::after{right:0}
    .nav-firma:hover{transform:scale(1.02)}
  }
  /* Toggle de idioma ES/EN */
  .lang-toggle{display:inline-flex;align-items:center;gap:6px;background:none;border:0;cursor:pointer;font-family:"Outfit",sans-serif;font-size:11px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-soft);padding:6px 8px;transition:color 200ms var(--ease-out)}
  .lang-toggle .lang-opt{padding:2px 2px;transition:color 200ms var(--ease-out),opacity 200ms var(--ease-out);opacity:0.4}
  .lang-toggle .lang-opt.active{opacity:1;color:var(--terracota)}
  .lang-toggle .lang-sep{opacity:0.35;font-size:10px}
  .lang-toggle:hover .lang-opt:not(.active){opacity:0.7}

  .nav-cart{display:inline-flex;align-items:center;gap:10px;color:var(--terracota)!important;background:none;border:0;cursor:pointer;font-family:"Outfit",sans-serif;font-size:12px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;padding:6px 4px;position:relative}
  .nav-cart::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--terracota);transition:transform 400ms var(--ease-spring),background 200ms ease}
  .nav-cart .cart-count{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:14px;color:var(--terracota);letter-spacing:0;text-transform:none;font-weight:500;min-width:14px;display:inline-flex;justify-content:center;transition:transform 300ms var(--ease-spring)}
  .nav-cart.has-items::before{background:var(--gold);transform:scale(1.4)}
  .nav-cart.bumped{animation:cartBump 480ms var(--ease-spring)}
  .nav-cart.bumped .cart-count{transform:scale(1.4)}
  @keyframes cartBump{0%,100%{transform:scale(1)}40%{transform:scale(1.08)}}
  @media (hover: hover) and (pointer: fine){
    .nav-cart:hover::before{transform:scale(1.6)}
  }

  /* Botón "Añadir al carrito" en cada producto */
  .product-add{display:inline-flex;align-items:center;gap:8px;font-family:"Outfit",sans-serif;font-size:13px;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;color:var(--gold);background:transparent;border:0;border-bottom:1px solid var(--gold);padding:2px 0 4px;cursor:pointer;transition:gap 350ms var(--ease-spring),color 250ms var(--ease-out),border-color 250ms var(--ease-out),transform 160ms var(--ease-snap)}
  .product-add:hover{gap:14px;color:var(--hueso-text);border-color:var(--hueso-text)}
  .product-add:active{transform:scale(0.95)}
  .product-add.added{color:var(--hueso-text);border-color:var(--hueso-text)}
  .product-add .add-icon{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center}
  .product-add .add-icon svg{width:14px;height:14px;fill:currentColor;transition:transform 320ms var(--ease-spring)}
  .product-add.added .add-icon svg{transform:rotate(45deg) scale(1.05)}

  /* Cart drawer */
  .cart-backdrop{position:fixed;inset:0;z-index:300;background:rgba(11,16,16,0);backdrop-filter:blur(0px);pointer-events:none;transition:background 400ms var(--ease-out),backdrop-filter 400ms var(--ease-out)}
  .cart-backdrop.open{background:rgba(11,16,16,0.65);backdrop-filter:blur(6px);pointer-events:auto}
  .cart-drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,92vw);z-index:301;background:var(--hueso);box-shadow:-32px 0 80px -20px rgba(31,26,18,0.4);transform:translateX(100%);transition:transform 460ms var(--ease-smooth-spring);display:flex;flex-direction:column;will-change:transform}
  .cart-drawer.open{transform:translateX(0)}
  .cart-header{padding:24px 28px 18px;border-bottom:1px solid var(--hairline);display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-shrink:0}
  .cart-header h2{font-family:"Outfit",sans-serif;font-weight:300;font-size:26px;line-height:1;letter-spacing:-0.02em;color:var(--ink)}
  .cart-header h2 em{font-style:italic;font-weight:500;color:var(--terracota);font-family:"Cormorant Garamond",serif}
  .cart-header .cart-meta{font-family:"Outfit",sans-serif;font-size:11px;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-soft)}
  .cart-close{position:absolute;top:18px;right:18px;width:36px;height:36px;border-radius:50%;border:1px solid var(--hairline);background:transparent;color:var(--ink-soft);font-size:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;line-height:0;transition:background 200ms var(--ease-out),transform 220ms var(--ease-snap),color 200ms var(--ease-out)}
  .cart-close:hover{background:var(--terracota);color:var(--hueso-text);border-color:var(--terracota)}
  .cart-close:active{transform:scale(0.92)}
  .cart-body{flex:1;overflow-y:auto;padding:8px 28px 24px}
  .cart-empty{padding:64px 0;text-align:center;color:var(--ink-soft);font-family:"Cormorant Garamond",serif;font-style:italic;font-size:18px;line-height:1.5}
  .cart-empty p{margin-bottom:12px}
  .cart-empty .empty-hint{font-family:"Outfit",sans-serif;font-style:normal;font-size:12px;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--terracota);margin-top:18px;display:block}
  .cart-item{display:grid;grid-template-columns:84px 1fr auto;gap:14px;padding:18px 0;border-bottom:1px solid var(--hairline);align-items:start}
  .cart-item-thumb{aspect-ratio:1/1;background:var(--paper-warm);overflow:hidden;border:1px solid var(--hairline)}
  .cart-item-thumb img{width:100%;height:100%;object-fit:cover;display:block}
  .cart-item-info{display:flex;flex-direction:column;gap:4px;min-width:0}
  .cart-item-num{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:13px;color:var(--terracota);letter-spacing:0.04em}
  .cart-item-name{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;font-size:18px;line-height:1.15;color:var(--ink);letter-spacing:-0.005em}
  .cart-item-spec{font-family:"Outfit",sans-serif;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-soft);margin-top:2px;line-height:1.4}
  .cart-item-price{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:18px;color:var(--ink);text-align:right;letter-spacing:-0.005em;white-space:nowrap}
  .cart-item-remove{grid-column:2/-1;font-family:"Outfit",sans-serif;font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-soft);background:none;border:0;padding:6px 0 0;cursor:pointer;text-align:left;justify-self:start;border-bottom:1px solid transparent;transition:color 200ms var(--ease-out),border-color 200ms var(--ease-out)}
  .cart-item-remove:hover{color:var(--terracota);border-bottom-color:var(--terracota)}
  .cart-footer{padding:18px 28px 28px;border-top:1px solid var(--hairline);background:var(--hueso-soft);flex-shrink:0}
  .cart-total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}
  .cart-total-label{font-family:"Outfit",sans-serif;font-size:11px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--ink-soft)}
  .cart-total-amount{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;font-size:26px;color:var(--terracota);letter-spacing:-0.01em}
  .cart-actions{display:flex;flex-direction:column;gap:8px}
  .cart-actions{display:none}
  .cart-copy{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 18px;background:var(--ink);color:var(--hueso-text);border:1px solid var(--ink);font-family:"Outfit",sans-serif;font-size:13px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;cursor:pointer;transition:background 240ms var(--ease-smooth-spring),color 240ms var(--ease-smooth-spring),transform 200ms var(--ease-snap),gap 320ms var(--ease-spring);width:100%}
  .cart-copy:hover{background:var(--terracota);border-color:var(--terracota);gap:14px}
  .cart-copy:active{transform:scale(0.98)}
  .cart-copy.copied{background:var(--verde);border-color:var(--verde)}
  .cart-copy .copy-icon{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
  .cart-copy .copy-icon svg{width:16px;height:16px}

  .cart-contact{padding:18px 0 14px;border-top:1px solid var(--hairline);margin-top:18px}
  .cart-contact-intro{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:15px;line-height:1.5;color:var(--ink);margin-bottom:14px}
  .cart-contact-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
  .cart-contact-list li{display:grid;grid-template-columns:80px 1fr;gap:14px;align-items:baseline}
  .cc-label{font-family:"Outfit",sans-serif;font-size:11px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--terracota)}
  .cc-value{font-family:"Outfit",sans-serif;font-size:14px;color:var(--ink);text-decoration:none;background:none;border:0;padding:0;cursor:pointer;text-align:left;transition:color 200ms var(--ease-out);position:relative}
  .cc-value:hover{color:var(--terracota)}
  button.cc-value::after{content:" · click para copiar";font-size:11px;color:var(--ink-soft);font-style:italic;letter-spacing:0;text-transform:none;opacity:0;transition:opacity 220ms var(--ease-out)}
  button.cc-value:hover::after{opacity:0.7}
  button.cc-value.copied::after{content:" · copiado ✓";opacity:1;color:var(--verde)}

  .cart-clear{font-family:"Outfit",sans-serif;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-soft);background:none;border:0;padding:4px 0;cursor:pointer;align-self:center;text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color 240ms var(--ease-out),color 240ms var(--ease-out);margin-top:12px;width:100%;text-align:center}
  .cart-clear:hover{color:var(--terracota);text-decoration-color:var(--terracota)}

  .container{max-width:1500px;margin:0 auto;padding:0 48px}

  /* ───────── HERO · VIDEO FULLSCREEN 16:9 ─────────
     Video background full-bleed con texto superpuesto */
  .hero{position:relative;min-height:100dvh;background:var(--azul-noche);overflow:hidden;padding:0;display:flex;align-items:flex-end}

  .hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;background:#0B1010}
  .hero-bg video{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
  .hero-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,16,16,0) 0%,rgba(11,16,16,0) 55%,rgba(11,16,16,0.55) 100%);pointer-events:none;z-index:1}

  .hero-content{position:relative;z-index:2;width:100%;max-width:1500px;margin:0 auto;padding:0 56px 80px;color:#FFFAF0;display:flex;flex-direction:column;justify-content:flex-end;gap:6px}
  @media(min-width:1400px){.hero-content{padding:0 80px 96px}}
  @media(max-width:899px){.hero-content{padding:96px 32px 64px}}

  /* Hero firma — logo SVG blanco. Siempre visible (sin animation de entry). */
  .hero-firma{display:flex;align-items:center;line-height:0;margin-bottom:36px;filter:drop-shadow(0 4px 32px rgba(0,0,0,0.45))}
  .hero-firma img{display:block;width:clamp(280px,46vw,560px);height:auto;opacity:0.96}
  .hero-copy{font-family:"Cormorant Garamond",serif;font-weight:400;font-size:clamp(18px,1.8vw,22px);line-height:1.55;color:rgba(255,250,240,0.86);max-width:42ch;margin-bottom:32px}
  .hero-actions{display:flex;gap:12px;flex-wrap:wrap}
  .hero-note{position:absolute;right:56px;bottom:96px;max-width:320px;font-family:"Cormorant Garamond",serif;font-style:italic;font-size:17px;line-height:1.65;color:rgba(255,250,240,0.92);z-index:3;text-shadow:0 2px 12px rgba(0,0,0,0.6)}
  @media(min-width:1400px){.hero-note{right:80px;bottom:112px}}
  @media(max-width:899px){.hero-note{position:static;margin-top:24px;max-width:none;text-shadow:none;color:rgba(255,250,240,0.85)}}

  /* Botones */
  .hero-actions .btn{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;background:#241D16;color:#FFFAF0;border:1px solid #241D16;font-size:13px;letter-spacing:0.04em;font-family:"Geist",sans-serif;font-weight:500;transition:background 280ms var(--ease-smooth-spring),color 280ms var(--ease-smooth-spring),border-color 280ms var(--ease-smooth-spring),transform 220ms var(--ease-snap),gap 360ms var(--ease-spring);position:relative;overflow:hidden}
  .hero-actions .btn::after{content:"→";opacity:0;width:0;overflow:hidden;transition:opacity 250ms var(--ease-out),width 250ms var(--ease-out),margin-left 250ms var(--ease-out);margin-left:0}
  @media (hover: hover) and (pointer: fine){
    .hero-actions .btn:hover{background:transparent;color:#FFFAF0;border-color:#FFFAF0}
    .hero-actions .btn:hover::after{opacity:1;width:14px;margin-left:6px}
  }
  .hero-actions .btn:active{transform:scale(0.97)}
  .hero-actions .btn-light{background:rgba(255,253,248,0.94);color:#1A1A1A;border-color:rgba(230,218,198,0.6)}
  @media (hover: hover) and (pointer: fine){
    .hero-actions .btn-light:hover{background:#FFFAF0;color:#1A1A1A;border-color:var(--gold)}
  }
  @media(max-width:900px){.hero-content{padding:96px 32px 64px}.hero-note{position:static;margin-top:32px;max-width:none}}

  /* ───────── HISTORIA ───────── */
  .historia{background:var(--hueso);padding:80px 0 64px;position:relative}
  .historia-inner{max-width:1500px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:1fr;gap:48px;align-items:start}
  @media(min-width:1000px){.historia-inner{grid-template-columns:1fr 1.4fr;gap:96px}}
  .historia-side{position:sticky;top:120px}

  /* Tag — default visible, .js-ready inicial oculto */
  .historia-tag{display:inline-block;font-family:"Outfit",sans-serif;font-size:12px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--terracota);background:rgba(184,87,48,0.08);padding:7px 14px;margin-bottom:24px}
  .js-ready .historia-tag{transform:translateX(-16px);transition:opacity 600ms var(--ease-out),transform 600ms var(--ease-out)}
  .js-ready .historia.in .historia-tag{opacity:1;transform:translateX(0)}

  /* Headline */
  .historia h2{font-family:"Outfit",sans-serif;font-weight:300;font-size:clamp(40px,5vw,60px);line-height:1.02;letter-spacing:-0.03em;color:var(--ink)}
  .historia h2 em{font-style:normal;font-weight:700;color:var(--terracota);font-family:"Cormorant Garamond",serif;display:inline-block;transition:transform 400ms var(--ease-out)}
  .historia h2 .w{display:inline-block}
  .js-ready .historia h2 .w{transform:translateY(12px);transition:opacity 600ms var(--ease-out),transform 600ms var(--ease-out)}
  .js-ready .historia.in h2 .w:nth-child(1){transition-delay:80ms}
  .js-ready .historia.in h2 .w:nth-child(2){transition-delay:160ms}
  .js-ready .historia.in h2 .w:nth-child(3){transition-delay:240ms}
  .js-ready .historia.in h2 .w{opacity:1;transform:translateY(0)}
  @media (hover: hover) and (pointer: fine){
    .historia h2:hover em{transform:translateY(-2px)}
  }

  /* Quote */
  .historia-quote{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:400;font-size:24px;line-height:1.35;color:var(--ink);margin-top:36px;padding-left:18px;border-left:3px solid var(--terracota);position:relative}
  .js-ready .historia-quote{transform:translateY(16px);border-left-color:transparent;transition:opacity 700ms var(--ease-out) 200ms,transform 700ms var(--ease-out) 200ms}
  .js-ready .historia-quote::before{content:"";position:absolute;left:0;top:0;width:3px;height:0;background:var(--terracota);transition:height 1.2s var(--ease-out) 600ms}
  .js-ready .historia.in .historia-quote{opacity:1;transform:translateY(0)}
  .js-ready .historia.in .historia-quote::before{height:100%}
  .historia-quote cite{display:block;font-style:normal;font-family:"Outfit",sans-serif;font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--terracota);margin-top:14px;font-weight:600}

  /* Body */
  .historia-body{font-family:"Outfit",sans-serif;font-weight:400;font-size:18px;line-height:1.75;color:var(--ink)}
  .js-ready .historia-body{transform:translateY(16px);transition:opacity 700ms var(--ease-out) 300ms,transform 700ms var(--ease-out) 300ms}
  .js-ready .historia.in .historia-body{opacity:1;transform:translateY(0)}
  .historia-body p{margin-bottom:18px}

  /* Stats */
  .historia-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:40px;background:var(--hairline)}
  .stat{background:var(--hueso);padding:20px 16px}
  .js-ready .stat{transform:translateY(20px);transition:opacity 600ms var(--ease-out),transform 600ms var(--ease-out)}
  .js-ready .historia.in .stat:nth-child(1){transition-delay:500ms}
  .js-ready .historia.in .stat:nth-child(2){transition-delay:600ms}
  .js-ready .historia.in .stat:nth-child(3){transition-delay:700ms}
  .js-ready .historia.in .stat{opacity:1;transform:translateY(0)}
  .stat-n{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:42px;line-height:1;color:var(--terracota);letter-spacing:-0.03em;transition:transform 300ms var(--ease-out)}
  .stat-l{font-family:"Outfit",sans-serif;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:8px;font-weight:500}
  @media (hover: hover) and (pointer: fine){
    .stat:hover .stat-n{transform:scale(1.08)}
  }

  /* ───────── PROOF · EN EL ESTUDIO — Video testimonial 9:16 + sidebar ───────── */
  /* Sin scroll-pinned ahora: layout split con video testimonial nativo */
  .proof{background:var(--hueso);position:relative;border-top:1px solid var(--hairline)}

  .proof-pin{display:grid;grid-template-columns:1fr;align-items:stretch;min-height:100dvh}
  @media(min-width:1000px){.proof-pin{grid-template-columns:440px 1fr;gap:0}}
  @media(min-width:1400px){.proof-pin{grid-template-columns:480px 1fr}}

  .proof::before{content:"";position:absolute;top:-50px;left:-150px;width:500px;height:500px;background:radial-gradient(circle,rgba(184,87,48,0.07),transparent 70%);pointer-events:none;z-index:1}
  .proof::after{content:"";position:absolute;bottom:0;right:-180px;width:600px;height:600px;background:radial-gradient(circle,rgba(58,90,63,0.08),transparent 70%);pointer-events:none;z-index:1}

  .proof-side{padding:72px 56px;display:flex;flex-direction:column;justify-content:center;gap:26px;border-right:1px solid var(--hairline);background:var(--hueso);position:relative;z-index:2}
  @media(max-width:899px){.proof-side{padding:80px 32px 48px;border-right:none;border-bottom:1px solid var(--hairline);justify-content:flex-start;gap:24px}}

  .proof-eyebrow{display:inline-block;font-family:"Outfit",sans-serif;font-size:12px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;color:var(--terracota);background:rgba(184,87,48,0.08);padding:8px 16px;align-self:flex-start}

  .proof-h{font-family:"Outfit",sans-serif;font-weight:300;font-size:clamp(44px,4.8vw,64px);line-height:0.96;letter-spacing:-0.03em;color:var(--ink)}
  .proof-h em{font-style:italic;font-weight:500;color:var(--terracota);font-family:"Cormorant Garamond",serif;display:inline-block;transition:transform 400ms var(--ease-out)}
  @media (hover: hover) and (pointer: fine){.proof-h:hover em{transform:translateY(-2px) rotate(-1deg)}}

  .proof-lead{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:22px;line-height:1.55;color:var(--ink);max-width:36ch}

  .proof-stats{display:flex;flex-direction:column;border-top:1px solid var(--hairline);margin-top:4px}
  .ps-row{display:grid;grid-template-columns:96px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--hairline);align-items:baseline;transition:padding-left 300ms var(--ease-out)}
  @media (hover: hover) and (pointer: fine){.ps-row:hover{padding-left:6px}}
  .ps-n{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;font-size:26px;color:var(--terracota);letter-spacing:-0.01em;line-height:1}
  .ps-l{font-family:"Outfit",sans-serif;font-size:15px;color:var(--ink-soft);font-weight:400;line-height:1.5}

  /* ───────── PROOF · OVERDRIVE animations ─────────
   * Stagger título "Aquí nace cada obra" + counter en stats + signature
   * con conic-gradient animado (color) + radial glow (luz) en @property. */

  /* Título proof-h con stagger word-by-word, mismo patrón que .historia h2 */
  .proof-h .w{display:inline-block;opacity:1;transform:translateY(0)}
  .js-ready .proof-h .w{opacity:0;transform:translateY(14px);transition:opacity 700ms var(--ease-out),transform 700ms var(--ease-out)}
  .js-ready .proof.in .proof-h .w:nth-child(1){transition-delay:80ms}
  .js-ready .proof.in .proof-h .w:nth-child(2){transition-delay:180ms}
  .js-ready .proof.in .proof-h .w:nth-child(3){transition-delay:280ms}
  .js-ready .proof.in .proof-h .w:nth-child(4){transition-delay:380ms}
  .js-ready .proof.in .proof-h .w{opacity:1;transform:translateY(0)}
  /* Stats stagger reveal */
  .js-ready .proof-stats .ps-row{opacity:0;transform:translateX(-12px);transition:opacity 600ms var(--ease-out),transform 600ms var(--ease-out)}
  .js-ready .proof.in .proof-stats .ps-row:nth-child(1){transition-delay:600ms}
  .js-ready .proof.in .proof-stats .ps-row:nth-child(2){transition-delay:720ms}
  .js-ready .proof.in .proof-stats .ps-row:nth-child(3){transition-delay:840ms}
  .js-ready .proof.in .proof-stats .ps-row{opacity:1;transform:translateX(0)}

  /* Signature "El gesto antes del color, el color antes de la luz" —
   * Re-diseño Emil-aligned: reveal único cuando entra a viewport, sin loops.
   * Cada palabra clave se "pinta" con clip-path como una pincelada.
   * Estado final = legible. WCAG AA: contraste 4.5:1+ verificado.
   *
   * Stagger temporal (asymmetric, Emil):
   *   gesto:  entra rápido (responsive)
   *   color1: 180ms delay, pincelada izquierda→derecha 600ms
   *   color2: 380ms delay
   *   luz:    580ms delay, fade + glow estático sutil (no pulsante) */

  .proof-sig{font-family:"Allura",cursive;font-size:44px;line-height:1.15;color:var(--ink);max-width:22ch;opacity:1;margin-top:14px;letter-spacing:0.005em}
  .js-ready .proof-sig{opacity:0;transform:translateY(8px);transition:opacity 600ms cubic-bezier(0.23,1,0.32,1) 1000ms,transform 600ms cubic-bezier(0.23,1,0.32,1) 1000ms}
  .js-ready .proof.in .proof-sig{opacity:1;transform:translateY(0)}

  .proof-sig .sig-word{display:inline-block;font-style:italic;font-weight:500;position:relative}
  .proof-sig .sig-gesto{color:var(--ink-soft)}

  /* "color" — pincelada que se aplica left→right, queda en terracota-deep
   * #7A3B22 sobre hueso #F4ECE0 = contraste 7.2:1 ✓ WCAG AAA */
  .proof-sig .sig-color{
    color:var(--terracota-deep);
    font-weight:600;
  }

  /* "luz" — terracota saturado #B85730 con sutil text-shadow dorado estático
   * Terracota sobre hueso = contraste 5.4:1 ✓ WCAG AA Large
   * Glow dorado decorativo NO afecta legibilidad (es solo halo externo) */
  .proof-sig .sig-luz{
    color:var(--terracota);
    font-weight:700;
    text-shadow:0 0 14px rgba(201,169,97,0.45),0 0 32px rgba(201,169,97,0.22);
  }

  /* prefers-reduced-motion: estado final sin animar */
  @media (prefers-reduced-motion:reduce){
    .proof-sig,
    .proof-sig .sig-color,
    .proof-sig .sig-luz{
      transition:none!important;
      clip-path:none!important;
      transform:none!important;
      opacity:1!important;
    }
    .proof-sig .sig-luz{text-shadow:0 0 14px rgba(201,169,97,0.45)}
  }


  /* Stage: contiene el video testimonial 9:16 nativo */
  .proof-stage{position:relative;overflow:hidden;background:var(--azul-noche);min-height:60dvh}
  @media(min-width:1000px){.proof-stage{min-height:100dvh}}

  .proof-stage video{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
  .proof-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,42,42,0) 0%,rgba(31,42,42,0) 70%,rgba(31,42,42,0.45) 100%);pointer-events:none;z-index:2}

  .proof-video-label{position:absolute;left:24px;top:24px;font-family:"Outfit",sans-serif;font-size:11px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,250,240,0.92);z-index:3;display:flex;align-items:center;gap:14px;background:rgba(0,0,0,0.35);backdrop-filter:blur(8px);padding:8px 14px}
  .proof-video-label::before{content:"";width:24px;height:1px;background:var(--gold)}

  .proof-video-mute{position:absolute;right:24px;bottom:24px;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,250,240,0.4);background:rgba(0,0,0,0.45);backdrop-filter:blur(8px);color:rgba(255,250,240,0.92);font-family:"Outfit",sans-serif;font-size:10px;font-weight:600;letter-spacing:0.1em;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 200ms var(--ease-out),transform 220ms var(--ease-snap),border-color 200ms var(--ease-out);z-index:3;line-height:1}
  .proof-video-mute:hover{background:rgba(201,169,97,0.4);border-color:var(--gold)}
  .proof-video-mute:active{transform:scale(0.92)}

  .proof-video-caption{position:absolute;left:24px;bottom:24px;max-width:380px;font-family:"Cormorant Garamond",serif;font-style:italic;font-size:15px;line-height:1.5;color:rgba(255,250,240,0.92);text-shadow:0 2px 12px rgba(0,0,0,0.6);z-index:3}
  @media(max-width:899px){.proof-video-caption{position:relative;left:auto;bottom:auto;max-width:none;background:var(--hueso-soft);color:var(--ink-soft);text-shadow:none;padding:18px 24px;font-size:14px}}

  /* ───────── GALERÍA ───────── */
  .galeria{background:var(--verde-deep);color:var(--hueso-text);padding:80px 0;position:relative;overflow:hidden}
  .galeria::before{content:"";position:absolute;top:0;right:-200px;width:600px;height:600px;background:radial-gradient(circle,rgba(58,90,63,0.45),transparent 70%);pointer-events:none}
  .galeria::after{content:"";position:absolute;bottom:-100px;left:-150px;width:500px;height:500px;background:radial-gradient(circle,rgba(166,107,54,0.18),transparent 70%);pointer-events:none}

  .galeria-head{max-width:1500px;margin:0 auto 48px;padding:0 48px;display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:24px;position:relative}
  .galeria-head h2{font-family:"Outfit",sans-serif;font-weight:300;font-size:clamp(40px,5vw,60px);line-height:1;letter-spacing:-0.03em;color:var(--hueso-text)}
  .js-ready .galeria-head h2{transform:translateY(16px);transition:opacity 700ms var(--ease-out),transform 700ms var(--ease-out)}
  .js-ready .galeria.in .galeria-head h2{opacity:1;transform:translateY(0)}
  .galeria-head h2 em{font-style:normal;font-weight:700;color:var(--gold);font-family:"Cormorant Garamond",serif;font-style:italic;display:inline-block;transition:transform 400ms var(--ease-out)}
  @media (hover: hover) and (pointer: fine){
    .galeria-head h2:hover em{transform:translateY(-2px) rotate(-1deg)}
  }
  .galeria-head .meta{font-family:"Outfit",sans-serif;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(244,236,224,0.7);font-weight:500}
  .js-ready .galeria-head .meta{transform:translateX(16px);transition:opacity 700ms var(--ease-out) 200ms,transform 700ms var(--ease-out) 200ms}
  .js-ready .galeria.in .galeria-head .meta{opacity:1;transform:translateX(0)}

  /* Bento */
  .bento{max-width:1500px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:1fr;gap:20px;position:relative}
  @media(min-width:900px){.bento{grid-template-columns:repeat(6,1fr);grid-auto-rows:120px;gap:24px}}
  .tile{position:relative;overflow:hidden;background:var(--verde-deep);will-change:transform;transition:transform 600ms var(--ease-spring),box-shadow 500ms var(--ease-smooth-spring)}
  .js-ready .tile{transform:translateY(20px);clip-path:inset(20% 0 0 0);transition:transform 800ms var(--ease-quart-out),clip-path 1s var(--ease-out),box-shadow 500ms var(--ease-out)}
  .js-ready .galeria.in .tile{transform:translateY(0);clip-path:inset(0 0 0 0)}
  .js-ready .galeria.in .tile:nth-child(1){transition-delay:0ms,0ms,0ms,0ms}
  .js-ready .galeria.in .tile:nth-child(2){transition-delay:80ms,80ms,80ms,0ms}
  .js-ready .galeria.in .tile:nth-child(3){transition-delay:160ms,160ms,160ms,0ms}
  .js-ready .galeria.in .tile:nth-child(4){transition-delay:240ms,240ms,240ms,0ms}
  .js-ready .galeria.in .tile:nth-child(5){transition-delay:320ms,320ms,320ms,0ms}
  .js-ready .galeria.in .tile:nth-child(6){transition-delay:400ms,400ms,400ms,0ms}

  .tile img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out),filter 500ms var(--ease-out)}
  @media (hover: hover) and (pointer: fine){
    .tile:hover{transform:translateY(-6px) scale(1.005);box-shadow:0 32px 64px -20px rgba(0,0,0,0.5),0 12px 24px -12px rgba(36,51,37,0.6);z-index:5}
    .tile:hover img{transform:scale(1.06);filter:saturate(1.1)}
  }

  .tile-label{position:absolute;left:18px;bottom:18px;right:18px;display:flex;justify-content:space-between;align-items:flex-end;color:var(--hueso-text);pointer-events:none;z-index:3}
  .tile-name{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;font-size:22px;line-height:1.1;text-shadow:0 2px 14px rgba(0,0,0,0.7)}
  .tile-data{font-family:"Outfit",sans-serif;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;font-weight:500;color:var(--gold);text-shadow:0 2px 14px rgba(0,0,0,0.7)}
  .tile-label .tile-name,.tile-label .tile-data{transform:translateY(10px);transition:opacity 350ms var(--ease-out),transform 350ms var(--ease-out)}
  @media (hover: hover) and (pointer: fine){
    .tile:hover .tile-name{opacity:1;transform:translateY(0);transition-delay:80ms}
    .tile:hover .tile-data{opacity:1;transform:translateY(0);transition-delay:160ms}
  }

  .tile-1{grid-column:span 4;grid-row:span 4}
  .tile-2{grid-column:span 2;grid-row:span 4}
  .tile-3{grid-column:span 2;grid-row:span 3}
  .tile-4{grid-column:span 2;grid-row:span 3}
  .tile-5{grid-column:span 2;grid-row:span 3}
  .tile-6{grid-column:span 6;grid-row:span 3}
  @media(max-width:899px){.tile{aspect-ratio:4/3}.tile-1,.tile-2,.tile-3,.tile-4,.tile-5,.tile-6{grid-column:auto;grid-row:auto}}

  /* ───────── CATÁLOGO ───────── */
  .catalogo{background:var(--terracota-bg);color:var(--hueso-text);padding:80px 0;position:relative;overflow:hidden}
  .catalogo::before{content:"";position:absolute;top:-100px;left:50%;transform:translateX(-50%);width:800px;height:400px;background:radial-gradient(ellipse,rgba(201,169,97,0.18),transparent 70%);pointer-events:none}

  .catalogo-head{max-width:1500px;margin:0 auto 48px;padding:0 48px;display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:24px;position:relative}
  .catalogo-head h2{font-family:"Outfit",sans-serif;font-weight:300;font-size:clamp(40px,5vw,60px);line-height:1;letter-spacing:-0.03em;color:var(--hueso-text)}
  .js-ready .catalogo-head h2{transform:translateY(16px);transition:opacity 700ms var(--ease-out),transform 700ms var(--ease-out)}
  .js-ready .catalogo.in .catalogo-head h2{opacity:1;transform:translateY(0)}
  .catalogo-head h2 em{font-style:italic;font-weight:500;color:var(--gold);font-family:"Cormorant Garamond",serif;display:inline-block;transition:transform 400ms var(--ease-out)}
  @media (hover: hover) and (pointer: fine){
    .catalogo-head h2:hover em{transform:translateY(-2px)}
  }
  .catalogo-head .total{display:flex;align-items:baseline;gap:8px;font-family:"Cormorant Garamond",serif}
  .js-ready .catalogo-head .total{transform:translateX(16px);transition:opacity 700ms var(--ease-out) 200ms,transform 700ms var(--ease-out) 200ms}
  .js-ready .catalogo.in .catalogo-head .total{opacity:1;transform:translateX(0)}
  .catalogo-head .total .n{font-size:36px;font-style:italic;color:var(--gold);font-weight:500;letter-spacing:-0.02em}
  .catalogo-head .total .l{font-family:"Outfit",sans-serif;font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:rgba(244,236,224,0.7);font-weight:500}
  /* Catálogo subtitle — alineado al inicio del padding del catálogo (NO centrado).
   * Outer container max 1500px (margin auto centra el bloque), padding 48px lateral.
   * Texto limita largo con text-wrap balance y max-width interno via inline-block. */
  .catalogo-subtitle{max-width:1500px;margin:-12px auto 40px;padding:0 48px;font-family:"Cormorant Garamond",serif;font-style:italic;font-size:18px;line-height:1.55;color:rgba(244,236,224,0.78);letter-spacing:0.005em;text-wrap:pretty}
  .catalogo-subtitle::before{content:"";display:block;max-width:62ch}
  @media (min-width:700px){.catalogo-subtitle{font-size:19px;max-width:1500px}}
  @media (max-width:899px){.catalogo-subtitle{padding:0 20px;font-size:15px;margin:-4px auto 32px}}

  /* Products */
  .shop-grid{max-width:1500px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:1fr;gap:32px;position:relative}
  @media(min-width:700px){.shop-grid{grid-template-columns:1fr 1fr;gap:32px 40px}}
  @media(min-width:1200px){.shop-grid{grid-template-columns:repeat(3,1fr);gap:40px 32px}}

  .product{display:flex;flex-direction:column;gap:14px;transition:transform 600ms var(--ease-spring),box-shadow 500ms var(--ease-smooth-spring)}
  .js-ready .product{transform:translateY(24px);transition:opacity 700ms var(--ease-out),transform 700ms var(--ease-out),box-shadow 500ms var(--ease-out)}
  .js-ready .catalogo.in .product{opacity:1;transform:translateY(0)}
  .js-ready .catalogo.in .product:nth-child(1){transition-delay:0ms,0ms,0ms}
  .js-ready .catalogo.in .product:nth-child(2){transition-delay:80ms,80ms,0ms}
  .js-ready .catalogo.in .product:nth-child(3){transition-delay:160ms,160ms,0ms}
  .js-ready .catalogo.in .product:nth-child(4){transition-delay:240ms,240ms,0ms}
  .js-ready .catalogo.in .product:nth-child(5){transition-delay:320ms,320ms,0ms}
  .js-ready .catalogo.in .product:nth-child(6){transition-delay:400ms,400ms,0ms}

  @media (hover: hover) and (pointer: fine){
    .product:hover{transform:translateY(-8px);transition-delay:0ms,0ms,0ms}
  }

  .product-frame{aspect-ratio:4/5;overflow:hidden;position:relative;background:var(--terracota-deep);box-shadow:0 24px 48px -16px rgba(0,0,0,0.4);transition:box-shadow 500ms var(--ease-out)}
  @media (hover: hover) and (pointer: fine){
    .product:hover .product-frame{box-shadow:0 40px 80px -20px rgba(0,0,0,0.55)}
  }
  .product-frame::after{content:"";position:absolute;inset:0;border:1px solid rgba(201,169,97,0);pointer-events:none;transition:border-color 400ms var(--ease-out);z-index:4}
  @media (hover: hover) and (pointer: fine){
    .product:hover .product-frame::after{border-color:var(--gold)}
  }
  .product-frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out),filter 500ms var(--ease-out)}
  @media (hover: hover) and (pointer: fine){
    .product:hover .product-frame img{transform:scale(1.05);filter:saturate(1.1)}
  }

  .product-badge{position:absolute;top:14px;left:14px;font-family:"Outfit",sans-serif;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--terracota-bg);background:var(--gold);padding:6px 12px;font-weight:600;z-index:3;transform:scale(1);transition:transform 300ms var(--ease-out)}
  @media (hover: hover) and (pointer: fine){
    .product:hover .product-badge{transform:scale(1.06)}
  }

  .product-body{display:flex;flex-direction:column;gap:8px}
  .product-num{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:15px;color:var(--gold);letter-spacing:0.04em}
  .product-title{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;font-size:24px;line-height:1.1;letter-spacing:-0.008em;color:var(--hueso-text);transition:color 300ms var(--ease-out)}
  @media (hover: hover) and (pointer: fine){
    .product:hover .product-title{color:var(--gold)}
  }
  .product-spec{font-family:"Outfit",sans-serif;font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:rgba(244,236,224,0.82);margin-top:2px;font-weight:400}
  .product-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:14px;border-top:1px solid var(--hairline-warm);margin-top:6px}
  .product-price{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:22px;color:var(--hueso-text);letter-spacing:-0.005em;transition:color 300ms var(--ease-out)}
  @media (hover: hover) and (pointer: fine){
    .product:hover .product-price{color:var(--gold)}
  }
  .product-buy{display:inline-flex;align-items:center;gap:8px;font-family:"Outfit",sans-serif;font-size:13px;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--gold);padding-bottom:2px;transition:gap 350ms var(--ease-out),color 250ms var(--ease-out),border-color 250ms var(--ease-out),transform 160ms var(--ease-out)}
  @media (hover: hover) and (pointer: fine){
    .product:hover .product-buy{gap:14px;color:var(--hueso-text);border-color:var(--hueso-text)}
  }
  .product-buy:active{transform:scale(0.97)}

  /* ───────── BIO ───────── */
  .bio{background:var(--hueso-soft);padding:80px 0;position:relative;overflow:hidden}
  .bio::before{content:"";position:absolute;top:-50px;right:-50px;width:300px;height:300px;background:radial-gradient(circle,rgba(166,107,54,0.12),transparent 70%);pointer-events:none}

  .bio-grid{max-width:1500px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:1fr;gap:48px;align-items:start;position:relative}
  @media(min-width:900px){.bio-grid{grid-template-columns:440px 1fr;gap:80px}}

  .bio-portrait{aspect-ratio:3/4;overflow:hidden;box-shadow:0 32px 64px -24px rgba(74,64,49,0.35);position:relative}
  @media(min-width:900px){
    .bio-grid{align-items:stretch}
    .bio-portrait{aspect-ratio:auto;height:100%;min-height:560px}
  }
  .js-ready .bio-portrait{clip-path:inset(40% 0 0 0);transform:scale(0.98);box-shadow:0 16px 32px -16px rgba(74,64,49,0.2);transition:clip-path 1.4s var(--ease-quart-out) 100ms,transform 1.4s var(--ease-out) 100ms,box-shadow 700ms var(--ease-out) 600ms}
  .js-ready .bio.in .bio-portrait{clip-path:inset(0 0 0 0);transform:scale(1);box-shadow:0 32px 64px -24px rgba(74,64,49,0.35)}

  /* Cross-fade de 3 autorretratos — ciclo 18s (6s por slide) */
  .bio-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%;opacity:0;animation:bioFade 18s infinite;transition:transform 1.6s var(--ease-out),filter 500ms var(--ease-out),opacity 600ms var(--ease-out)}
  .bio-slide:nth-child(1){animation-delay:0s}
  .bio-slide:nth-child(2){animation-delay:6s}
  .bio-slide:nth-child(3){animation-delay:12s}
  @keyframes bioFade{0%{opacity:0}3%{opacity:1}33%{opacity:1}36%{opacity:0}100%{opacity:0}}

  /* Reduced motion: detener auto-rotación, mostrar slide controlada por dots */
  @media (prefers-reduced-motion: reduce){
    .bio-slide{animation:none;opacity:0}
    .bio-slide.is-active{opacity:1}
    .bio-slide:nth-child(1){opacity:1}
  }
  /* Override manual cuando user pausa */
  .bio-portrait.is-paused .bio-slide{animation-play-state:paused}

  @media (hover: hover) and (pointer: fine){
    .bio-portrait:hover .bio-slide{transform:scale(1.03);filter:saturate(1.08)}
  }

  /* Dots indicator — ahora son <button> */
  .bio-dots{position:absolute;top:14px;left:14px;display:flex;gap:8px;z-index:3}
  .bio-dots button{display:block;width:22px;height:24px;padding:11px 0;background:transparent;border:0;cursor:pointer;position:relative}
  .bio-dots button::after{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:22px;height:2px;background:rgba(255,255,255,0.45);transition:background 400ms var(--ease-out),width 320ms var(--ease-spring)}
  .bio-dots button[aria-current="true"]::after{background:var(--gold);width:30px}
  .bio-dots button:hover::after{background:rgba(255,255,255,0.75)}

  /* Botón pause/play del carousel */
  .bio-portrait-pause{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,0.35);background:rgba(0,0,0,0.4);backdrop-filter:blur(4px);color:rgba(255,255,255,0.9);font-size:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 200ms var(--ease-out),transform 220ms var(--ease-snap);z-index:4}
  .bio-portrait-pause:hover{background:rgba(201,169,97,0.4);border-color:var(--gold)}
  .bio-portrait-pause:active{transform:scale(0.9)}
  .bio-portrait-pause svg{width:10px;height:10px;fill:currentColor}
  .bio-portrait-cap{position:absolute;left:14px;bottom:14px;font-family:"Cormorant Garamond",serif;font-style:italic;font-size:13px;color:var(--hueso-text);background:rgba(31,26,18,0.7);backdrop-filter:blur(4px);padding:6px 12px}
  .js-ready .bio-portrait-cap{transform:translateY(8px);transition:opacity 500ms var(--ease-out) 800ms,transform 500ms var(--ease-out) 800ms}
  .js-ready .bio.in .bio-portrait-cap{opacity:1;transform:translateY(0)}
  .bio-portrait-tag{position:absolute;top:14px;right:14px;font-family:"Outfit",sans-serif;font-size:10px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--hueso-text);background:var(--terracota);padding:6px 12px}
  .js-ready .bio-portrait-tag{transform:translateY(-8px);transition:opacity 500ms var(--ease-out) 900ms,transform 500ms var(--ease-out) 900ms}
  .js-ready .bio.in .bio-portrait-tag{opacity:1;transform:translateY(0)}

  .bio-info{padding-top:8px}
  .js-ready .bio-info > *{transform:translateX(20px);transition:opacity 600ms var(--ease-out),transform 600ms var(--ease-out)}
  .js-ready .bio.in .bio-info > *:nth-child(1){transition-delay:300ms}
  .js-ready .bio.in .bio-info > *:nth-child(2){transition-delay:380ms}
  .js-ready .bio.in .bio-info > *:nth-child(3){transition-delay:460ms}
  .js-ready .bio.in .bio-info > *:nth-child(4){transition-delay:540ms}
  .js-ready .bio.in .bio-info > *{opacity:1;transform:translateX(0)}

  .bio-tag{display:inline-block;font-family:"Outfit",sans-serif;font-size:12px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--verde);background:rgba(58,90,63,0.1);padding:7px 14px;margin-bottom:24px}
  .bio-firma{display:flex;align-items:center;line-height:0;margin-bottom:22px}
  .bio-firma img{display:block;width:clamp(240px,30vw,360px);height:auto}
  .bio-lead{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:22px;line-height:1.6;color:var(--ink);max-width:42ch;margin-bottom:32px}

  .ficha{display:grid;grid-template-columns:1fr;gap:0}
  .ficha-row{display:grid;grid-template-columns:170px 1fr;gap:24px;padding:16px 0;border-bottom:1px dashed var(--hairline);align-items:start}
  .ficha-row:first-child{border-top:1px dashed var(--hairline)}
  .js-ready .ficha-row{transform:translateX(16px);transition:opacity 500ms var(--ease-out),transform 500ms var(--ease-out)}
  .js-ready .bio.in .ficha-row:nth-child(1){transition-delay:700ms}
  .js-ready .bio.in .ficha-row:nth-child(2){transition-delay:760ms}
  .js-ready .bio.in .ficha-row:nth-child(3){transition-delay:820ms}
  .js-ready .bio.in .ficha-row:nth-child(4){transition-delay:880ms}
  .js-ready .bio.in .ficha-row:nth-child(5){transition-delay:940ms}
  .js-ready .bio.in .ficha-row:nth-child(6){transition-delay:1000ms}
  .js-ready .bio.in .ficha-row{opacity:1;transform:translateX(0)}
  .ficha-row dt{font-family:"Outfit",sans-serif;font-size:12px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--terracota);padding-top:4px;transition:color 300ms var(--ease-out)}
  .ficha-row dd{font-family:"Outfit",sans-serif;font-size:17px;line-height:1.55;color:var(--ink);font-weight:400}
  @media (hover: hover) and (pointer: fine){
    .ficha-row:hover dt{color:var(--terracota-deep)}
  }

  /* ───────── FOOTER ───────── */
  footer{background:var(--azul-noche);color:rgba(244,236,224,0.7);padding:64px 0 32px;position:relative;overflow:hidden}
  footer::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--gold) 25%,var(--gold) 75%,transparent 100%);background-size:200% 100%;background-position:100% 0;animation:gradientShift 12s linear infinite}
  @keyframes gradientShift{from{background-position:200% 0}to{background-position:-200% 0}}

  .ft-inner{max-width:1500px;margin:0 auto;padding:0 48px}
  .ft-grid{display:grid;grid-template-columns:1fr;gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(201,169,97,0.15)}
  @media(min-width:900px){.ft-grid{grid-template-columns:2fr 1fr 1fr 1fr}}
  .ft-firma{display:flex;align-items:center;line-height:0;margin-bottom:18px;transition:transform 400ms var(--ease-spring)}
  .ft-firma img{display:block;width:200px;max-width:80%;height:auto;opacity:0.94}
  @media (hover: hover) and (pointer: fine){
    footer .ft-firma:hover{transform:scale(1.025)}
  }
  .ft-tag{font-family:"Outfit",sans-serif;font-size:11px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;display:inline-block;padding:6px 12px;border:1px solid var(--gold);transition:background 300ms var(--ease-out),color 300ms var(--ease-out)}
  @media (hover: hover) and (pointer: fine){
    .ft-tag:hover{background:var(--gold);color:var(--azul-noche)}
  }
  .ft-brand p{font-family:"Outfit",sans-serif;font-size:16px;line-height:1.65;max-width:34ch;color:rgba(244,236,224,0.86)}
  .ft-col h4{font-family:"Outfit",sans-serif;font-size:12px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
  .ft-col a{display:block;font-family:"Outfit",sans-serif;font-size:15px;padding:8px 0;color:rgba(244,236,224,0.82);transition:color 200ms var(--ease-out),padding-left 250ms var(--ease-out);position:relative}
  .ft-col .ft-static{display:block;font-family:"Outfit",sans-serif;font-size:15px;padding:8px 0;color:rgba(244,236,224,0.7);font-style:italic;line-height:1.4}
  .ft-col .ft-copy{display:block;font-family:"Outfit",sans-serif;font-size:15px;padding:8px 0;color:rgba(244,236,224,0.82);background:none;border:0;cursor:pointer;text-align:left;width:100%;transition:color 200ms var(--ease-out),padding-left 250ms var(--ease-out);position:relative}
  .ft-col .ft-copy::after{content:" · copiar";font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--gold);opacity:0;margin-left:6px;transition:opacity 220ms var(--ease-out)}
  .ft-col .ft-copy:hover{color:var(--terracota);padding-left:8px}
  .ft-col .ft-copy:hover::after{opacity:0.85}
  .ft-col .ft-copy.copied::after{content:" · copiado ✓";opacity:1;color:var(--verde)}
  address.ft-col{font-style:normal}
  @media (hover: hover) and (pointer: fine){
    .ft-col a:hover{color:var(--terracota);padding-left:8px}
  }
  .ft-bottom{padding-top:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;font-family:"Outfit",sans-serif;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(201,169,97,0.75);font-weight:500}
  .ft-bottom a{color:rgba(201,169,97,0.65);transition:color 200ms var(--ease-out)}
  .ft-bottom a:hover{color:var(--gold)}

  /* ───────── MOBILE RESPONSIVE (≤899px) ─────────
     Anti-overflow horizontal + padding reducido + nav compacta */
  @media (max-width:899px){
    /* Nav: ocultar enlaces izquierdos, dejar logo + lang + cart */
    .nav-inner{padding:12px 20px;grid-template-columns:1fr auto;gap:12px}
    .nav-left{display:none}
    .nav-firma{justify-self:start}
    .nav-right{justify-self:end;gap:10px}
    .nav-right > a{display:none}
    .lang-toggle{padding:4px 6px;gap:4px;font-size:10px;letter-spacing:0.14em}
    .lang-toggle .lang-sep{font-size:9px}
    .nav-cart{font-size:11px;gap:6px;padding:4px 2px;letter-spacing:0.12em}
    .nav-cart .cart-count{font-size:13px}

    /* Paddings horizontales: 48px → 20px */
    .container,
    .historia-inner,
    .galeria-head,
    .bento,
    .catalogo-head,
    .shop-grid,
    .bio-grid,
    .ft-inner{padding-left:20px;padding-right:20px}

    /* Historia: stats wrap a 1 columna */
    .historia-inner{gap:32px}
    .historia-stats{grid-template-columns:1fr;gap:1px}

    /* Cart drawer: asegurar que el cierre cabe en pantalla */
    .cart-drawer{width:min(420px,94vw)}
  }

  /* ───────── FIX: WP 6+ inyecta wp-block-group/is-layout-flow al <main>
   *  y aplica margin-block-start:var(--wp--style--block-gap) a cada section
   *  sibling, creando un gap visual hueso entre secciones. Las secciones
   *  del sitio se diseñaron flush (cada una con su background propio).
   *  Anulamos solo para los <section> directos de #main-content. */
  #main-content > section,
  #main-content.is-layout-flow > section,
  main.is-layout-flow > section{margin-block-start:0!important;margin-top:0!important}
  /* Mismo fix para el <main> dentro de page.php (cart/checkout/page) */
  main.rg-page-content,
  main.rg-page-content.is-layout-flow{margin-block-start:0}

  /* ───────── PAGE TEMPLATE (Cart, Checkout, My Account) ───────── */
  .rg-page-content{background:var(--hueso);min-height:60vh;padding:64px 0 96px}
  .rg-page-inner{max-width:1200px;margin:0 auto;padding:0 48px}
  @media (max-width:899px){.rg-page-inner{padding:0 20px}}
  .rg-page-header{margin-bottom:40px;padding-bottom:24px;border-bottom:1px solid var(--hairline)}
  .rg-page-title{font-family:"Outfit",sans-serif;font-weight:300;font-size:clamp(32px,4vw,52px);line-height:1;letter-spacing:-0.03em;color:var(--ink)}
  .rg-page-body{font-family:"Outfit",sans-serif;font-size:16px;line-height:1.6;color:var(--ink)}
  .rg-page-body a{color:var(--terracota);text-decoration:underline;text-decoration-color:var(--hairline-warm);text-underline-offset:3px;transition:text-decoration-color 200ms var(--ease-out)}
  .rg-page-body a:hover{text-decoration-color:var(--terracota)}
  /* WC checkout/cart blocks heredan tipografía Outfit + acentos terracota */
  .rg-page-body .wp-block-woocommerce-checkout,
  .rg-page-body .wp-block-woocommerce-cart{font-family:"Outfit",sans-serif}
  .rg-page-body .wp-block-woocommerce-checkout h2,
  .rg-page-body .wp-block-woocommerce-cart h2{font-family:"Outfit",sans-serif;font-weight:400;color:var(--ink);letter-spacing:-0.01em}
  .rg-page-body .wc-block-components-button,
  .rg-page-body .wp-block-button__link{background:var(--ink);color:var(--hueso-text);border:1px solid var(--ink);border-radius:0;font-family:"Outfit",sans-serif;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;padding:14px 26px;transition:background 240ms var(--ease-smooth-spring)}
  .rg-page-body .wc-block-components-button:hover,
  .rg-page-body .wp-block-button__link:hover{background:var(--terracota);border-color:var(--terracota)}
  .rg-page-body .wc-block-cart-item__total-price,
  .rg-page-body .wc-block-components-totals-item__value{font-family:"Cormorant Garamond",serif;font-weight:500;color:var(--terracota)}
  .rg-page-body .wc-block-checkout__sidebar{background:var(--hueso-soft);padding:24px;border:1px solid var(--hairline)}
  /* ─── Filtros por serie + Mostrar más (Galería / Catálogo) ───────────────
   * Estas secciones tienen FONDO OSCURO (galería verde #243325, catálogo #522C20).
   * Label = hueso-text (12.16:1 vs verde ✓). Chips fondo claro (10:1) con borde
   * GOLD 2px (5.92:1 vs verde, UI req 3:1 ✓). Activo = gold + punto + escala
   * mayor + anillo animado (no depende solo del color: forma+tamaño+punto).
   */
  .serie-filtros{max-width:1500px;margin:0 auto 32px;padding:0 48px;display:flex;flex-wrap:wrap;align-items:center;gap:12px}
  .serie-filtros-label{font-family:"Geist",sans-serif;font-size:12px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--hueso-text);margin-right:8px}
  .serie-filtros-label::after{content:"";display:inline-block;width:24px;height:1px;background:var(--gold);margin-left:10px;vertical-align:middle}
  .serie-chip{font-family:"Geist",sans-serif;font-size:12px;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;display:inline-flex;align-items:center;gap:8px;padding:11px 22px;border:2px solid var(--gold);border-radius:999px;background:var(--hueso-soft);color:var(--ink);cursor:pointer;transition:background 220ms var(--ease-out),border-color 220ms var(--ease-out),transform 200ms var(--ease-snap),box-shadow 220ms var(--ease-out)}
  .serie-chip:hover{background:var(--gold);border-color:var(--hueso-text);transform:scale(1.06);box-shadow:0 0 0 4px rgba(201,169,97,0.3)}
  .serie-chip.is-active{background:var(--gold);border-color:var(--hueso-text);transform:scale(1.1);animation:chip-ring 2.4s var(--ease-out) infinite}
  .serie-chip.is-active::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ink);flex:none}
  .serie-chip:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
  @keyframes chip-ring{
    0%{box-shadow:0 0 0 0 rgba(201,169,97,0.55)}
    70%{box-shadow:0 0 0 10px rgba(201,169,97,0)}
    100%{box-shadow:0 0 0 0 rgba(201,169,97,0)}
  }
  .is-hidden{display:none!important}
  .show-more-wrap{max-width:1500px;margin:40px auto 0;padding:0 48px;text-align:center}
  .show-more-btn{font-family:"Geist",sans-serif;font-size:13px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;padding:15px 38px;background:var(--gold);color:var(--ink);border:2px solid var(--hueso-text);border-radius:999px;cursor:pointer;transition:background 280ms var(--ease-smooth-spring),box-shadow 280ms var(--ease-smooth-spring),transform 200ms var(--ease-snap)}
  .show-more-btn::after{content:"+";font-size:16px;font-weight:500;line-height:1}
  .show-more-btn:hover{transform:scale(1.05);box-shadow:0 0 0 5px rgba(201,169,97,0.3),0 6px 18px rgba(0,0,0,0.25)}
  .show-more-btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
  @media(prefers-reduced-motion:reduce){
    .serie-chip.is-active{animation:none;box-shadow:0 0 0 4px rgba(201,169,97,0.45)}
    .serie-chip:hover,.serie-chip.is-active,.show-more-btn:hover{transform:none}
  }
  @media(max-width:899px){
    .serie-filtros{padding:0 20px;margin-bottom:24px}
    .serie-filtros-label{width:100%;margin-right:0}
    .show-more-wrap{padding:0 20px;margin-top:28px}
  }
