/* ==========================================================================
   Matriz SPA — Maestranza, metalmecánica y revestimiento de metales
   Antofagasta, Chile
   ========================================================================== */

/* ---------- Tokens ---------- */
:root{
  --navy:#141a2e;            /* tinta oscura */
  --navy-700:#1d2540;
  --navy-600:#283060;        /* azul del logo */
  --accent:#00bec8;          /* turquesa del logo */
  --accent-600:#00a0a8;
  --accent-soft:rgba(0,190,200,.12);

  --ink:#141a2e;
  --text:#2c3444;
  --muted:#5d6779;
  --line:#e2e6ed;
  --line-soft:#eef1f6;
  --bg:#ffffff;
  --bg-alt:#f6f8fb;

  --r-sm:6px;
  --r:12px;
  --r-lg:20px;

  --sh-sm:0 1px 2px rgba(20,26,46,.06);
  --sh:0 12px 32px -12px rgba(20,26,46,.16);
  --sh-lg:0 28px 64px -24px rgba(20,26,46,.30);

  --container:1200px;
  --gap:28px;
  --pad:112px;

  --font-head:"Geist",-apple-system,sans-serif;
  --font-body:"Geist",-apple-system,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:var(--font-body);font-size:16.5px;line-height:1.68;
  font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}
h1,h2,h3,h4,h5{
  font-family:var(--font-head);color:var(--ink);
  margin:0;line-height:1.14;letter-spacing:-.022em;font-weight:600;
}
p{margin:0}
ul{margin:0;padding:0;list-style:none}

/* ⚠️ Texto claro sobre fondo oscuro / imagen — cubre TAMBIÉN los títulos.
   El selector de elemento h1..h5 de arriba gana sobre la herencia, así que
   cada bloque oscuro debe listarse aquí explícitamente. */
.hero,.page-hero,.cta,.section--dark,.site-footer{color:rgba(255,255,255,.76)}
.hero h1,.hero h2,.hero h3,.hero h4,.hero h5,
.page-hero h1,.page-hero h2,.page-hero h3,.page-hero h4,.page-hero h5,
.cta h1,.cta h2,.cta h3,.cta h4,.cta h5,
.section--dark h1,.section--dark h2,.section--dark h3,.section--dark h4,.section--dark h5,
.site-footer h1,.site-footer h2,.site-footer h3,.site-footer h4,.site-footer h5{color:#fff}

/* ---------- Layout ---------- */
.container{width:min(100% - 48px,var(--container));margin-inline:auto}
.section{padding:var(--pad) 0}
.section--tight{padding:76px 0}
.section--alt{background:var(--bg-alt)}
.section--dark{background:var(--navy);position:relative;overflow:hidden;isolation:isolate}
/* Glow sutil: dos halos del acento, muy difusos, para que el fondo no sea plano */
.section--dark::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(58% 78% at 12% 4%, rgba(0,190,200,.13), transparent 62%),
    radial-gradient(52% 72% at 92% 100%, rgba(40,48,96,.55), transparent 66%);
}
/* Si la sección lleva foto de fondo, el glow no se dibuja (ya tiene su velo) */
.section--bg::after{display:none}

/* Sección oscura con fotografía de fondo: velo al 70% de opacidad sobre la imagen */
.section--bg{overflow:hidden;isolation:isolate}
.section-bg{position:absolute;inset:0;z-index:-2}
.section-bg img{width:100%;height:100%;object-fit:cover}
.section--bg::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:rgba(20,26,46,.82);
}

.head{max-width:660px;margin-bottom:56px}
.head--center{margin-inline:auto;text-align:center}

/* Eyebrow: SOLO texto */
.eyebrow{
  display:block;font-family:var(--font-head);font-size:.735rem;font-weight:600;
  letter-spacing:.19em;text-transform:uppercase;color:var(--accent-600);
  margin:0 0 7px;
}
.section--dark .eyebrow,.hero .eyebrow,.page-hero .eyebrow,.cta .eyebrow{color:var(--accent)}

.title{font-size:clamp(1.85rem,3.1vw,2.7rem);margin-top:0}
.title--lg{font-size:clamp(2.1rem,3.7vw,3.05rem)}
.lead{margin-top:18px;font-size:1.045rem;color:var(--muted);max-width:60ch}
.section--dark .lead,.cta .lead,.page-hero .lead,.hero .lead{color:rgba(255,255,255,.72)}
.head--center .lead{margin-inline:auto}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;align-items:center;gap:9px;
  padding:13px 26px;border-radius:var(--r-sm);border:1px solid transparent;
  font-family:var(--font-head);font-size:.925rem;font-weight:600;letter-spacing:-.005em;
  cursor:pointer;transition:all .28s var(--ease);white-space:nowrap;
}
.btn--primary{background:var(--accent);color:var(--navy);border-color:var(--accent)}
.btn--primary:hover{background:#22d4dd;border-color:#22d4dd;transform:translateY(-2px);box-shadow:0 12px 28px -12px rgba(0,190,200,.7)}
.btn--ghost{background:transparent;border-color:var(--line);color:var(--ink)}
.btn--ghost:hover{border-color:var(--ink);background:var(--ink);color:#fff;transform:translateY(-2px)}
.hero .btn--ghost,.page-hero .btn--ghost,.cta .btn--ghost,.section--dark .btn--ghost{
  border-color:rgba(255,255,255,.34);color:#fff;
}
.hero .btn--ghost:hover,.page-hero .btn--ghost:hover,.cta .btn--ghost:hover,.section--dark .btn--ghost:hover{
  background:#fff;border-color:#fff;color:var(--navy);
}
.btn--sm{padding:10px 19px;font-size:.86rem}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}

.arrow-link{
  display:inline-flex;align-items:center;gap:8px;font-family:var(--font-head);
  font-size:.9rem;font-weight:600;color:var(--accent-600);transition:gap .28s var(--ease);
}
.arrow-link svg{transition:transform .28s var(--ease)}
.arrow-link:hover{gap:12px}
.arrow-link:hover svg{transform:translateX(3px)}
.section--dark .arrow-link,.cta .arrow-link{color:var(--accent)}

/* ---------- Header ---------- */
.site-header{
  position:fixed;inset:0 0 auto;z-index:100;
  padding:11px 0;transition:all .34s var(--ease);
}
/* Cabecera BLANCA fija en todas las páginas */
.site-header::before{
  content:"";position:absolute;inset:0;background:#fff;
  border-bottom:1px solid var(--line);transition:box-shadow .34s var(--ease);
}
.site-header.is-scrolled{padding:7px 0}
.site-header.is-scrolled::before{box-shadow:0 6px 22px -14px rgba(20,26,46,.35)}
.header-inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:26px}

.brand{display:flex;align-items:center;flex:none}
.brand img{height:77px;width:auto;transition:height .34s var(--ease)}
.site-header.is-scrolled .brand img{height:60px}
/* Sobre fondo blanco siempre va el logo oscuro */
.brand .logo-light{display:none}
.brand .logo-dark{display:block}

.nav{display:flex;align-items:center;gap:32px}
.nav a{
  position:relative;font-family:var(--font-head);font-size:.905rem;font-weight:500;
  color:var(--muted);transition:color .26s var(--ease);padding:5px 0;
}
.nav a::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:0;
  background:var(--accent);transition:width .3s var(--ease);
}
.nav a:hover::after,.nav a.is-active::after{width:100%}
.nav a:hover,.nav a.is-active{color:var(--ink)}

.header-cta{display:inline-flex}
.nav-mobile-cta{display:none}

.burger{
  display:none;width:44px;height:44px;border:1px solid var(--line);
  background:transparent;border-radius:var(--r-sm);cursor:pointer;
  align-items:center;justify-content:center;flex:none;transition:all .3s var(--ease);
}
.burger span{display:block;width:19px;height:1.6px;background:var(--ink);position:relative;transition:all .3s var(--ease)}
.burger span::before,.burger span::after{
  content:"";position:absolute;left:0;width:19px;height:1.6px;background:var(--ink);transition:all .3s var(--ease);
}
.burger span::before{top:-6px}
.burger span::after{top:6px}
body.nav-open .burger span{background:transparent}
body.nav-open .burger span::before{top:0;transform:rotate(45deg)}
body.nav-open .burger span::after{top:0;transform:rotate(-45deg)}

.nav-backdrop{
  position:fixed;inset:0;background:rgba(20,26,46,.55);backdrop-filter:blur(3px);
  opacity:0;visibility:hidden;transition:all .34s var(--ease);z-index:98;
}
body.nav-open .nav-backdrop{opacity:1;visibility:visible}

/* ---------- Hero ---------- */
.hero{
  position:relative;min-height:min(100svh,880px);display:flex;align-items:center;
  padding:158px 0 92px;background:var(--navy);overflow:hidden;isolation:isolate;
}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover}
.hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(105deg,rgba(20,26,46,.95) 0%,rgba(20,26,46,.86) 42%,rgba(20,26,46,.62) 100%);
}
.hero::after{
  content:"";position:absolute;inset:auto 0 0;height:190px;z-index:-1;
  background:linear-gradient(to top,var(--navy),transparent);
}
.hero-inner>*{max-width:790px}
.hero h1{
  font-size:clamp(2.2rem,4.75vw,3.85rem);line-height:1.06;font-weight:600;
  margin-top:15px;letter-spacing:-.032em;
}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero .lead{font-size:clamp(1rem,1.55vw,1.16rem);max-width:56ch;margin-top:24px}

/* ---------- Page hero (interiores) ---------- */
.page-hero{
  position:relative;padding:184px 0 84px;background:var(--navy);
  overflow:hidden;isolation:isolate;
}
.page-hero-bg{position:absolute;inset:0;z-index:-2}
.page-hero-bg img{width:100%;height:100%;object-fit:cover}
.page-hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(100deg,rgba(20,26,46,.94) 0%,rgba(20,26,46,.84) 50%,rgba(20,26,46,.66) 100%);
}
.page-hero h1{font-size:clamp(2.05rem,4.1vw,3.15rem);margin-top:15px;letter-spacing:-.028em}
.page-hero .lead{margin-top:19px;max-width:56ch}

/* ---------- Clientes ---------- */
.clients{padding:52px 0;border-bottom:1px solid var(--line-soft);background:#fff}
.clients h2{
  font-family:var(--font-body);font-size:.75rem;font-weight:500;letter-spacing:.17em;
  text-transform:uppercase;color:var(--muted);text-align:center;margin-bottom:34px;
}
.clients-grid{
  display:grid;grid-template-columns:repeat(6,1fr);gap:30px;align-items:center;
}
.clients-grid img{
  width:100%;max-height:44px;object-fit:contain;
  filter:grayscale(1);opacity:.5;transition:all .34s var(--ease);
}
.clients-grid img:hover{filter:grayscale(0);opacity:1;transform:scale(1.12)}

/* ---------- Cifras ---------- */
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.stat{text-align:center;padding:14px}
.stat b{
  display:block;font-family:var(--font-head);font-weight:600;
  font-size:clamp(2.5rem,4.6vw,3.5rem);color:var(--accent);letter-spacing:-.035em;line-height:1;
}
.stat span{display:block;margin-top:13px;font-size:.925rem;color:rgba(255,255,255,.66);max-width:24ch;margin-inline:auto}

/* ---------- Grillas ---------- */
.grid{display:grid;gap:var(--gap);align-items:stretch}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}

/* ---------- Tarjetas de servicio ---------- */
.card{
  position:relative;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;
  transition:all .38s var(--ease);
}
.card:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:transparent}
.card-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--bg-alt)}
.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;left:0;top:0;padding:8px 13px;background:var(--navy);color:var(--accent);
  font-family:var(--font-head);font-size:.72rem;font-weight:600;letter-spacing:.1em;
}
.card-body{padding:27px 26px 29px;display:flex;flex-direction:column;flex:1}
.card-body h3{font-size:1.135rem;letter-spacing:-.018em;min-height:2.28em;display:flex;align-items:flex-start}
.card-body p{margin-top:11px;font-size:.925rem;color:var(--muted);flex:1}
.card-body .arrow-link{margin-top:20px;align-self:flex-start}

.card-list{margin-top:15px;margin-bottom:auto;display:flex;flex-wrap:wrap;gap:7px}
.chip{
  font-size:.775rem;padding:5px 11px;border-radius:100px;
  background:var(--bg-alt);color:var(--muted);border:1px solid var(--line-soft);
}

/* ---------- Servicio detallado ---------- */
.svc{
  display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:stretch;
  padding:78px 0;border-bottom:1px solid var(--line-soft);
}
.svc:last-child{border-bottom:0}
.svc--flip .svc-media{order:2}
.svc-media{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);min-height:100%}
.svc-media img{width:100%;height:100%;min-height:380px;object-fit:cover}
.svc-body h2{font-size:clamp(1.55rem,2.5vw,2.1rem);margin-top:15px}
.svc-body>p{margin-top:16px;color:var(--muted)}
.svc-items{margin-top:26px;display:grid;gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:var(--r-sm);overflow:hidden}
.svc-items li{
  display:flex;align-items:center;gap:13px;padding:14px 18px;background:#fff;
  font-size:.935rem;font-family:var(--font-head);font-weight:500;color:var(--ink);
  transition:background .26s var(--ease);
}
.svc-items li:hover{background:var(--bg-alt)}
.svc-items svg{flex:none;color:var(--accent-600)}

/* Galería de fotos reales por servicio */
.svc-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.svc-gallery img{
  width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-sm);
  transition:transform .5s var(--ease),box-shadow .35s var(--ease);
}
.svc-gallery img:hover{transform:translateY(-3px);box-shadow:var(--sh)}

/* ---------- Valores / fortalezas ---------- */
.value{padding:34px 30px;border:1px solid var(--line);border-radius:var(--r);background:#fff;transition:all .38s var(--ease);display:flex;flex-direction:column}
.value:hover{border-color:transparent;box-shadow:var(--sh);transform:translateY(-4px)}
.value-ico{
  width:46px;height:46px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent-600);margin-bottom:22px;
}
.value h3{font-size:1.055rem;min-height:1.2em}
.value p{margin-top:10px;font-size:.91rem;color:var(--muted)}
.section--dark .value{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1)}
.section--dark .value:hover{background:rgba(255,255,255,.07);box-shadow:none}
.section--dark .value p{color:rgba(255,255,255,.66)}
.section--dark .value-ico{background:rgba(0,190,200,.16);color:var(--accent)}

/* ---------- Bloque media + texto ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}
.split-body{padding-top:6px}
.split--flip .split-media{order:2}
.split-media{position:relative}
.split-media img{width:100%;aspect-ratio:4/3.05;object-fit:cover;border-radius:var(--r);box-shadow:var(--sh)}
.split-body p+p{margin-top:16px}
.split-body p{color:var(--muted)}
.section--dark .split-body p{color:rgba(255,255,255,.7)}

.badge-float{
  position:absolute;right:-20px;bottom:-20px;background:var(--navy);color:#fff;
  padding:18px 22px;border-radius:var(--r);box-shadow:var(--sh-lg);max-width:212px;
}
.badge-float b{
  display:block;font-family:var(--font-head);font-size:1.12rem;font-weight:600;
  color:var(--accent);line-height:1.22;letter-spacing:-.015em;
}
.badge-float span{display:block;margin-top:6px;font-size:.78rem;color:rgba(255,255,255,.7);line-height:1.45}

/* ---------- Proceso / pasos ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);counter-reset:s}
.step{position:relative;padding-top:30px}
.step::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--line);
}
.step::after{
  content:"";position:absolute;top:0;left:0;width:34px;height:2px;background:var(--accent);
}
.step b{
  display:block;font-family:var(--font-head);font-size:.76rem;font-weight:600;
  letter-spacing:.14em;color:var(--accent-600);margin-bottom:11px;
}
.step h3{font-size:1.045rem}
.step p{margin-top:9px;font-size:.9rem;color:var(--muted)}
.section--dark .step::before{background:rgba(255,255,255,.14)}
.section--dark .step p{color:rgba(255,255,255,.65)}
.section--dark .step b{color:var(--accent)}

/* ---------- Portafolio ---------- */
.folio{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-flow:row dense;gap:20px;align-items:stretch}
.folio--3{grid-template-columns:repeat(2,1fr)}
.folio-item{
  position:relative;border-radius:var(--r);overflow:hidden;background:var(--navy);
  aspect-ratio:4/3;display:block;
}
.folio-item--wide{grid-column:span 2;aspect-ratio:8/3}
.folio-item img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease),opacity .4s}
.folio-item:hover img{transform:scale(1.06);opacity:.72}
.folio-cap{
  position:absolute;inset:auto 0 0;padding:44px 24px 22px;
  background:linear-gradient(to top,rgba(20,26,46,.94),transparent);
}
.folio-cap b{display:block;font-family:var(--font-head);font-size:1.02rem;font-weight:600;color:#fff;letter-spacing:-.015em}
.folio-cap span{display:block;margin-top:4px;font-size:.79rem;color:var(--accent);letter-spacing:.03em}

/* ---------- Reconocimiento ---------- */
.award{
  display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:start;
}
.award-shots{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.award-shots img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-sm)}
.award-shots img:first-child{grid-column:span 2;aspect-ratio:16/8}

/* ---------- Cita ---------- */
.quote{max-width:830px;margin-inline:auto;text-align:center}
.quote p{
  font-family:var(--font-head);font-size:clamp(1.2rem,2.2vw,1.68rem);
  font-weight:500;line-height:1.44;color:#fff;letter-spacing:-.018em;
}
.quote footer{margin-top:26px;font-size:.88rem;color:var(--accent)}

.tst{padding:32px 30px;border:1px solid var(--line);border-radius:var(--r);background:#fff;height:100%;display:flex;flex-direction:column}
.tst-mark{font-family:var(--font-head);font-size:2.4rem;line-height:.7;color:var(--accent);margin-bottom:14px}
.tst p{font-size:.965rem;color:var(--text);flex:1}
.tst footer{margin-top:22px;padding-top:18px;border-top:1px solid var(--line-soft)}
.tst footer b{display:block;font-family:var(--font-head);font-size:.94rem;color:var(--ink)}
.tst footer span{display:block;margin-top:2px;font-size:.83rem;color:var(--muted)}

/* ---------- CTA ---------- */
.cta{
  position:relative;padding:112px 0;background:var(--navy);
  overflow:hidden;isolation:isolate;text-align:center;
}
.cta-bg{position:absolute;inset:0;z-index:-2}
.cta-bg img{width:100%;height:100%;object-fit:cover}
.cta::before{
  content:"";position:absolute;inset:0;z-index:-1;background:rgba(20,26,46,.88);
}
.cta h2{font-size:clamp(1.85rem,3.4vw,2.75rem);margin-top:15px}
.cta .lead{margin-inline:auto}
.cta .btn-row{justify-content:center}

/* ---------- Contacto ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:64px;align-items:start}

.cinfo{display:flex;flex-direction:column;gap:22px;margin-top:32px}
.cinfo-row{display:flex;gap:15px;align-items:flex-start}
.cinfo-row>svg{flex:none;width:19px;height:19px;color:var(--accent-600);margin-top:3px}
.cinfo-row b{display:block;font-family:var(--font-head);font-size:.78rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.cinfo-row a,.cinfo-row p{display:block;margin-top:4px;font-size:1rem;color:var(--ink);transition:color .26s var(--ease)}
.cinfo-row a:hover{color:var(--accent-600)}

.form{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:36px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{margin-bottom:18px}
.field label{display:block;font-family:var(--font-head);font-size:.83rem;font-weight:500;color:var(--ink);margin-bottom:7px}
.field input,.field textarea{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);
  font-family:var(--font-body);font-size:.94rem;color:var(--ink);background:#fff;
  transition:border-color .26s var(--ease),box-shadow .26s var(--ease);
}
.field textarea{resize:vertical;min-height:132px}
.field input:focus,.field textarea:focus{
  outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);
}
.form-note{
  padding:14px 17px;border-radius:var(--r-sm);font-size:.9rem;margin-bottom:22px;display:none;
}
.form-note.is-ok{display:block;background:#e8f7ee;border:1px solid #b8e3c8;color:#1d6b3a}
.form-note.is-err{display:block;background:#fdeced;border:1px solid #f3c2c6;color:#a02128}

.map{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);margin-top:26px}
.map iframe{display:block;width:100%;height:320px;border:0}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy);padding:64px 0 28px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.25fr;gap:52px}
.site-footer .brand img{height:52px;margin-bottom:20px}
.footer-about p{font-size:.9rem;color:rgba(255,255,255,.6);max-width:34ch}
.footer-col h4{font-family:var(--font-head);font-size:.78rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:#fff;margin-bottom:19px}
.footer-col li+li{margin-top:11px}
.footer-col a{font-size:.9rem;color:rgba(255,255,255,.6);transition:color .26s var(--ease)}
.footer-col a:hover{color:var(--accent)}

.fcontact li{display:flex;gap:11px;align-items:flex-start}
.fcontact li+li{margin-top:14px}
.fcontact svg{flex:none;width:17px;height:17px;color:var(--accent);margin-top:3px}
.fcontact a,.fcontact span{font-size:.9rem;color:rgba(255,255,255,.6);line-height:1.5}
.fcontact a:hover{color:var(--accent)}

.social{display:flex;gap:10px;margin-top:20px}
.social a{
  width:36px;height:36px;border-radius:var(--r-sm);border:1px solid rgba(255,255,255,.16);
  display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.66);
  transition:all .28s var(--ease);
}
.social a:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}

.footer-credit{
  margin-top:34px;padding-top:26px;border-top:1px solid rgba(255,255,255,.12);
  text-align:center;font-size:.8rem;color:rgba(255,255,255,.6);
}
.footer-credit a{color:var(--accent);text-decoration:none}
.footer-credit a:hover{color:color-mix(in srgb,var(--accent) 75%,#fff)}

/* ---------- WhatsApp flotante ---------- */
.wa{
  position:fixed;right:22px;bottom:22px;z-index:90;
  width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px -8px rgba(37,211,102,.7);transition:transform .3s var(--ease);
}
.wa svg{width:30px;height:30px;display:block;flex:none}
.wa:hover{transform:scale(1.08)}

/* ---------- Reveal ---------- */
/* Sin JS: todo visible. Con JS: se oculta para animar el revelado. */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .78s var(--ease),transform .78s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
/* Salvavidas: si .js se marcó pero el observer no corrió, revela igual */
.js .reveal{animation:reveal-failsafe 0s linear 3s forwards}
@keyframes reveal-failsafe{to{opacity:1;transform:none}}

/* ---------- Transiciones de página ---------- */
@view-transition{navigation:auto}
::view-transition-old(root),
::view-transition-new(root){
  animation-duration:.15s;
  animation-timing-function:cubic-bezier(.4,0,.2,1);
}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  :root{--pad:88px;--gap:22px}
  .split,.svc,.contact-grid,.award{grid-template-columns:1fr;gap:44px}
  .svc-media img{height:auto;min-height:0;aspect-ratio:16/10}
  .split--flip .split-media,.svc--flip .svc-media{order:0}
  .footer-grid{grid-template-columns:1fr 1fr;gap:42px}
  .grid--4,.steps{grid-template-columns:repeat(2,1fr)}
  .clients-grid{grid-template-columns:repeat(3,1fr);gap:26px}
  .badge-float{right:16px;bottom:-18px}
}

@media (max-width:880px){
  .container{width:min(100% - 40px,var(--container))}
  .nav{
    position:fixed;top:0;right:0;bottom:0;width:min(84vw,340px);z-index:99;
    background:var(--navy);flex-direction:column;align-items:stretch;justify-content:flex-start;
    gap:0;padding:100px 30px 34px;transform:translateX(102%);
    transition:transform .38s var(--ease);overflow-y:auto;
  }
  body.nav-open .nav{transform:none}
  .nav a{
    color:rgba(255,255,255,.82)!important;font-size:1.02rem;padding:15px 0;
    border-bottom:1px solid rgba(255,255,255,.09);
  }
  .nav a::after{display:none}
  .nav a.is-active{color:var(--accent)!important}
  .burger{display:flex}
  .header-cta{display:none}
  .nav-mobile-cta{display:inline-flex;margin-top:26px;justify-content:center}
  .grid--3,.folio{grid-template-columns:repeat(2,1fr)}
  .folio-item--wide{grid-column:span 2}
  .stats-grid{grid-template-columns:1fr;gap:38px}
  .hero{min-height:auto;padding:136px 0 78px}
  .page-hero{padding:144px 0 64px}
  .form-row{grid-template-columns:1fr;gap:0}
}

@media (max-width:560px){
  :root{--pad:64px}
  body{font-size:16px}
  .container{width:min(100% - 32px,var(--container))}
  .grid--2,.grid--3,.grid--4,.steps,.folio{grid-template-columns:1fr}
  .folio-item--wide{grid-column:span 1;aspect-ratio:4/3}
  .clients-grid{grid-template-columns:repeat(2,1fr);gap:22px}
  .btn{padding:12px 21px;font-size:.89rem}
  .btn-row{gap:11px}
  .btn-row .btn{flex:1;justify-content:center}
  .form{padding:26px 22px}
  .footer-grid{grid-template-columns:1fr;gap:36px}
  .badge-float{position:static;margin-top:16px;max-width:none}
  .award-shots img:first-child{grid-column:span 2}
  .svc-media img{aspect-ratio:16/11;height:auto;min-height:0}
}

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