/* ============================================================================
   ARQUIFORMA — Arquitectura y Construcción, Linares (Región del Maule)
   Lenguaje visual: "lámina de plano". Negro de tinta, hairlines de dibujo
   técnico, tipografía geométrica ligera y el rombo de la marca como signo
   de sistema. Esquinas vivas: ningún radio en todo el sitio.
   ========================================================================= */

/* ── 1. Tokens ───────────────────────────────────────────────────────────── */
:root{
  --ink:        #0a0a0b;
  --ink-2:      #0f0f11;
  --ink-3:      #16161a;
  --paper:      #f4f4f5;
  --white:      #ffffff;
  --muted:      #a3a3a8;
  --muted-2:    #6f6f77;
  --line:       rgba(255,255,255,.11);
  --line-2:     rgba(255,255,255,.055);

  --red:        #be1422;   /* color de marca — rellenos y trazos */
  --red-ink:    #ef2033;   /* variante legible para texto sobre negro */
  --red-hot:    #d4172a;

  --f-disp: "Jost", "Century Gothic", "Futura", system-ui, sans-serif;
  --f-body: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --hdr: 68px;
  --pad-sec: clamp(3.25rem, 6vw, 6rem);
  --gut: clamp(1.25rem, 5vw, 4.5rem);
  --max: 1440px;

  --ease: cubic-bezier(.16,1,.3,1);
}
@media (min-width: 900px){ :root{ --hdr: 88px; } }

/* ── 2. Reset y base ─────────────────────────────────────────────────────── */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; padding:0; border-radius:0; }

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--hdr) + 1.5rem);
  overflow-x:clip;
}
body{
  background:var(--ink);
  color:var(--paper);
  font-family:var(--f-body);
  font-size:clamp(.975rem, .35vw + .9rem, 1.0625rem);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:clip;
}
body.is-locked{ overflow:hidden; }

img,svg,iframe{ display:block; max-width:100%; }
img{ height:auto; }
ul,ol{ list-style:none; }
a{ color:inherit; text-decoration:none; }
button,input,select,textarea{ font:inherit; color:inherit; background:none; border:none; }
button{ cursor:pointer; }
h1,h2,h3,h4{ font-family:var(--f-disp); font-weight:300; line-height:1.06; letter-spacing:-.015em; }
strong,b{ font-weight:500; color:var(--white); }

::selection{ background:var(--red); color:#fff; }
:focus-visible{ outline:2px solid var(--red-ink); outline-offset:3px; }

/* ── 3. Utilidades ───────────────────────────────────────────────────────── */
.wrap{ width:100%; max-width:var(--max); margin-inline:auto; padding-inline:var(--gut); }

.skip{
  position:absolute; left:.75rem; top:-6rem; z-index:300;
  background:var(--red); color:#fff; padding:.75rem 1.25rem;
  font-family:var(--f-mono); font-size:.75rem; letter-spacing:.1em;
  transition:top .25s var(--ease);
}
.skip:focus{ top:.75rem; }

.eyebrow{
  display:flex; align-items:center; gap:.7rem; flex-wrap:wrap;
  font-family:var(--f-mono); font-size:.6875rem; font-weight:400;
  letter-spacing:.24em; text-transform:uppercase; color:var(--muted);
  margin-bottom:1.35rem;
}
.eyebrow::before{
  content:""; width:6px; height:6px; background:var(--red);
  transform:rotate(45deg); flex:none;
}
.dot{
  display:inline-block; width:4px; height:4px; background:var(--muted-2);
  transform:rotate(45deg); flex:none;
}
@media (max-width:479px){ .eyebrow{ letter-spacing:.13em; gap:.5rem; } }
.rhomb{
  display:block; width:11px; height:11px; flex:none;
  border:1px solid var(--red); transform:rotate(45deg);
  transition:background .35s var(--ease), transform .45s var(--ease);
}
.muted{ color:var(--muted); }

.lnk{
  display:inline-flex; align-items:center; gap:.6rem; flex:none;
  font-family:var(--f-mono); font-size:.75rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted);
  padding-bottom:.35rem; border-bottom:1px solid var(--line);
  transition:color .3s var(--ease), border-color .3s var(--ease);
}
.lnk:hover{ color:var(--white); border-color:var(--red); }
.lnk i{ transition:transform .35s var(--ease); }
.lnk:hover i{ transform:translate(3px,-3px); }

/* Aparición al hacer scroll (sólo cuando hay JS) */
.js .reveal{
  opacity:0; transform:translateY(20px);
  transition:opacity .75s var(--ease), transform .75s var(--ease);
  transition-delay:var(--d, 0ms);
}
.js .reveal.is-in{ opacity:1; transform:none; }

/* ── 4. Marco de lámina ──────────────────────────────────────────────────── */
.sheet{
  position:fixed; inset:clamp(.5rem,1.4vw,1.15rem); z-index:90;
  border:1px solid var(--line-2); pointer-events:none;
}
.sheet::before,.sheet::after{
  content:""; position:absolute; width:14px; height:14px;
  border-color:var(--red); border-style:solid;
}
.sheet::before{ top:-1px; left:-1px; border-width:1px 0 0 1px; }
.sheet::after{ bottom:-1px; right:-1px; border-width:0 1px 1px 0; }
.sheet__edge{ display:none; }
@media (min-width:1280px){
  .sheet__edge{
    display:block; position:absolute; left:-1px; bottom:2.5rem;
    transform-origin:left bottom; transform:rotate(-90deg) translateX(0);
    padding-left:.9rem;
    font-family:var(--f-mono); font-size:.625rem; letter-spacing:.34em;
    text-transform:uppercase; color:var(--muted-2); white-space:nowrap;
  }
}

/* ── 5. Cabecera ─────────────────────────────────────────────────────────── */
.hdr{
  position:fixed; inset:0 0 auto 0; z-index:100;
  transition:background .4s var(--ease), border-color .4s var(--ease), backdrop-filter .4s;
  border-bottom:1px solid transparent;
}
.hdr.is-stuck,.hdr.is-solid{
  background:rgba(10,10,11,.93);
  backdrop-filter:saturate(140%) blur(16px);
  -webkit-backdrop-filter:saturate(140%) blur(16px);
  border-bottom-color:var(--line);
}
.hdr.is-menu-open{
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  z-index:210;
}
.hdr__in{
  max-width:var(--max); margin-inline:auto; padding-inline:var(--gut);
  height:var(--hdr); display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.brand{ display:block; flex:none; }
.brand img{ width:auto; height:clamp(45px,5.5vw,60px); }

.nav{ display:flex; align-items:center; gap:clamp(1.5rem,3vw,2.75rem); }
.nav__list{ display:flex; align-items:center; gap:clamp(1.25rem,2.4vw,2.25rem); }
.nav__link{
  font-family:var(--f-disp); font-size:.9375rem; font-weight:400;
  letter-spacing:.05em; color:var(--muted); position:relative; display:block;
  transition:color .3s var(--ease);
}
.nav__link span{ display:block; position:relative; padding-block:.3rem; }
.nav__link span::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:var(--red); transform:scaleX(0); transform-origin:right;
  transition:transform .45s var(--ease);
}
.nav__link:hover{ color:var(--white); }
.nav__link:hover span::after{ transform:scaleX(1); transform-origin:left; }
.nav__link.is-current{ color:var(--white); }
.nav__link.is-current span::after{ transform:scaleX(1); }

.burger{
  display:none; width:44px; height:44px; margin-right:-10px; flex:none;
  position:relative; z-index:1;
}
.burger span{
  position:absolute; left:11px; width:22px; height:1px; background:var(--paper);
  transition:transform .4s var(--ease), opacity .25s;
}
.burger span:nth-child(1){ top:19px; }
.burger span:nth-child(2){ top:25px; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(3px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ transform:translateY(-3px) rotate(-45deg); }

@media (max-width:899px){
  .burger{ display:block; position:relative; z-index:220; }
  .nav{
    position:fixed; inset:0; z-index:200;
    flex-direction:column; align-items:flex-start; justify-content:center;
    gap:0;
    padding:max(var(--gut), env(safe-area-inset-top)) var(--gut) max(var(--gut), env(safe-area-inset-bottom));
    background:var(--ink);
    clip-path:inset(0 0 100% 0);
    transition:clip-path .6s var(--ease);
    pointer-events:none;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .nav.is-open{ clip-path:inset(0 0 0 0); pointer-events:auto; }
  .nav__list{ flex-direction:column; align-items:flex-start; gap:0; width:100%; }
  .nav__list li{ width:100%; border-bottom:1px solid var(--line); }
  .nav__link{ font-size:clamp(1.1rem,5vw,1.5rem); font-weight:300; letter-spacing:-.01em; }
  .nav__link span{ padding-block:1.05rem; }
  .nav__link span::after{ display:none; }
  .nav__link.is-current::before{
    content:""; position:absolute; left:-1rem; top:50%; width:7px; height:7px;
    background:var(--red); transform:translateY(-50%) rotate(45deg);
  }
  .nav__cta{ margin-top:2.25rem; }
  .js .nav__list li,.js .nav__cta{ opacity:0; transform:translateY(14px); transition:opacity .5s var(--ease),transform .5s var(--ease); }
  .js .nav.is-open .nav__list li,.js .nav.is-open .nav__cta{ opacity:1; transform:none; }
  .js .nav.is-open .nav__list li:nth-child(1){ transition-delay:.14s; }
  .js .nav.is-open .nav__list li:nth-child(2){ transition-delay:.20s; }
  .js .nav.is-open .nav__list li:nth-child(3){ transition-delay:.26s; }
  .js .nav.is-open .nav__cta{ transition-delay:.34s; }
}

/* ── 6. Botones ──────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.65rem;
  font-family:var(--f-disp); font-size:.9375rem; font-weight:500; letter-spacing:.03em;
  padding:.85rem 1.5rem; border:1px solid transparent; white-space:nowrap;
  transition:background .35s var(--ease), border-color .35s var(--ease),
             color .35s var(--ease), transform .35s var(--ease);
}
.btn i{ font-size:.9em; transition:transform .35s var(--ease); }
.btn:hover{ transform:translateY(-2px); }
.btn:hover i.fa-arrow-up-right{ transform:translate(3px,-3px); }
.btn--lg{ padding:1.05rem 1.9rem; font-size:1rem; }
.btn--block{ width:100%; }

.btn--red{ background:var(--red); border-color:var(--red); color:#fff; }
.btn--red:hover{ background:var(--red-hot); border-color:var(--red-hot); }

.btn--ghost{ border-color:rgba(255,255,255,.2); color:var(--paper); }
.btn--ghost:hover{ border-color:var(--paper); background:rgba(255,255,255,.05); }

.btn--dark{ background:var(--ink); color:#fff; border-color:var(--ink); }
.btn--dark:hover{ background:#000; border-color:#000; }

.btn--outline-dark{ border-color:rgba(255,255,255,.55); color:#fff; }
.btn--outline-dark:hover{ background:rgba(255,255,255,.12); border-color:#fff; }

.nav__cta{ padding:.7rem 1.2rem; font-size:.875rem; }
@media (max-width:1099px) and (min-width:900px){ .nav__cta span{ display:none; } }

/* ── 7. Hero ─────────────────────────────────────────────────────────────── */
.hero{ position:relative; padding-top:calc(var(--hdr) + clamp(2.25rem,5vw,4.25rem)); overflow:hidden; }
.hero::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(52% 46% at 86% 2%, rgba(190,20,34,.13), transparent 68%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 8.3333%);
  -webkit-mask-image:linear-gradient(to bottom, #000 0%, #000 42%, transparent 88%);
  mask-image:linear-gradient(to bottom, #000 0%, #000 42%, transparent 88%);
}
.hero > *{ position:relative; }

.hero__grid{ display:grid; gap:clamp(2.5rem,5vw,4.5rem); align-items:center; }
@media (min-width:1000px){
  .hero__grid{ grid-template-columns:minmax(0,1.62fr) minmax(0,1fr); }
}

.hero__h1{
  font-size:clamp(2.35rem,4.55vw,4.05rem);
  font-weight:200; line-height:1.02; letter-spacing:-.028em; text-wrap:balance;
  margin-bottom:clamp(1.35rem,2.4vw,2rem);
}
.hero__h1 em{
  font-style:normal; font-weight:300;
  text-decoration:underline; text-decoration-color:var(--red);
  text-decoration-thickness:2px; text-underline-offset:.13em;
  text-decoration-skip-ink:none;
}
.hero__lead{ color:var(--muted); max-width:56ch; font-size:clamp(1.02rem,1.1vw,1.175rem); }
.hero__acts{ display:flex; flex-wrap:wrap; gap:.85rem; margin-top:clamp(1.85rem,3vw,2.75rem); }

.hero__fig{ position:relative; }
.hero__slides{
  position:relative; overflow:hidden;
  aspect-ratio:4/5; border:1px solid var(--line);
}
@media (min-width:1000px){ .hero__slides{ aspect-ratio:auto; height:min(56vh,545px); } }
.hero__slides img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:grayscale(.62) contrast(1.05) brightness(.97);
  opacity:0; animation:heroFade 20s infinite;
}
.hero__slides img:nth-child(1){ animation-delay:0s; }
.hero__slides img:nth-child(2){ animation-delay:5s; }
.hero__slides img:nth-child(3){ animation-delay:10s; }
.hero__slides img:nth-child(4){ animation-delay:15s; }
@keyframes heroFade{
  0%   { opacity:0; }
  4%   { opacity:1; }
  21%  { opacity:1; }
  25%  { opacity:0; }
  100% { opacity:0; }
}
@media (prefers-reduced-motion:reduce){
  .hero__slides img{ animation:none; opacity:0; }
  .hero__slides img:nth-child(1){ opacity:1; }
}
.hero__cap{
  margin-top:.85rem; padding-top:.7rem; border-top:1px solid var(--line);
  display:flex; align-items:center; gap:.6rem;
  font-family:var(--f-mono); font-size:.6875rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted-2);
}

/* Línea de cota */
.dims{
  margin-top:clamp(2.25rem,4vw,3.5rem);
  border-top:1px solid var(--line); display:grid;
}
@media (min-width:760px){ .dims{ grid-template-columns:repeat(3,1fr); } }
.dims__i{ position:relative; padding:1.5rem 0 1.5rem 1.4rem; border-bottom:1px solid var(--line); }
@media (min-width:760px){
  .dims__i{ border-bottom:none; padding-right:2rem; }
  .dims__i + .dims__i{ border-left:1px solid var(--line); padding-left:2.2rem; }
}
.dims__i::before{
  content:""; position:absolute; left:0; top:1.55rem; width:8px; height:8px;
  border-left:1px solid var(--red); border-top:1px solid var(--red);
}
@media (min-width:760px){ .dims__i + .dims__i::before{ left:.85rem; } }
.dims dt{
  font-family:var(--f-mono); font-size:.625rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--muted-2); margin-bottom:.45rem;
}
.dims dd{ font-family:var(--f-disp); font-weight:300; font-size:1.05rem; color:var(--muted); }
.dims dd b{ font-size:clamp(1.8rem,3vw,2.4rem); font-weight:300; color:var(--white); margin-right:.4rem; letter-spacing:-.02em; }

/* ── 8. Secciones ────────────────────────────────────────────────────────── */
.sec{ padding-block:var(--pad-sec); }
.sec__head{ margin-bottom:clamp(1.85rem,3.4vw,3rem); }
.sec__h2{ font-size:clamp(1.9rem,3.9vw,3.35rem); font-weight:200; letter-spacing:-.025em; max-width:20ch; text-wrap:balance; }
.sec__sub{ color:var(--muted); max-width:58ch; margin-top:1.15rem; }
.sec__head--split{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:1.75rem; }
.sec__head--split .sec__h2{ max-width:16ch; }

/* ── 9. Índice de servicios ──────────────────────────────────────────────── */
.idx{ border-top:1px solid var(--line); }
.idx__row{
  position:relative; display:grid; gap:.3rem .9rem;
  grid-template-columns:auto 1fr; align-items:start;
  padding:1.5rem .75rem 1.5rem .25rem; border-bottom:1px solid var(--line);
  transition:background .45s var(--ease);
}
.idx__row::after{
  content:""; position:absolute; left:0; bottom:-1px; height:1px; width:0;
  background:var(--red); transition:width .65s var(--ease);
}
.idx__n{
  font-family:var(--f-mono); font-size:.6875rem; letter-spacing:.16em;
  color:var(--muted-2); padding-top:.55rem; transition:color .35s var(--ease);
}
.idx__t{ font-size:clamp(1.2rem,2.1vw,1.65rem); font-weight:400; transition:transform .5s var(--ease); }
.idx__d{ grid-column:2; color:var(--muted); max-width:56ch; font-size:.9688rem; }
.idx__i{ display:none; font-size:1.5rem; color:var(--muted-2); transition:color .4s var(--ease), transform .5s var(--ease); }

@media (min-width:900px){
  .idx__row{ grid-template-columns:4.5rem minmax(0,17rem) minmax(0,1fr) 3rem; align-items:center; padding-block:2.1rem; column-gap:2rem; }
  .idx__n{ padding-top:0; }
  .idx__d{ grid-column:auto; }
  .idx__i{ display:block; justify-self:end; }
}
@media (hover:hover){
  .idx__row:hover{ background:linear-gradient(90deg, rgba(255,255,255,.045), rgba(255,255,255,0) 65%); }
  .idx__row:hover::after{ width:100%; }
  .idx__row:hover .idx__n{ color:var(--red-ink); }
  .idx__row:hover .idx__t{ transform:translateX(7px); }
  .idx__row:hover .idx__i{ color:var(--red-ink); transform:scale(1.08); }
}

/* ── 10. Obras ───────────────────────────────────────────────────────────── */
.obras{ display:grid; gap:clamp(2.25rem,4vw,3.5rem) clamp(1.5rem,3vw,3rem); }
@media (min-width:760px){
  .obras{ grid-template-columns:repeat(2,1fr); }
  .obra--a,.obra--b,.obra--c,.obra--d{ grid-column:auto; margin-top:0; }
}

.obra__fig{
  position:relative; overflow:hidden; background:var(--ink-2);
  border:1px solid var(--line); aspect-ratio:3/2;
}
.obra__fig img{
  width:100%; height:100%; object-fit:cover;
  filter:grayscale(1) contrast(1.03) brightness(.9);
  transition:transform 1s var(--ease), filter .65s var(--ease);
}
.obra__fig::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to top, rgba(8,8,9,.85), transparent 42%);
  opacity:0; transition:opacity .5s var(--ease);
}
.obra__mark{
  position:absolute; top:50%; left:50%; width:62px; height:62px; z-index:2;
  border:1px solid var(--red); background:rgba(190,20,34,.08);
  transform:translate(-50%,-50%) rotate(45deg) scale(.55); opacity:0;
  transition:transform .65s var(--ease), opacity .45s var(--ease);
}
.obra__cue{
  position:absolute; left:1.1rem; bottom:1.1rem; z-index:3;
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--f-mono); font-size:.6875rem; letter-spacing:.2em;
  text-transform:uppercase; color:#fff;
  opacity:0; transform:translateY(12px);
  transition:opacity .45s var(--ease), transform .5s var(--ease);
}
@media (hover:hover){
  .obra__link:hover .obra__fig img{ transform:scale(1.055); filter:grayscale(0) contrast(1) brightness(1); }
  .obra__link:hover .obra__fig::after{ opacity:1; }
  .obra__link:hover .obra__mark{ opacity:1; transform:translate(-50%,-50%) rotate(45deg) scale(1); }
  .obra__link:hover .obra__cue{ opacity:1; transform:none; }
  .obra__link:hover .obra__meta{ border-top-color:var(--red); }
  .obra__link:hover .obra__t{ color:var(--white); }
}
.obra__link:focus-visible .obra__mark{ opacity:1; transform:translate(-50%,-50%) rotate(45deg) scale(1); }

.obra__meta{
  display:grid; grid-template-columns:auto 1fr; column-gap:1.05rem; row-gap:.3rem;
  margin-top:1.1rem; padding-top:.9rem; border-top:1px solid var(--line);
  transition:border-color .4s var(--ease);
}
.obra__n{
  grid-row:1 / 3; font-family:var(--f-mono); font-size:.6875rem;
  letter-spacing:.14em; color:var(--red-ink); padding-top:.32rem;
}
.obra__t{ font-size:clamp(1.2rem,2vw,1.55rem); font-weight:400; color:var(--paper); transition:color .35s var(--ease); }
.obra__tags{ display:flex; flex-wrap:wrap; gap:.45rem .9rem; font-family:var(--f-mono); font-size:.6875rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-2); }
.obra__tags span{ display:inline-flex; align-items:center; gap:.55rem; }
.obra__tags span + span::before{ content:""; width:3px; height:3px; background:var(--muted-2); transform:rotate(45deg); }
.obra__desc{ margin-top:.95rem; color:var(--muted); font-size:.9375rem; max-width:52ch; }

/* ── 11. Diferenciadores ─────────────────────────────────────────────────── */
.why{ display:grid; gap:clamp(2rem,3.5vw,2.75rem); border-top:1px solid var(--line); padding-top:clamp(1.75rem,3vw,2.5rem); }
@media (min-width:700px){ .why{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1100px){ .why{ grid-template-columns:repeat(4,1fr); gap:0; } }
.why__i{ padding-right:1.5rem; }
@media (min-width:1100px){
  .why__i{ padding-inline:2.25rem; }
  .why__i:first-child{ padding-left:0; }
  .why__i + .why__i{ border-left:1px solid var(--line); }
}
.why__i .rhomb{ margin-bottom:1.35rem; }
.why__i h3{ font-size:1.3rem; font-weight:400; margin-bottom:.7rem; }
.why__i p{ color:var(--muted); font-size:.9375rem; }

/* ── 12. Nosotros ────────────────────────────────────────────────────────── */
.about{ display:grid; gap:clamp(2.5rem,5vw,4.5rem); }
@media (min-width:900px){ .about{ grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); } }
.about__fig img{ width:100%; aspect-ratio:4/5; object-fit:cover; border:1px solid var(--line); filter:grayscale(.62) contrast(1.05) brightness(.97); }
@media (min-width:900px){ .about__fig{ position:sticky; top:calc(var(--hdr) + 2.5rem); } }
.about__p{ color:var(--muted); margin-top:1.25rem; max-width:62ch; }
.ticks{ margin-top:2rem; display:grid; gap:.85rem; }
.ticks li{ display:grid; grid-template-columns:auto 1fr; gap:.85rem; align-items:start; color:var(--muted); font-size:.9375rem; }
.ticks i{ color:var(--red-ink); font-size:1rem; margin-top:.28rem; }

.team{ margin-top:clamp(2.25rem,4vw,3rem); border-top:1px solid var(--line); padding-top:1.5rem; }
.team__lbl{ font-family:var(--f-mono); font-size:.625rem; letter-spacing:.24em; text-transform:uppercase; color:var(--muted-2); margin-bottom:1.15rem; }
.team__list{ display:grid; gap:1rem; }
@media (min-width:600px){ .team__list{ grid-template-columns:repeat(3,1fr); gap:1.5rem; } }
.team__list li{ position:relative; padding-left:1.15rem; }
.team__list li::before{ content:""; position:absolute; left:0; top:.62rem; width:6px; height:6px; border:1px solid var(--red); transform:rotate(45deg); }
.team__list b{ display:block; font-family:var(--f-disp); font-weight:400; font-size:1.02rem; }
.team__list span{ font-family:var(--f-mono); font-size:.6875rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-2); }

/* ── 13. Testimonios ─────────────────────────────────────────────────────── */
.voces{ display:grid; gap:clamp(2.25rem,4vw,3rem); }
@media (min-width:720px){ .voces{ grid-template-columns:repeat(3,1fr); } }
.voz{ border-top:1px solid var(--line); padding-top:1.6rem; }
.voz .rhomb{ margin-bottom:1.5rem; }
.voz blockquote p{
  font-family:var(--f-disp); font-weight:300;
  font-size:clamp(1.1rem,1.6vw,1.3rem); line-height:1.45;
  letter-spacing:-.01em; color:var(--paper);
}
.voz figcaption{ margin-top:1.5rem; }
.voz figcaption b{ display:block; font-family:var(--f-disp); font-weight:400; font-size:1rem; }
.voz figcaption span{ font-family:var(--f-mono); font-size:.6875rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-2); }

/* ── 14. Cobertura ───────────────────────────────────────────────────────── */
.cover{ padding-block:clamp(2.5rem,4.5vw,4rem); border-top:1px solid var(--line); overflow:hidden; }
.cover__h2{ font-size:clamp(1.5rem,2.6vw,2.1rem); font-weight:200; max-width:22ch; margin-bottom:clamp(1.5rem,3vw,2.25rem); }
.cover__h2 .eyebrow{ font-size:.6875rem; }

.marquee{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.marquee__track{
  display:flex; align-items:center; width:max-content;
  animation:slide 46s linear infinite;
}
.marquee:hover .marquee__track{ animation-play-state:paused; }
/* Sin `gap` en la pista: el espaciado va como padding dentro de cada item, para
   que trasladar -50% caiga exactamente sobre el clon y el bucle no salte. */
.marquee__track li{
  display:flex; align-items:center;
  gap:clamp(1.75rem,4vw,3.5rem); padding-right:clamp(1.75rem,4vw,3.5rem);
  font-family:var(--f-disp); font-weight:300;
  font-size:clamp(1.65rem,4.6vw,3.1rem); letter-spacing:-.02em;
  color:var(--muted-2); white-space:nowrap;
}
.marquee__track li::after{ content:""; width:8px; height:8px; background:var(--red); transform:rotate(45deg); flex:none; }
@supports (-webkit-text-stroke:1px #000){
  .marquee__track li{ color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.28); }
  .marquee__track li:nth-child(3n){ color:var(--paper); -webkit-text-stroke:0; }
}
@keyframes slide{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ── 15. CTA final ───────────────────────────────────────────────────────── */
.cta{ position:relative; background:var(--red); color:#fff; padding-block:clamp(3rem,5.5vw,5rem); overflow:hidden; }
.cta::before{
  content:""; position:absolute; inset:0; opacity:.5; pointer-events:none;
  background:repeating-linear-gradient(-45deg, rgba(255,255,255,.05) 0 1px, transparent 1px 11px);
}
.cta__in{ position:relative; display:grid; gap:clamp(2rem,4vw,3.5rem); align-items:center; }
@media (min-width:960px){ .cta__in{ grid-template-columns:minmax(0,1.35fr) minmax(0,auto); } }
.cta__h2{ font-size:clamp(1.75rem,3.7vw,3.05rem); font-weight:200; letter-spacing:-.025em; max-width:20ch; text-wrap:balance; }
.cta__p{ margin-top:1.1rem; max-width:52ch; color:rgba(255,255,255,.92); }
.cta__acts{ display:flex; flex-wrap:wrap; gap:.85rem; }

/* ── 16. Pie ─────────────────────────────────────────────────────────────── */
.ft{ background:#08080a; border-top:1px solid var(--line); }
.ft__grid{ display:grid; gap:clamp(2.25rem,4vw,3rem); padding-block:clamp(2.5rem,4.5vw,4rem); }
@media (min-width:700px){ .ft__grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1080px){ .ft__grid{ grid-template-columns:2.1fr 1fr 1fr 1.5fr; gap:clamp(2rem,4vw,4rem); } }
.ft__brand img{ width:auto; height:44px; margin-bottom:1.35rem; }
.ft__brand p{ color:var(--muted); font-size:.9063rem; max-width:38ch; }
.ft__col h3{ font-family:var(--f-mono); font-weight:400; font-size:.625rem; letter-spacing:.24em; text-transform:uppercase; color:var(--muted-2); margin-bottom:1.15rem; }
.ft__col ul{ display:grid; gap:.7rem; }
.ft__col a{ color:var(--muted); font-size:.9375rem; transition:color .3s var(--ease); }
.ft__col a:hover{ color:var(--white); }
.ft__contact{ font-style:normal; }
.ft__contact li{ display:grid; grid-template-columns:auto 1fr; gap:.8rem; color:var(--muted); font-size:.9375rem; align-items:start; }
.ft__contact i{ color:var(--red-ink); font-size:.9rem; margin-top:.35rem; }

.social{ display:flex; gap:.6rem; margin-top:1.6rem; }
.social a{
  display:grid; place-items:center; width:42px; height:42px;
  border:1px solid var(--line); color:var(--muted); font-size:1rem;
  transition:background .35s var(--ease), border-color .35s var(--ease), color .35s var(--ease);
}
.social a:hover{ background:var(--red); border-color:var(--red); color:#fff; }
.social--lg{ margin-top:2rem; }
.social--lg a{ width:50px; height:50px; font-size:1.15rem; }

.ft__bar{
  display:flex; flex-wrap:wrap; gap:.75rem 1.5rem; justify-content:space-between;
  border-top:1px solid var(--line); padding-block:1.6rem;
  font-family:var(--f-mono); font-size:.6875rem; letter-spacing:.06em; color:var(--muted-2);
}
.ft__bar a{ color:var(--muted); border-bottom:1px solid var(--line); transition:color .3s, border-color .3s; }
.ft__bar a:hover{ color:var(--white); border-color:var(--red); }

/* ── 17. Cabecera de página interior ─────────────────────────────────────── */
.phead{ position:relative; padding-top:calc(var(--hdr) + clamp(2.25rem,4.5vw,3.75rem)); padding-bottom:clamp(2rem,3.5vw,3rem); overflow:hidden; }
.phead::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(60% 60% at 88% 0%, rgba(190,20,34,.15), transparent 65%);
}
.phead > *{ position:relative; }
.crumbs ol{ display:flex; flex-wrap:wrap; gap:.6rem; font-family:var(--f-mono); font-size:.6875rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-2); margin-bottom:clamp(1.5rem,2.8vw,2.25rem); }
.crumbs li + li::before{ content:"/"; margin-right:.6rem; color:var(--line); }
.crumbs a{ color:var(--muted); transition:color .3s; }
.crumbs a:hover{ color:var(--white); }
.phead__h1{ font-size:clamp(2.3rem,5.4vw,4.5rem); font-weight:200; letter-spacing:-.03em; max-width:16ch; text-wrap:balance; }
.phead__lead{ color:var(--muted); max-width:58ch; margin-top:1.35rem; font-size:clamp(1rem,1vw,1.125rem); }

/* ── 18. Filtros ─────────────────────────────────────────────────────────── */
.filtros{ display:flex; flex-wrap:wrap; gap:.55rem; margin-bottom:clamp(1.75rem,3.2vw,2.75rem); }
.filtros:empty{ display:none; }
.filtros button{
  border:1px solid var(--line); padding:.55rem 1.15rem; color:var(--muted);
  font-family:var(--f-mono); font-size:.6875rem; letter-spacing:.16em; text-transform:uppercase;
  transition:border-color .3s var(--ease), color .3s var(--ease), background .3s var(--ease);
}
.filtros button:hover{ color:var(--white); border-color:var(--muted-2); }
.filtros button.is-active{ color:var(--white); border-color:var(--red); background:rgba(190,20,34,.14); }
.obra.is-hidden{ display:none; }

.archivo__nota{
  margin-top:clamp(2.25rem,4vw,3.5rem); border-top:1px solid var(--line); padding-top:1.5rem;
  display:grid; grid-template-columns:auto 1fr; gap:.85rem; align-items:start;
  color:var(--muted); font-size:.9375rem;
}
.archivo__nota i{ color:var(--red-ink); margin-top:.3rem; }

/* ── 20. Contacto ────────────────────────────────────────────────────────── */
.contacto{ display:grid; gap:clamp(2.75rem,5vw,4.5rem); align-items:start; }
@media (min-width:1000px){ .contacto{ grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); } }

.form-card{ background:var(--ink-2); border:1px solid var(--line); border-top:2px solid var(--red); padding:clamp(1.5rem,4vw,2.75rem); }
.form-card__h2{ font-size:clamp(1.5rem,2.6vw,2rem); font-weight:300; }
.form-card__sub{ color:var(--muted); font-size:.9375rem; margin-top:.7rem; margin-bottom:2rem; max-width:46ch; }

.field{ margin-bottom:1.15rem; }
.field label{ display:block; font-family:var(--f-mono); font-size:.625rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-bottom:.55rem; }
.field label i{ color:var(--red-ink); font-style:normal; }
.field input,.field select,.field textarea{
  width:100%; background:#0b0b0d; border:1px solid var(--line); color:var(--paper);
  padding:.85rem 1rem; font-family:var(--f-body); font-size:.9375rem;
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.field textarea{ resize:vertical; min-height:8rem; line-height:1.6; }
.field select{
  appearance:none; -webkit-appearance:none; cursor:pointer; padding-right:2.5rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 10 7'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23a3a3a8' stroke-width='1.2'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1rem center;
}
.field select option{ background:#0b0b0d; color:var(--paper); }
.field ::placeholder{ color:#55555d; }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--red); box-shadow:0 0 0 3px rgba(190,20,34,.2);
}
.field.is-bad input,.field.is-bad select,.field.is-bad textarea{ border-color:#ff5a66; }
.field__err{ font-family:var(--f-mono); font-size:.6875rem; letter-spacing:.06em; color:#ff7480; margin-top:.4rem; }
.field__err:empty{ display:none; }
.field-row{ display:grid; gap:0 1rem; }
@media (min-width:560px){ .field-row{ grid-template-columns:repeat(2,1fr); } }

.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form button[type="submit"]{ margin-top:.6rem; }
.form__note{ margin-top:1.15rem; font-size:.8125rem; color:var(--muted-2); }
.form__note a{ color:var(--muted); border-bottom:1px solid var(--line); }
.form__note a:hover{ color:var(--white); border-color:var(--red); }
.form__status{ margin-top:.9rem; font-family:var(--f-mono); font-size:.75rem; letter-spacing:.06em; }
.form__status:empty{ display:none; }
.form__status.is-ok{ color:#5fd39b; }
.form__status.is-bad{ color:#ff7480; }

.datos__list{ border-top:1px solid var(--line); }
.datos__list li{ display:grid; grid-template-columns:auto 1fr; gap:1.1rem; align-items:start; padding-block:1.5rem; border-bottom:1px solid var(--line); }
.datos__list i{ color:var(--red-ink); font-size:1.1rem; margin-top:.35rem; }
.datos__list h2{ font-family:var(--f-mono); font-weight:400; font-size:.625rem; letter-spacing:.24em; text-transform:uppercase; color:var(--muted-2); margin-bottom:.55rem; }
.datos__list p{ font-size:1rem; line-height:1.6; color:var(--paper); }
.datos__list a{ transition:color .3s; border-bottom:1px solid transparent; }
.datos__list a:hover{ color:var(--white); border-bottom-color:var(--red); }
.datos__list .muted{ font-size:.875rem; }

.mapa{ margin-top:2.25rem; border:1px solid var(--line); aspect-ratio:4/3; overflow:hidden; }
.mapa iframe{ width:100%; height:100%; border:0; filter:invert(.92) hue-rotate(180deg) saturate(.55) contrast(.92); }

/* ── 21. FAQ ─────────────────────────────────────────────────────────────── */
.sec--faq{ border-top:1px solid var(--line); }
.faq{ border-top:1px solid var(--line); }
.faq__i{ border-bottom:1px solid var(--line); }
.faq__i summary{
  display:flex; align-items:center; justify-content:space-between; gap:1.75rem;
  padding-block:1.5rem; cursor:pointer; list-style:none;
}
.faq__i summary::-webkit-details-marker{ display:none; }
.faq__i summary h3{ font-size:clamp(1.05rem,1.9vw,1.3rem); font-weight:400; transition:color .3s var(--ease); }
.faq__i summary:hover h3{ color:var(--white); }
.faq__i[open] .rhomb{ background:var(--red); transform:rotate(135deg); }
.faq__i p{ color:var(--muted); max-width:74ch; padding-bottom:1.75rem; font-size:.9688rem; }

/* ── 22. Página 404 ──────────────────────────────────────────────────────── */
.e404{ min-height:100dvh; display:grid; place-items:center; text-align:center; padding:calc(var(--hdr) + 3rem) var(--gut) 4rem; }
.e404 .rhomb{ width:26px; height:26px; margin:0 auto 2rem; }
.e404 h1{ font-size:clamp(2.5rem,7vw,5rem); font-weight:200; letter-spacing:-.03em; }
.e404 p{ color:var(--muted); max-width:44ch; margin:1.35rem auto 2.25rem; }
.e404__acts{ display:flex; flex-wrap:wrap; gap:.85rem; justify-content:center; }

/* ── 23. Movimiento reducido / impresión ─────────────────────────────────── */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .js .reveal{ opacity:1 !important; transform:none !important; }
  .marquee__track{ animation:none; }
}
@media print{
  .sheet,.hdr,.marquee,.lb,.cta__acts{ display:none !important; }
  body{ background:#fff; color:#000; }
}
