/* =========================================================================
   coupling — mobiliario de diseño adaptable, fabricado en Barcelona
   Sistema visual: minimalismo arquitectónico nórdico, cálido y editorial.
   ========================================================================= */

/* ---------- Tokens ---------- */
:root{
  --paper:      #F4F0E7;   /* fondo cálido tipo papel */
  --paper-2:    #ECE6D9;   /* superficie alterna */
  --paper-3:    #E3DCCC;   /* bloque más marcado */
  --ink:        #1B1915;   /* texto principal, casi negro cálido */
  --ink-soft:   #514B41;   /* texto secundario */
  --muted:      #7C7566;   /* texto terciario / metadatos */
  --line:       #D5CDBC;   /* filetes */
  --line-soft:  #E1DACB;
  --clay:       #9A5B34;   /* acento nogal/arcilla, uso escaso */
  --clay-deep:  #7E4A29;
  --white:      #FBF9F4;

  --serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --sans:  "Archivo", "Helvetica Neue", Arial, sans-serif;

  --container: 1240px;
  --gutter: clamp(1.25rem, 4vw, 4rem);

  --radius: 2px;
  --ease: cubic-bezier(.22,.61,.36,1);

  --step--1: clamp(.82rem, .8rem + .1vw, .9rem);
  --step-0:  clamp(1rem, .97rem + .16vw, 1.12rem);
  --step-1:  clamp(1.2rem, 1.1rem + .5vw, 1.5rem);
  --step-2:  clamp(1.6rem, 1.4rem + 1vw, 2.2rem);
  --step-3:  clamp(2.1rem, 1.7rem + 2vw, 3.4rem);
  --step-4:  clamp(2.7rem, 1.9rem + 3.6vw, 5.2rem);
  --step-5:  clamp(3.3rem, 2rem + 6vw, 7rem);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
body{
  font-family:var(--sans);
  font-size:var(--step-0);
  line-height:1.6;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
ul{ list-style:none; padding:0; }
:focus-visible{ outline:2px solid var(--clay); outline-offset:3px; }

/* Texture: fondo papel muy sutil */
body::before{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(120% 80% at 80% -10%, rgba(154,91,52,.05), transparent 55%),
    radial-gradient(100% 60% at 0% 110%, rgba(27,25,21,.04), transparent 60%);
}

/* ---------- Layout ---------- */
.wrap{ width:min(100% - 2*var(--gutter), var(--container)); margin-inline:auto; }
.wide{ --container:1440px; }
.section{ padding-block:clamp(4.5rem, 9vw, 9rem); }
.section--tight{ padding-block:clamp(3rem, 6vw, 5rem); }

/* ---------- Tipografía ---------- */
h1,h2,h3,h4{ font-family:var(--serif); font-weight:500; line-height:1.06; letter-spacing:-.015em; }
.display{ font-size:var(--step-5); line-height:1; letter-spacing:-.03em; }
h1{ font-size:var(--step-4); }
h2{ font-size:var(--step-3); }
h3{ font-size:var(--step-2); }
.lead{ font-size:var(--step-1); line-height:1.5; color:var(--ink-soft); font-weight:400; }
.measure{ max-width:62ch; }
.measure-sm{ max-width:46ch; }
p{ text-wrap:pretty; }
h1,h2,h3{ text-wrap:balance; }
em, .italic{ font-style:italic; }
/* Los titulares mantienen una sola tipografía (sin mezclar redonda/cursiva) */
h1 em, h2 em, h3 em, h4 em{ font-style:normal; }

.kicker{
  font-family:var(--sans); font-size:var(--step--1); letter-spacing:.28em;
  text-transform:uppercase; color:var(--muted); font-weight:500;
}

/* ---------- Botones / enlaces ---------- */
/* Botón con efecto "hard shadow" (estilo Gumroad): se eleva y deja una
   sombra sólida desplazada; adaptado a la paleta (acento arcilla en hover). */
.btn{
  --bg:var(--ink); --fg:var(--paper);
  --hover-bg:var(--clay); --hover-fg:var(--paper);
  --shadow:var(--bg); --lift:.24rem;
  display:inline-flex; align-items:center; gap:.7em;
  padding:1.05em 1.9em; background:var(--bg); color:var(--fg);
  font-family:var(--sans); font-size:var(--step--1); font-weight:500;
  letter-spacing:.14em; text-transform:uppercase;
  border:1px solid var(--bg); border-radius:var(--radius);
  transition:transform .2s var(--ease), background .25s var(--ease), color .25s var(--ease), box-shadow .2s var(--ease), border-color .25s var(--ease);
}
.btn:hover{
  background:var(--hover-bg); color:var(--hover-fg); border-color:var(--hover-bg);
  transform:translate(calc(-1 * var(--lift)), calc(-1 * var(--lift)));
  box-shadow:var(--lift) var(--lift) 0 var(--shadow);
}
.btn:active{ transform:translate(0); box-shadow:none; }
.btn--ghost{ --bg:transparent; --fg:var(--ink); --shadow:var(--ink); border-color:var(--ink); }
.btn--light{ --bg:var(--paper); --fg:var(--ink); }
.btn--ghost.btn--light{ --bg:transparent; --fg:var(--paper); --shadow:var(--paper); --hover-bg:var(--paper); --hover-fg:var(--ink); border-color:var(--paper); }
.btn .arw{ transition:transform .3s var(--ease); }
.btn:hover .arw{ transform:translateX(3px); }
@media (prefers-reduced-motion:reduce){
  .btn{ transition:background .25s var(--ease), color .25s var(--ease), box-shadow .2s var(--ease); }
  .btn:hover{ transform:none; }
}

.link-underline{
  display:inline-flex; align-items:center; gap:.55em; font-weight:500;
  letter-spacing:.02em; color:var(--ink);
  background-image:linear-gradient(var(--clay),var(--clay));
  background-size:0% 1px; background-position:0 100%; background-repeat:no-repeat;
  padding-bottom:2px; transition:background-size .45s var(--ease), color .3s var(--ease);
}
.link-underline:hover{ background-size:100% 1px; color:var(--clay); }
.link-underline .arw{ transition:transform .4s var(--ease); }
.link-underline:hover .arw{ transform:translate(3px,-3px); }

/* ---------- Header ---------- */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:clamp(1rem,2.2vw,1.6rem) var(--gutter);
  transition:background .5s var(--ease), box-shadow .5s var(--ease);
}
.site-header.is-scrolled{
  background:color-mix(in oklab, var(--paper) 82%, transparent);
  backdrop-filter:blur(14px) saturate(1.2);
  box-shadow:0 1px 0 var(--line-soft);
  padding-block:.85rem;
}
.brand{ display:inline-flex; align-items:center; color:var(--ink); }
.brand-logo{ height:62px; width:auto; color:inherit; display:block; }
.brand-logo text{ font-family:var(--sans); fill:currentColor; }
.brand-logo .lg-furniture{ font-weight:300; font-size:555px; }
.brand-logo .lg-coupling{ font-weight:300; font-size:925px; letter-spacing:34px; }
.brand-logo .lg-bcn{ font-weight:400; font-size:590px; letter-spacing:12px; }
@media (max-width:560px){ .brand-logo{ height:52px; } }
.brand__mark{ width:26px; height:auto; color:var(--ink); }
.brand__type{ display:flex; flex-direction:column; line-height:1; }
.brand__word{
  font-family:var(--sans); font-weight:300; font-size:1.28rem;
  letter-spacing:.34em; text-transform:lowercase; color:var(--ink);
  padding-left:.05em;
}
.brand__sub{
  font-family:var(--sans); font-size:.52rem; font-weight:400;
  letter-spacing:.42em; text-transform:uppercase; color:var(--muted); margin-top:.35em;
}
.nav{ display:flex; align-items:center; gap:clamp(1.4rem,2.5vw,2.6rem); }
.nav a{
  font-size:var(--step--1); letter-spacing:.12em; text-transform:uppercase;
  font-weight:500; color:var(--ink-soft); position:relative; padding-block:.3em;
  transition:color .3s var(--ease);
}
.nav a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:var(--ink); transform:scaleX(0); transform-origin:right;
  transition:transform .4s var(--ease);
}
.nav a:hover, .nav a[aria-current="page"]{ color:var(--ink); }
.nav a:hover::after, .nav a[aria-current="page"]::after{ transform:scaleX(1); transform-origin:left; }
.nav a.nav__cta::after{ display:none; }
.nav__cta{ margin-left:.4rem; }
.nav__foot{ display:none; }

/* Cabecera en blanco mientras flota sobre el hero de imagen */
.site-header.over-hero:not(.is-scrolled) .brand{ color:var(--white); }
.site-header.over-hero:not(.is-scrolled) .nav a{ color:color-mix(in oklab, var(--paper) 88%, transparent); }
.site-header.over-hero:not(.is-scrolled) .nav a::after{ background:var(--white); }
.site-header.over-hero:not(.is-scrolled) .btn--ghost{ --fg:var(--paper); --shadow:var(--paper); --hover-bg:var(--paper); --hover-fg:var(--ink); border-color:color-mix(in oklab, var(--paper) 55%, transparent); }
.site-header.over-hero:not(.is-scrolled) .nav-toggle span,
.site-header.over-hero:not(.is-scrolled) .nav-toggle span::before,
.site-header.over-hero:not(.is-scrolled) .nav-toggle span::after{ background:var(--white); }

.nav-toggle{ display:none; width:40px; height:40px; align-items:center; justify-content:center; }
.nav-toggle span{ position:relative; width:22px; height:1.5px; background:var(--ink); transition:.3s; }
.nav-toggle span::before,.nav-toggle span::after{ content:""; position:absolute; left:0; width:22px; height:1.5px; background:var(--ink); transition:.3s var(--ease); }
.nav-toggle span::before{ top:-6px; } .nav-toggle span::after{ top:6px; }
.nav-open .nav-toggle span{ background:transparent; }
.nav-open .nav-toggle span::before{ top:0; transform:rotate(45deg); }
.nav-open .nav-toggle span::after{ top:0; transform:rotate(-45deg); }

@media (max-width:860px){
  .nav-toggle{ display:flex; position:relative; z-index:102; }
  .site-header .brand{ position:relative; z-index:102; }

  /* Overlay del menú */
  .nav{
    position:fixed; inset:0; z-index:101;
    flex-direction:column; align-items:stretch; justify-content:center; gap:0;
    padding:clamp(6rem,15vh,9rem) var(--gutter) clamp(2rem,6vh,3.5rem);
    background:var(--paper); overflow-y:auto;
    clip-path:inset(0 0 100% 0);
    transition:clip-path .75s var(--ease);
  }
  .nav-open .nav{ clip-path:inset(0 0 0 0); }
  .nav::before{
    content:"Menú"; font-family:var(--sans); font-size:.68rem; letter-spacing:.34em;
    text-transform:uppercase; color:var(--muted); margin-bottom:1.6rem;
    opacity:0; transition:opacity .5s var(--ease) .1s;
  }
  .nav-open .nav::before{ opacity:1; }

  /* Enlaces grandes tipo editorial */
  .nav > a:not(.nav__cta){
    font-family:var(--serif); font-weight:500; font-size:clamp(2rem,8.5vw,2.9rem);
    line-height:1.1; letter-spacing:-.01em; text-transform:none; color:var(--ink);
    padding:.55rem 0; border-bottom:1px solid var(--line);
    display:flex; align-items:center; justify-content:space-between;
    opacity:0; transform:translateY(26px);
    transition:opacity .6s var(--ease), transform .6s var(--ease), color .3s var(--ease);
  }
  .nav > a:not(.nav__cta)::after{
    content:"↗"; position:static; width:auto; height:auto; background:none;
    font-family:var(--sans); font-size:1.05rem; color:var(--clay);
    opacity:0; transform:translateX(-8px);
    transition:opacity .3s var(--ease), transform .3s var(--ease);
  }
  .nav > a:not(.nav__cta):hover, .nav > a[aria-current="page"]{ color:var(--clay); }
  .nav > a:not(.nav__cta):hover::after, .nav > a[aria-current="page"]::after{ opacity:1; transform:translateX(0); }
  .nav-open .nav > a:not(.nav__cta){ opacity:1; transform:none; }
  .nav-open .nav > a:nth-of-type(1){ transition-delay:.14s; }
  .nav-open .nav > a:nth-of-type(2){ transition-delay:.20s; }
  .nav-open .nav > a:nth-of-type(3){ transition-delay:.26s; }
  .nav-open .nav > a:nth-of-type(4){ transition-delay:.32s; }

  /* CTA */
  .nav__cta{
    margin:2.2rem 0 0; align-self:flex-start; width:auto;
    opacity:0; transform:translateY(26px);
    transition:opacity .6s var(--ease) .40s, transform .6s var(--ease) .40s,
               background .25s var(--ease), color .25s var(--ease), box-shadow .2s var(--ease), border-color .25s var(--ease);
  }
  .nav-open .nav__cta{ opacity:1; transform:none; }

  /* Pie del menú: contacto */
  .nav__foot{
    display:flex; flex-wrap:wrap; gap:.9rem 1.8rem; align-items:center;
    margin-top:auto; padding-top:clamp(2rem,6vh,3rem);
    opacity:0; transform:translateY(20px);
    transition:opacity .6s var(--ease) .46s, transform .6s var(--ease) .46s;
  }
  .nav-open .nav__foot{ opacity:1; transform:none; }
  .nav__foot a{
    font-family:var(--sans); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase;
    color:var(--ink-soft); position:static; padding:0;
  }
  .nav__foot a::after{ display:none; }
  .nav__foot a:hover{ color:var(--clay); }

  /* Con el menú abierto el overlay es claro: forzamos logo, aspa, enlaces y
     CTA en oscuro, anulando el modo claro del hero (mayor especificidad) */
  body.nav-open .site-header .brand,
  body.nav-open .site-header.over-hero .brand{ color:var(--ink); }
  body.nav-open .nav-toggle span::before,
  body.nav-open .nav-toggle span::after,
  body.nav-open .site-header.over-hero .nav-toggle span::before,
  body.nav-open .site-header.over-hero .nav-toggle span::after{ background:var(--ink); }
  body.nav-open .site-header.over-hero .nav > a:not(.nav__cta){ color:var(--ink); }
  body.nav-open .site-header.over-hero .nav > a[aria-current="page"]{ color:var(--clay); }
  body.nav-open .site-header.over-hero .nav__cta{ --fg:var(--ink); --shadow:var(--ink); border-color:var(--ink); }
  body.nav-open .site-header.over-hero .nav__foot a{ color:var(--ink-soft); }

  /* Bloquear scroll de fondo */
  body.nav-open{ overflow:hidden; }
}

/* ---------- Hero ---------- */
.hero{ position:relative; padding-top:clamp(8rem,16vh,12rem); padding-bottom:clamp(3rem,6vw,6rem); }
.hero__grid{ display:grid; gap:clamp(2rem,5vw,4rem); }
.hero__title{ font-size:var(--step-5); line-height:.98; letter-spacing:-.032em; }
.hero__title .thin{ font-style:normal; font-weight:400; }
.hero__meta{ display:flex; flex-wrap:wrap; gap:1.4rem 2.4rem; align-items:center; margin-top:.5rem; }
.hero__figure{ position:relative; overflow:hidden; border-radius:var(--radius); background:var(--paper-3); aspect-ratio:16/10; }
.hero__figure img{ width:100%; height:100%; object-fit:cover; }

@media (max-width:560px){
  .hero__title{ font-size:clamp(2.5rem, 10.5vw, 3.4rem); line-height:1.02; }
  .hero{ padding-top:clamp(6.5rem,14vh,9rem); }
}

/* ---------- Hero a pantalla completa con imagen de fondo (Scroll Mask) ---------- */
.hero-cover{
  position:relative; height:100svh; min-height:600px; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.hero-cover__bg{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.hero-cover__bg img{ width:100%; height:100%; object-fit:cover; will-change:transform; }
.hero-cover__scrim{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(rgba(18,16,13,.46), rgba(18,16,13,.46)),
    radial-gradient(120% 120% at 50% 46%, transparent 24%, rgba(18,16,13,.5) 100%);
}
.hero-cover__inner{ position:relative; z-index:2; width:100%; text-align:center; }
.hero-cover__content{ max-width:34ch; margin-inline:auto; color:var(--paper); }
.hero-cover__content .eyeline{ justify-content:center; color:color-mix(in oklab, var(--paper) 80%, transparent); }
.hero-cover__content .eyeline::before{ display:none; }
.hero-cover__title{
  font-family:var(--serif); font-weight:500; color:var(--white);
  font-size:clamp(2.1rem, 1.35rem + 3vw, 3.9rem); line-height:1.02; letter-spacing:-.02em;
  margin:1rem auto 1.4rem; text-wrap:balance;
  text-shadow:0 1px 40px rgba(0,0,0,.45), 0 1px 3px rgba(0,0,0,.35);
}
.hero-cover__content .lead{ color:color-mix(in oklab, var(--paper) 92%, transparent); max-width:48ch; margin-inline:auto; font-size:var(--step-0); text-shadow:0 1px 16px rgba(0,0,0,.5); }
.hero-cover__content .hero__meta{ margin-top:2rem; justify-content:center; }
.hero-cover__content .btn{ --bg:var(--paper); --fg:var(--ink); }
.hero-cover__content .pill{ color:color-mix(in oklab, var(--paper) 82%, transparent); }
.hero-cover__cue{
  position:absolute; left:50%; bottom:1.5rem; translate:-50% 0; z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:.5rem;
  color:color-mix(in oklab, var(--paper) 75%, transparent);
  font-size:.66rem; letter-spacing:.28em; text-transform:uppercase;
}
.hero-cover__cue .line{ width:1px; height:38px; background:currentColor; transform-origin:top; animation:cueLine 2.2s var(--ease) infinite; }
@keyframes cueLine{ 0%{ transform:scaleY(0); opacity:0;} 40%{ opacity:1;} 100%{ transform:scaleY(1); opacity:0;} }
@media (prefers-reduced-motion:reduce){ .hero-cover__cue .line{ animation:none; } }
@media (max-width:560px){
  .hero-cover__title{ font-size:clamp(1.9rem, 7.6vw, 2.6rem); line-height:1.06; }
  .hero-cover__content{ max-width:20ch; }
}

/* ---------- Marca geométrica grande (motivo) ---------- */
.figuremark{ color:var(--ink); width:100%; height:auto; }
.figuremark path{ stroke:currentColor; fill:none; stroke-width:60; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }

/* ---------- Bloques editoriales ---------- */
.split{ display:grid; grid-template-columns:1fr; gap:clamp(1.8rem,4vw,4rem); align-items:start; }
@media (min-width:820px){ .split{ grid-template-columns:0.85fr 1.15fr; } .split--rev{ grid-template-columns:1.15fr .85fr; } }
.eyeline{ display:flex; align-items:baseline; gap:1rem; color:var(--muted); font-size:var(--step--1); letter-spacing:.02em; }
.eyeline::before{ content:""; width:2.4rem; height:1px; background:var(--line); translate:0 -.35em; }

/* Lista de rasgos (sistema, sin numerar) */
.features{ display:grid; gap:0; margin-top:2.4rem; border-top:1px solid var(--line); }
.features li{
  display:grid; grid-template-columns:auto 1fr; gap:1.2rem; align-items:start;
  padding:1.15rem 0; border-bottom:1px solid var(--line);
  font-size:var(--step-0); color:var(--ink-soft);
}
.features li .glyph{ width:22px; height:22px; color:var(--clay); translate:0 .15em; flex:none; }
.features li strong{ color:var(--ink); font-weight:600; }

/* ---------- Franja de imagen / bloque cálido ---------- */
.slab{ background:var(--paper-3); }
.slab--ink{ background:var(--ink); color:var(--paper); }
.slab--ink h2,.slab--ink h3{ color:var(--white); }
.slab--ink .lead{ color:color-mix(in oklab,var(--paper) 78%, transparent); }
.slab--ink .kicker{ color:color-mix(in oklab,var(--paper) 60%, transparent); }

/* ---------- Galería / lookbook ---------- */
.gallery{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(.8rem,1.6vw,1.4rem); }
.ga{ position:relative; overflow:hidden; border-radius:var(--radius); background:var(--paper-3); }
.ga img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.ga:hover img{ transform:scale(1.045); }
.ga--tall{ grid-column:span 5; aspect-ratio:3/4; }
.ga--wide{ grid-column:span 7; aspect-ratio:7/5; }
.ga--half{ grid-column:span 6; aspect-ratio:1/1; }
.ga--full{ grid-column:span 12; aspect-ratio:16/7; }
@media (max-width:720px){
  .ga--tall,.ga--wide,.ga--half{ grid-column:span 12; aspect-ratio:4/3; }
}

/* ---------- Producto / colección ---------- */
.pieces{ display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr)); gap:clamp(1.2rem,2.5vw,2rem); }
.piece{ display:flex; flex-direction:column; }
.piece__media{
  position:relative; aspect-ratio:4/5; background:var(--paper-3); border-radius:var(--radius);
  overflow:hidden; margin-bottom:1.1rem;
}
.piece__media img{ width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); }
.piece:hover .piece__media img{ transform:scale(1.05); }
.piece__media .tag{
  position:absolute; left:1rem; top:1rem; z-index:2; background:var(--paper);
  font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft);
  padding:.45em .8em; border-radius:var(--radius);
}
.piece h3{ font-family:var(--serif); font-size:var(--step-1); margin-bottom:.3rem; }
.piece p{ color:var(--muted); font-size:var(--step--1); }
.piece__foot{ display:flex; align-items:center; justify-content:space-between; margin-top:.9rem; }
.piece__price{ font-family:var(--sans); font-weight:500; letter-spacing:.02em; }
.piece__price small{ color:var(--muted); font-weight:400; }

/* Dibujo de línea de mueble (placeholder SVG art) */
.linefurn{ width:100%; height:100%; color:var(--ink); display:grid; place-items:center; padding:14%; }
.linefurn svg{ width:100%; height:auto; }
.linefurn svg [stroke]{ stroke:currentColor; }

/* ---------- FAQ ---------- */
.faq{ border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{
  list-style:none; cursor:pointer; padding:1.6rem 0; display:flex; gap:1.5rem;
  align-items:baseline; justify-content:space-between;
  font-family:var(--serif); font-size:var(--step-1); color:var(--ink);
  transition:color .3s var(--ease);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:hover{ color:var(--clay); }
.faq summary .ico{ flex:none; width:20px; height:20px; position:relative; translate:0 .2em; }
.faq summary .ico::before,.faq summary .ico::after{ content:""; position:absolute; background:currentColor; transition:transform .35s var(--ease); }
.faq summary .ico::before{ top:9px; left:0; width:20px; height:1.5px; }
.faq summary .ico::after{ top:0; left:9px; width:1.5px; height:20px; }
.faq details[open] summary .ico::after{ transform:scaleY(0); }
.faq__body{ overflow:hidden; }
.faq__body p{ padding:0 0 1.7rem; max-width:64ch; color:var(--ink-soft); }

/* ---------- Contacto ---------- */
.contact-grid{ display:grid; gap:clamp(2rem,5vw,4rem); }
@media (min-width:900px){ .contact-grid{ grid-template-columns:1fr 1fr; } }
.info-list{ display:grid; gap:1.6rem; }
.info-list .row{ display:grid; gap:.3rem; padding-bottom:1.4rem; border-bottom:1px solid var(--line); }
.info-list .row .k{ font-size:var(--step--1); letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.info-list .row .v{ font-size:var(--step-1); font-family:var(--serif); }
.info-list .row a.v{ transition:color .3s; }
.info-list .row a.v:hover{ color:var(--clay); }

.field{ display:grid; gap:.5rem; margin-bottom:1.4rem; }
.field label{ font-size:var(--step--1); letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); }
.field input,.field textarea,.field select{
  width:100%; padding:.95em 1.1em; background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius); font:inherit; color:var(--ink); transition:border-color .3s, box-shadow .3s;
}
.field input:focus,.field textarea:focus,.field select:focus{ outline:none; border-color:var(--clay); box-shadow:0 0 0 3px rgba(154,91,52,.12); }
.field textarea{ min-height:140px; resize:vertical; }
.form-note{ font-size:var(--step--1); color:var(--muted); }
.form-status{ font-size:var(--step-0); margin-top:.8rem; min-height:1.4em; }
.form-status.ok{ color:var(--clay-deep); }

/* ---------- Franja CTA ---------- */
.cta-band{ text-align:center; }
.cta-band h2{ font-size:var(--step-4); }
.cta-actions{ display:flex; flex-wrap:wrap; gap:1rem; justify-content:center; align-items:center; margin-top:2.4rem; }
.cta-sep{ color:var(--muted); }

/* ---------- Footer ---------- */
.site-footer{ background:var(--ink); color:color-mix(in oklab,var(--paper) 80%,transparent); padding-block:clamp(3.5rem,7vw,6rem); }
.site-footer a{ color:inherit; }
.footer-grid{ display:grid; gap:clamp(2rem,5vw,4rem); grid-template-columns:1fr; }
@media (min-width:760px){ .footer-grid{ grid-template-columns:1.4fr 1fr 1fr; } }
.site-footer .brand{ color:var(--white); }
.footer-col h4{ font-family:var(--sans); font-size:var(--step--1); letter-spacing:.2em; text-transform:uppercase; color:color-mix(in oklab,var(--paper) 55%,transparent); font-weight:500; margin-bottom:1.2rem; }
.footer-col a{ display:block; padding:.35rem 0; opacity:.82; transition:opacity .3s,color .3s; }
.footer-col a:hover{ opacity:1; color:var(--white); }
.footer-bottom{ display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:center;
  margin-top:clamp(2.5rem,5vw,4rem); padding-top:1.6rem; border-top:1px solid rgba(255,255,255,.12);
  font-size:var(--step--1); color:color-mix(in oklab,var(--paper) 55%,transparent); }
.footer-bottom a:hover{ color:var(--white); }

/* ---------- WhatsApp flotante ---------- */
.wa-float{
  position:fixed; right:clamp(1rem,3vw,2rem); bottom:clamp(1rem,3vw,2rem); z-index:90;
  width:56px; height:56px; border-radius:50%; background:#1f8f5a; color:#fff;
  display:grid; place-items:center; box-shadow:0 10px 30px rgba(31,143,90,.35);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.wa-float:hover{ transform:translateY(-3px) scale(1.05); box-shadow:0 16px 40px rgba(31,143,90,.45); }
.wa-float svg{ width:28px; height:28px; }

/* ---------- Reveal (GSAP fallback) ---------- */
.reveal{ opacity:0; }
.no-js .reveal, .reveal.is-in{ opacity:1; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1 !important; transform:none !important; } }

/* ---------- Páginas legales ---------- */
.legal{ padding-top:clamp(8rem,15vh,11rem); }
.legal .wrap{ --container:820px; }
.legal h1{ font-size:var(--step-3); margin-bottom:.6rem; }
.legal .updated{ color:var(--muted); font-size:var(--step--1); margin-bottom:2.5rem; letter-spacing:.02em; }
.legal h2{ font-size:var(--step-1); margin:2.6rem 0 .8rem; }
.legal p,.legal li{ color:var(--ink-soft); max-width:70ch; }
.legal ul{ list-style:disc; padding-left:1.3rem; margin:.6rem 0; }
.legal li{ margin:.35rem 0; }
.legal a{ color:var(--clay); }
.legal a:hover{ text-decoration:underline; }
.legal .divider{ margin:2.5rem 0; }

/* ---------- Utilidades ---------- */
.stack-sm > * + *{ margin-top:1rem; }
.stack > * + *{ margin-top:1.6rem; }
.stack-lg > * + *{ margin-top:2.4rem; }
.mt-1{ margin-top:1rem; } .mt-2{ margin-top:2rem; } .mt-3{ margin-top:3rem; }
.center{ text-align:center; } .center-x{ margin-inline:auto; }
.divider{ height:1px; background:var(--line); border:0; }
.pill{ display:inline-flex; align-items:center; gap:.5em; font-size:var(--step--1); letter-spacing:.02em; color:var(--ink-soft); }
.pill .dot{ width:7px; height:7px; border-radius:50%; background:var(--clay); }
\n/* Elementor must be visually transparent: original Coupling DOM/CSS remains authoritative. */
body.coupling-exact-page .elementor-location-header,body.coupling-exact-page .elementor-location-footer{display:none!important}
body.coupling-exact-page .elementor,body.coupling-exact-page .elementor-section,body.coupling-exact-page .elementor-container,body.coupling-exact-page .elementor-column,body.coupling-exact-page .elementor-widget-wrap,body.coupling-exact-page .elementor-widget,body.coupling-exact-page .elementor-widget-container{margin:0!important;padding:0!important;max-width:none!important;min-height:0;gap:0!important}
body.coupling-exact-page .elementor-section,body.coupling-exact-page .elementor-container,body.coupling-exact-page .elementor-column,body.coupling-exact-page .elementor-widget-wrap{display:contents!important}
body.coupling-exact-page .elementor-widget-html{width:auto!important}
body.coupling-exact-page .elementor-widget-container>style{display:none!important}


/* ===== Coupling v3.1 — menú móvil + GTranslate ===== */
/* GTranslate flotante, alineado sobre WhatsApp */
body.coupling-exact-page .gtranslate_wrapper,
body.coupling-exact-page .gt_switcher_wrapper,
body.coupling-exact-page .gt_float_switcher{
  position:fixed !important;
  right:clamp(1rem,3vw,2rem) !important;
  bottom:calc(clamp(1rem,3vw,2rem) + 70px) !important;
  left:auto !important; top:auto !important;
  z-index:91 !important;
}
body.coupling-exact-page .gt_float_switcher,
body.coupling-exact-page .gt_switcher{
  font-family:var(--sans) !important;
  background:rgba(244,240,232,.94) !important;
  border:1px solid rgba(39,35,32,.16) !important;
  border-radius:999px !important;
  box-shadow:0 10px 28px rgba(39,35,32,.13) !important;
  backdrop-filter:blur(12px) saturate(1.15);
  overflow:hidden;
}
body.coupling-exact-page .gt_float_switcher .gt-selected,
body.coupling-exact-page .gt_switcher .selected{
  background:transparent !important;
}
body.coupling-exact-page .gt_float_switcher .gt-selected .gt-current-lang,
body.coupling-exact-page .gt_switcher .selected a{
  color:var(--ink) !important;
  font-size:11px !important; font-weight:600 !important;
  letter-spacing:.12em !important; text-transform:uppercase !important;
  padding:10px 13px !important;
}
body.coupling-exact-page .gt_float_switcher img,
body.coupling-exact-page .gt_switcher img{ width:18px !important; height:auto !important; margin-right:7px !important; }
body.coupling-exact-page .gt_float_switcher .gt_options,
body.coupling-exact-page .gt_switcher .option{
  background:var(--paper) !important; border:0 !important;
}
body.coupling-exact-page .gt_float_switcher .gt_options a,
body.coupling-exact-page .gt_switcher .option a{
  color:var(--ink-soft) !important; font-family:var(--sans) !important;
  font-size:12px !important; padding:9px 13px !important;
}
body.coupling-exact-page .gt_float_switcher .gt_options a:hover,
body.coupling-exact-page .gt_switcher .option a:hover{ background:var(--paper-3) !important; color:var(--clay) !important; }

@media (max-width:860px){
  .site-header{ padding:1rem 1.15rem; }
  .site-header.is-scrolled{ padding-block:.72rem; }
  .nav-toggle{
    width:48px; height:48px; border:1px solid currentColor; border-radius:50%;
    background:rgba(244,240,232,.08); backdrop-filter:blur(8px);
  }
  .nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{ width:19px; }
  .nav{
    justify-content:flex-start;
    padding:7.6rem 1.35rem 1.5rem;
    background:var(--paper);
    clip-path:circle(0 at calc(100% - 2.6rem) 2.6rem);
    transition:clip-path .72s cubic-bezier(.77,0,.18,1);
  }
  .nav-open .nav{ clip-path:circle(150% at calc(100% - 2.6rem) 2.6rem); }
  .nav::before{
    content:"COUPLING / BCN"; margin:0 0 1.15rem;
    padding-bottom:.9rem; border-bottom:1px solid var(--line);
    font-size:.62rem; letter-spacing:.28em; color:var(--muted);
  }
  .nav > a:not(.nav__cta){
    min-height:66px; padding:.7rem .1rem;
    font-family:var(--serif); font-size:clamp(2rem,9vw,3.15rem); font-weight:400;
    letter-spacing:-.035em; border-bottom:1px solid var(--line);
  }
  .nav > a:not(.nav__cta)::before{
    font-family:var(--sans); font-size:.58rem; letter-spacing:.15em;
    color:var(--muted); margin-right:1rem;
  }
  .nav > a:nth-of-type(1)::before{content:"01"}.nav > a:nth-of-type(2)::before{content:"02"}
  .nav > a:nth-of-type(3)::before{content:"03"}.nav > a:nth-of-type(4)::before{content:"04"}
  .nav > a:not(.nav__cta)::after{ margin-left:auto; }
  .nav__cta{ width:100%; justify-content:center; margin-top:1.5rem; padding:1rem 1.2rem; }
  .nav__foot{ width:100%; justify-content:space-between; border-top:1px solid var(--line); padding-top:1.1rem; margin-top:auto; }
  .nav__foot a{ font-size:.66rem; letter-spacing:.12em; }
  body.nav-open .site-header{ background:transparent!important; box-shadow:none!important; backdrop-filter:none!important; }
  body.coupling-exact-page .gtranslate_wrapper,
  body.coupling-exact-page .gt_switcher_wrapper,
  body.coupling-exact-page .gt_float_switcher{
    right:1rem !important; bottom:calc(1rem + 66px) !important;
  }
  .wa-float{ right:1rem; bottom:1rem; width:54px; height:54px; }
}


/* v3.2 — navegación limpia: sin numeración ni flechas decorativas */
.arw{display:none!important;}
.nav > a:not(.nav__cta)::after{content:none!important;display:none!important;}
@media (max-width:860px){
  .nav > a:not(.nav__cta)::before{content:none!important;display:none!important;}
  .nav > a:nth-of-type(1)::before,
  .nav > a:nth-of-type(2)::before,
  .nav > a:nth-of-type(3)::before,
  .nav > a:nth-of-type(4)::before{content:none!important;display:none!important;}
}

/* v3.5 — catálogo fotográfico completo */

/* v3.6 — catálogo fotográfico completo: 34 imágenes, compacto y uniforme */
.coupling-products-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:clamp(.7rem,1.25vw,1.15rem) !important;
  align-items:start;
}
.coupling-product-photo{margin:0 !important;min-width:0 !important;}
.coupling-product-photo .piece__media{
  display:block !important;
  position:relative;
  width:100%;
  aspect-ratio:1/1 !important;
  overflow:hidden;
  margin:0 !important;
  background:#eee9df;
  cursor:pointer;
}
.coupling-product-photo .piece__media img{
  display:block;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  object-fit:cover !important;
  object-position:center !important;
  transition:transform .55s var(--ease);
}
.coupling-product-photo:hover .piece__media img{transform:scale(1.025)}
.coupling-product-photo .piece__media:after{
  content:"Ver en Instagram";
  position:absolute;left:.75rem;bottom:.75rem;
  background:rgba(246,241,232,.94);color:var(--ink);
  padding:.45rem .65rem;font-size:.62rem;letter-spacing:.11em;text-transform:uppercase;
  opacity:0;transform:translateY(6px);transition:.28s var(--ease);pointer-events:none;
}
.coupling-product-photo:hover .piece__media:after{opacity:1;transform:none}
@media(max-width:980px){.coupling-products-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important}}
@media(max-width:640px){
 .coupling-products-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:.55rem !important}
 .coupling-product-photo .piece__media:after{display:none}
}

/* === v3.7 · Dolly Gallery home (adaptación nativa para WordPress) === */
.coupling-exact-page .gallery.cplx-dolly{
  position:relative;
  display:block;
  height:min(76vh,720px);
  min-height:560px;
  perspective:1000px;
  perspective-origin:50% 48%;
  overflow:hidden;
  isolation:isolate;
  border-radius:var(--radius);
  background:var(--paper-3);
  touch-action:pan-y;
}
.coupling-exact-page .gallery.cplx-dolly .ga{
  --dolly-x:0px; --dolly-y:0px; --dolly-z:0px; --dolly-scale:1; --dolly-opacity:1; --dolly-rot:0deg;
  position:absolute;
  left:50%; top:50%;
  width:min(340px,72vw);
  aspect-ratio:.8;
  overflow:hidden;
  border-radius:7px;
  grid-column:auto;
  transform-style:preserve-3d;
  will-change:transform,opacity,filter;
  opacity:var(--dolly-opacity);
  transform:translate3d(calc(-50% + var(--dolly-x)),calc(-50% + var(--dolly-y)),var(--dolly-z)) rotateZ(var(--dolly-rot)) scale(var(--dolly-scale));
  box-shadow:0 22px 60px rgba(32,27,22,.14);
  background:var(--paper-2);
}
.coupling-exact-page .gallery.cplx-dolly .ga img{ width:100%; height:100%; object-fit:cover; transform:none!important; transition:none; }
.coupling-exact-page .gallery.cplx-dolly::after{
  content:""; position:absolute; inset:0; z-index:20; pointer-events:none;
  background:linear-gradient(to bottom,rgba(245,241,234,.18),transparent 18%,transparent 82%,rgba(245,241,234,.2));
}
@media (max-width:720px){
  /* Compensa el header sticky: el contenido ya no queda escondido debajo. */
  .coupling-exact-page .hero:not(.hero-cover){ padding-top:clamp(9rem,19vh,11rem); }
  .coupling-exact-page .hero-cover__inner{ padding-top:5.5rem; }
  .coupling-exact-page .gallery.cplx-dolly{ height:66vh; min-height:500px; }
  .coupling-exact-page .gallery.cplx-dolly .ga{ width:min(285px,72vw); }
}
@media (prefers-reduced-motion:reduce){
  .coupling-exact-page .gallery.cplx-dolly{ display:grid; height:auto; min-height:0; grid-template-columns:1fr 1fr; gap:.8rem; background:transparent; overflow:visible; perspective:none; }
  .coupling-exact-page .gallery.cplx-dolly .ga{ position:relative; inset:auto; width:auto; aspect-ratio:4/5; opacity:1!important; transform:none!important; }
}
