/* Perlita Babidanchi — hoja de estilo única
   Paleta: basalto (roca cruda) → perlita (producto expandido), acento óxido de hierro */

:root{
  --basalt:#12161A;
  --basalt-2:#1B2126;
  --stone:#F6F6F4;
  --paper:#FFFFFF;
  --ink:#12161A;
  --slate:#59616A;
  --faint:#6B7178;          /* 4.56:1 sobre piedra, 4.93:1 sobre papel — AA */
  --faint-dark:#9AA2A9;     /* variante para fondos oscuros */
  --line:#E3E4E1;
  --line-dark:#2A3138;
  --accent:#B5533A;
  --accent-deep:#8E3E29;
  --accent-soft:#F5E7E2;

  --display:"Archivo","IBM Plex Sans","Helvetica Neue",Arial,sans-serif;
  --sans:"IBM Plex Sans","Helvetica Neue",Arial,sans-serif;
  --serif:"IBM Plex Serif",Georgia,"Times New Roman",serif;
  --mono:"IBM Plex Mono","SF Mono",Menlo,monospace;

  --measure:64ch;
  --pad:clamp(1.25rem,4vw,3rem);
  --gap:clamp(2.5rem,6vw,5rem);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:4.5rem;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;} *{animation:none!important;transition:none!important;}}

body{
  margin:0;background:var(--stone);color:var(--ink);
  font-family:var(--serif);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--accent-deep);text-underline-offset:2px;text-decoration-thickness:1px;}
a:hover{color:var(--accent);}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

.wrap{max-width:74rem;margin:0 auto;padding-inline:var(--pad);}
.narrow{max-width:var(--measure);}

/* ---------- tipografía ---------- */
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.02em;line-height:1.12;margin:0;text-wrap:balance;}
h1{font-size:clamp(2rem,4.6vw,3.15rem);font-weight:700;letter-spacing:-.035em;}
h2{font-size:clamp(1.55rem,3.3vw,2.35rem);font-weight:600;}
h3{font-size:clamp(1.05rem,1.8vw,1.25rem);}
p{margin:0;}
.lede{font-size:clamp(1.05rem,1.8vw,1.22rem);color:var(--slate);}
.eyebrow{
  font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--accent);margin:0;
}
.eyebrow.on-dark{color:#D98A70;}

/* ---------- barra superior ---------- */
.topbar{
  position:sticky;top:0;z-index:60;background:rgba(246,246,244,.94);
  backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line);
}
.topbar-in{display:flex;align-items:center;gap:1rem;min-height:4.25rem;}
.brand{display:flex;align-items:baseline;gap:.55rem;text-decoration:none;color:var(--ink);margin-right:auto;}
.brand b{font-family:var(--sans);font-weight:600;font-size:1.02rem;letter-spacing:-.02em;}
.brand span{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);}
.nav{display:flex;align-items:center;gap:1.35rem;}
.nav a{
  font-family:var(--sans);font-size:.86rem;color:var(--slate);text-decoration:none;
  padding:.3rem 0;border-bottom:1px solid transparent;white-space:nowrap;
}
.nav a:hover{color:var(--ink);border-bottom-color:var(--accent);}
.lang{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  border:1px solid var(--line);padding:.34rem .6rem;border-radius:2px;text-decoration:none;color:var(--slate);
}
.lang:hover{border-color:var(--accent);color:var(--accent-deep);}
.burger{
  display:none;background:none;border:1px solid var(--line);border-radius:2px;
  flex:0 0 auto;box-sizing:border-box;
  width:2.75rem;height:2.75rem;cursor:pointer;padding:0;align-items:center;justify-content:center;
}
.burger span{display:block;width:1.05rem;height:1.5px;background:var(--ink);position:relative;}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:1.05rem;height:1.5px;background:var(--ink);}
.burger span::before{top:-5px;} .burger span::after{top:5px;}

@media (max-width:860px){
  .burger{display:flex;}
  .nav{
    display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);
    border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;
    gap:0;padding:.5rem var(--pad) 1rem;
  }
  .nav.open{display:flex;}
  .nav a{padding:.72rem 0;border-bottom:1px solid var(--line);font-size:.95rem;}
  .nav a:last-of-type{border-bottom:none;}
  .nav .lang{border:none;border-radius:0;padding:.72rem 0;font-size:.78rem;letter-spacing:.1em;}
}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--basalt);color:#EDEEEC;overflow:hidden;}
.hero-img{position:absolute;inset:0;}
.hero-img img{width:100%;height:100%;object-fit:cover;opacity:.72;}
.hero-img::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(18,22,26,.92) 0%,rgba(18,22,26,.74) 42%,rgba(18,22,26,.42) 100%);
}
.hero-in{position:relative;padding-block:clamp(4.5rem,13vw,9rem) clamp(3rem,8vw,5rem);}
.hero h1{color:#FBFBFA;max-width:18ch;}
.hero .lede{color:#C3C8CC;max-width:52ch;margin-top:1.4rem;}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.2rem;}
.btn{
  font-family:var(--sans);font-size:.9rem;font-weight:500;text-decoration:none;
  padding:.72rem 1.3rem;border-radius:2px;display:inline-block;transition:background .15s,border-color .15s;
}
.btn-solid{background:var(--accent);color:#fff;border:1px solid var(--accent);}
.btn-solid:hover{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff;}
.btn-ghost{background:transparent;color:#EDEEEC;border:1px solid rgba(237,238,236,.35);}
.btn-ghost:hover{border-color:#EDEEEC;color:#fff;}

/* ---------- franja de cifras ---------- */
.figures{background:var(--basalt-2);border-top:1px solid var(--line-dark);}
.figures-in{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));
  gap:1px;background:var(--line-dark);
}
.fig{background:var(--basalt-2);padding:1.5rem 1.2rem;}
.fig .n{
  font-family:var(--sans);font-weight:600;font-size:1.75rem;letter-spacing:-.03em;
  color:#FBFBFA;display:block;line-height:1;font-variant-numeric:tabular-nums;
}
.fig .n small{font-size:.9rem;font-weight:400;color:#9AA2A9;letter-spacing:0;}
.fig .l{
  font-family:var(--sans);font-size:.78rem;color:#9AA2A9;margin-top:.55rem;display:block;line-height:1.35;
}

/* ---------- secciones ---------- */
.sec{padding-block:var(--gap);border-bottom:1px solid var(--line);}
.sec:last-of-type{border-bottom:none;}
.sec-head{display:flex;flex-direction:column;gap:.7rem;margin-bottom:2.2rem;max-width:var(--measure);}
.sec-body{display:flex;flex-direction:column;gap:1.15rem;}
.sec-body p{max-width:var(--measure);}
.sec.dark{background:var(--basalt);color:#E8EAE8;border-bottom:none;}
.sec.dark h2{color:#FBFBFA;}
.sec.dark .lede,.sec.dark p{color:#B8BEC3;}

/* ---------- destacado legal ---------- */
.claim{
  border-left:3px solid var(--accent);background:var(--paper);
  padding:1.4rem 1.5rem;display:flex;flex-direction:column;gap:.85rem;
}
.claim p{max-width:none;}
.claim .src{font-family:var(--mono);font-size:.76rem;color:var(--faint);line-height:1.5;}

/* ---------- tarjetas ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1px;background:var(--line);border:1px solid var(--line);}
.card{background:var(--paper);padding:1.4rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.55rem;}
.card h3{font-size:1.02rem;}
.card p{font-size:.94rem;color:var(--slate);max-width:none;}
.card .tag{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);}

/* ---------- yacimientos ---------- */
.deps{display:grid;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:1.5rem;}
.dep{background:var(--paper);border:1px solid var(--line);display:flex;flex-direction:column;}
.dep img{aspect-ratio:16/9;object-fit:cover;width:100%;}
.dep .txt{padding:1.25rem 1.35rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;}
.dep h3{font-size:1.12rem;}
.dep p{font-size:.94rem;color:var(--slate);max-width:none;}
.dep dl{margin:.4rem 0 0;display:grid;grid-template-columns:auto 1fr;gap:.3rem .9rem;font-size:.88rem;}
.dep dt{font-family:var(--mono);font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);align-self:center;}
.dep dd{margin:0;font-family:var(--sans);font-variant-numeric:tabular-nums;}

/* ---------- tabla ---------- */
.tablewrap{overflow-x:auto;border:1px solid var(--line);background:var(--paper);}
table{border-collapse:collapse;width:100%;font-family:var(--sans);font-size:.92rem;}
th,td{text-align:left;padding:.75rem .95rem;border-bottom:1px solid var(--line);vertical-align:top;}
th{font-size:.75rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);background:var(--stone);white-space:nowrap;}
td.num{font-variant-numeric:tabular-nums;white-space:nowrap;}
tr:last-child td{border-bottom:none;}

/* ---------- lista de evidencia ---------- */
.docs{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);}
.doc{background:var(--paper);padding:1.05rem 1.25rem;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.35rem 1.2rem;align-items:baseline;}
.doc h3{font-size:.99rem;grid-column:1;}
.doc p{grid-column:1;font-size:.9rem;color:var(--slate);max-width:none;}
.doc .yr{grid-row:span 2;font-family:var(--mono);font-size:.84rem;color:var(--faint);font-variant-numeric:tabular-nums;}

/* ---------- galería ---------- */
.gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.75rem;}
.gal figure{margin:0;background:var(--paper);border:1px solid var(--line);}
.gal img{aspect-ratio:4/3;object-fit:cover;width:100%;}
.gal figcaption{font-family:var(--sans);font-size:.83rem;color:var(--slate);padding:.6rem .8rem .7rem;}
.gal .wide{grid-column:1/-1;}
.gal .wide img{aspect-ratio:21/9;}

/* ---------- contacto ---------- */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1.5rem;align-items:start;}
.contact-card{background:var(--paper);border:1px solid var(--line);padding:1.4rem 1.5rem;display:flex;flex-direction:column;gap:.9rem;}
.contact-card .row{display:flex;flex-direction:column;gap:.15rem;}
.contact-card .k{font-family:var(--mono);font-size:.76rem;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);}
.contact-card .v{font-family:var(--sans);font-size:.98rem;}
.contact-card .v a{text-decoration:none;}
form{display:flex;flex-direction:column;gap:.85rem;}
label{font-family:var(--sans);font-size:.8rem;font-weight:500;display:flex;flex-direction:column;gap:.3rem;}
input,textarea,select{
  font-family:var(--sans);font-size:.94rem;padding:.62rem .75rem;
  border:1px solid var(--line);border-radius:2px;background:var(--paper);color:var(--ink);width:100%;
}
input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none;}
textarea{min-height:6.5rem;resize:vertical;}
button[type=submit]{
  font-family:var(--sans);font-size:.9rem;font-weight:500;background:var(--accent);color:#fff;
  border:1px solid var(--accent);border-radius:2px;padding:.72rem 1.3rem;cursor:pointer;align-self:flex-start;
}
button[type=submit]:hover{background:var(--accent-deep);border-color:var(--accent-deep);}
.form-note{font-family:var(--sans);font-size:.78rem;color:var(--faint);}

/* ---------- pie ---------- */
.foot{background:var(--basalt);color:#9AA2A9;padding-block:2.5rem 3rem;}
.foot-in{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;align-items:baseline;}
.foot p{font-family:var(--sans);font-size:.82rem;margin:0;}
.foot a{color:#C3C8CC;}
.foot .sep{margin-inline:auto;}

/* ---------- utilidades ---------- */
.skip{
  position:absolute;left:-9999px;background:var(--accent);color:#fff;padding:.6rem 1rem;
  font-family:var(--sans);font-size:.85rem;z-index:100;
}
.skip:focus{left:.5rem;top:.5rem;}
.note{font-family:var(--sans);font-size:.82rem;color:var(--faint);max-width:var(--measure);}

/* ---------- añadidos: v2 ---------- */
.sec.alt{background:var(--paper);}
.hero h1{max-width:20ch;}

.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:1.6rem 2.5rem;}
.two-col > div{display:flex;flex-direction:column;gap:.6rem;}
.two-col p{max-width:46ch;}

.fig-wide{margin:2rem 0 0;background:var(--paper);border:1px solid var(--line);}
.fig-wide img{width:100%;aspect-ratio:21/9;object-fit:cover;display:block;}
.fig-wide figcaption{font-family:var(--sans);font-size:.82rem;color:var(--slate);padding:.65rem .9rem .75rem;}

.mapfig{margin:0 0 2rem;background:var(--paper);border:1px solid var(--line);}
.mapfig img{width:100%;height:auto;display:block;}
.mapfig figcaption{font-family:var(--sans);font-size:.8rem;color:var(--slate);padding:.65rem .9rem .75rem;border-top:1px solid var(--line);}

.cards.three{grid-template-columns:repeat(3,minmax(0,1fr));}
.cards.four{grid-template-columns:repeat(4,minmax(0,1fr));}
@media (max-width:1000px){
  .cards.three,.cards.four{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:620px){
  .cards.three,.cards.four{grid-template-columns:minmax(0,1fr);}
}
.card.pad{padding:1.5rem 1.5rem 1.7rem;}
.card .big-num{
  font-family:var(--sans);font-weight:600;font-size:2.6rem;letter-spacing:-.035em;
  color:var(--accent);line-height:1;margin:.3rem 0 .2rem;font-variant-numeric:tabular-nums;
}

.bars{display:flex;flex-direction:column;gap:.55rem;margin:.6rem 0 .3rem;}
.bar{display:grid;grid-template-columns:7.5rem 1fr auto;gap:.7rem;align-items:center;}
.bar .bl{font-family:var(--sans);font-size:.82rem;color:var(--slate);}
.bar .bt{height:.55rem;background:var(--accent-soft);position:relative;border-radius:1px;}
.bar .bt::before{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);background:var(--accent);border-radius:1px;}
.bar .bv{font-family:var(--mono);font-size:.78rem;color:var(--faint);font-variant-numeric:tabular-nums;}

caption{
  caption-side:top;text-align:left;font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--faint);padding:.8rem .95rem .2rem;
}

a.doc{text-decoration:none;color:inherit;transition:background .15s;}
a.doc:hover{background:var(--accent-soft);}
a.doc h3{color:var(--accent-deep);}
.doc .ext{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;color:var(--faint);
  border:1px solid var(--line);padding:.1rem .3rem;border-radius:2px;vertical-align:.12em;margin-left:.45rem;
}
a.doc:hover .ext{border-color:var(--accent);color:var(--accent-deep);}

.wide-card{max-width:44rem;}
.contact-card .row{flex-direction:row;align-items:baseline;gap:1rem;flex-wrap:wrap;}
.contact-card .k{min-width:6rem;}

.src{font-family:var(--mono);font-size:.76rem;color:var(--faint);line-height:1.55;max-width:var(--measure);}
.sec.dark .src{color:var(--faint-dark);}

@media (max-width:560px){
  .bar{grid-template-columns:6rem 1fr auto;}
  .contact-card .row{flex-direction:column;gap:.15rem;}
}

.btn-line{background:var(--paper);color:var(--accent-deep);border:1px solid var(--line);}
.btn-line:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);}
.btn-line .ext{margin-left:.4rem;}

.btn-ghost .ext{margin-left:.4rem;border-color:rgba(237,238,236,.3);color:#B8BEC3;}
.btn-ghost:hover .ext{border-color:rgba(237,238,236,.6);color:#EDEEEC;}

/* ═══════════ v2 — auditoría de diseño ═══════════ */

/* Barra de progreso de lectura */
.progress{
  position:fixed;top:0;left:0;height:2px;width:100%;z-index:80;
  background:transparent;pointer-events:none;
}
.progress i{display:block;height:100%;width:0;background:var(--accent);transition:width .08s linear;}
@media (prefers-reduced-motion:reduce){.progress i{transition:none;}}

/* Hero contenido: la franja de cifras siempre asoma */
.hero{min-height:auto;}
.hero-in{padding-block:clamp(3.5rem,9vw,6rem) clamp(2.4rem,5vw,3.4rem);}
.hero h1{max-width:19ch;}
@media (min-width:901px){
  .hero{max-height:min(84vh,660px);display:flex;align-items:center;}
  .hero > .wrap{width:100%;}   /* si no, el flex encoge el contenedor y lo centra */
}

/* Sección activa en el menú */
.nav a[aria-current="true"]{color:var(--ink);border-bottom-color:var(--accent);}

/* Acción de contacto en la barra, siempre disponible en móvil */
.bar-cta{
  display:none;font-family:var(--sans);font-size:.82rem;font-weight:500;
  background:var(--accent);color:#fff;text-decoration:none;
  padding:.55rem .85rem;border-radius:2px;margin-left:auto;margin-right:.6rem;
}
.bar-cta:hover{background:var(--accent-deep);color:#fff;}
@media (max-width:860px){
  .bar-cta{display:inline-flex;align-items:center;min-height:2.75rem;box-sizing:border-box;}
  .brand{margin-right:0;}
}
/* En pantallas estrechas el nombre se parte en dos lineas y crece la barra:
   se oculta el subtitulo, que ya aparece en el pie y en el contacto. */
@media (max-width:560px){ .brand span{display:none;} .brand b{font-size:.98rem;} }

/* ── El momento jurídico ── */
.legal{
  background:var(--basalt);color:#E8EAE8;border-bottom:none;
  padding-block:clamp(3.5rem,8vw,6rem);
}
.legal-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
.legal-claim{
  font-family:var(--display);font-weight:700;
  font-size:clamp(1.9rem,4.2vw,3.1rem);letter-spacing:-.035em;line-height:1.08;
  color:#FBFBFA;max-width:14ch;text-wrap:balance;
}
.legal-claim em{font-style:normal;color:var(--accent);}
.legal-sub{color:#B8BEC3;margin-top:1.3rem;max-width:44ch;font-size:1.03rem;}
.legal-why{margin-top:1.6rem;display:flex;flex-direction:column;gap:.75rem;}
.legal-why p{color:#9AA2A9;font-size:.95rem;max-width:46ch;}
.legal-why strong{color:#E8EAE8;font-weight:400;}
.evidence{
  background:var(--paper);border:1px solid var(--line-dark);
  display:block;text-decoration:none;color:inherit;
}
.evidence img{width:100%;display:block;}
.evidence figcaption{
  padding:.85rem 1rem 1rem;background:var(--basalt-2);border-top:1px solid var(--line-dark);
  display:flex;flex-direction:column;gap:.2rem;
}
.evidence .t{font-family:var(--sans);font-size:.9rem;font-weight:500;color:#EDEEEC;}
.evidence .s{font-family:var(--mono);font-size:.72rem;color:var(--faint-dark);line-height:1.5;}
.evidence:hover{border-color:var(--accent);}
.evidence:hover .t{color:#fff;}
@media (max-width:820px){ .legal-grid{grid-template-columns:1fr;} }

/* ── Expediente: estantería de documentos ── */
.shelf{display:flex;flex-direction:column;gap:2.2rem;}
.decade{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:0 1.6rem;}
.decade > .yr{
  font-family:var(--mono);font-size:.9rem;color:var(--accent);
  padding-top:.2rem;letter-spacing:.04em;
}
.docgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11.5rem,1fr));gap:1.1rem;}
.docitem{
  display:flex;flex-direction:column;text-decoration:none;color:inherit;
  transition:transform .16s ease,box-shadow .16s ease;
}
.docitem .cover{
  border:1px solid var(--line);background:var(--paper);overflow:hidden;
  aspect-ratio:5/4;display:flex;align-items:flex-start;justify-content:center;
}
.docitem .cover img{width:100%;height:100%;object-fit:cover;object-position:top center;}
.docitem .cover.sinimg{
  align-items:center;font-family:var(--mono);font-size:.7rem;color:var(--faint);
  text-align:center;padding:1rem;background:var(--stone);
}
.docitem h3{font-size:.92rem;margin-top:.7rem;line-height:1.28;}
.docitem p{font-size:.83rem;color:var(--slate);margin-top:.25rem;}
.docitem .tag{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--faint);margin-top:.4rem;display:flex;align-items:center;gap:.35rem;
}
a.docitem:hover{transform:translateY(-3px);}
a.docitem:hover .cover{border-color:var(--accent);box-shadow:0 4px 18px rgba(18,22,26,.10);}
a.docitem:hover h3{color:var(--accent-deep);}
a.docitem:hover .tag{color:var(--accent);}
.docitem.solo{opacity:.72;}
@media (prefers-reduced-motion:reduce){a.docitem:hover{transform:none;}}
@media (max-width:700px){
  .decade{grid-template-columns:1fr;gap:.6rem;}
  .decade > .yr{padding-top:0;}
  .docgrid{grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.9rem;}
}

/* ── Qué buscamos: dos rutas con peso, el resto en una línea ── */
.routes-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:1.5rem;}
.route-main{
  background:var(--basalt-2);border:1px solid var(--line-dark);
  padding:1.7rem 1.8rem 1.9rem;display:flex;flex-direction:column;gap:.7rem;
}
.route-main .k{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#D98A70;
}
.route-main h3{color:#FBFBFA;font-size:1.22rem;}
.route-main p{color:#B8BEC3;font-size:.96rem;max-width:none;}
.route-main .por{
  margin-top:.4rem;padding-top:.85rem;border-top:1px solid var(--line-dark);
  color:#9AA2A9;font-size:.88rem;
}
.routes-rest{
  margin-top:1.6rem;color:#9AA2A9;font-size:.95rem;max-width:62ch;
  border-left:2px solid var(--line-dark);padding-left:1.1rem;
}
.routes-rest b{color:#E8EAE8;font-weight:400;}

/* ── Tabla que desborda: aviso visual ── */
.tablewrap{position:relative;}
.tablewrap::after{
  content:"";position:absolute;top:0;right:0;bottom:0;width:2.5rem;pointer-events:none;
  background:linear-gradient(90deg,rgba(255,255,255,0) 0%,var(--paper) 90%);
  opacity:0;transition:opacity .2s;
}
.tablewrap.desborda::after{opacity:1;}

/* ── Contacto táctil en móvil ── */
@media (max-width:700px){
  .contact-card .row{padding-block:.35rem;}
  .contact-card .v a{
    display:inline-block;padding:.6rem 0;min-height:2.9rem;
    font-size:1.02rem;font-weight:500;
  }
}
.contact-card .v a{text-decoration:none;border-bottom:1px solid var(--accent-soft);}
.contact-card .v a:hover{border-bottom-color:var(--accent);}

/* WhatsApp */
.btn-wa{background:var(--paper);color:var(--accent-deep);border:1px solid var(--line);}
.btn-wa:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);}

/* ═══════════ v3 — menú fijo, ancho aprovechado, cuadrícula de documentos ═══════════ */

/* ── El menú vive fijo arriba en escritorio ──
   Nueve secciones caben porque baja el cuerpo y la separación; el colapso
   a botón de menú se retrasa hasta 860 px, donde ya no caben de ninguna forma. */
.nav{gap:1.05rem;}
.nav a{font-size:.82rem;}
@media (min-width:861px) and (max-width:1060px){
  .nav{gap:.8rem;}
  .nav a{font-size:.775rem;}
  .brand span{display:none;}
}

/* Idioma: etiqueta corta con su propio recuadro, para que no se lea como
   una sección más del menú. */
.nav a.lang{
  font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.1em;
  background:var(--stone);border:1px solid var(--line);color:var(--ink);
  padding:.34rem .6rem;border-radius:2px;margin-left:.4rem;
}
.nav a.lang:hover{
  background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep);
}

/* ── Cabecera de sección a dos columnas: el título deja de colgar solo
      a la izquierda y la entradilla ocupa el ancho que sobraba. ── */
@media (min-width:1040px){
  .sec-head{
    display:grid;max-width:none;align-items:start;
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
    column-gap:clamp(2.5rem,5vw,4.5rem);row-gap:.75rem;
  }
  .sec-head .eyebrow{grid-column:1;grid-row:1;}
  .sec-head h2{grid-column:1;grid-row:2;}
  .sec-head .lede{grid-column:2;grid-row:1/span 2;align-self:end;padding-bottom:.3rem;}
}

/* ── Prosa con panel de datos al costado ──
   La medida de línea se queda en su ancho legible; lo que se llena es el
   espacio sobrante, y se llena con datos, no con texto estirado. */
.railed{display:grid;grid-template-columns:minmax(0,1fr);gap:1.6rem;}
.railed > .prosa{display:flex;flex-direction:column;gap:1.15rem;}
@media (min-width:1040px){
  .railed{
    grid-template-columns:minmax(0,34rem) minmax(0,1fr);
    column-gap:clamp(2.5rem,5vw,4.5rem);align-items:start;
  }
}
.rail{background:var(--paper);border:1px solid var(--line);display:flex;flex-direction:column;}
.rail .rt{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--faint);padding:.95rem 1.15rem .6rem;
}
.rail dl{margin:0;display:flex;flex-direction:column;}
.rail .r{
  display:flex;justify-content:space-between;align-items:baseline;gap:1.2rem;
  padding:.6rem 1.15rem;border-top:1px solid var(--line);
}
.rail dt{font-family:var(--sans);font-size:.83rem;color:var(--slate);}
.rail dd{
  margin:0;font-family:var(--sans);font-size:.92rem;font-weight:500;
  font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;
}
.rail .tot{background:var(--stone);}
.rail .tot dt{color:var(--ink);}
.rail .tot dd{color:var(--accent-deep);font-size:1.06rem;font-weight:600;}
.rail .rn{
  font-family:var(--sans);font-size:.78rem;color:var(--faint);line-height:1.5;
  padding:.75rem 1.15rem .95rem;border-top:1px solid var(--line);
}
.rail .rn + .rn{border-top:none;padding-top:0;}

/* ── Expediente: una sola cuadrícula, ordenada por tema ── */
.docgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.7rem 1.4rem;}
@media (max-width:1000px){ .docgrid{grid-template-columns:repeat(3,minmax(0,1fr));} }
@media (max-width:760px){ .docgrid{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:560px){ .docgrid{grid-template-columns:minmax(0,1fr);gap:1.5rem;} }
.docitem .tag{flex-wrap:wrap;}

/* ── Contacto: un solo renglón de teléfono, con las dos acciones ── */
.contact-card .v a.wa{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;
  border:1px solid var(--line);border-radius:2px;padding:.24rem .48rem;
  margin-left:.65rem;color:var(--faint);vertical-align:.12em;
}
.contact-card .v a.wa:hover{
  border-color:var(--accent);color:var(--accent-deep);background:var(--accent-soft);
}
@media (max-width:700px){
  .contact-card .v a.wa{
    display:inline-block;margin-left:.9rem;padding:.5rem .7rem;
    min-height:0;font-size:.7rem;font-weight:500;
  }
}

/* ── Contacto: datos y acciones lado a lado ── */
.contact-2{display:grid;grid-template-columns:minmax(0,1fr);gap:1.6rem;}
@media (min-width:1040px){
  .contact-2{
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
    column-gap:clamp(2.5rem,5vw,4.5rem);align-items:start;
  }
}
.contact-2 .contact-card{max-width:none;}
.contact-act{display:flex;flex-direction:column;gap:.75rem;}
.contact-act .btn{text-align:center;}

/* Fotografía al costado de un bloque de prosa, en el lugar del panel de datos */
.railfig{margin:0;background:var(--paper);border:1px solid var(--line);}
.railfig img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
.railfig figcaption{
  font-family:var(--sans);font-size:.82rem;color:var(--slate);
  padding:.65rem .9rem .75rem;border-top:1px solid var(--line);
}
@media (max-width:1039px){ .railfig img{aspect-ratio:16/9;} }
