/* =========================================================
   Armarios Empotrados Salamanca — Design System
   ========================================================= */

:root{
  /* Color */
  --ink:            #16130F;
  --ink-soft:       #2A241D;
  --graphite:       #4A423A;
  --muted:          #7C7267;
  --line:           #E4DDD2;
  --line-strong:    #D3C9BA;
  --paper:          #FBF9F5;
  --paper-2:        #F3EEE5;
  --paper-3:        #EBE4D8;
  --white:          #FFFFFF;

  --oak:            #B08247;
  --oak-deep:       #8E6634;
  --oak-tint:       #F0E4D2;

  /* Type */
  --font-display: "Fraunces", "Georgia", "Times New Roman", serif;
  --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  /* Space */
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --section: clamp(4.5rem, 9vw, 8.5rem);
  --maxw: 1240px;

  /* Effects */
  --radius: 4px;
  --radius-lg: 8px;
  --shadow-sm: 0 1px 2px rgba(22,19,15,.05), 0 4px 14px rgba(22,19,15,.05);
  --shadow-md: 0 4px 12px rgba(22,19,15,.07), 0 18px 48px rgba(22,19,15,.09);
  --shadow-lg: 0 10px 30px rgba(22,19,15,.10), 0 40px 90px rgba(22,19,15,.14);
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:clamp(1rem,.97rem + .16vw,1.0625rem);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; }
h1,h2,h3,h4{ margin:0; font-family:var(--font-display); font-weight:400; line-height:1.08; letter-spacing:-.015em; }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }
ul{ margin:0; padding:0; list-style:none; }
:focus-visible{ outline:2px solid var(--oak); outline-offset:3px; border-radius:2px; }
::selection{ background:var(--oak); color:#fff; }

/* ---------- Layout ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.wrap--narrow{ max-width:820px; }
.section{ padding-block:var(--section); }
.section--tint{ background:var(--paper-2); }
.section--ink{ background:var(--ink); color:var(--paper); }

/* ---------- Type scale ---------- */
.display{ font-size:clamp(2.6rem,1.4rem + 5.2vw,5rem); }
.h1{ font-size:clamp(2.25rem,1.4rem + 3.6vw,3.9rem); }
.h2{ font-size:clamp(1.85rem,1.3rem + 2.3vw,2.9rem); }
.h3{ font-size:clamp(1.25rem,1.1rem + .7vw,1.6rem); }
.lead{ font-size:clamp(1.06rem,1rem + .4vw,1.28rem); color:var(--graphite); line-height:1.65; }
.section--ink .lead{ color:#C9C0B4; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.7rem;
  font-size:.72rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--oak-deep); margin-bottom:1.15rem;
}
.eyebrow::before{ content:""; width:28px; height:1px; background:currentColor; opacity:.6; }
.section--ink .eyebrow{ color:var(--oak); }

.section-head{ max-width:640px; margin-bottom:clamp(2.5rem,5vw,4rem); }
.section-head--center{ margin-inline:auto; text-align:center; }
.section-head--center .eyebrow::before{ display:none; }
.section-head p{ margin-top:1.1rem; }

/* ---------- Buttons ---------- */
.btn{
  --btn-bg:var(--ink); --btn-fg:var(--paper); --btn-bd:var(--ink);
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:1rem 1.9rem; border:1px solid var(--btn-bd); background:var(--btn-bg); color:var(--btn-fg);
  border-radius:var(--radius); cursor:pointer;
  font-size:.86rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
.btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn:active{ transform:translateY(0); }
.btn svg{ width:16px; height:16px; flex:none; }
/* Fondo #8E6634 con texto blanco = 5,1:1 (WCAG AA) */
.btn--oak{ --btn-bg:var(--oak-deep); --btn-bd:var(--oak-deep); --btn-fg:#fff; }
.btn--oak:hover{ --btn-bg:#6F4E27; --btn-bd:#6F4E27; }
.btn--ghost{ --btn-bg:transparent; --btn-fg:var(--ink); --btn-bd:var(--line-strong); }
.btn--ghost:hover{ --btn-bd:var(--ink); }
.btn--light{ --btn-bg:transparent; --btn-fg:var(--paper); --btn-bd:rgba(251,249,245,.35); }
.btn--light:hover{ --btn-bg:var(--paper); --btn-fg:var(--ink); --btn-bd:var(--paper); }
.btn--white{ --btn-bg:var(--paper); --btn-fg:var(--ink); --btn-bd:var(--paper); }

.link-arrow{
  display:inline-flex; align-items:center; gap:.55rem;
  font-size:.82rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--oak-deep);
  padding-bottom:.3rem; border-bottom:1px solid transparent; transition:border-color .3s var(--ease), gap .3s var(--ease);
}
.link-arrow:hover{ border-color:currentColor; gap:.9rem; }
.link-arrow svg{ width:15px; height:15px; }

.btn-group{ display:flex; flex-wrap:wrap; gap:.85rem; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(251,249,245,.86);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease), background-color .3s var(--ease);
}
.site-header.is-stuck{ border-color:var(--line); box-shadow:0 6px 24px rgba(22,19,15,.06); }
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; min-height:78px; }

.brand{ display:flex; align-items:center; gap:.8rem; flex:none; }
.brand__mark{ width:40px; height:40px; flex:none; color:var(--ink); }
.site-footer .brand__mark{ color:var(--paper); }
.brand__text{ display:flex; flex-direction:column; line-height:1.1; }
.brand__name{ font-family:var(--font-display); font-size:1.12rem; letter-spacing:-.01em; }
.brand__sub{ font-size:.63rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-top:.2rem; }

.nav{ display:flex; align-items:center; gap:2rem; }
.nav a{
  position:relative; font-size:.9rem; font-weight:500; color:var(--graphite);
  padding-block:.35rem; transition:color .25s var(--ease);
}
.nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--oak); transform:scaleX(0); transform-origin:right; transition:transform .35s var(--ease);
}
.nav a:hover{ color:var(--ink); }
.nav a:hover::after, .nav a[aria-current="page"]::after{ transform:scaleX(1); transform-origin:left; }
.nav a[aria-current="page"]{ color:var(--ink); }

.header-cta{ display:flex; align-items:center; gap:.75rem; flex:none; }
.header-cta .btn{ padding:.78rem 1.4rem; font-size:.78rem; }

.burger{
  display:none; width:44px; height:44px; padding:0; border:1px solid var(--line-strong);
  background:transparent; border-radius:var(--radius); cursor:pointer; position:relative;
}
.burger span{
  position:absolute; left:12px; right:12px; height:1.5px; background:var(--ink);
  transition:transform .35s var(--ease), opacity .2s var(--ease);
}
.burger span:nth-child(1){ top:15px; }
.burger span:nth-child(2){ top:21px; }
.burger span:nth-child(3){ top:27px; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

@media (max-width:1040px){
  .nav{ display:none; }
  .burger{ display:block; }
}

/* Mobile drawer */
.drawer{
  position:fixed; inset:0; z-index:99; background:var(--paper);
  padding:6.5rem var(--gutter) 2.5rem;
  display:flex; flex-direction:column; gap:.25rem;
  opacity:0; visibility:hidden; transform:translateY(-12px);
  transition:opacity .35s var(--ease), transform .4s var(--ease), visibility .35s;
}
.drawer.is-open{ opacity:1; visibility:visible; transform:none; }
.drawer a.drawer__link{
  font-family:var(--font-display); font-size:1.8rem; padding-block:.65rem;
  border-bottom:1px solid var(--line); transition:color .25s var(--ease), padding-left .3s var(--ease);
}
.drawer a.drawer__link:hover{ color:var(--oak-deep); padding-left:.5rem; }
.drawer .btn{ margin-top:1.75rem; }
body.no-scroll{ overflow:hidden; }

/* ---------- Hero ---------- */
.hero{ position:relative; background:var(--ink); color:var(--paper); overflow:hidden; }
.hero__media{ position:absolute; inset:0; }
.hero__media img{ width:100%; height:100%; object-fit:cover; opacity:.42; transform:scale(1.06); }
.hero__media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(105deg, rgba(15,13,10,.94) 0%, rgba(15,13,10,.78) 42%, rgba(15,13,10,.35) 100%);
}
.hero__inner{ position:relative; z-index:2; padding-block:clamp(5rem,12vw,9.5rem); max-width:790px; }
.hero .display{ margin-bottom:1.5rem; }
.hero .display em{ font-style:italic; color:var(--oak); }
.hero__lead{ font-size:clamp(1.05rem,1rem + .5vw,1.32rem); color:#CDC4B7; max-width:60ch; margin-bottom:2.25rem; }
.hero .btn-group{ margin-bottom:3rem; }

.hero__stats{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.75rem 2.5rem; padding-top:2.25rem; border-top:1px solid rgba(251,249,245,.16); max-width:660px;
}
.hero__stat strong{
  display:block; font-family:var(--font-display); font-weight:400;
  font-size:clamp(1.9rem,1.5rem + 1.4vw,2.6rem); line-height:1; color:var(--paper);
}
.hero__stat > span{ display:block; margin-top:.5rem; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:#9E9587; }

/* Page hero (interior) */
.page-hero{ position:relative; background:var(--ink); color:var(--paper); overflow:hidden; }
.page-hero__media{ position:absolute; inset:0; }
.page-hero__media img{ width:100%; height:100%; object-fit:cover; opacity:.34; }
.page-hero__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(100deg,rgba(15,13,10,.92),rgba(15,13,10,.6)); }
.page-hero__inner{ position:relative; z-index:2; padding-block:clamp(3.5rem,8vw,6.5rem); max-width:760px; }
.page-hero .lead{ color:#C9C0B4; margin-top:1.15rem; }
.crumbs{ font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:#9E9587; margin-bottom:1.4rem; }
.crumbs a{ color:#9E9587; transition:color .25s var(--ease); }
.crumbs a:hover{ color:var(--oak); }
.crumbs span{ color:var(--oak); }

/* ---------- Trust strip ---------- */
.trust{ background:var(--white); border-bottom:1px solid var(--line); }
.trust__grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.trust__item{
  display:flex; align-items:center; gap:.9rem; padding:1.6rem clamp(1rem,2.5vw,2rem);
  border-right:1px solid var(--line);
}
.trust__item:last-child{ border-right:0; }
.trust__item svg{ width:26px; height:26px; color:var(--oak); flex:none; }
.trust__item b{ display:block; font-size:.92rem; font-weight:600; }
.trust__item small{ display:block; font-size:.79rem; color:var(--muted); }
@media (max-width:900px){
  .trust__grid{ grid-template-columns:repeat(2,1fr); }
  .trust__item{ border-right:0; border-bottom:1px solid var(--line); }
  .trust__item:nth-child(odd){ border-right:1px solid var(--line); }
  .trust__item:nth-last-child(-n+2){ border-bottom:0; }
}
@media (max-width:540px){
  .trust__grid{ grid-template-columns:1fr; }
  .trust__item, .trust__item:nth-child(odd){ border-right:0; border-bottom:1px solid var(--line); }
  .trust__item:last-child{ border-bottom:0; }
}

/* ---------- Services ---------- */
/* Rejillas: columnas fijas; si la última fila queda incompleta se centra (nunca huecos a un lado) */
.grid-3, .grid-2{ --cols:3; --gap:clamp(1.25rem,2.4vw,2rem); display:flex; flex-wrap:wrap; justify-content:center; gap:var(--gap); }
.grid-2{ --cols:2; }
.grid-3.cols-4{ --cols:4; }
.grid-3.cols-2{ --cols:2; }
.grid-3 > *, .grid-2 > *{ flex:0 0 calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols)); min-width:0; }
@media (max-width:1000px){ .grid-3, .grid-3.cols-4{ --cols:2; } }
@media (max-width:640px){ .grid-3, .grid-3.cols-4, .grid-3.cols-2, .grid-2{ --cols:1; } }

.card{
  position:relative; background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius-lg); overflow:hidden;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease);
  display:flex; flex-direction:column;
}
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:var(--line-strong); }
.card__media{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--paper-3); }
.card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.card:hover .card__media img{ transform:scale(1.055); }
.card__num{
  position:absolute; top:1rem; left:1rem; z-index:2;
  display:inline-flex; align-items:center; justify-content:center;
  min-width:34px; height:34px; padding-inline:.5rem;
  background:rgba(22,19,15,.72); backdrop-filter:blur(6px); color:var(--paper);
  border-radius:var(--radius); font-size:.75rem; font-weight:600; letter-spacing:.08em;
}
.card__body{ padding:1.6rem 1.7rem 1.8rem; display:flex; flex-direction:column; flex:1; }
.card__body h3{ margin-bottom:.7rem; }
.card__body p{ color:var(--graphite); font-size:.97rem; }
.card__body .link-arrow{ margin-top:auto; padding-top:1.2rem; }

/* Feature list (icon cards) */
.feature{
  padding:2rem 1.9rem; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.feature:hover{ transform:translateY(-4px); box-shadow:var(--shadow-sm); border-color:var(--line-strong); }
.feature__icon{
  display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px;
  border-radius:var(--radius); background:var(--oak-tint); color:var(--oak-deep); margin-bottom:1.25rem;
}
.feature__icon svg{ width:24px; height:24px; }
.feature h3{ font-size:1.22rem; margin-bottom:.6rem; }
.feature p{ color:var(--graphite); font-size:.95rem; }
.section--ink .feature{ background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.1); }
.section--ink .feature p{ color:#B7ADA0; }
.section--ink .feature__icon{ background:rgba(176,130,71,.18); color:var(--oak); }

/* ---------- Split (image + text) ---------- */
.split{ display:grid; grid-template-columns:1.02fr 1fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.split--reverse .split__media{ order:2; }
@media (max-width:900px){ .split{ grid-template-columns:1fr; } .split--reverse .split__media{ order:0; } }

.split__media{ position:relative; }
.split__media img{ width:100%; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); }
.split__media::before{
  content:""; position:absolute; inset:auto -18px -18px auto; width:58%; height:62%;
  border:1px solid var(--oak); border-radius:var(--radius-lg); z-index:-1;
}
.split__badge{
  position:absolute; left:-14px; bottom:26px; z-index:3;
  background:var(--ink); color:var(--paper); padding:1.1rem 1.4rem; border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md); max-width:210px;
}
.split__badge strong{ display:block; font-family:var(--font-display); font-size:1.85rem; line-height:1; color:var(--oak); }
.split__badge span{ display:block; font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; color:#B7ADA0; margin-top:.4rem; }

.checklist li{
  position:relative; padding-left:2rem; margin-bottom:.85rem; color:var(--graphite);
}
.checklist li::before{
  content:""; position:absolute; left:0; top:.55em; width:11px; height:6px;
  border-left:1.8px solid var(--oak); border-bottom:1.8px solid var(--oak);
  transform:rotate(-45deg);
}
.section--ink .checklist li{ color:#C1B8AB; }

/* ---------- Process ---------- */
.process{ --cols:3; --gap:clamp(1.5rem,3vw,2.5rem); display:flex; flex-wrap:wrap; justify-content:center; gap:2.6rem var(--gap); counter-reset:step; }
.process.cols-4{ --cols:4; }
.process > *{ flex:0 0 calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols)); min-width:0; }
@media (max-width:1000px){ .process, .process.cols-4{ --cols:2; } }
@media (max-width:640px){ .process, .process.cols-4{ --cols:1; } }
.process__step{ position:relative; padding-top:2.4rem; border-top:1px solid var(--line-strong); }
.section--ink .process__step{ border-color:rgba(255,255,255,.16); }
.process__step::before{
  counter-increment:step; content:"0" counter(step);
  position:absolute; top:-.85rem; left:0; background:var(--paper); padding-right:.9rem;
  font-family:var(--font-display); font-size:1.6rem; color:var(--oak);
}
.section--tint .process__step::before{ background:var(--paper-2); }
.section--ink .process__step::before{ background:var(--ink); }
.process__step h3{ font-size:1.28rem; margin-bottom:.65rem; }
.process__step p{ color:var(--graphite); font-size:.96rem; }
.section--ink .process__step p{ color:#B7ADA0; }

/* ---------- Gallery ---------- */
.gallery{ --cols:3; --gap:clamp(.75rem,1.4vw,1.15rem); display:flex; flex-wrap:wrap; justify-content:center; gap:var(--gap); }
.gallery__item{
  position:relative; overflow:hidden; border-radius:var(--radius-lg); background:var(--paper-3); margin:0;
  flex:0 0 calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols)); aspect-ratio:4/3;
}
.gallery__item img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.gallery__item:hover img{ transform:scale(1.06); }
.gallery__item figcaption{
  position:absolute; inset:auto 0 0 0; padding:2.4rem 1.4rem 1.2rem; color:#fff;
  background:linear-gradient(to top,rgba(15,13,10,.85),transparent);
  font-size:.88rem; font-weight:500; letter-spacing:.01em;
  opacity:0; transform:translateY(8px); transition:opacity .4s var(--ease), transform .4s var(--ease);
}
.gallery__item:hover figcaption{ opacity:1; transform:none; }
@media (max-width:820px){ .gallery{ --cols:2; } }
@media (max-width:540px){ .gallery{ --cols:1; } }

/* Bento de 5 piezas: una grande 2×2 y cuatro pequeñas → rellena exactamente 4×2 celdas */
.gallery--bento{ display:grid; grid-template-columns:repeat(4,1fr); }
.gallery--bento .gallery__item:first-child{ grid-column:span 2; grid-row:span 2; aspect-ratio:auto; }
@media (max-width:820px){
  .gallery--bento{ grid-template-columns:repeat(2,1fr); }
  .gallery--bento .gallery__item:first-child{ grid-row:span 1; aspect-ratio:16/9; }
}
@media (max-width:540px){
  .gallery--bento{ grid-template-columns:1fr; }
  .gallery--bento .gallery__item:first-child{ grid-column:span 1; aspect-ratio:4/3; }
}

/* ---------- Materials ---------- */
.materials{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
@media (max-width:1000px){ .materials{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .materials{ grid-template-columns:1fr; } }
.material{ background:var(--white); padding:2.1rem 1.9rem; transition:background-color .4s var(--ease); }
.material:hover{ background:var(--paper-2); }
.material__swatch{ width:44px; height:44px; border-radius:50%; margin-bottom:1.2rem; box-shadow:inset 0 0 0 1px rgba(0,0,0,.08); }
.material h3{ font-size:1.18rem; margin-bottom:.55rem; }
.material p{ font-size:.94rem; color:var(--graphite); }

/* ---------- Testimonials ---------- */
.quote{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:2.1rem 1.9rem; display:flex; flex-direction:column; height:100%;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.quote:hover{ transform:translateY(-4px); box-shadow:var(--shadow-sm); }
.stars{ display:flex; gap:.2rem; margin-bottom:1.1rem; color:#E8A33D; }
.stars svg{ width:17px; height:17px; }
.quote p{ font-size:.98rem; color:var(--graphite); }
.quote__author{ margin-top:1.5rem; padding-top:1.2rem; border-top:1px solid var(--line); display:flex; align-items:center; gap:.85rem; }
.quote__avatar{
  width:42px; height:42px; border-radius:50%; background:var(--oak-tint); color:var(--oak-deep);
  display:grid; place-items:center; font-family:var(--font-display); font-size:1.15rem; flex:none;
}
.quote__author b{ display:block; font-size:.94rem; }
.quote__author small{ color:var(--muted); font-size:.8rem; }

/* ---------- FAQ ---------- */
.faq{ border-top:1px solid var(--line-strong); }
.faq details{ border-bottom:1px solid var(--line-strong); }
.faq summary{
  list-style:none; cursor:pointer; padding:1.5rem 3rem 1.5rem 0; position:relative;
  font-family:var(--font-display); font-size:clamp(1.1rem,1rem + .5vw,1.36rem); line-height:1.35;
  transition:color .25s var(--ease);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:hover{ color:var(--oak-deep); }
.faq summary::after,.faq summary::before{
  content:""; position:absolute; right:.4rem; top:50%; background:var(--oak);
  transition:transform .35s var(--ease), opacity .35s var(--ease);
}
.faq summary::after{ width:15px; height:1.5px; transform:translateY(-50%); }
.faq summary::before{ width:1.5px; height:15px; right:1.05rem; transform:translateY(-50%); }
.faq details[open] summary::before{ transform:translateY(-50%) rotate(90deg); opacity:0; }
.faq__answer{ padding-bottom:1.6rem; max-width:70ch; color:var(--graphite); }

/* ---------- CTA band ---------- */
.cta{ position:relative; background:var(--ink); color:var(--paper); overflow:hidden; }
.cta__media{ position:absolute; inset:0; }
.cta__media img{ width:100%; height:100%; object-fit:cover; opacity:.28; }
.cta__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(100deg,rgba(15,13,10,.92),rgba(15,13,10,.62)); }
.cta__inner{ position:relative; z-index:2; padding-block:clamp(4rem,8vw,6.5rem); text-align:center; max-width:760px; margin-inline:auto; }
.cta .btn-group{ justify-content:center; margin-top:2.1rem; }
.cta p{ color:#C9C0B4; margin-top:1.15rem; }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }

.contact-list li{
  display:flex; gap:1.1rem; padding:1.35rem 0; border-bottom:1px solid var(--line);
}
.contact-list li:first-child{ border-top:1px solid var(--line); }
.contact-list svg{ width:22px; height:22px; color:var(--oak); flex:none; margin-top:.2rem; }
.contact-list b{ display:block; font-size:.75rem; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); margin-bottom:.25rem; font-weight:600; }
.contact-list a,.contact-list span{ font-size:1.03rem; color:var(--ink); }
.contact-list a{ transition:color .25s var(--ease); }
.contact-list a:hover{ color:var(--oak-deep); }

.form{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:clamp(1.7rem,3.5vw,2.6rem); box-shadow:var(--shadow-sm); }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
@media (max-width:560px){ .form__row{ grid-template-columns:1fr; } }
.field{ margin-bottom:1.1rem; }
.field label{ display:block; font-size:.78rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:.5rem; }
.field input,.field select,.field textarea{
  width:100%; padding:.85rem 1rem; font:inherit; font-size:.97rem; color:var(--ink);
  background:var(--paper); border:1px solid var(--line-strong); border-radius:var(--radius);
  transition:border-color .25s var(--ease), background-color .25s var(--ease), box-shadow .25s var(--ease);
}
.field textarea{ min-height:130px; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--oak); background:var(--white); box-shadow:0 0 0 3px rgba(176,130,71,.13);
}
.field--check{ display:flex; align-items:flex-start; gap:.7rem; font-size:.85rem; color:var(--muted); }
.field--check input{ width:auto; margin-top:.25rem; accent-color:var(--oak); }
.field--check a{ color:var(--oak-deep); text-decoration:underline; text-underline-offset:2px; }
.form .btn{ width:100%; }
.form__note{ margin-top:1rem; font-size:.82rem; color:var(--muted); text-align:center; }
.form__status{ margin-top:1rem; padding:.9rem 1.1rem; border-radius:var(--radius); font-size:.9rem; display:none; }
.form__status.is-visible{ display:block; }
.form__status--ok{ background:var(--oak-tint); color:var(--oak-deep); border:1px solid var(--oak); }

.map{ border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; filter:grayscale(1) contrast(1.05); transition:filter .5s var(--ease); }
.map:hover{ filter:none; }
.map iframe{ display:block; width:100%; height:380px; border:0; }

/* ---------- Zones ---------- */
.zones{ display:flex; flex-wrap:wrap; gap:.6rem; }
.zones li{
  padding:.55rem 1.05rem; border:1px solid var(--line-strong); border-radius:100px;
  font-size:.86rem; color:var(--graphite); background:var(--white);
  transition:border-color .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);
}
.zones li:hover{ border-color:var(--oak); color:var(--oak-deep); transform:translateY(-2px); }
.zones li:has(a){ padding:0; }
.zones li a{ display:block; padding:.55rem 1.05rem; }
.section--ink .zones li{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.16); color:#C1B8AB; }

/* ---------- Artículo ---------- */
.article{ color:var(--graphite); }
.article > p{ margin-bottom:1.25em; }
.article > h2{ margin-top:2.6rem; margin-bottom:.9rem; color:var(--ink); }
.article > h3{ margin-top:1.9rem; margin-bottom:.7rem; color:var(--ink); }
.article > .checklist{ margin-bottom:1.6rem; }
.article__figure{
  margin:2.6rem 0; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md);
}
.article__figure img{ width:100%; }
.article__figure figcaption{
  padding:.9rem 1.1rem; background:var(--white); border:1px solid var(--line); border-top:0;
  font-size:.86rem; color:var(--muted);
}

/* ---------- Footer ---------- */
.site-footer{ background:var(--ink); color:#9E9587; font-size:.92rem; }
.footer__top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.1fr; gap:clamp(2rem,4vw,3rem); padding-block:clamp(3.5rem,7vw,5rem); }
/* La marca ocupa su propia fila y las 4 columnas de enlaces quedan en 4 → 2×2 → 1 */
@media (max-width:1000px){ .footer__top{ grid-template-columns:repeat(3,1fr); } .footer__brand{ grid-column:1 / -1; } }
@media (max-width:640px){ .footer__top{ grid-template-columns:1fr 1fr; } .footer__top > .footer:last-child{ grid-column:1 / -1; } }
@media (max-width:560px){ .footer__top{ grid-template-columns:1fr; } }
.footer__brand .brand__name{ color:var(--paper); }
.footer__brand .brand__sub{ color:#7C7267; }
.footer__brand p{ margin-top:1.2rem; max-width:34ch; line-height:1.65; }
.footer__title{
  font-family:var(--font-sans); font-size:.75rem; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--paper); margin-bottom:1.15rem;
}
.footer__links li{ margin-bottom:.6rem; }
.footer__links a{ transition:color .25s var(--ease), padding-left .25s var(--ease); }
.footer__links a:hover{ color:var(--oak); padding-left:.3rem; }
.footer__contact li{ display:flex; gap:.7rem; margin-bottom:.85rem; align-items:flex-start; }
.footer__contact svg{ width:16px; height:16px; color:var(--oak); flex:none; margin-top:.25rem; }
.footer__contact a:hover{ color:var(--paper); }
.footer__bottom{
  display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:center;
  padding-block:1.6rem; border-top:1px solid rgba(255,255,255,.1); font-size:.83rem;
}
.footer__bottom nav{ display:flex; gap:1.5rem; }
.footer__bottom a:hover{ color:var(--oak); }

/* ---------- Floating actions ---------- */
.float{
  position:fixed; right:1.15rem; bottom:1.15rem; z-index:90;
  display:flex; flex-direction:column; gap:.6rem;
}
.float a{
  width:58px; height:58px; border-radius:50%; display:grid; place-items:center;
  box-shadow:var(--shadow-md); color:#fff;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.float a:hover{ transform:translateY(-3px) scale(1.04); box-shadow:var(--shadow-lg); }
.float svg{ width:30px; height:30px; }
.float__wa{ background:#25D366; }

/* ---------- Reveal on scroll ---------- */
.js [data-reveal]{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.js [data-reveal].is-in{ opacity:1; transform:none; }
[data-reveal-delay="1"]{ transition-delay:.08s; }
[data-reveal-delay="2"]{ transition-delay:.16s; }
[data-reveal-delay="3"]{ transition-delay:.24s; }
[data-reveal-delay="4"]{ transition-delay:.32s; }
[data-reveal-delay="5"]{ transition-delay:.40s; }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .js [data-reveal]{ opacity:1; transform:none; }
}

/* ---------- Utilities ---------- */
.mt-0{ margin-top:0; }
.mt-2{ margin-top:2rem; }
.mt-3{ margin-top:3rem; }
.text-center{ text-align:center; }
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.skip-link{
  position:absolute; left:-999px; top:0; z-index:200; background:var(--ink); color:var(--paper);
  padding:.8rem 1.2rem; border-radius:0 0 var(--radius) 0;
}
.skip-link:focus{ left:0; }

@media (max-width:480px){ .hero__stats{ gap:1.25rem; } .hero__stat > span{ font-size:.68rem; letter-spacing:.1em; } }

/* Cabecera en móviles estrechos: marca + botón + menú deben caber en 320–400 px */
@media (max-width:520px){
  .site-header .wrap{ gap:.6rem; min-height:68px; }
  .brand{ gap:.55rem; min-width:0; }
  .brand__mark{ width:32px; height:32px; }
  .brand__name{ font-size:.98rem; white-space:nowrap; }
  .brand__sub{ font-size:.56rem; letter-spacing:.16em; }
  .header-cta{ gap:.5rem; }
  .header-cta .btn{ padding:.62rem .8rem; font-size:.68rem; letter-spacing:.04em; }
  .burger{ width:40px; height:40px; }
  .burger span{ left:11px; right:11px; }
  .burger span:nth-child(1){ top:13px; } .burger span:nth-child(2){ top:19px; } .burger span:nth-child(3){ top:25px; }
}

/* ---------- Carrusel de reseñas ---------- */
.reviews{ position:relative; }
.reviews__track{
  --per:2; --gap:clamp(1rem,2vw,1.5rem);
  display:flex; gap:var(--gap); overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  scrollbar-width:none; padding:.5rem .1rem 1rem; outline:none;
}
.reviews__track::-webkit-scrollbar{ display:none; }
.reviews__track:focus-visible{ outline:2px solid var(--oak); outline-offset:4px; border-radius:var(--radius-lg); }
.reviews__track > .quote{ flex:0 0 calc((100% - (var(--per) - 1) * var(--gap)) / var(--per)); scroll-snap-align:start; }
@media (max-width:760px){ .reviews__track{ --per:1; } }
.reviews__nav{ display:flex; align-items:center; justify-content:center; gap:1.1rem; margin-top:1.4rem; }
.reviews__btn{
  width:46px; height:46px; display:grid; place-items:center; cursor:pointer;
  border:1px solid var(--line-strong); border-radius:50%; background:var(--white); color:var(--ink);
  transition:border-color .25s var(--ease), background-color .25s var(--ease), color .25s var(--ease), opacity .25s var(--ease);
}
.reviews__btn:hover:not(:disabled){ border-color:var(--ink); background:var(--ink); color:var(--paper); }
.reviews__btn:disabled{ opacity:.35; cursor:default; }
.reviews__btn svg{ width:18px; height:18px; }
.reviews__dots{ display:flex; gap:.5rem; }
.reviews__dot{ width:9px; height:9px; padding:0; border:0; border-radius:50%; background:var(--line-strong); cursor:pointer; transition:background-color .25s var(--ease), transform .25s var(--ease); }
.reviews__dot[aria-current="true"]{ background:var(--oak-deep); transform:scale(1.25); }
.section--ink .reviews__btn{ background:transparent; color:var(--paper); border-color:rgba(255,255,255,.25); }

/* ---------- Banda de contacto (texto + botón) ---------- */
.contact-band{
  display:grid; grid-template-columns:1fr auto; gap:clamp(1.5rem,4vw,3.5rem); align-items:center;
  padding:clamp(1.8rem,4vw,3rem); background:var(--white); border:1px solid var(--line);
  border-left:4px solid var(--oak-deep); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm);
}
.contact-band .h2{ margin-bottom:.8rem; }
.contact-band p{ color:var(--graphite); max-width:62ch; }
.contact-band p + p{ margin-top:.6rem; }
.contact-band .btn{ white-space:nowrap; }
@media (max-width:760px){ .contact-band{ grid-template-columns:1fr; } .contact-band .btn{ width:100%; white-space:normal; } }

/* ---------- Comparador antes / después (línea arrastrable) ---------- */
.ba{
  --pos:50%; position:relative; overflow:hidden; border-radius:var(--radius-lg);
  aspect-ratio:4/3; background:var(--paper-3); box-shadow:var(--shadow-md); user-select:none; touch-action:pan-y;
}
.ba img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; pointer-events:none; }
.ba__after{ clip-path:inset(0 0 0 var(--pos)); }
.ba__line{
  position:absolute; top:0; bottom:0; left:var(--pos); width:3px; margin-left:-1.5px;
  background:#fff; box-shadow:0 0 0 1px rgba(0,0,0,.15), 0 0 18px rgba(0,0,0,.25); pointer-events:none;
}
.ba__handle{
  position:absolute; top:50%; left:50%; width:48px; height:48px; transform:translate(-50%,-50%);
  border-radius:50%; background:#fff; color:var(--ink); display:grid; place-items:center; box-shadow:var(--shadow-md);
}
.ba__handle svg{ width:22px; height:22px; }
.ba__tag{
  position:absolute; top:1rem; z-index:2; padding:.35rem .7rem; border-radius:var(--radius);
  background:rgba(22,19,15,.72); color:#fff; font-size:.72rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; pointer-events:none;
}
.ba__tag--before{ left:1rem; } .ba__tag--after{ right:1rem; }
.ba__range{
  position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; z-index:3;
  -webkit-appearance:none; appearance:none;
}
.ba__range:focus-visible + .ba__line .ba__handle{ outline:3px solid var(--oak); outline-offset:3px; }
.ba-item h3{ margin-top:1.1rem; }
.ba-item p{ color:var(--graphite); font-size:.96rem; margin-top:.4rem; }

/* ---------- Contacto: ficha de Maps + tarjeta WhatsApp ---------- */
.contact-grid{ align-items:stretch; }
.map--card{ filter:none; box-shadow:var(--shadow-md); min-height:460px; }
.map--card iframe{ height:100%; min-height:460px; }
.wa-card{
  position:relative; display:flex; flex-direction:column; gap:1rem; justify-content:center;
  padding:clamp(1.8rem,4vw,3rem); background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm);
}
.wa-card .eyebrow{ margin-bottom:0; }
.wa-card__icon{ width:64px; height:64px; border-radius:50%; background:#25D366; color:#fff; display:grid; place-items:center; box-shadow:0 8px 24px rgba(37,211,102,.35); }
.wa-card__icon svg{ width:34px; height:34px; }
.wa-card__zones{ margin-top:.8rem; padding-top:1.4rem; border-top:1px solid var(--line); }
.wa-card__zones .h3{ margin-bottom:.9rem; }
/* Botón con los colores oficiales de WhatsApp; #1DA851 con texto blanco = contraste AA para texto grande en negrita */
.btn--wa{ --btn-bg:#128C4A; --btn-bd:#128C4A; --btn-fg:#fff; align-self:flex-start; }
.btn--wa:hover{ --btn-bg:#0E7A3F; --btn-bd:#0E7A3F; }
.btn--wa svg{ width:20px; height:20px; }

/* ---------- Reseñas: todas las cajas a la misma altura ---------- */
.reviews__track{ align-items:stretch; }
.reviews__track > .quote{ height:auto; }
.quote__author{ margin-top:auto; }
.quote > p{ margin-bottom:1.5rem; }

/* ---------- Zonas de servicio ---------- */
.zones-block{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(2rem,5vw,4.5rem); align-items:center; }
@media (max-width:900px){ .zones-block{ grid-template-columns:1fr; } }
.zones-block .lead{ margin-top:1.1rem; }
.zones-block .btn{ margin-top:1.8rem; }
.zone-list{ --cols:2; --gap:.9rem; display:flex; flex-wrap:wrap; justify-content:center; gap:var(--gap); }
.zone-list > li{
  flex:0 0 calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols)); min-width:0;
  display:flex; align-items:center; gap:.9rem; padding:1.05rem 1.15rem;
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg);
  font-size:.95rem; font-weight:500; line-height:1.35; color:var(--ink);
  transition:border-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);
}
.zone-list > li:hover{ border-color:var(--oak); transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.zone-list__pin{ flex:none; width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:var(--oak-tint); color:var(--oak-deep); }
.zone-list__pin svg{ width:18px; height:18px; }
.zone-list a{ color:inherit; }
.zone-list a:hover{ color:var(--oak-deep); }
@media (max-width:520px){ .zone-list{ --cols:1; } }
.section--ink .zone-list > li{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.12); color:var(--paper); }
.section--ink .zone-list__pin{ background:rgba(176,130,71,.2); color:var(--oak); }
.wa-card .zone-list{ --cols:2; justify-content:flex-start; }
.wa-card .zone-list > li{ padding:.75rem .85rem; font-size:.88rem; }
.wa-card .zone-list__pin{ width:30px; height:30px; }

/* ---------- Proceso: pasos con título + texto ---------- */
.process__step h3{ color:inherit; }
.section--ink .process__step h3{ color:var(--paper); }
.process__step p:only-of-type{ margin-top:0; }

/* ---------- Escaparate de proyectos en páginas de servicio ---------- */
.projects-cta{ display:flex; justify-content:center; margin-top:clamp(2rem,4vw,2.8rem); }

/* ---------- Accesibilidad (Lighthouse) ---------- */
/* Contraste del pie: textos secundarios ≥ 7:1 sobre #16130F */
.site-footer{ color:#B3AA9D; }
.footer__brand .brand__sub{ color:#A89E90; }
/* Puntos del carrusel: área táctil de 24×24 px con el punto visual dentro */
.reviews__dots{ gap:.25rem; }
.reviews__dot{ width:24px; height:24px; background:transparent; display:grid; place-items:center; transform:none; }
.reviews__dot::before{ content:""; width:9px; height:9px; border-radius:50%; background:var(--line-strong); transition:background-color .25s var(--ease), transform .25s var(--ease); }
.reviews__dot[aria-current="true"]{ background:transparent; transform:none; }
.reviews__dot[aria-current="true"]::before{ background:var(--oak-deep); transform:scale(1.3); }

/* ---------- Mapa en páginas de servicio, zona y portada ---------- */
.map-block{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(2rem,5vw,4rem); align-items:center; }
@media (max-width:900px){ .map-block{ grid-template-columns:1fr; } }
.map-block .map{ filter:none; box-shadow:var(--shadow-md); }
.map-block .map iframe{ height:420px; }

/* Cabecera casi opaca: el subtítulo de marca mantiene ≥ 4,5:1 aunque debajo haya un hero oscuro */
.site-header{ background:rgba(251,249,245,.97); }
.brand__sub{ color:#5E554B; }
.site-footer .brand__sub{ color:#A89E90; }

/* ---------- Mapa en la columna de contacto del pie ---------- */
.footer__map{ margin-top:1.2rem; border-radius:var(--radius-lg); overflow:hidden; border:1px solid rgba(255,255,255,.12); }
.footer__map iframe{ display:block; width:100%; height:190px; border:0; }

/* ---------- Pie: NAP bajo la marca y mapa ocupando la 4ª columna ---------- */
.footer__brand .footer__contact{ margin-top:1.3rem; }
.footer--map{ display:flex; flex-direction:column; }
.footer--map .footer__map{ margin-top:0; flex:1; min-height:230px; display:flex; }
.footer--map .footer__map iframe{ height:auto; min-height:230px; flex:1; }
@media (max-width:1000px){ .footer--map{ grid-column:1 / -1; } .footer--map .footer__map{ min-height:260px; } }
/* Pie sin columna de mapa (páginas que ya muestran la ficha en el contenido) */
.footer__top--3{ grid-template-columns:1.5fr 1fr 1fr; }
@media (max-width:1000px){ .footer__top--3{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .footer__top--3{ grid-template-columns:1fr; } }

/* ---------- Modal de teléfono (antes de llamar o abrir WhatsApp) ---------- */
.lead-modal{ width:min(440px, calc(100% - 2rem)); padding:0; border:0; border-radius:var(--radius-lg); background:var(--white); color:var(--ink); box-shadow:var(--shadow-lg); }
.lead-modal::backdrop{ background:rgba(22,19,15,.6); backdrop-filter:blur(3px); }
.lead-modal[open]{ animation:lead-in .28s var(--ease); }
@keyframes lead-in{ from{ opacity:0; transform:translateY(12px) scale(.98); } to{ opacity:1; transform:none; } }
.lead__box{ position:relative; padding:2.2rem 2rem 1.9rem; display:flex; flex-direction:column; gap:.9rem; }
.lead__close{ position:absolute; top:.6rem; right:.6rem; width:40px; height:40px; border:0; border-radius:50%; background:transparent; font-size:1.6rem; line-height:1; color:var(--muted); cursor:pointer; }
.lead__close:hover{ background:var(--paper-2); color:var(--ink); }
.lead__icon{ width:52px; height:52px; border-radius:50%; display:grid; place-items:center; background:var(--oak-tint); color:var(--oak-deep); }
.lead__icon svg{ width:24px; height:24px; }
.lead__title{ font-family:var(--font-display); font-size:1.6rem; font-weight:400; margin:0; }
.lead__text{ color:var(--graphite); font-size:.95rem; margin:0; }
.lead__label{ font-size:.78rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-top:.3rem; }
.lead__input{ width:100%; padding:.9rem 1rem; font:inherit; font-size:1.05rem; color:var(--ink); background:var(--paper); border:1px solid var(--line-strong); border-radius:var(--radius); }
.lead__input:focus{ outline:none; border-color:var(--oak-deep); background:var(--white); box-shadow:0 0 0 3px rgba(142,102,52,.15); }
.lead__consent{ display:flex; align-items:flex-start; gap:.6rem; font-size:.85rem; color:var(--graphite); cursor:pointer; }
.lead__consent input{ margin-top:.2rem; width:18px; height:18px; accent-color:var(--oak-deep); flex:none; }
.lead__consent a{ color:var(--oak-deep); text-decoration:underline; text-underline-offset:2px; }
.lead__error{ margin:0; padding:.6rem .8rem; border-radius:var(--radius); background:#FBEAEA; color:#9B1C1C; font-size:.85rem; }
.lead__submit{ width:100%; margin-top:.3rem; }

/* ---------- Enlaces a zonas dentro del texto ---------- */
.zone-link{ color:var(--oak-deep); text-decoration:underline; text-decoration-color:rgba(142,102,52,.45); text-underline-offset:3px; text-decoration-thickness:1px; transition:text-decoration-color .2s var(--ease), color .2s var(--ease); }
.zone-link:hover{ color:var(--ink); text-decoration-color:currentColor; }
.section--ink .zone-link, .page-hero .zone-link, .hero .zone-link, .cta .zone-link{ color:#E2C08D; text-decoration-color:rgba(226,192,141,.5); }
.section--ink .zone-link:hover, .page-hero .zone-link:hover, .hero .zone-link:hover{ color:#fff; }

/* Dentro de las tarjetas de zona todos los enlaces se ven igual (sin el subrayado del texto corrido) */
.zone-list a, .zone-list .zone-link{ color:inherit; text-decoration:none; }
.zone-list a:hover, .zone-list .zone-link:hover{ color:var(--oak-deep); }
.section--ink .zone-list a:hover, .section--ink .zone-list .zone-link:hover{ color:var(--oak); }
/* Nota de confianza bajo el campo del teléfono */
.lead__note{ margin:-.3rem 0 0; font-size:.8rem; color:var(--muted); }
/* Modal compacto: línea legal mínima bajo el botón */
.lead__legal{ margin:0; font-size:.75rem; color:var(--muted); text-align:center; }
.lead__legal a{ color:inherit; text-decoration:underline; text-underline-offset:2px; }

/* Títulos de componentes comunes sin etiqueta de encabezado (no ensucian el esquema H1-H3 de cada página) */
.cta .cta__title{ font-family:var(--font-display); font-weight:400; line-height:1.08; letter-spacing:-.015em; color:var(--paper); margin:0; }
p.footer__title{ margin:0 0 1.15rem; }
p.lead__title{ margin:0; }
