:root{
  --stone:#F5F7F0;
  --stone-rgb:245,247,240;
  --stone-2:#E5EBDB;
  --ink:#1B4429;
  --ink-rgb:27,68,41;
  --ink-70:rgba(var(--ink-rgb),0.7);
  --ink-50:rgba(var(--ink-rgb),0.5);
  --copper:#E2A800;
  --copper-dark:#A67A00;
  --moss:#2E8B4C;
  --moss-light:#DFF3E3;
  --amber:#FFCB2B;
  --paper:#FFFFFF;
  --line:#DCE3D3;
  --radius:2px;

  /* Fijos: nunca cambian con el tema. Reservados para los bloques que
     siempre deben verse "oscuro con texto claro" (botón primario, footer,
     tarjetas CTA, paneles Por qué elegirnos/Contacto, overlays sobre fotos
     y sombras) — ver CLAUDE.md, sección Modo claro/oscuro. */
  --ink-fixed:#1B4429;
  --ink-fixed-rgb:27,68,41;
  --stone-fixed:#F5F7F0;
  --stone-fixed-rgb:245,247,240;
}

/* ============ MODO OSCURO ============ */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --stone:#0F1710;
    --stone-rgb:15,23,16;
    --stone-2:#17211A;
    --ink:#EDF3E7;
    --ink-rgb:237,243,231;
    --paper:#1C2A21;
    --line:#2E3F33;
  }
}
:root[data-theme="dark"]{
  --stone:#0F1710;
  --stone-rgb:15,23,16;
  --stone-2:#17211A;
  --ink:#EDF3E7;
  --ink-rgb:237,243,231;
  --paper:#1C2A21;
  --line:#2E3F33;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }
body{
  margin:0;
  background:var(--stone);
  color:var(--ink);
  font-family:'IBM Plex Sans',sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.mono{font-family:'IBM Plex Mono',monospace;}
h1,h2,h3{
  font-family:'Archivo Expanded',sans-serif;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:0.01em;
  line-height:1.05;
  margin:0;
  color:var(--ink);
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
.eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--copper-dark);
  display:flex;
  align-items:center;
  gap:8px;
}
.eyebrow::before{
  content:"";
  width:16px;height:1px;
  background:var(--copper);
  display:inline-block;
}
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:14px 24px;
  font-family:'IBM Plex Mono',monospace;
  font-size:13px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  border:1.5px solid var(--ink);
  border-radius:var(--radius);
  cursor:pointer;
  transition:all .15s ease;
}
.btn-primary{background:var(--ink-fixed);color:var(--stone-fixed);border-color:var(--ink-fixed);}
.btn-primary:hover{background:var(--copper-dark);border-color:var(--copper-dark);}
.btn-ghost{background:transparent;color:var(--ink);}
.btn-ghost:hover{background:var(--ink);color:var(--stone);}
.btn svg{width:15px;height:15px;flex-shrink:0;}

/* ============ HEADER ============ */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(var(--stone-rgb),0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 32px;
  max-width:1180px;margin:0 auto;
}
.logo{
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;
}
.logo-img{height:60px;width:auto;}
.logo small{
  display:block;font-family:'IBM Plex Mono',monospace;
  font-weight:400;text-transform:none;letter-spacing:0;
  font-size:10.5px;color:var(--ink-70);
}
.navlinks{display:flex;gap:30px;align-items:center;}
.navlinks a{
  font-family:'IBM Plex Mono',monospace;
  font-size:12.5px;text-transform:uppercase;letter-spacing:0.05em;
  color:var(--ink-70);
  position:relative;
  padding-bottom:3px;
}
.navlinks a:hover, .navlinks a.active{color:var(--ink);}
.nav-cta{display:flex;gap:10px;align-items:center;}
.nav-cta .btn{padding:10px 16px;font-size:12px;}
.theme-toggle{
  display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;flex-shrink:0;
  border:1.5px solid var(--line);border-radius:50%;
  background:transparent;color:var(--ink);
  cursor:pointer;
}
.theme-toggle svg{width:18px;height:18px;}
.theme-toggle .icon-moon{display:none;}
[data-theme="dark"] .theme-toggle .icon-sun{display:none;}
[data-theme="dark"] .theme-toggle .icon-moon{display:block;}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .theme-toggle .icon-sun{display:none;}
  :root:not([data-theme="light"]) .theme-toggle .icon-moon{display:block;}
}
@media (max-width:920px){ .navlinks{display:none;} }

/* ============ HERO ============ */
.hero{
  padding:76px 0 0px;
  position:relative;
  overflow:hidden;
}
.trust{
  margin-top:-160px;
}
.hero .wrap{
  display:grid;
  grid-template-columns:1fr 0.95fr;
  gap:56px;
  align-items:start;
}
.hero > .wrap > div:first-child{padding-top:8px;}
.hero-eyebrow{margin-bottom:22px;}
.hero h1{
  font-size:clamp(34px,4.6vw,54px);
  margin-bottom:20px;
}
.hero h1 em{
  font-style:normal;
  color:var(--copper);
}
.hero p.lead{
  font-size:17px;
  color:var(--ink-70);
  max-width:46ch;
  margin-bottom:32px;
}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:28px;}
.hero-microcopy{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;color:var(--ink-50);
  display:flex;gap:18px;flex-wrap:wrap;
}
.hero-microcopy span{display:flex;align-items:center;gap:6px;}
.dot{width:6px;height:6px;border-radius:50%;background:var(--moss);display:inline-block;}

/* ---- HERO VISUAL: foto real + ficha superpuesta (efecto 3D) ---- */
.hero-visual{
  position:relative;
}
.hero-photo{
  position:relative;
  aspect-ratio:4/5;
}
.hero-photo-frame{
  width:100%;height:100%;
  border:1px solid var(--line);
  border-radius:2px;
  overflow:hidden;
  box-shadow:0 24px 50px -20px rgba(var(--ink-fixed-rgb),0.4);
}
.hero-photo img{width:100%;height:100%;object-fit:cover;display:block;}

/* ---- ABOUT INTRO (Nosotros: texto + foto real de fachada/vehículo) ---- */
.about-intro{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;margin-bottom:32px;}
.about-text{color:var(--ink-70);font-size:15px;line-height:1.6;margin:0;}
.about-photo{
  aspect-ratio:3/2;
  border:1px solid var(--line);
  border-radius:2px;
  overflow:hidden;
  box-shadow:0 24px 50px -20px rgba(var(--ink-fixed-rgb),0.4);
}
.about-photo img{width:100%;height:100%;object-fit:cover;display:block;}
@media (max-width:920px){ .about-intro{grid-template-columns:1fr;} }
.ficha-compact{
  position:absolute;
  left:1px;
  bottom:40%;
  width:300px;
  z-index:2;
  transform:rotate(-3deg);
  transform-origin:bottom left;
  box-shadow:
    0 4px 8px rgba(var(--ink-fixed-rgb),0.12),
    0 20px 34px -12px rgba(var(--ink-fixed-rgb),0.4),
    0 2px 0 var(--copper);
  border-top:3px solid var(--copper);
  transition:transform .25s ease, box-shadow .25s ease;
}
.ficha-compact:hover{
  transform:rotate(0deg) translateY(-4px);
  box-shadow:
    0 6px 10px rgba(var(--ink-fixed-rgb),0.14),
    0 28px 44px -14px rgba(var(--ink-fixed-rgb),0.46),
    0 2px 0 var(--copper);
}
.ficha-compact .ficha-head{padding:16px 20px 13px;}
.ficha-compact .ficha-id{font-size:14px;}
.ficha-compact .ficha-body{padding:14px 20px 4px;}
.ficha-compact .ficha-row{padding:9px 0;font-size:12.5px;}
.ficha-compact .ficha-row .v{font-size:13px;}
.ficha-compact .ficha-foot{padding:13px 20px;}
.ficha-compact .stamp{width:44px;height:44px;}
.ficha-compact .stamp svg{width:20px;height:20px;}

/* ---- SIGNATURE ELEMENT: Ficha de intervención ---- */
.ficha{
  background:var(--paper);
  border:1px solid var(--line);
  position:relative;
  box-shadow:0 30px 60px -25px rgba(var(--ink-fixed-rgb),0.25);
}
.ficha::before{
  content:"";
  position:absolute;top:0;right:0;
  width:0;height:0;
  border-style:solid;
  border-width:0 26px 26px 0;
  border-color:transparent var(--stone-2) transparent transparent;
}
.ficha::after{
  content:"";
  position:absolute;top:0;right:0;
  width:0;height:0;
  border-style:solid;
  border-width:0 26px 26px 0;
  border-color:transparent var(--paper) transparent transparent;
  filter:drop-shadow(-2px 2px 1px rgba(0,0,0,0.06));
  clip-path:polygon(100% 0, 100% 100%, 0 0);
}
.ficha-head{
  display:flex;justify-content:space-between;align-items:flex-start;
  padding:20px 24px 16px;
  border-bottom:1px dashed var(--line);
}
.ficha-head .mono{font-size:11px;color:var(--ink-50);letter-spacing:0.08em;}
.ficha-head .ficha-id{font-size:13px;color:var(--ink);font-weight:600;margin-top:2px;}
.ficha-status{
  display:flex;align-items:center;gap:7px;
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;letter-spacing:0.06em;text-transform:uppercase;
  color:var(--moss);
  background:var(--moss-light);
  padding:5px 10px;
  border-radius:20px;
  white-space:nowrap;
}
.ficha-status .dot{background:var(--moss);}
.ficha-body{padding:20px 24px;}
.ficha-row{
  display:flex;justify-content:space-between;
  padding:10px 0;
  border-bottom:1px solid var(--line);
  font-size:13px;
}
.ficha-row:last-of-type{border-bottom:none;}
.ficha-row .k{color:var(--ink-50);font-family:'IBM Plex Mono',monospace;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;}
.ficha-row .v{font-weight:600;text-align:right;}
.ficha-foot{
  display:flex;justify-content:space-between;align-items:center;
  padding:16px 24px;
  background:var(--stone);
  border-top:1px solid var(--line);
}
.ficha-foot .mono{font-size:10.5px;color:var(--ink-50);}
.stamp{
  width:52px;height:52px;border-radius:50%;
  border:1.5px solid var(--copper);
  display:flex;align-items:center;justify-content:center;
  transform:rotate(-8deg);
  flex-shrink:0;
}
.stamp svg{width:24px;height:24px;stroke:var(--copper);}

/* ============ TRUST STRIP ============ */
.trust{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--paper);
}
.trust .wrap{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  padding:0;
}
.trust-item{
  padding:22px 20px;
  border-right:1px solid var(--line);
  display:flex;
  gap:12px;
  align-items:center;
}
.trust-item:last-child{border-right:none;}
.trust-item svg{width:22px;height:22px;stroke:var(--copper);flex-shrink:0;}
.trust-item .t1{font-size:10.5px;font-family:'IBM Plex Mono',monospace;color:var(--ink-50);text-transform:uppercase;letter-spacing:.05em;}
.trust-item .t2{font-size:13px;font-weight:600;}
@media (max-width:920px){ .trust .wrap{grid-template-columns:repeat(2,1fr);} .trust-item:nth-child(2){border-right:none;} }

/* ============ SECTION SHELL ============ */
section{padding:30px 0;}
.sec-alt{background:var(--stone-2);border-top:1px solid var(--line);}
.sec-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:52px;
}
.sec-head h2{font-size:clamp(26px,3vw,36px);max-width:16ch;}
.sec-head .sec-desc{max-width:38ch;color:var(--ink-70);font-size:14.5px;padding-bottom:4px;}

/* ============ SERVICIOS ============ */
.services-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.svc-card{
  background:var(--paper);
  padding:30px 24px;
  display:flex;
  flex-direction:column;
  gap:18px;
  transition:background .15s ease;
}
.svc-card:hover{background:var(--stone);}
.svc-code{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--copper);letter-spacing:.06em;}
.svc-icon{width:38px;height:38px;stroke:var(--ink);}
.svc-card h3{font-size:15.5px;text-transform:none;font-family:'IBM Plex Sans',sans-serif;font-weight:700;}
.svc-card p{font-size:13.5px;color:var(--ink-70);margin:0;flex-grow:1;}
.svc-link{font-family:'IBM Plex Mono',monospace;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:6px;color:var(--ink);}
.svc-link svg{width:12px;height:12px;}
@media (max-width:920px){ .services-grid{grid-template-columns:1fr 1fr;} }

/* ---- modifier: grilla de 3 columnas (Resoluciones, Personal Técnico, Alianzas, Servicios 3x2) ---- */
.services-grid.cols-3{grid-template-columns:repeat(3,1fr);}
@media (max-width:920px){ .services-grid.cols-3{grid-template-columns:1fr 1fr;} }

/* ---- modifier: tarjeta CTA dentro de una grilla de servicios ---- */
.svc-card.cta{background:var(--ink-fixed);color:var(--stone-fixed);justify-content:center;}
.svc-card.cta h3{color:var(--stone-fixed);}
.svc-card.cta p{color:rgba(var(--stone-fixed-rgb),0.72);}
.svc-card.cta .svc-link{color:var(--amber);}
.svc-card.cta:hover{background:var(--copper-dark);}

/* ============ SEGMENTOS (Hogares/Empresas) ============ */
.segments{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  margin-top:18px;
  background:var(--line);
  border:1px solid var(--line);
}
.seg{
  background:var(--paper);
  padding:48px 40px;
  position:relative;
  min-height:340px;
  display:flex;flex-direction:column;justify-content:flex-end;
}
.seg.hogares{
  background-image:url('/img/galeria/2026-01-16-aplicacion-cocina.webp');
  background-size:cover;
  background-position:center 20%;
  color:var(--stone-fixed);
}
.seg.hogares::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(0deg, rgba(var(--ink-fixed-rgb),0.88) 0%, rgba(var(--ink-fixed-rgb),0.45) 55%, rgba(var(--ink-fixed-rgb),0.05) 100%);
}
.seg.hogares > *{position:relative;z-index:1;}
.seg.hogares h3{color:var(--stone-fixed);}
.seg.hogares .eyebrow{color:var(--amber);}
.seg.hogares .eyebrow::before{background:var(--amber);}
.seg.hogares p{color:rgba(var(--stone-fixed-rgb),0.8);}
.seg.hogares .btn-ghost{border-color:var(--stone-fixed);color:var(--stone-fixed);}
.seg.hogares .btn-ghost:hover{background:var(--stone-fixed);color:var(--ink-fixed);}
.seg.empresas{
  background-image:url('/img/galeria/2026-01-20-aplicacion-bodega.webp');
  background-size:cover;
  background-position:center;
  color:var(--stone-fixed);
}
.seg.empresas::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(0deg, rgba(var(--ink-fixed-rgb),0.88) 0%, rgba(var(--ink-fixed-rgb),0.45) 55%, rgba(var(--ink-fixed-rgb),0.05) 100%);
}
.seg.empresas > *{position:relative;z-index:1;}
.seg.empresas h3{color:var(--stone-fixed);}
.seg.empresas .eyebrow{color:var(--amber);}
.seg.empresas .eyebrow::before{background:var(--amber);}
.seg.empresas p{color:rgba(var(--stone-fixed-rgb),0.72);}
.seg .eyebrow{margin-bottom:16px;}
.seg h3{font-size:24px;margin-bottom:12px;max-width:14ch;}
.seg p{font-size:14px;color:var(--ink-70);max-width:38ch;margin-bottom:22px;}
.seg .btn{align-self:flex-start;}
.seg.empresas .btn-ghost{border-color:var(--stone-fixed);color:var(--stone-fixed);}
.seg.empresas .btn-ghost:hover{background:var(--stone-fixed);color:var(--ink-fixed);}
@media (max-width:920px){ .segments{grid-template-columns:1fr;} }

/* ============ PROCESO ============ */
.process{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:36px;
  position:relative;
}
.process::before{
  content:"";
  position:absolute;top:19px;left:6%;right:6%;
  height:1px;
  background:repeating-linear-gradient(to right, var(--line) 0 8px, transparent 8px 14px);
  z-index:0;
}
.p-step{position:relative;z-index:1;}
.p-num{
  width:40px;height:40px;
  border:1.5px solid var(--ink);
  background:var(--stone);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:14px;
  margin-bottom:18px;
}
.p-step h3{font-size:15px;text-transform:none;font-family:'IBM Plex Sans',sans-serif;font-weight:700;margin-bottom:8px;}
.p-step p{font-size:13.5px;color:var(--ink-70);margin:0;}
@media (max-width:920px){ .process{grid-template-columns:1fr 1fr;row-gap:40px;} .process::before{display:none;} }

/* ============ TRABAJOS REALIZADOS (galería) ============ */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.case-card{border:1px solid var(--line);background:var(--paper);}
.case-photo{
  aspect-ratio:4/3;
  width:100%;
  background:repeating-linear-gradient(135deg, #D7DED0 0 10px, #E2E7DA 10px 20px);
  display:flex;align-items:center;justify-content:center;
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-50);
  border:none;margin:0;padding:0;cursor:pointer;
}
.case-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.case-meta{padding:16px 18px;}
.case-meta .svc-code{display:block;margin-bottom:6px;}
.case-meta h4{font-family:'IBM Plex Sans',sans-serif;font-size:14px;font-weight:700;margin:0 0 4px;text-transform:none;}
.case-meta p{font-size:12.5px;color:var(--ink-70);margin:0;}
@media (max-width:920px){ .cases{grid-template-columns:1fr;} }

.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
@media (max-width:920px){ .gallery-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .gallery-grid{grid-template-columns:1fr;} }

/* ============ MODAL GALERÍA (lightbox) ============ */
.gallery-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;}
.gallery-modal[hidden]{display:none;}
.gallery-modal-overlay{position:absolute;inset:0;background:rgba(var(--ink-fixed-rgb),.72);border:none;padding:0;margin:0;}
.gallery-modal-dialog{
  position:relative;
  background:var(--paper);
  width:100%;max-width:560px;max-height:90vh;overflow-y:auto;
  border:1px solid var(--line);
}
.gallery-modal-close{
  position:absolute;top:12px;right:12px;z-index:1;
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  background:var(--paper);border:1px solid var(--line);
  color:var(--ink);cursor:pointer;
}
.gallery-modal-close svg{width:18px;height:18px;}
.gallery-modal-photo-wrap{position:relative;}
.gallery-modal-photo{
  aspect-ratio:4/3;
  background:repeating-linear-gradient(135deg, #D7DED0 0 10px, #E2E7DA 10px 20px);
  display:flex;align-items:center;justify-content:center;
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-50);
}
.gallery-modal-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.gallery-modal-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:1;
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  background:var(--paper);border:1px solid var(--line);
  color:var(--ink);cursor:pointer;
}
.gallery-modal-arrow[hidden]{display:none;}
.gallery-modal-arrow svg{width:18px;height:18px;}
.gallery-modal-prev{left:12px;}
.gallery-modal-next{right:12px;}
.gallery-modal-body{padding:20px 22px;}
.gallery-modal-body h4{font-family:'IBM Plex Sans',sans-serif;font-size:16px;font-weight:700;margin:8px 0 6px;text-transform:none;}
.gallery-modal-body p{font-size:13px;color:var(--ink-70);margin:0;}

/* ============ POR QUE ELEGIRNOS ============ */
.why{display:grid;grid-template-columns:0.9fr 1.1fr;gap:60px;align-items:center;}
.why-list{display:flex;flex-direction:column;}
.why-item{
  display:flex;gap:16px;
  padding:20px 0;
  border-bottom:1px solid var(--line);
}
.why-item:first-child{padding-top:0;}
.why-check{
  width:24px;height:24px;border-radius:50%;
  background:var(--moss-light);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;margin-top:2px;
}
.why-check svg{width:13px;height:13px;stroke:var(--moss);}
.why-item h4{font-size:14.5px;font-weight:700;margin:0 0 4px;}
.why-item p{font-size:13.5px;color:var(--ink-70);margin:0;}
.why-panel{
  background:var(--ink-fixed);
  color:var(--stone-fixed);
  padding:36px;
  position:relative;
}
.why-panel .eyebrow{color:var(--amber);margin-bottom:20px;}
.why-panel .eyebrow::before{background:var(--amber);}
.why-stat{display:flex;justify-content:space-between;align-items:baseline;padding:16px 0;border-bottom:1px solid rgba(var(--stone-fixed-rgb),0.15);}
.why-stat:last-child{border-bottom:none;}
.why-stat .label{font-size:13px;color:rgba(var(--stone-fixed-rgb),0.65);}
.why-stat .val{font-family:'Archivo Expanded',sans-serif;font-weight:900;font-size:22px;}
@media (max-width:920px){ .why{grid-template-columns:1fr;} }

/* ============ CLIENTES (carrusel de logos) ============ */
section.clients{padding:56px 0;}
section.clients .eyebrow{margin-bottom:24px;justify-content:center;}
section.clients .wrap{text-align:center;}

.marquee{
  position:relative;
  overflow:hidden;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:8px 0;
  -webkit-mask-image:linear-gradient(to right, transparent, black 8%, black 92%, transparent);
  mask-image:linear-gradient(to right, transparent, black 8%, black 92%, transparent);
}
.marquee:focus-visible{outline:1.5px solid var(--copper);outline-offset:-2px;}
.marquee-track{
  display:flex;
  align-items:center;
  gap:56px;
  width:max-content;
  padding:20px 28px;
  animation:marquee-scroll 45s linear infinite;
}
.marquee:hover .marquee-track,
.marquee:focus-within .marquee-track{
  animation-play-state:paused;
}
.marquee-item{
  height:44px;
  display:flex;
  align-items:center;
  flex-shrink:0;
}
.marquee-item img{
  height:100%;
  width:auto;
  max-width:160px;
  object-fit:contain;
  filter:grayscale(1);
  opacity:0.55;
  transition:filter .2s ease, opacity .2s ease;
}
.marquee-item:hover img{
  filter:grayscale(0);
  opacity:1;
}
@keyframes marquee-scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .marquee{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory;
  }
  .marquee-track{
    animation:none;
    width:auto;
  }
  .marquee-item{scroll-snap-align:start;}
  .marquee-item[aria-hidden="true"]{display:none;}
}

/* ============ FAQ ============ */
.faq-wrap{max-width:820px;margin:0 auto;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  width:100%;
  display:flex;justify-content:space-between;align-items:center;
  padding:22px 4px;
  background:none;border:none;cursor:pointer;
  font-family:'IBM Plex Sans',sans-serif;
  font-size:15.5px;font-weight:600;color:var(--ink);
  text-align:left;
}
.faq-q .plus{
  width:22px;height:22px;flex-shrink:0;position:relative;
  margin-left:20px;
}
.faq-q .plus::before, .faq-q .plus::after{
  content:"";position:absolute;background:var(--ink);
  transition:transform .2s ease;
}
.faq-q .plus::before{top:50%;left:0;width:100%;height:1.5px;transform:translateY(-50%);}
.faq-q .plus::after{left:50%;top:0;height:100%;width:1.5px;transform:translateX(-50%);}
.faq-item.open .plus::after{transform:translateX(-50%) rotate(90deg);opacity:0;}
.faq-item.open .plus::before{background:var(--copper);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.faq-a p{font-size:14px;color:var(--ink-70);padding:0 4px 22px;margin:0;max-width:64ch;}

/* ============ CONTACTO ============ */
.contact-shell{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.contact-form{background:var(--paper);padding:44px;}
.contact-info{background:var(--ink-fixed);color:var(--stone-fixed);padding:44px;}
.field{margin-bottom:18px;}
.field label{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-50);margin-bottom:7px;}
.field input, .field select, .field textarea{
  width:100%;
  border:1px solid var(--line);
  background:var(--stone);
  padding:12px 14px;
  font-family:'IBM Plex Sans',sans-serif;
  font-size:14px;
  color:var(--ink);
  border-radius:var(--radius);
}
.field textarea{resize:vertical;min-height:90px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.upload-box{
  border:1.5px dashed var(--line);
  border-radius:var(--radius);
  padding:18px;
  text-align:center;
  font-size:12.5px;
  color:var(--ink-50);
  font-family:'IBM Plex Mono',monospace;
}
.contact-info h3{font-size:20px;margin-bottom:8px;}
.contact-info>p{color:rgba(var(--stone-fixed-rgb),0.65);font-size:13.5px;margin-bottom:32px;}
.ci-row{display:flex;gap:14px;padding:14px 0;border-top:1px solid rgba(var(--stone-fixed-rgb),0.15);}
.ci-row svg{width:18px;height:18px;stroke:var(--amber);flex-shrink:0;margin-top:2px;}
.ci-row .k{font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:rgba(var(--stone-fixed-rgb),0.5);}
.ci-row .v{font-size:14px;margin-top:2px;}
.ci-row .v a{color:var(--amber);text-decoration:underline;text-underline-offset:2px;}
.ci-row .horario-aviso{color:rgba(var(--stone-fixed-rgb),0.55);margin-top:6px;}
.map-box{
  margin-top:24px;height:140px;
  border:1px solid rgba(var(--stone-fixed-rgb),0.2);
  overflow:hidden;
}
.map-box iframe{width:100%;height:100%;border:0;display:block;}
@media (max-width:920px){ .contact-shell{grid-template-columns:1fr;} .field-row{grid-template-columns:1fr;} }
.contact-form-solo{max-width:640px;margin:0 auto;border:1px solid var(--line);}

/* ============ POLÍTICAS ============ */
.policy-block{max-width:760px;margin-bottom:36px;}
.policy-block h3{font-size:17px;text-transform:none;font-family:'IBM Plex Sans',sans-serif;font-weight:700;margin-bottom:10px;}
.policy-block p{font-size:14px;color:var(--ink-70);margin:0 0 10px;}
.policy-list{margin:0;padding-left:20px;}
.policy-list li{font-size:14px;color:var(--ink-70);margin:0 0 10px;}
.policy-list li:last-child{margin-bottom:0;}
.policy-list strong{color:var(--ink);}

/* ============ FOOTER ============ */
footer{background:var(--ink-fixed);color:rgba(var(--stone-fixed-rgb),0.6);padding:48px 0 26px;}
.foot-top{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:30px;padding-bottom:32px;border-bottom:1px solid rgba(var(--stone-fixed-rgb),0.12);}
.foot-logo{display:flex;align-items:center;gap:10px;}
.foot-logo-img{height:80px;width:auto;padding:8px 12px;background:rgba(var(--stone-fixed-rgb),0.92);border-radius:6px;}
.foot-links{display:flex;gap:36px;flex-wrap:wrap;}
.foot-col h5{font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:rgba(var(--stone-fixed-rgb),0.4);margin-bottom:12px;}
.foot-col a{display:block;font-size:13px;margin-bottom:8px;color:rgba(var(--stone-fixed-rgb),0.75);}
.foot-social{display:flex;gap:10px;}
.foot-social a{
  display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;
  border:1px solid rgba(var(--stone-fixed-rgb),0.2);
  color:rgba(var(--stone-fixed-rgb),0.75);
  margin-bottom:0;
  transition:border-color .2s ease, color .2s ease;
}
.foot-social a:hover, .foot-social a:focus-visible{border-color:var(--amber);color:var(--amber);}
.foot-social svg{width:16px;height:16px;}
.foot-bottom{display:flex;justify-content:space-between;padding-top:22px;font-family:'IBM Plex Mono',monospace;font-size:11px;flex-wrap:wrap;gap:10px;}

/* ---- Aewin credit (easter egg) ---- */
.foot-credit{
  text-align:center;
  margin-top:16px;
  font-family:'IBM Plex Mono',monospace;
  font-size:10.5px;
}
.credit-link{
  color:inherit;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  border-radius:2px;
}
.credit-link::before{
  content:"";
  display:inline-block;
  width:0;
  height:5px;
  border-radius:50%;
  background:#f5a623;
  margin-right:0;
  opacity:0;
  transition:width .2s ease, margin-right .2s ease, opacity .2s ease;
}
.credit-link:hover::before,
.credit-link:focus-visible::before{
  width:5px;
  margin-right:6px;
  opacity:1;
}
.credit-link:focus-visible{
  outline:1.5px solid #f5a623;
  outline-offset:3px;
}
@media (prefers-reduced-motion: reduce){
  .credit-link::before{ transition:none; }
}

/* ============ WHATSAPP FLOAT ============ */
.wa-float-wrap{
  position:fixed;bottom:26px;right:26px;z-index:60;
  display:flex;align-items:center;gap:12px;
}
.wa-float{
  position:relative;flex-shrink:0;
  width:58px;height:58px;border-radius:50%;
  background:var(--moss);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px -6px rgba(var(--ink-fixed-rgb),0.5);
  cursor:pointer;
}
.wa-float svg{width:26px;height:26px;stroke:var(--stone-fixed);}
.wa-float::before{
  content:"";position:absolute;inset:0;border-radius:50%;
  border:2px solid var(--moss);
  animation:pulse 2.2s ease-out infinite;
}
@keyframes pulse{0%{transform:scale(1);opacity:.7;}100%{transform:scale(1.55);opacity:0;}}

/* ============ VOLVER ARRIBA ============ */
.back-to-top{
  position:fixed;bottom:26px;left:26px;z-index:60;
  width:52px;height:52px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--paper);color:var(--ink);
  border:1px solid var(--line);
  box-shadow:0 10px 26px -6px rgba(var(--ink-fixed-rgb),0.3);
  cursor:pointer;
  opacity:0;transform:translateY(10px);
  visibility:hidden;pointer-events:none;
  transition:opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
}
.back-to-top svg{width:22px;height:22px;}
.back-to-top.is-visible{
  opacity:1;transform:translateY(0);
  visibility:visible;pointer-events:auto;
  transition:opacity .25s ease, transform .25s ease;
}
.back-to-top:focus-visible{outline:2px solid var(--copper);outline-offset:2px;}
@media (prefers-reduced-motion: reduce){
  .back-to-top{transition:opacity .01s linear, visibility 0s linear;}
  .back-to-top.is-visible{transition:opacity .01s linear;}
}

/* ============ AVISO HORARIO DE ATENCIÓN ============ */
.horario-aviso{
  font-size:12px;line-height:1.35;color:var(--ink-70);
  margin:0;
}
.wa-float-note{
  max-width:180px;
  background:var(--paper);color:var(--ink);
  padding:10px 14px;border-radius:10px;
  border:1px solid var(--line);
  box-shadow:0 10px 26px -6px rgba(var(--ink-fixed-rgb),0.25);
}
.hero-wa-note{margin-top:10px;}
@media (max-width:600px){ .wa-float-note{display:none;} }

@media (max-width:920px){
  .hero .wrap{grid-template-columns:1fr;}
  .why{grid-template-columns:1fr;}
  .sec-head{flex-direction:column;align-items:flex-start;gap:14px;}
  section{padding:64px 0;}
  .hero-visual{padding-right:0;padding-bottom:0;margin-top:36px;}
  .ficha-compact{position:static;width:calc(100% - 24px);margin:-44px 0 0 24px;transform:none;}
  .ficha-compact:hover{transform:none;}
  .trust{margin-top:0;}
}
