/* =========================================================================
   DJHONES — Sistema visual
   Galería / retrato clásico: espresso, marfil y oro antiguo.
   Tipografías: Cormorant Garamond (display) + Jost (texto, eco del logo).
   ========================================================================= */

:root{
  --ink:#15110d;
  --ink-2:#1f1914;
  --walnut:#2c2119;
  --ivory:#f5f0e8;
  --paper:#fbf8f3;
  --sand:#ebe3d6;
  --line:#ddd2c1;
  --line-dark:rgba(245,240,232,.14);

  --gold:#b08d57;
  --gold-light:#d2b37a;
  --gold-ink:#86673a;

  --text:#1e1914;
  --muted:#685d52;
  --muted-dark:#b8ad9f;

  --wa:#1fa855;

  --serif:"Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
  --sans:"Jost", "Helvetica Neue", Arial, system-ui, sans-serif;

  --container:1240px;
  --gutter:clamp(16px, 4vw, 40px);
  --header-h:76px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --shadow:0 24px 60px -28px rgba(21,17,13,.45);
}

/* ---------- Base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--ivory); color:var(--text);
  font-family:var(--sans); font-weight:400; font-size:16px; line-height:1.7;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.menu-open{ overflow:hidden; }
img,video{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; cursor:pointer; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:500; line-height:1.08; margin:0; letter-spacing:-.01em; }
p{ margin:0; }
::selection{ background:var(--gold); color:var(--ink); }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
.container--narrow{ max-width:860px; }
.section{ padding-block:clamp(72px, 10vw, 140px); }
.section--tight{ padding-block:clamp(56px, 7vw, 96px); }
.section--paper{ background:var(--paper); }
.section--sand{ background:var(--sand); }
.section--dark{ background:var(--ink); color:var(--ivory); }
.section--dark .lead,.section--dark .muted{ color:var(--muted-dark); }
.center{ text-align:center; }

/* ---------- Tipografía ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:14px;
  font-family:var(--sans); font-size:12px; font-weight:500;
  letter-spacing:.28em; text-transform:uppercase; color:var(--gold-ink);
}
.eyebrow::before{ content:""; width:36px; height:1px; background:currentColor; opacity:.7; }
.center .eyebrow{ justify-content:center; }
.center .eyebrow::after{ content:""; width:36px; height:1px; background:currentColor; opacity:.7; }
.section--dark .eyebrow,.hero .eyebrow,.band .eyebrow{ color:var(--gold-light); }

.display{ font-size:clamp(46px, 7.4vw, 104px); font-weight:400; line-height:.98; letter-spacing:-.02em; }
.display em,.h2 em{ font-style:italic; color:var(--gold-light); }
.section:not(.section--dark) .h2 em{ color:var(--gold-ink); }
.h2{ font-size:clamp(34px, 4.6vw, 60px); font-weight:400; }
.h3{ font-size:clamp(24px, 2.4vw, 30px); font-weight:500; }
.lead{ font-size:clamp(17px, 1.4vw, 19px); color:var(--muted); font-weight:300; max-width:60ch; }
.center .lead{ margin-inline:auto; }
.muted{ color:var(--muted); }
.section-head{ margin-bottom:clamp(40px, 6vw, 72px); display:grid; gap:18px; }
.section-head.center{ justify-items:center; }

/* ---------- Botones ---------- */
.btn{
  --bg:var(--ink); --fg:var(--ivory); --bd:var(--ink);
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  min-height:52px; padding:0 30px;
  background:var(--bg); color:var(--fg); border:1px solid var(--bd); border-radius:0;
  font-family:var(--sans); font-size:13px; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  transition:background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease);
  white-space:nowrap;
}
.btn:hover{ --bg:var(--gold); --bd:var(--gold); --fg:var(--ink); }
.btn--gold{ --bg:var(--gold); --bd:var(--gold); --fg:var(--ink); }
.btn--gold:hover{ --bg:var(--gold-light); --bd:var(--gold-light); }
.btn--ghost{ --bg:transparent; --fg:var(--ink); --bd:var(--ink); }
.btn--ghost:hover{ --bg:var(--ink); --fg:var(--ivory); --bd:var(--ink); }
.btn--light{ --bg:transparent; --fg:var(--ivory); --bd:rgba(245,240,232,.55); }
.btn--light:hover{ --bg:var(--ivory); --fg:var(--ink); --bd:var(--ivory); }
.btn--wa{ --bg:var(--wa); --bd:var(--wa); --fg:#fff; }
.btn--wa:hover{ --bg:#178a45; --bd:#178a45; --fg:#fff; }
.btn svg{ width:18px; height:18px; flex:none; }
.btn-row{ display:flex; flex-wrap:wrap; gap:14px; }
.center .btn-row,.btn-row.center{ justify-content:center; }
.link-arrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:13px; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  border-bottom:1px solid currentColor; padding-bottom:4px;
  transition:gap .3s var(--ease), color .3s var(--ease);
}
.link-arrow:hover{ gap:16px; color:var(--gold-ink); }
.section--dark .link-arrow:hover{ color:var(--gold-light); }

/* ---------- Logo (recorte de la palabra DJHONES del archivo) ---------- */
.logo{ display:block; width:150px; aspect-ratio:920/175; overflow:hidden; position:relative; z-index:2; flex:none; }
.logo img{ position:absolute; width:199.67%; height:auto; max-width:none; left:-50.54%; top:-20%; }
.logo .logo--light{ opacity:1; transition:opacity .3s; }
.logo .logo--dark{ opacity:0; transition:opacity .3s; }

/* ---------- Header ---------- */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:50; height:var(--header-h);
  color:var(--ivory);
  transition:background .4s var(--ease), color .4s var(--ease), box-shadow .4s var(--ease), height .4s var(--ease);
}
.site-header .container{ height:100%; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.site-header.is-solid,
body:not(.has-dark-hero) .site-header{
  background:rgba(245,240,232,.94); color:var(--ink);
  backdrop-filter:saturate(140%) blur(12px); -webkit-backdrop-filter:saturate(140%) blur(12px);
  box-shadow:0 1px 0 var(--line);
}
.site-header.is-solid .logo--light,
body:not(.has-dark-hero) .site-header .logo--light{ opacity:0; }
.site-header.is-solid .logo--dark,
body:not(.has-dark-hero) .site-header .logo--dark{ opacity:1; }

.nav{ display:flex; align-items:center; gap:clamp(18px, 2.4vw, 38px); }
.nav a{
  position:relative; font-size:12.5px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; padding-block:6px;
}
.nav a:not(.btn)::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:currentColor;
  transform:scaleX(0); transform-origin:right; transition:transform .4s var(--ease);
}
.nav a:not(.btn):hover::after,.nav a[aria-current="page"]::after{ transform:scaleX(1); transform-origin:left; }
.nav .btn{ min-height:42px; padding:0 20px; font-size:12px; --bg:transparent; --fg:currentColor; --bd:currentColor; }
.nav .btn:hover{ --bg:var(--gold); --bd:var(--gold); --fg:var(--ink); }

.burger{ display:none; width:44px; height:44px; background:none; border:0; padding:10px; position:relative; z-index:2; }
.burger span{ display:block; height:1px; background:currentColor; margin:6px 0; transition:transform .35s var(--ease), opacity .3s; }
.site-header[data-menu="open"] .burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.site-header[data-menu="open"] .burger span:nth-child(2){ opacity:0; }
.site-header[data-menu="open"] .burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:960px){
  .burger{ display:block; }
  .nav{
    position:fixed; inset:0; z-index:1; background:var(--ink); color:var(--ivory);
    flex-direction:column; justify-content:center; gap:26px;
    opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility .4s;
  }
  .nav a{ font-family:var(--serif); font-size:34px; letter-spacing:0; text-transform:none; font-weight:400; }
  .nav .btn{ font-family:var(--sans); font-size:13px; letter-spacing:.18em; text-transform:uppercase; min-height:52px; margin-top:12px; }
  .site-header[data-menu="open"] .nav{ opacity:1; visibility:visible; }
  .site-header[data-menu="open"]{ color:var(--ivory); }
  .site-header[data-menu="open"] .logo--light{ opacity:1 !important; }
  .site-header[data-menu="open"] .logo--dark{ opacity:0 !important; }
}

/* ---------- WhatsApp flotante ---------- */
.wa-fab{
  position:fixed; right:clamp(16px, 3vw, 28px); bottom:clamp(16px, 3vw, 28px); z-index:40;
  width:58px; height:58px; border-radius:50%; background:var(--wa); color:#fff;
  display:grid; place-items:center; box-shadow:0 14px 34px -10px rgba(0,0,0,.45);
  transition:transform .35s var(--ease);
}
.wa-fab:hover{ transform:translateY(-3px) scale(1.04); }
.wa-fab svg{ width:28px; height:28px; }

/* ---------- Hero ---------- */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:flex-end;
  color:var(--ivory); background:var(--ink); overflow:hidden; isolation:isolate;
}
.hero__media{ position:absolute; inset:0; z-index:-2; }
.hero__media img{ width:100%; height:100%; object-fit:cover; object-position:70% center; transform:scale(1.04); }
.hero::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(90deg, rgba(21,17,13,.92) 0%, rgba(21,17,13,.72) 38%, rgba(21,17,13,.12) 72%),
    linear-gradient(0deg, rgba(21,17,13,.85) 0%, rgba(21,17,13,0) 45%);
}
.hero__inner{ padding-block:calc(var(--header-h) + 60px) clamp(56px, 9vw, 110px); width:100%; }
.hero__copy{ max-width:640px; display:grid; gap:26px; }
.hero__copy .lead{ color:rgba(245,240,232,.78); }
.hero__meta{
  margin-top:clamp(40px, 6vw, 72px); padding-top:26px; border-top:1px solid var(--line-dark);
  display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:24px;
}
.hero__meta div{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:rgba(245,240,232,.7); }
.hero__meta strong{ display:block; font-family:var(--serif); font-size:26px; letter-spacing:0; text-transform:none; font-weight:500; color:var(--ivory); margin-bottom:4px; }
@media (max-width:760px){
  .hero{ align-items:flex-end; }
  .hero::before{ background:linear-gradient(0deg, rgba(21,17,13,.96) 0%, rgba(21,17,13,.78) 50%, rgba(21,17,13,.25) 100%); }
  .hero__media img{ object-position:72% center; }
  .hero__meta{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}

/* Hero de página interior */
.page-hero{
  position:relative; color:var(--ivory); background:var(--ink); isolation:isolate; overflow:hidden;
  padding-block:calc(var(--header-h) + clamp(70px, 10vw, 130px)) clamp(70px, 9vw, 120px);
}
.page-hero__media{ position:absolute; inset:0; z-index:-2; }
.page-hero__media img{ width:100%; height:100%; object-fit:cover; object-position:center 28%; opacity:.55; }
.page-hero::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(21,17,13,.55), rgba(21,17,13,.9)); }
.page-hero__copy{ display:grid; gap:22px; max-width:760px; }
.page-hero.center .page-hero__copy{ margin-inline:auto; justify-items:center; text-align:center; }
.page-hero .lead{ color:rgba(245,240,232,.78); }
.page-hero .eyebrow{ color:var(--gold-light); }
.page-hero h1{ font-size:clamp(42px, 6vw, 80px); font-weight:400; }

/* ---------- Barra de confianza ---------- */
.trust{ background:var(--ink-2); color:var(--ivory); border-top:1px solid var(--line-dark); }
.trust ul{ list-style:none; margin:0; padding:22px 0; display:flex; flex-wrap:wrap; justify-content:space-between; gap:14px 28px; }
.trust li{ display:flex; align-items:center; gap:12px; font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; color:rgba(245,240,232,.82); }
.trust li::before{ content:""; width:6px; height:6px; transform:rotate(45deg); background:var(--gold); }
@media (max-width:760px){ .trust ul{ justify-content:flex-start; } .trust li{ width:calc(50% - 14px); font-size:11px; } }

/* ---------- Editorial (texto + imagen) ---------- */
.split{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(40px, 7vw, 110px); align-items:center; }
.split--rev > :first-child{ order:2; }
.split__copy{ display:grid; gap:24px; align-content:start; }
.split__media{ position:relative; }
.split__media img{ width:100%; aspect-ratio:4/5; object-fit:cover; box-shadow:var(--shadow); }
.split__media::after{
  content:""; position:absolute; inset:18px -18px -18px 18px; border:1px solid var(--gold); z-index:-1; opacity:.55;
}
@media (max-width:900px){
  .split{ grid-template-columns:1fr; }
  .split--rev > :first-child{ order:0; }
  .split__media::after{ inset:12px -12px -12px 12px; }
}

/* ---------- Antes / después ---------- */
.ba-grid{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:clamp(18px, 2.4vw, 32px); }
.ba{ position:relative; margin:0; background:var(--ink); overflow:hidden; cursor:pointer; }
.ba img{ width:100%; aspect-ratio:3/4; object-fit:cover; transition:opacity .6s var(--ease), transform 1.2s var(--ease); }
.ba .ba__after{ position:absolute; inset:0; height:100%; }
.ba[data-state="before"] .ba__after{ opacity:0; }
.ba:hover img{ transform:scale(1.03); }
.ba figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:22px 22px 20px;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:linear-gradient(0deg, rgba(21,17,13,.85), rgba(21,17,13,0)); color:var(--ivory);
}
.ba__label{ font-family:var(--serif); font-size:22px; font-style:italic; }
.ba__toggle{
  background:rgba(245,240,232,.12); border:1px solid rgba(245,240,232,.4); color:var(--ivory);
  font-size:11px; letter-spacing:.18em; text-transform:uppercase; padding:9px 14px; backdrop-filter:blur(6px);
  transition:background .3s, color .3s;
}
.ba:hover .ba__toggle{ background:var(--ivory); color:var(--ink); }
@media (max-width:900px){ .ba-grid{ grid-template-columns:1fr; max-width:460px; margin-inline:auto; } }

/* ---------- Estilos (tarjetas de imagen) ---------- */
.styles-grid{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:clamp(14px, 2vw, 26px); }
.style-card{ display:grid; gap:16px; }
.style-card__media{ overflow:hidden; background:var(--sand); }
.style-card__media img{ width:100%; aspect-ratio:2/3; object-fit:cover; transition:transform 1.2s var(--ease); }
.style-card:hover img{ transform:scale(1.05); }
.style-card h3{ font-size:24px; }
.style-card p{ font-size:14px; color:var(--muted); margin-top:-8px; }
@media (max-width:900px){ .styles-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }

/* ---------- Banda con imagen fija ---------- */
.band{
  position:relative; color:var(--ivory); isolation:isolate; overflow:hidden;
  padding-block:clamp(110px, 16vw, 220px); text-align:center;
}
.band__media{ position:absolute; inset:0; z-index:-2; }
.band__media img{ width:100%; height:100%; object-fit:cover; }
.band::before{ content:""; position:absolute; inset:0; z-index:-1; background:rgba(21,17,13,.68); }
.band .container{ display:grid; gap:26px; justify-items:center; }
.band .lead{ color:rgba(245,240,232,.8); }
.band blockquote{ margin:0; font-family:var(--serif); font-size:clamp(30px, 4.2vw, 56px); font-weight:400; font-style:italic; line-height:1.15; max-width:22ch; }

/* ---------- Proceso ---------- */
.steps{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:0; border-top:1px solid var(--line); }
.steps li{ padding:34px 26px 0 0; display:grid; gap:12px; align-content:start; }
.steps li + li{ padding-left:26px; border-left:1px solid var(--line); }
.steps__num{ font-family:var(--serif); font-size:46px; line-height:1; color:var(--gold); font-weight:400; }
.steps h3{ font-size:22px; }
.steps p{ font-size:14.5px; color:var(--muted); }
.section--dark .steps{ border-color:var(--line-dark); }
.section--dark .steps li + li{ border-color:var(--line-dark); }
.section--dark .steps p{ color:var(--muted-dark); }
@media (max-width:980px){
  .steps{ grid-template-columns:1fr; border-top:0; }
  .steps li,.steps li + li{ padding:26px 0; border-left:0; border-top:1px solid var(--line); grid-template-columns:72px 1fr; column-gap:16px; }
  .steps li > :not(.steps__num){ grid-column:2; }
  .steps__num{ grid-row:1 / span 2; }
  .section--dark .steps li{ border-color:var(--line-dark); }
}

/* Etapas (página de gracias) */
.stages{ display:grid; gap:clamp(56px, 8vw, 110px); }
.stage{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px, 6vw, 90px); align-items:center; }
.stage:nth-child(even) .stage__media{ order:2; }
.stage__media img{ width:100%; max-width:500px; margin-inline:auto; aspect-ratio:1/1; object-fit:cover; box-shadow:var(--shadow); }
.stage__body{ display:grid; gap:16px; }
.stage__num{ font-family:var(--serif); font-size:64px; line-height:1; color:var(--gold); }
.stage__body p{ color:var(--muted); max-width:46ch; }
@media (max-width:820px){ .stage{ grid-template-columns:1fr; } .stage:nth-child(even) .stage__media{ order:0; } }

/* ---------- Galería horizontal ---------- */
.gallery{ display:grid; grid-auto-flow:column; grid-auto-columns:min(78vw, 820px); gap:clamp(14px, 2vw, 26px);
  overflow-x:auto; scroll-snap-type:x mandatory; padding-inline:var(--gutter); padding-bottom:18px;
  scrollbar-width:thin; scrollbar-color:var(--gold) transparent; }
.gallery figure{ margin:0; scroll-snap-align:center; }
.gallery img{ width:100%; aspect-ratio:16/9; object-fit:cover; }
.gallery figcaption{ margin-top:12px; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted-dark); }

/* ---------- Testimonios ---------- */
.quotes{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:clamp(18px, 2.4vw, 32px); }
.quote{ background:var(--paper); border:1px solid var(--line); padding:clamp(28px, 3vw, 40px); display:grid; gap:22px; align-content:space-between; margin:0; }
.quote__stars{ color:var(--gold); letter-spacing:.3em; font-size:13px; }
.quote blockquote{ margin:0; font-family:var(--serif); font-size:23px; line-height:1.35; font-weight:400; }
.quote figcaption{ display:flex; align-items:center; gap:14px; font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.quote figcaption img{ width:46px; height:46px; border-radius:50%; object-fit:cover; filter:grayscale(1); }
@media (max-width:900px){ .quotes{ grid-template-columns:1fr; } }

/* ---------- Tarjetas de información ---------- */
.features{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.feature{ padding:clamp(28px, 3.4vw, 46px) clamp(20px, 2.6vw, 38px); display:grid; gap:14px; align-content:start; }
.feature + .feature{ border-left:1px solid var(--line); }
.feature__icon{ width:44px; height:44px; color:var(--gold); }
.feature__icon svg{ width:100%; height:100%; }
.feature h3{ font-size:25px; }
.feature p{ color:var(--muted); font-size:15px; }
.section--dark .features,.section--dark .feature + .feature{ border-color:var(--line-dark); }
.section--dark .feature p{ color:var(--muted-dark); }
@media (max-width:860px){ .features{ grid-template-columns:1fr; } .feature + .feature{ border-left:0; border-top:1px solid var(--line); } .section--dark .feature + .feature{ border-color:var(--line-dark); } }

/* ---------- CTA final ---------- */
.cta-final{ text-align:center; display:grid; gap:24px; justify-items:center; }
.cta-final .h2{ max-width:18ch; }

/* ---------- Colección (moodboard: scripts/pacientes.js) ---------- */
.mood__board{ columns:3 300px; column-gap:clamp(14px, 2vw, 26px); }
.mood__card{ position:relative; margin:0 0 clamp(14px, 2vw, 26px); break-inside:avoid; background:var(--ink); overflow:hidden; cursor:pointer; }
.mood__img{ width:100%; height:auto; opacity:0; transition:opacity .6s var(--ease), transform 1.2s var(--ease); }
.mood__img.is-loaded{ opacity:1; }
.mood__card:hover .mood__img{ transform:scale(1.03); }
.mood__badge{
  position:absolute; left:16px; top:16px; padding:7px 12px;
  background:rgba(21,17,13,.7); color:var(--ivory); backdrop-filter:blur(6px);
  font-size:11px; letter-spacing:.2em; text-transform:uppercase; pointer-events:none;
}
.mood__btn{ position:absolute; inset:0; background:transparent; border:0; }
.mood__coach{
  position:fixed; left:50%; bottom:28px; z-index:60; transform:translate(-50%, 20px); opacity:0;
  background:var(--ink); color:var(--ivory); padding:14px 22px; font-size:13px; letter-spacing:.08em;
  box-shadow:var(--shadow); transition:opacity .4s var(--ease), transform .4s var(--ease);
}
.mood__coach.is-on{ opacity:1; transform:translate(-50%, 0); }
.mood__coach.is-hide{ opacity:0; transform:translate(-50%, 20px); }

/* ---------- Texto legal / prosa ---------- */
.prose{ display:grid; gap:56px; }
.prose article{ display:grid; gap:14px; padding-top:40px; border-top:1px solid var(--line); scroll-margin-top:calc(var(--header-h) + 24px); }
.prose h2{ font-size:clamp(28px, 3vw, 38px); }
.prose p{ color:var(--muted); }

/* ---------- 404 ---------- */
.notfound{ min-height:100svh; display:grid; place-items:center; text-align:center; padding:calc(var(--header-h) + 40px) var(--gutter) 80px; }
.notfound__code{ font-family:var(--serif); font-size:clamp(110px, 20vw, 220px); line-height:.9; color:var(--gold); font-weight:400; }
.notfound .container{ display:grid; gap:24px; justify-items:center; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--ink); color:var(--muted-dark); padding-top:clamp(70px, 9vw, 110px); }
.footer-grid{ display:grid; grid-template-columns:1.4fr repeat(4, 1fr); gap:clamp(32px, 4vw, 64px); padding-bottom:clamp(50px, 7vw, 80px); }
.footer-brand{ display:grid; gap:20px; align-content:start; }
.footer-brand .logo{ width:170px; }
.footer-brand .logo--light{ opacity:1; }
.footer-brand p{ max-width:34ch; font-size:15px; }
.site-footer h4{ font-family:var(--sans); font-size:12px; font-weight:500; letter-spacing:.24em; text-transform:uppercase; color:var(--ivory); margin-bottom:20px; }
.site-footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:12px; font-size:15px; }
.site-footer a{ transition:color .3s; }
.site-footer a:hover{ color:var(--gold-light); }
.footer-bottom{ border-top:1px solid var(--line-dark); padding-block:26px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:13px; }
@media (max-width:860px){ .footer-grid{ grid-template-columns:1fr 1fr; } .footer-brand{ grid-column:1 / -1; } }

/* ---------- Animación de entrada ---------- */
.js .reveal{ opacity:0; transform:translateY(28px); transition:opacity 1s var(--ease), transform 1s var(--ease); }
.js .reveal.in{ opacity:1; transform:none; }
.js .reveal[data-delay="1"]{ transition-delay:.12s; }
.js .reveal[data-delay="2"]{ transition-delay:.24s; }
.js .reveal[data-delay="3"]{ transition-delay:.36s; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .js .reveal{ opacity:1; transform:none; transition:none; }
  *{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
}

/* =========================================================================
   COTIZADOR (/precio/) — clases generadas por scripts/cotizador.js
   ========================================================================= */
.cot-progress{
  position:sticky; top:var(--header-h); z-index:30; background:rgba(245,240,232,.96);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-bottom:1px solid var(--line);
}
.cot-progress .container{ display:flex; align-items:center; gap:24px; min-height:64px; }
.cot-progress__label{ font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); white-space:nowrap; }
.cot-progress__bar{ flex:1; height:1px; background:var(--line); position:relative; }
.cot-progress__fill{ position:absolute; inset:0 auto 0 0; width:0; background:var(--gold); height:2px; top:-.5px; transition:width .5s var(--ease); }
.cot-progress__dots{ display:flex; gap:6px; }
.cot-dot{
  width:30px; height:30px; border-radius:50%; border:1px solid var(--line); background:transparent;
  font-size:12px; color:var(--muted); display:grid; place-items:center; transition:all .3s var(--ease);
}
.cot-dot:hover{ border-color:var(--ink); color:var(--ink); }
.cot-dot.is-done{ background:var(--sand); border-color:var(--sand); color:var(--ink); }
.cot-dot.is-active{ background:var(--ink); border-color:var(--ink); color:var(--ivory); }
@media (max-width:760px){ .cot-progress__label{ display:none; } .cot-dot{ width:26px; height:26px; font-size:11px; } .cot-progress__dots{ gap:4px; } }

.cot-layout{ display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:clamp(32px, 5vw, 72px); align-items:start; padding-block:clamp(40px, 6vw, 80px) clamp(90px, 10vw, 140px); }
@media (max-width:1023.98px){ .cot-layout{ grid-template-columns:1fr; } }

.cot-step{ padding-block:clamp(44px, 6vw, 72px); border-bottom:1px solid var(--line); scroll-margin-top:calc(var(--header-h) + 80px); }

.cot-step:first-child{ padding-top:0; }
.cot-step:last-of-type{ border-bottom:0; }
.cot-step__head{ display:grid; gap:12px; margin-bottom:32px; }
.cot-step__num{ font-size:11.5px; letter-spacing:.26em; text-transform:uppercase; color:var(--gold-ink); }
.cot-step__title{ font-size:clamp(30px, 3.4vw, 44px); font-weight:400; }
.cot-step__sub{ color:var(--muted); max-width:60ch; }
.cot-step__running{ margin-top:26px; font-size:14px; color:var(--muted); }
.cot-step__running strong{ font-family:var(--serif); font-size:22px; color:var(--ink); font-weight:600; margin-left:6px; }

.cot-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:16px; }
@media (min-width:1200px){ .cot-grid{ grid-template-columns:repeat(4, minmax(0,1fr)); } }
.cot-card{
  position:relative; display:flex; flex-direction:column; text-align:left; padding:0; overflow:hidden;
  background:var(--paper); border:1px solid var(--line); border-radius:0;
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease);
}
.cot-card:hover{ border-color:var(--gold); transform:translateY(-2px); box-shadow:0 18px 40px -26px rgba(21,17,13,.4); }
.cot-card.is-selected{ border-color:var(--ink); box-shadow:0 0 0 1px var(--ink); }
.cot-card__media{ aspect-ratio:3/4; background:var(--sand); overflow:hidden; display:grid; place-items:center; }
.cot-card__media img{ width:100%; height:100%; object-fit:cover; }
.cot-card__media span{ font-family:var(--serif); font-size:44px; color:var(--gold-ink); }
.cot-bg-solid input[type="color"]{ width:64px; height:64px; border:1px solid var(--line); border-radius:50%; padding:0; background:none; cursor:pointer; }
.cot-card__body{ padding:16px 16px 18px; display:grid; gap:4px; }
.cot-card__label{ font-family:var(--serif); font-size:21px; font-weight:600; line-height:1.15; color:var(--ink); }
.cot-card__meta{ font-size:13px; color:var(--muted); line-height:1.45; }
.cot-card__price{ margin-top:6px; font-size:14px; font-weight:500; color:var(--gold-ink); }
.cot-card__check{
  position:absolute; top:12px; right:12px; z-index:2; width:28px; height:28px; border-radius:50%;
  background:var(--ink); color:var(--ivory); display:grid; place-items:center; font-size:14px;
  opacity:0; transform:scale(.6); transition:all .3s var(--ease);
}
.cot-card.is-selected .cot-card__check{ opacity:1; transform:none; }
.cot-card__tag{
  position:absolute; top:12px; left:12px; z-index:2; padding:6px 10px; background:var(--gold); color:var(--ink);
  font-size:10.5px; font-weight:500; letter-spacing:.16em; text-transform:uppercase;
}

.cot-custom{ margin-top:22px; padding:24px; background:var(--paper); border:1px solid var(--line); display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:24px; align-items:start; }
.cot-custom[hidden]{ display:none; }
.cot-custom__fields{ display:grid; gap:12px; }
.cot-custom label{ font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.cot-custom__row{ display:flex; align-items:center; gap:12px; }
.cot-custom__row input{ width:130px; font:inherit; font-size:20px; color:var(--ink); background:var(--ivory); border:1px solid var(--line); padding:12px 14px; }
.cot-custom__row input:focus{ outline:none; border-color:var(--ink); }
.cot-custom__row span{ font-family:var(--serif); font-size:26px; color:var(--muted); }
.cot-custom__presets{ display:flex; flex-wrap:wrap; gap:8px; }
.cot-custom__presets .cot-chip{ min-height:36px; padding:0 14px; font-size:11.5px; letter-spacing:.08em; }
.cot-custom__msg{ font-size:13.5px; color:var(--muted); }
.cot-custom__msg.is-warn{ color:#9a3b1e; }
.cot-custom__msg.is-ok{ color:#2f6b45; }
.cot-custom__price{ display:grid; gap:4px; padding:20px; background:var(--ink); color:var(--ivory); text-align:center; }
.cot-custom__price[hidden]{ display:none; }
.cot-custom__price span{ font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted-dark); }
.cot-custom__price strong{ font-family:var(--serif); font-size:34px; font-weight:500; color:var(--gold-light); line-height:1.1; }
.cot-custom__price small{ font-size:12.5px; color:var(--muted-dark); }
@media (max-width:760px){ .cot-custom{ grid-template-columns:1fr; } .cot-custom__row input{ width:110px; } }

.cot-orient{ display:flex; gap:10px; margin-top:22px; }
.cot-chip{
  min-height:42px; padding:0 20px; background:transparent; border:1px solid var(--line); color:var(--muted);
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; transition:all .3s var(--ease);
}
.cot-chip:hover{ border-color:var(--ink); color:var(--ink); }
.cot-chip.is-selected{ background:var(--ink); border-color:var(--ink); color:var(--ivory); }

.cot-stepper{ display:inline-flex; align-items:center; border:1px solid var(--ink); }
.cot-stepper__btn{ width:62px; height:62px; background:transparent; border:0; font-size:24px; transition:background .3s; }
.cot-stepper__btn:hover{ background:var(--sand); }
.cot-stepper__btn:disabled{ opacity:.3; cursor:not-allowed; background:transparent; }
.cot-stepper__val{ min-width:86px; text-align:center; font-family:var(--serif); font-size:36px; border-inline:1px solid var(--ink); line-height:62px; }
.cot-stepper__hint{ margin-top:14px; font-size:14px; color:var(--muted); }

.cot-notes{ margin-top:22px; display:grid; gap:10px; }
.cot-notes label,.cot-ship label{ font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.cot-notes textarea,.cot-ship input[type="text"]{
  width:100%; font:inherit; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:0;
  padding:16px 18px; transition:border-color .3s;
}
.cot-notes textarea{ min-height:110px; resize:vertical; }
.cot-notes textarea:focus,.cot-ship input[type="text"]:focus{ outline:none; border-color:var(--ink); }
.cot-ship{ display:grid; gap:10px; max-width:560px; }
.cot-ship__result{ display:none; margin-top:6px; padding:16px 18px; background:var(--sand); font-size:14.5px; color:var(--muted); }
.cot-ship__result.is-visible{ display:block; }
.cot-ship__result strong{ color:var(--ink); }

.cot-continue{ margin-top:30px; }
.cot-continue button{
  background:none; border:0; padding:0 0 4px; border-bottom:1px solid var(--ink);
  font-size:12.5px; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--ink);
  transition:color .3s, border-color .3s;
}
.cot-continue button:hover{ color:var(--gold-ink); border-color:var(--gold-ink); }

.cot-final{ background:var(--ink); color:var(--ivory); padding:clamp(28px, 4vw, 48px); display:grid; gap:20px; }
.cot-final__title{ font-size:30px; font-weight:400; }
.cot-final__rows{ display:grid; }
.cot-final__row{ display:flex; justify-content:space-between; gap:16px; padding:14px 0; border-bottom:1px solid var(--line-dark); font-size:14.5px; }
.cot-final__row span:first-child{ color:var(--muted-dark); }
.cot-final__total{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding-top:8px; }
.cot-final__total span:first-child{ font-size:12px; letter-spacing:.24em; color:var(--muted-dark); }
.cot-final__total strong{ font-family:var(--serif); font-size:clamp(32px, 4vw, 44px); font-weight:500; color:var(--gold-light); }
.cot-final__note{ font-size:14.5px; color:var(--muted-dark); border-left:2px solid var(--gold); padding-left:16px; }
.cot-final__note strong{ color:var(--ivory); font-weight:500; }
.cot-final__cta{
  display:flex; align-items:center; justify-content:center; gap:12px; min-height:58px; border:0;
  background:var(--wa); color:#fff; font-size:13px; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  transition:background .3s;
}
.cot-final__cta:hover{ background:#178a45; }
.cot-final__cta svg{ width:22px; height:22px; }

.cot-summary{
  position:sticky; top:calc(var(--header-h) + 88px); background:var(--paper); border:1px solid var(--line);
  padding:30px; display:grid; gap:16px;
}
.cot-summary__title{ font-size:26px; font-weight:400; }
.cot-summary__rows{ display:grid; }
.cot-summary__row{ display:flex; justify-content:space-between; gap:14px; padding:12px 0; border-bottom:1px solid var(--line); font-size:13.5px; color:var(--muted); }
.cot-summary__row small{ font-size:12.5px; opacity:.85; }
.cot-summary__row span:last-child{ color:var(--ink); font-weight:500; white-space:nowrap; }
.cot-summary__total{ display:flex; justify-content:space-between; align-items:baseline; padding-top:4px; }
.cot-summary__total span:first-child{ font-size:11.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); }
.cot-summary__total strong{ font-family:var(--serif); font-size:30px; font-weight:600; }
@media (max-width:1023.98px){ .cot-summary{ display:none; } }

.cot-summary-mobile{
  position:fixed; left:0; right:0; bottom:0; z-index:45; background:var(--ink); color:var(--ivory);
  display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px var(--gutter);
  padding-bottom:calc(14px + env(safe-area-inset-bottom));
}
.cot-summary-mobile__label{ font-size:10.5px; letter-spacing:.22em; color:var(--muted-dark); }
.cot-summary-mobile__total{ font-family:var(--serif); font-size:24px; color:var(--gold-light); line-height:1.1; }
.cot-summary-mobile__toggle{ background:transparent; border:1px solid rgba(245,240,232,.45); color:var(--ivory); min-height:42px; padding:0 16px; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; }
.cot-summary-mobile__panel{
  position:fixed; left:0; right:0; bottom:70px; z-index:44; background:var(--ink-2); color:var(--ivory);
  padding:24px var(--gutter); transform:translateY(120%); transition:transform .45s var(--ease);
  max-height:70vh; overflow:auto; border-top:1px solid var(--line-dark);
}
.cot-summary-mobile__panel.is-open{ transform:none; }
.cot-summary-mobile__panel .cot-summary__title{ color:var(--ivory); margin-bottom:8px; font-size:22px; }
.cot-summary-mobile__panel .cot-summary__row{ border-bottom-color:var(--line-dark); color:var(--muted-dark); }
.cot-summary-mobile__panel .cot-summary__row span:last-child{ color:var(--ivory); }
@media (min-width:1024px){ .cot-summary-mobile,.cot-summary-mobile__panel{ display:none; } }
@media (max-width:1023.98px){ .page-precio .wa-fab{ bottom:86px; } .page-precio .site-footer{ padding-bottom:70px; } }

/* =========================================================================
   TIENDA — botón de carrito, catálogo y carrito lateral
   ========================================================================= */
.site-header .nav{ margin-left:auto; }
.cart-btn{
  position:relative; z-index:2; flex:none; width:44px; height:44px; display:grid; place-items:center;
  background:none; border:0; color:inherit;
}
.cart-btn svg{ width:24px; height:24px; }
.cart-btn__count{
  position:absolute; top:4px; right:2px; min-width:18px; height:18px; padding:0 5px; border-radius:9px;
  background:var(--gold); color:var(--ink); font-size:11px; font-weight:500; line-height:18px; text-align:center;
}
.cart-btn__count[hidden]{ display:none; }
@media (max-width:960px){ .site-header .container{ gap:8px; } .cart-btn{ margin-left:auto; } }

/* Catálogo */
.shop-bar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px 32px; margin-bottom:clamp(32px, 4vw, 48px); padding-bottom:22px; border-bottom:1px solid var(--line); }
.shop-tabs{ display:flex; gap:8px; flex-wrap:wrap; }
.shop-tab{ min-height:42px; padding:0 22px; background:transparent; border:1px solid var(--line); color:var(--muted); font-size:12px; letter-spacing:.18em; text-transform:uppercase; transition:all .3s var(--ease); }
.shop-tab:hover{ border-color:var(--ink); color:var(--ink); }
.shop-tab.is-active{ background:var(--ink); border-color:var(--ink); color:var(--ivory); }
.shop-sizes{ font-size:13px; color:var(--muted); letter-spacing:.04em; }
.shop-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:clamp(18px, 2.4vw, 32px); }
.shop-state{ grid-column:1 / -1; padding:60px 0; text-align:center; color:var(--muted); }

.product{ display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line); transition:box-shadow .4s var(--ease), transform .4s var(--ease); }
.product:hover{ box-shadow:0 26px 50px -30px rgba(21,17,13,.45); transform:translateY(-3px); }
.product__media{ position:relative; overflow:hidden; background:var(--sand); }
.product__media img{ width:100%; aspect-ratio:4/5; object-fit:cover; transition:transform 1.2s var(--ease); }
.product:hover .product__media img{ transform:scale(1.04); }
.product__badge{ position:absolute; top:14px; left:14px; padding:7px 12px; background:#8f2a1a; color:#fff; font-size:12px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; }
.product__badge[hidden]{ display:none; }
.product__sample{ position:absolute; right:12px; bottom:12px; padding:5px 10px; background:rgba(21,17,13,.7); color:var(--ivory); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; }
.product__body{ padding:22px 22px 24px; display:grid; gap:12px; flex:1; align-content:start; }
.product__collection{ font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-ink); }
.product__name{ font-size:26px; font-weight:500; }
.product__sizes{ display:grid; grid-template-columns:repeat(3, 1fr); border:1px solid var(--line); }
.product__sizes button{ min-height:40px; background:transparent; border:0; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); transition:background .25s, color .25s; }
.product__sizes button + button{ border-left:1px solid var(--line); }
.product__sizes button:hover{ color:var(--ink); background:var(--sand); }
.product__sizes button.is-selected{ background:var(--ink); color:var(--ivory); }
.product__dims{ font-size:13px; color:var(--muted); }
.product__price{ font-family:var(--serif); font-size:28px; line-height:1; }
.product__price strong{ font-weight:600; }
.product__price s{ font-size:19px; color:var(--muted); margin-right:6px; }
.product__add{ margin-top:4px; width:100%; }

/* Carrito lateral */
.cart{ position:fixed; inset:0; z-index:70; visibility:hidden; }
.cart.is-open{ visibility:visible; }
.cart__backdrop{ position:absolute; inset:0; background:rgba(21,17,13,.5); opacity:0; transition:opacity .4s var(--ease); }
.cart.is-open .cart__backdrop{ opacity:1; }
.cart__panel{
  position:absolute; top:0; right:0; bottom:0; width:min(440px, 100%); background:var(--ivory);
  display:flex; flex-direction:column; transform:translateX(100%); transition:transform .45s var(--ease);
  box-shadow:-20px 0 60px -30px rgba(0,0,0,.5);
}
.cart.is-open .cart__panel{ transform:none; }
body.cart-open{ overflow:hidden; }
.cart__head{ display:flex; align-items:center; justify-content:space-between; padding:22px 26px; border-bottom:1px solid var(--line); }
.cart__title{ font-size:28px; font-weight:400; }
.cart__close{ width:40px; height:40px; background:none; border:0; font-size:30px; line-height:1; color:var(--muted); }
.cart__close:hover{ color:var(--ink); }
.cart__view{ flex:1; overflow:auto; padding:22px 26px 28px; display:flex; flex-direction:column; gap:14px; }
.cart__view[hidden]{ display:none; }
.cart__empty{ display:grid; gap:18px; justify-items:start; color:var(--muted); padding-top:20px; }
.cart__empty[hidden],.cart__foot[hidden]{ display:none; }
.cart__list{ list-style:none; margin:0; padding:0; display:grid; gap:18px; }
.cart__item{ display:grid; grid-template-columns:72px 1fr auto; gap:14px; align-items:start; padding-bottom:18px; border-bottom:1px solid var(--line); }
.cart__item img{ width:72px; height:90px; object-fit:cover; }
.cart__info{ display:grid; gap:4px; }
.cart__name{ font-family:var(--serif); font-size:19px; line-height:1.2; }
.cart__meta{ font-size:12.5px; color:var(--muted); }
.cart__qty{ display:inline-flex; align-items:center; border:1px solid var(--line); width:max-content; margin-top:6px; }
.cart__qty button{ width:32px; height:32px; background:none; border:0; font-size:16px; }
.cart__qty button:disabled{ opacity:.3; }
.cart__qty span{ min-width:30px; text-align:center; font-size:14px; }
.cart__side{ display:grid; gap:8px; justify-items:end; font-size:15px; }
.cart__remove{ background:none; border:0; padding:0; font-size:12px; color:var(--muted); text-decoration:underline; }
.cart__foot{ margin-top:auto; display:grid; gap:12px; padding-top:12px; }
.cart__row{ display:flex; justify-content:space-between; gap:12px; font-size:15px; }
.cart__row strong{ font-family:var(--serif); font-size:24px; font-weight:600; }
.cart__row--total{ padding-top:10px; border-top:1px solid var(--line); align-items:baseline; }
.cart__hint{ font-size:13px; color:var(--muted); }
.cart__cta{ width:100%; }
.cart__cta.is-loading{ opacity:.6; pointer-events:none; }
.cart__back{ align-self:flex-start; background:none; border:0; padding:0; font-size:13px; color:var(--muted); }
.cart__back:hover{ color:var(--ink); }
.cart__lead{ color:var(--muted); }
.cart__lead strong{ color:var(--ink); font-weight:500; }
.cart__form label{ display:grid; gap:6px; font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.cart__form label small{ font-size:12px; letter-spacing:0; text-transform:none; opacity:.8; }
.cart__form input,.cart__form textarea{
  font:inherit; font-size:15px; letter-spacing:0; text-transform:none; color:var(--ink);
  background:var(--paper); border:1px solid var(--line); border-radius:0; padding:12px 14px;
}
.cart__form input:focus,.cart__form textarea:focus{ outline:none; border-color:var(--ink); }
.cart__hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }
.cart__totals{ display:grid; gap:8px; padding:16px; background:var(--paper); border:1px solid var(--line); }
.cart__totals:empty{ display:none; }
.cart__error{ color:#9a3b1e; font-size:14px; min-height:1px; }
.cart__error:empty{ display:none; }
.cart__done{ gap:16px; }
.shop-promo{ display:flex; flex-wrap:wrap; gap:10px; margin:-18px 0 clamp(28px, 3vw, 40px); }
.shop-promo span{ padding:8px 14px; background:#8f2a1a; color:#fff; font-size:12px; letter-spacing:.16em; text-transform:uppercase; }
.shop-promo span::before{ content:"Oferta "; opacity:.85; }

/* =========================================================
   Páginas de contenido (SEO): migas, tablas de precio, FAQ, blog y fichas
========================================================= */
.crumbs{ font-size:13px; color:var(--muted); display:flex; flex-wrap:wrap; gap:6px; margin-bottom:22px; }
.crumbs a{ text-decoration:underline; text-underline-offset:3px; }
.page-hero .crumbs{ color:rgba(245,240,232,.7); margin-bottom:6px; }
.price-table{ width:100%; border-collapse:collapse; font-size:16px; }
.price-table th,.price-table td{ text-align:left; padding:16px 14px; border-bottom:1px solid var(--line); }
.price-table th{ font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); font-weight:500; }
.price-table td strong{ font-weight:500; font-size:18px; }
.price-table tr:hover td{ background:var(--paper); }
.table-wrap{ overflow-x:auto; }
.note{ font-size:14px; color:var(--muted); margin-top:14px; }
.faq{ display:grid; gap:0; border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); padding:20px 0; }
.faq summary{ cursor:pointer; font-family:var(--serif); font-size:clamp(20px, 2vw, 24px); list-style:none; display:flex; justify-content:space-between; gap:20px; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; font-family:var(--sans); font-weight:300; font-size:24px; color:var(--gold-ink); transition:transform .2s; }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details p{ color:var(--muted); margin-top:12px; max-width:70ch; }
.section--dark .faq,.section--dark .faq details{ border-color:var(--line-dark); }
.link-cards{ display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:clamp(14px, 2vw, 24px); }
.link-card{ display:grid; gap:10px; align-content:start; padding:26px; background:var(--paper); border:1px solid var(--line); transition:border-color .2s, transform .2s; }
.link-card:hover{ border-color:var(--ink); transform:translateY(-2px); }
.link-card img{ aspect-ratio:4/5; object-fit:cover; width:100%; margin-bottom:6px; }
.link-card h3{ font-size:24px; }
.link-card p{ font-size:14.5px; color:var(--muted); }
.link-card span{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-ink); }
.checklist{ display:grid; gap:12px; padding:0; list-style:none; }
.checklist li{ position:relative; padding-left:30px; color:var(--muted); }
.checklist li::before{ content:""; position:absolute; left:0; top:.55em; width:16px; height:1px; background:var(--gold-ink); }
.checklist strong{ color:var(--ink); font-weight:500; }
.section--dark .checklist li{ color:var(--muted-dark); }
.section--dark .checklist strong{ color:var(--ivory); }
/* Artículos del blog */
.article{ padding-top:calc(var(--header-h) + clamp(40px, 6vw, 80px)); }
.article__head{ display:grid; gap:16px; margin-bottom:clamp(30px, 4vw, 50px); }
.article__head h1{ font-size:clamp(36px, 4.6vw, 58px); font-weight:400; line-height:1.05; }
.article__meta{ font-size:13.5px; color:var(--muted); }
.article__body{ display:grid; gap:20px; font-size:17.5px; line-height:1.75; }
.article__body h2{ font-size:clamp(28px, 3vw, 36px); margin-top:22px; }
.article__body h3{ font-size:23px; margin-top:8px; }
.article__body p,.article__body li{ color:#3d3730; }
.article__body ul,.article__body ol{ display:grid; gap:8px; padding-left:22px; }
.article__body a{ text-decoration:underline; text-underline-offset:3px; color:var(--ink); }
.article__body .price-table{ font-size:15.5px; }
.article__box{ background:var(--paper); border-left:3px solid var(--gold); padding:22px 24px; display:grid; gap:12px; }
.article__body,.article__body > *{ min-width:0; }
.article__box .btn{ white-space:normal; text-align:center; max-width:100%; }
.article__box p{ margin:0; }
.article__src{ font-size:13px; color:var(--muted); border-top:1px solid var(--line); padding-top:18px; }
.blog-list{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:clamp(18px, 2.4vw, 30px); }
/* Ficha de producto */
.ficha{ padding-top:calc(var(--header-h) + clamp(30px, 5vw, 60px)); }
.ficha__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px, 6vw, 90px); align-items:start; }
.ficha__media img{ width:100%; aspect-ratio:4/5; object-fit:cover; background:var(--paper); }
.ficha__body{ display:grid; gap:18px; position:sticky; top:calc(var(--header-h) + 24px); }
.ficha__body h1{ font-size:clamp(36px, 4.4vw, 56px); font-weight:400; line-height:1.05; }
.ficha__price{ font-size:28px; }
.ficha__price s{ color:var(--muted); font-size:18px; margin-right:8px; }
.ficha__sizes{ display:flex; gap:8px; flex-wrap:wrap; }
.ficha__sizes button{ border:1px solid var(--line); background:transparent; padding:12px 16px; font-size:14px; display:grid; gap:2px; text-align:left; }
.ficha__sizes button small{ color:var(--muted); font-size:12px; }
.ficha__sizes button.is-selected{ border-color:var(--ink); background:var(--ink); color:var(--ivory); }
.ficha__sizes button.is-selected small{ color:var(--muted-dark); }
@media (max-width:860px){ .ficha__grid{ grid-template-columns:1fr; } .ficha__body{ position:static; } }

/* Evita que un botón largo ensanche las columnas en celular */
.split > *{ min-width:0; }
.btn-row .btn{ max-width:100%; }

/* Carrito: verificación del envío (municipio y dirección) */
.cart__ship{ font-size:13px; padding:9px 12px; margin:-6px 0 4px; background:var(--paper); border-left:3px solid var(--line); color:var(--muted); line-height:1.45; }
.cart__ship.is-ok{ border-left-color:#2f9e5b; color:#1f6b40; background:#eef8f1; }
.cart__ship.is-bad{ border-left-color:#c58a1a; color:#6b4a12; background:#fbf2df; }
.cart__chips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.cart__chip{ border:1px solid var(--line); background:#fff; padding:6px 10px; font-size:12.5px; cursor:pointer; }
.cart__chip:hover{ border-color:var(--ink); }
.cart__check{ display:flex !important; align-items:center; gap:8px; font-size:13px; }
.cart__check input{ width:16px; height:16px; accent-color:var(--ink); }
.cart__form label small.cart__hint{ display:block; margin-top:4px; letter-spacing:0; text-transform:none; }
/* Cotizador: verificación del envío */
.cot-ship__result.is-bad{ background:#fbf2df; color:#6b4a12; }
.cot-ship__chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.cot-ship__chips button{ border:1px solid var(--line); background:#fff; padding:8px 12px; font-size:13.5px; cursor:pointer; }
.cot-ship__chips button:hover{ border-color:var(--ink); }
.cot-ship__confirm{ display:flex; align-items:center; gap:8px; margin-top:10px; font-size:14px; }
.cot-ship__confirm[hidden]{ display:none; }
