@font-face{font-family:"Anton";font-style:normal;font-weight:400;font-display:swap;src:url(fuentes/anton-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Archivo";font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(fuentes/archivo-latin-wdth-normal.woff2) format("woff2-variations"),url(fuentes/archivo-latin-wdth-normal.woff2) format("woff2")}
:root{
  --negro:#141414;
  --negro-2:#1E1E1E;
  --rojo:#DB0912;
  --rojo-vivo:#EE1C25;
  --rojo-oscuro:#B0060D;
  --yeso:#F2F2EF;
  --blanco:#FFFFFF;
  --gris:#5F6368;
  --gris-claro:#A7A9A6;
  --linea:#D9D9D4;
  --whatsapp:#1F8A4C;
  --ancho:1180px;
  --fuente:"Archivo","Helvetica Neue",Arial,sans-serif;
  --titulo:"Anton",Impact,"Arial Narrow Bold","Arial Narrow",sans-serif;
  --suave:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:var(--fuente);color:var(--negro);background:var(--yeso);line-height:1.55;font-size:17px;overflow-x:hidden}
a{color:inherit}
img{max-width:100%;display:block}
:focus-visible{outline:3px solid var(--rojo-vivo);outline-offset:3px}
.envoltura{max-width:var(--ancho);margin:0 auto;padding:0 24px}

/* Borrador (se quita al publicar) */
.borrador{position:relative;z-index:60;background:#FFF3B0;color:#4A3F00;font-size:14px;text-align:center;padding:8px 16px}
.falta{background:#FFF3B0;color:#4A3F00;padding:0 5px;border-radius:3px}

/* ---------- Cabecera ---------- */
.cab{position:fixed;left:0;right:0;top:0;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:background .35s,box-shadow .35s}
.borrador + .cab{top:auto}
.cab.solida{position:fixed;top:0;background:rgba(20,20,20,.92);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(255,255,255,.08)}
.cab-in{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px;color:#fff}
.marca{display:flex;align-items:center;gap:12px;text-decoration:none}
.sello{width:12px;height:32px;background:var(--rojo);border-radius:2px}
.marca b{font-family:var(--titulo);font-weight:400;font-size:30px;letter-spacing:.01em;display:block;line-height:1}
.marca b em{font-style:normal;color:var(--rojo-vivo)}
.marca small{font-size:12px;color:var(--gris-claro)}
.cab nav ul{display:flex;gap:30px;list-style:none}
.cab nav a{text-decoration:none;font-size:15px;color:#D6D6D2;position:relative}
.cab nav a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--rojo-vivo);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--suave)}
.cab nav a:hover{color:#fff}
.cab nav a:hover::after{transform:scaleX(1)}

/* ---------- Botones ---------- */
.boton{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;font-family:inherit;font-weight:700;font-size:16px;text-decoration:none;padding:15px 26px;border-radius:999px;border:2px solid transparent;transition:transform .25s var(--suave),box-shadow .25s}
.boton:hover{transform:translateY(-2px)}
.boton-rojo{background:var(--rojo);color:#fff;box-shadow:0 10px 30px -10px rgba(219,9,18,.8)}
.boton-rojo:hover{background:var(--rojo-oscuro)}
.boton-wa{background:var(--whatsapp);color:#fff}
.boton-linea{border-color:rgba(255,255,255,.4);color:#fff}
.boton-linea:hover{border-color:#fff}
.cab .boton{padding:10px 18px;font-size:15px}
.icono{width:18px;height:18px;flex:none}

/* ---------- Portada ---------- */
.portada{position:relative;min-height:100vh;min-height:100svh;background:var(--negro);color:#fff;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:120px 0 90px}
.portada::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 80% 30%,rgba(219,9,18,.22),transparent 70%);pointer-events:none}
.portada .envoltura{position:relative;z-index:2;width:100%}
.portada h1{font-family:var(--titulo);font-weight:400;text-transform:uppercase;font-size:clamp(54px,10vw,128px);line-height:.92;letter-spacing:.005em}
.antetitulo{display:inline-block;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--rojo-vivo);margin-bottom:22px;opacity:0;animation:aparece .8s .1s forwards}
.linea-t{display:block;overflow:hidden}
.linea-t span{display:block;transform:translateY(105%);animation:sube 1s var(--suave) forwards}
.linea-t:nth-child(2) span{animation-delay:.12s}
.linea-t:nth-child(3) span{animation-delay:.24s;color:transparent;-webkit-text-stroke:2px #fff}
@keyframes sube{to{transform:none}}
.portada p.sub{font-size:clamp(18px,2vw,21px);color:#C9C9C4;max-width:44ch;margin-top:28px;opacity:0;animation:aparece .8s .6s forwards}
.portada .acciones{opacity:0;animation:aparece .8s .75s forwards}
@keyframes aparece{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.acciones{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}

.anos{display:inline-flex;align-items:baseline;gap:10px;margin-top:30px;font-size:15px;color:#C9C9C4;text-transform:uppercase;letter-spacing:.08em;opacity:0;animation:aparece .8s .45s forwards}
.anos strong{font-family:var(--titulo);font-weight:400;font-size:46px;color:var(--rojo-vivo);letter-spacing:-.02em;text-transform:none}
.portada .anos + .sub{margin-top:10px}
/* Perfil de cornisa que se dibuja solo: el sello de la web */
.cornisa{position:absolute;right:-40px;top:50%;transform:translateY(-50%);width:min(46vw,560px);height:auto;z-index:1;opacity:.95}
.cornisa path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.cornisa .perfil{stroke:var(--rojo-vivo);stroke-width:3;stroke-dasharray:1400;stroke-dashoffset:1400;animation:dibuja 2.6s .3s var(--suave) forwards}
.cornisa .guia{stroke:rgba(255,255,255,.14);stroke-width:1;stroke-dasharray:4 8}
@keyframes dibuja{to{stroke-dashoffset:0}}
.baja{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:2;font-size:13px;color:var(--gris-claro);text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:8px}
.baja i{width:1px;height:40px;background:linear-gradient(var(--rojo-vivo),transparent);animation:gota 1.8s infinite}
@keyframes gota{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- Cinta de servicios en movimiento ---------- */
.cinta{background:var(--rojo);color:#fff;overflow:hidden;padding:18px 0;border-top:1px solid rgba(255,255,255,.15)}
.cinta-pista{display:flex;width:max-content;animation:desliza 28s linear infinite}
.cinta span{font-family:var(--titulo);font-weight:400;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(20px,2.6vw,30px);white-space:nowrap;padding:0 22px;display:flex;align-items:center;gap:44px}
.cinta span::after{content:"";width:10px;height:10px;background:#fff;transform:rotate(45deg)}
@keyframes desliza{to{transform:translateX(-50%)}}

/* ---------- Secciones ---------- */
section.bloque{padding:110px 0}
.cabeza{display:flex;justify-content:space-between;align-items:end;gap:30px;flex-wrap:wrap;margin-bottom:54px}
h2{font-family:var(--titulo);font-weight:400;text-transform:uppercase;font-size:clamp(40px,6vw,76px);line-height:.98;letter-spacing:.005em;max-width:16ch}
.intro{color:var(--gris);max-width:46ch}

/* Aparición al hacer scroll */
.revela{opacity:0;transform:translateY(40px);transition:opacity .9s var(--suave),transform .9s var(--suave)}
.revela.visible{opacity:1;transform:none}

/* ---------- Servicios: filas que se rellenan de rojo ---------- */
.lista-serv{border-top:3px solid var(--negro)}
.serv{position:relative;display:grid;grid-template-columns:1.1fr 1.4fr auto;gap:30px;align-items:center;padding:34px 20px;border-bottom:1px solid var(--linea);isolation:isolate;transition:color .35s,opacity .9s var(--suave),transform .9s var(--suave)}
.serv::before{content:"";position:absolute;inset:0;background:var(--negro);transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--suave);z-index:-1}
.serv h3{font-weight:800;font-stretch:108%;font-size:clamp(22px,2.6vw,32px);line-height:1.1;transition:transform .45s var(--suave)}
.serv p{color:var(--gris);transition:color .35s}
.flecha{width:54px;height:54px;border-radius:50%;border:2px solid var(--negro);display:grid;place-items:center;transition:background .35s,border-color .35s,transform .45s var(--suave)}
.flecha svg{width:20px;height:20px}
@media (hover:hover){
  .serv:hover{color:#fff}
  .serv:hover::before{transform:scaleY(1)}
  .serv:hover h3{transform:translateX(12px)}
  .serv:hover p{color:#C9C9C4}
  .serv:hover .flecha{background:var(--rojo);border-color:var(--rojo);transform:rotate(-45deg)}
}

/* ---------- Obras ---------- */
.obras{background:var(--blanco)}
.galeria{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:104px;gap:14px}
.foto{position:relative;overflow:hidden;border-radius:14px;background:#E4E4E0;margin:0}
.foto img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--suave)}
.foto:hover img{transform:scale(1.05)}
.foto figcaption{position:absolute;left:0;right:0;bottom:0;padding:40px 16px 14px;color:#fff;font-size:15px;font-weight:600;background:linear-gradient(transparent,rgba(0,0,0,.65))}
.gA{grid-column:1/5;grid-row:1/6}
.gB{grid-column:5/13;grid-row:1/4}
.gC{grid-column:5/9;grid-row:4/6}
.gD{grid-column:9/13;grid-row:4/6}
.gE{grid-column:9/13;grid-row:6/11}
.gF{grid-column:1/9;grid-row:6/9}
.gG{grid-column:1/5;grid-row:9/11}
.gH{grid-column:5/9;grid-row:9/11}
.gI{grid-column:1/7;grid-row:11/14}
.gJ{grid-column:7/13;grid-row:11/14}
/* Oficio */
.oficio-in{display:grid;grid-template-columns:1.25fr 1fr;gap:56px;align-items:center}
.oficio img{width:100%;border-radius:16px;aspect-ratio:16/10;object-fit:cover;object-position:50% 20%}
.oficio p{color:var(--gris);margin-top:18px;max-width:44ch}
.cifra{display:flex;gap:40px;margin-top:30px;flex-wrap:wrap}
.cifra b{display:block;font-weight:400;font-family:var(--titulo,inherit);font-size:52px;line-height:1;color:var(--rojo)}
.cifra span{font-size:14px;color:var(--gris);text-transform:uppercase;letter-spacing:.06em}

/* Antes / después deslizable */
.ab-bloque{margin-top:80px;display:grid;grid-template-columns:1fr 1.6fr;gap:50px;align-items:center}
.ab-bloque h3{font-family:var(--titulo);font-weight:400;text-transform:uppercase;font-size:clamp(32px,4vw,50px);line-height:1;letter-spacing:.01em}
.ab-bloque p{color:var(--gris);margin-top:14px;max-width:38ch}
.ab{--pos:50%;position:relative;aspect-ratio:16/10;border-radius:16px;overflow:hidden;user-select:none;background:#DADAD5}
.ab .capa{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:800;font-stretch:125%;font-size:clamp(18px,3vw,30px)}
.ab .despues{justify-content:flex-end;padding-right:12%;background:repeating-linear-gradient(135deg,#F4F4F1 0 16px,#FBFBF9 16px 32px)}
.ab .antes{justify-content:flex-start;padding-left:12%;background:repeating-linear-gradient(135deg,#9C9E99 0 16px,#A9ABA6 16px 32px);color:#fff;clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.ab .capa img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ab .rotulo{position:absolute;top:14px;z-index:3;background:rgba(20,20,20,.75);color:#fff;font-size:13px;font-weight:700;padding:6px 12px;border-radius:999px}
.ab .r-antes{left:14px}.ab .r-despues{right:14px}
.ab .tirador{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;margin-left:-1.5px;background:#fff;z-index:2;pointer-events:none}
.ab .tirador::after{content:"";position:absolute;top:50%;left:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:var(--rojo);box-shadow:0 6px 20px rgba(0,0,0,.35);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l-6 6 6 6M15 6l6 6-6 6'/%3E%3C/svg%3E");background-size:24px;background-repeat:no-repeat;background-position:center}
.ab input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:4;margin:0}

/* ---------- Proceso con línea que se llena ---------- */
.proceso{background:var(--negro);color:#fff}
.proceso .intro{color:#B6B6B1}
.pasos{position:relative;list-style:none;counter-reset:paso;display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding-top:40px}
.pasos::before,.pasos::after{content:"";position:absolute;top:0;left:0;height:3px;background:#333}
.pasos::before{right:0}
.pasos::after{width:0;background:var(--rojo-vivo);transition:width 2s var(--suave)}
.pasos.visible::after{width:100%}
.pasos li{counter-increment:paso;position:relative}
.pasos li::before{content:"0" counter(paso);display:block;font-family:var(--titulo);font-weight:400;font-size:64px;line-height:1;color:transparent;-webkit-text-stroke:1.5px var(--rojo-vivo);margin-bottom:18px}
.pasos h3{font-size:20px;margin-bottom:8px}
.pasos p{color:#B6B6B1;font-size:16px}

/* ---------- Opiniones: carrusel deslizable ---------- */
.carrusel{display:grid;grid-auto-flow:column;grid-auto-columns:min(420px,85%);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:16px;scrollbar-width:thin}
.resena{scroll-snap-align:start;background:var(--blanco);border-radius:18px;padding:32px;display:flex;flex-direction:column;gap:22px;border:1px solid var(--linea);transition:transform .35s var(--suave),box-shadow .35s}
.resena:hover{transform:translateY(-6px);box-shadow:0 24px 50px -24px rgba(0,0,0,.35)}
.estrellas{color:var(--rojo);letter-spacing:4px;font-size:20px}
.resena blockquote{font-size:19px;line-height:1.5;flex:1}
.resena cite{font-style:normal;font-size:15px;color:var(--gris)}

/* ---------- Zona ---------- */
.zona{background:var(--blanco)}
.zona-in{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.pueblos{list-style:none;display:flex;flex-wrap:wrap;gap:10px}
.pueblos li{border:1.5px solid var(--negro);border-radius:999px;padding:10px 18px;font-size:16px;font-weight:600;transition:background .25s,color .25s,transform .25s var(--suave)}
.pueblos li:hover{background:var(--negro);color:#fff;transform:translateY(-3px)}
.pueblos li.base{background:var(--rojo);border-color:var(--rojo);color:#fff}

/* ---------- Contacto ---------- */
.contacto{background:var(--negro);color:#fff;text-align:left;overflow:hidden;position:relative}
.contacto::after{content:"";position:absolute;right:-10%;bottom:-40%;width:60%;aspect-ratio:1;background:radial-gradient(circle,rgba(219,9,18,.35),transparent 65%);pointer-events:none}
.contacto .envoltura{position:relative;z-index:1}
.contacto .intro{color:#B6B6B1;margin-top:18px}
.telefono{display:inline-block;margin-top:40px;font-family:var(--titulo);font-weight:400;font-size:clamp(52px,10vw,130px);line-height:1;letter-spacing:.01em;text-decoration:none;background:linear-gradient(90deg,var(--rojo-vivo) 50%,#fff 50%) right/200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;transition:background-position .6s var(--suave),opacity .9s var(--suave),transform .9s var(--suave)}
.telefono:hover{background-position:left}
.datos{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:56px;border-top:1px solid #333;padding-top:30px}
.datos dt{color:#8F918D;font-size:14px;margin-bottom:6px}
.datos dd{font-size:19px;font-weight:600}

.pie-web{background:var(--negro);color:#8F918D;font-size:15px;border-top:1px solid #2A2A2A;padding-bottom:env(safe-area-inset-bottom,0px)}

.pie-web a{color:#C9C9C4}

/* WhatsApp flotante con pulso */
.wa-fijo{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:40;width:60px;height:60px;border-radius:50%;background:var(--whatsapp);display:grid;place-items:center;box-shadow:0 10px 26px rgba(0,0,0,.3)}
.wa-fijo svg{width:30px;height:30px}
.wa-fijo::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--whatsapp);animation:pulso 2.4s infinite;z-index:-1}
@keyframes pulso{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.7);opacity:0}}

/* ---------- Móvil ---------- */
@media (max-width:900px){
  .cornisa{width:80vw;right:-30vw;opacity:.45}
  .serv{grid-template-columns:1fr auto;gap:10px 20px;padding:26px 4px}
  .serv p{grid-column:1/-1;grid-row:2}
  .flecha{width:44px;height:44px}
  .galeria{grid-template-columns:repeat(2,1fr);grid-auto-rows:110px;grid-auto-flow:dense}
  .foto{grid-area:auto!important;grid-column:span 1!important;grid-row:span 2!important}
  .gA,.gE{grid-row:span 3!important}
  .gB,.gF,.gI,.gJ{grid-column:span 2!important}
  .gA{order:1}.gE{order:2}.gB{order:3}.gC{order:4}.gD{order:5}.gF{order:6}.gG{order:7}.gH{order:8}.gI{order:9}.gJ{order:10}
  .foto figcaption{font-size:13px;padding:30px 10px 10px}
  .oficio-in{grid-template-columns:1fr;gap:28px}
  .ab-bloque,.zona-in{grid-template-columns:1fr;gap:30px}
  .pasos{grid-template-columns:1fr 1fr;gap:40px 24px}
  .datos{grid-template-columns:1fr}
  section.bloque{padding:80px 0}
}
@media (max-width:520px){
  .cab .boton{display:none}
  .pasos{grid-template-columns:1fr}
  .baja{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .revela{opacity:1;transform:none}
  .cinta-pista{animation:none}
}

/* ===== Varias páginas ===== */
.cab nav a.activo{color:#fff}
.cab nav a.activo::after{transform:scaleX(1)}
.menu-btn{display:none;width:46px;height:46px;border:0;background:transparent;cursor:pointer;position:relative;color:#fff}
.menu-btn span{position:absolute;left:11px;right:11px;height:2px;background:currentColor;transition:transform .35s var(--suave),opacity .2s}
.menu-btn span:nth-child(1){top:16px}.menu-btn span:nth-child(2){top:22px}.menu-btn span:nth-child(3){top:28px}
.cab.abierto .menu-btn span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.cab.abierto .menu-btn span:nth-child(2){opacity:0}
.cab.abierto .menu-btn span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.cab-der{display:flex;align-items:center;gap:10px}

.cabecera-pag{position:relative;background:var(--negro);color:#fff;padding:180px 0 90px;overflow:hidden}
.cabecera-pag::before{content:"";position:absolute;inset:0;background:radial-gradient(55% 60% at 85% 20%,rgba(219,9,18,.25),transparent 70%);pointer-events:none}
.cabecera-pag .envoltura{position:relative;z-index:2}
.cabecera-pag h1{font-family:var(--titulo);font-weight:400;text-transform:uppercase;font-size:clamp(56px,11vw,140px);line-height:.9}
.cabecera-pag p{color:#C9C9C4;font-size:clamp(18px,2vw,21px);max-width:48ch;margin-top:22px}
.cabecera-pag .cornisa{width:min(32vw,360px);opacity:.7;right:-20px}
.miga{font-size:14px;color:#8F918D;margin-bottom:18px}
.miga a{text-decoration:none;color:#C9C9C4}
.miga a:hover{color:#fff}

.boton-negro{background:var(--negro);color:#fff}
.boton-negro:hover{background:#000}
.centro{text-align:center;margin-top:44px}

.destacadas{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:14px}
.destacadas .foto{aspect-ratio:4/5}

.servicio-det{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;padding:80px 0;border-top:1px solid var(--linea)}
.servicio-det:first-child{border-top:0;padding-top:20px}
.servicio-det:nth-child(even) .medio{order:2}
.servicio-det .medio img,.ilustra{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px}
.servicio-det p{color:var(--gris);margin-top:18px;max-width:46ch}
.incluye{list-style:none;margin:24px 0 30px;display:grid;gap:10px}
.incluye li{display:flex;gap:12px;align-items:baseline;font-weight:600}
.incluye li::before{content:"";width:9px;height:9px;background:var(--rojo);flex:none;transform:translateY(-1px) rotate(45deg)}
.num-serv{font-family:var(--titulo);color:var(--rojo);font-size:20px;letter-spacing:.05em;display:block;margin-bottom:10px}
.ilustra{background:var(--negro);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:#8F918D;font-size:14px;padding:30px;text-align:center}
.ilustra svg{width:62%;height:auto}
.ilustra path{fill:none;stroke:var(--rojo-vivo);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.ilustra .g{stroke:rgba(255,255,255,.18);stroke-width:1;stroke-dasharray:4 7}
.indice{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.indice a{border:1.5px solid rgba(255,255,255,.35);color:#fff;text-decoration:none;border-radius:999px;padding:8px 16px;font-size:15px;transition:background .25s,border-color .25s}
.indice a:hover{background:var(--rojo);border-color:var(--rojo)}

.consejos{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:10px}
.consejo{background:var(--blanco);border:1px solid var(--linea);border-radius:18px;padding:30px}
.consejo b{font-family:var(--titulo);font-weight:400;font-size:40px;color:var(--rojo);display:block;line-height:1;margin-bottom:14px}
.consejo h3{font-size:19px;margin-bottom:6px}
.consejo p{color:var(--gris);font-size:16px}

.foto{cursor:zoom-in}
.destacadas .foto,.oficio img{cursor:default}
.visor{position:fixed;inset:0;z-index:200;background:rgba(10,10,10,.95);display:none;align-items:center;justify-content:center;flex-direction:column;gap:14px;padding:60px 16px}
.visor.abierto{display:flex}
.visor img{max-width:100%;max-height:78vh;border-radius:10px;object-fit:contain}
.visor p{color:#fff;font-weight:600}
.visor button{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;width:52px;height:52px;border-radius:50%;font-size:26px;cursor:pointer}
.visor button:hover{background:var(--rojo)}
.v-cerrar{top:18px;right:18px}.v-ant{left:16px;top:50%}.v-sig{right:16px;top:50%}

.pie-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;padding:64px 0 40px}
.pie-grid h4{color:#fff;font-size:14px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px}
.pie-grid ul{list-style:none;display:grid;gap:8px}
.pie-grid a{text-decoration:none}
.pie-grid a:hover{color:#fff}
.pie-marca{font-family:var(--titulo);font-size:34px;color:#fff;line-height:1}
.pie-marca em{font-style:normal;color:var(--rojo-vivo)}
.pie-base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid #2A2A2A;padding:22px 0;font-size:14px}

@media (max-width:900px){
  .menu-btn{display:block}
  .cab nav{position:fixed;inset:0;background:var(--negro);padding:120px 28px 40px;transform:translateY(-100%);transition:transform .5s var(--suave);z-index:-1;overflow-y:auto}
  .cab.abierto{background:var(--negro);backdrop-filter:none}
  .cab.abierto nav{transform:none}
  .cab nav ul{flex-direction:column;gap:4px}
  .cab nav a{font-family:var(--titulo);font-size:46px;text-transform:uppercase;color:#fff;display:block;padding:4px 0}
  .cab nav a::after{display:none}
  .cab nav a.activo{color:var(--rojo-vivo)}
  .cabecera-pag{padding:140px 0 64px}
  .cabecera-pag .cornisa{width:60vw;right:-25vw;opacity:.35}
  .destacadas{grid-template-columns:1fr 1fr}
  .destacadas .foto:first-child{grid-column:span 2;aspect-ratio:4/3}
  .servicio-det{grid-template-columns:1fr;gap:28px;padding:56px 0}
  .servicio-det:nth-child(even) .medio{order:0}
  .consejos{grid-template-columns:1fr}
  .pie-grid{grid-template-columns:1fr 1fr}
  .pie-grid > div:first-child{grid-column:1/-1}
}
body.sin-scroll{overflow:hidden}

.resena-cta{margin-top:18px;background:var(--negro);color:#fff;border-radius:22px;padding:30px clamp(24px,4vw,44px);display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.resena-cta h3{font-family:var(--titulo);font-weight:400;text-transform:uppercase;font-size:clamp(28px,3.4vw,40px);line-height:1}
.resena-cta p{color:#C9C9C4;margin-top:8px}

.wa-fijo{bottom:calc(34px + env(safe-area-inset-bottom,0px));right:20px}
@media (max-width:900px){.wa-fijo{bottom:calc(84px + env(safe-area-inset-bottom,0px));right:16px;width:56px;height:56px}}
.pie-base{padding-bottom:calc(22px + 70px)}

.legal{max-width:760px}
.legal h2{font-size:clamp(24px,3vw,32px);margin:44px 0 12px;max-width:none}
.legal h2:first-child{margin-top:0}
.legal p,.legal li{color:#3b3f44;font-size:17px;line-height:1.65}
.legal ul{margin:10px 0 0 20px;display:grid;gap:6px}
.legal a{color:var(--rojo)}
.nota-priv{margin-top:18px;font-size:14px;color:#8F918D}
.nota-priv a{color:#C9C9C4}

.gM{grid-column:1/6;grid-row:17/21}
.gN{grid-column:6/13;grid-row:17/21}
@media (max-width:900px){.gM{order:13}.gN{order:14}}

/* ===== Efecto con el logo ===== */
.splash{position:fixed;inset:0;z-index:500;background:var(--negro);display:flex;align-items:center;justify-content:center;transition:transform .8s cubic-bezier(.7,0,.2,1)}
.sin-intro .splash{display:none}
.splash.fuera{transform:translateY(-100%)}
.intro-logo{text-align:center;padding:0 20px}
.il-nombre{font-family:var(--titulo);font-size:clamp(64px,15vw,190px);line-height:1;color:#fff;display:flex;justify-content:center;overflow:hidden;padding-bottom:.04em}
.il-l{display:inline-block;transform:translateY(110%);animation:il-sube .7s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i) * 70ms + .15s)}
.il-l.rojo{color:var(--rojo-vivo)}
@keyframes il-sube{to{transform:none}}
.il-barra{height:5px;background:var(--rojo-vivo);margin:14px auto 0;width:100%;transform:scaleX(0);transform-origin:left;animation:il-barra .7s .85s cubic-bezier(.7,0,.2,1) forwards}
@keyframes il-barra{to{transform:scaleX(1)}}
.il-lema{margin-top:16px;color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:clamp(11px,1.5vw,16px);opacity:0;animation:aparece .6s 1.25s forwards}
.il-lema b{color:var(--rojo-vivo)}
.con-intro .portada *,.con-intro .portada::before{animation-play-state:paused!important}

.logo-anim{position:absolute;right:5%;top:50%;z-index:1;pointer-events:none;font-family:var(--titulo);font-size:clamp(90px,13vw,200px);line-height:.86;text-align:right;transform:translate(calc(var(--mx,0) * -18px),calc(-50% + var(--my,0) * -14px));transition:transform .4s ease-out}
.la-deco,.la-rafa{display:block;clip-path:inset(100% 0 0 0);animation:la-entra 1.1s cubic-bezier(.2,.8,.2,1) forwards}
.la-deco{color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.45);animation-delay:.25s}
.la-rafa{animation-delay:.45s;color:transparent;background:linear-gradient(105deg,var(--rojo) 42%,#ff8a8f 50%,var(--rojo) 58%) 120% 0/260% 100%;-webkit-background-clip:text;background-clip:text}
.la-rafa{animation:la-entra 1.1s .45s cubic-bezier(.2,.8,.2,1) forwards,la-brillo 3.2s 1.8s ease-in-out infinite}
@keyframes la-entra{to{clip-path:inset(-10% -5% -10% -5%)}}
@keyframes la-brillo{0%{background-position:120% 0}60%,100%{background-position:-60% 0}}
.la-linea{display:block;height:6px;background:var(--rojo-vivo);margin-top:14px;margin-left:auto;width:100%;transform:scaleX(0);transform-origin:right;animation:il-barra .9s 1.1s cubic-bezier(.7,0,.2,1) forwards}

.logo-fondo{position:absolute;right:-.04em;bottom:-.16em;z-index:1;pointer-events:none;font-family:var(--titulo);font-size:clamp(120px,21vw,330px);line-height:1;white-space:nowrap;animation:lf-entra 1.4s .1s cubic-bezier(.2,.8,.2,1) both}
.logo-fondo span{color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.14)}
.logo-fondo em{font-style:normal;color:transparent;-webkit-text-stroke:1.5px rgba(238,28,37,.55)}
@keyframes lf-entra{from{transform:translateX(12%);opacity:0}to{transform:none;opacity:1}}
@media (max-width:1100px){
  .logo-anim{top:auto;bottom:70px;right:4%;opacity:.16;transform:none}
  .la-linea{display:none}
}
@media (max-width:900px){
  .logo-anim{font-size:34vw;bottom:40px;opacity:.12}
  .logo-fondo{font-size:30vw}
}
@media (prefers-reduced-motion:reduce){.la-deco,.la-rafa{clip-path:none}.la-linea{transform:none}}

.gK{grid-column:1/7;grid-row:14/17}
.gL{grid-column:7/13;grid-row:14/17}
@media (max-width:900px){.gK{order:11}.gL{order:12}}

.testimonios{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.testimonios .testimonio blockquote{font-size:clamp(20px,2.2vw,27px)}
.caso + .caso{padding-top:0}
.caso.inverso .caso-fotos{order:-1}
.caso.inverso .caso-in{grid-template-columns:1.15fr 1fr}
@media (max-width:900px){
  .testimonios{grid-template-columns:1fr}
  .caso.inverso .caso-in{grid-template-columns:1fr}
  .caso.inverso .caso-fotos{order:0}
}

.testimonio{background:var(--blanco);border:1px solid var(--linea);border-radius:22px;padding:clamp(28px,5vw,60px);margin:0;position:relative;overflow:hidden}
.testimonio::before{content:"“";position:absolute;right:34px;top:6px;font-family:var(--titulo);font-size:200px;line-height:1;color:var(--rojo);opacity:.12}
.testimonio blockquote{font-size:clamp(22px,3vw,34px);line-height:1.3;font-weight:600;max-width:32ch;margin-top:18px;letter-spacing:-.01em}
.testimonio figcaption{display:flex;align-items:center;gap:14px;margin-top:30px}
.testimonio figcaption img{width:56px;height:56px;border-radius:50%;object-fit:cover;object-position:50% 8%}
.testimonio figcaption b{display:block;font-size:17px}
.testimonio figcaption span{color:var(--gris);font-size:15px}
.caso{background:var(--blanco)}
.caso-in{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center}
.antetitulo-oscuro{display:inline-block;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--rojo);margin-bottom:16px}
.caso p{color:var(--gris);margin-top:18px;max-width:44ch}
.cita-caso{margin-top:26px;border-left:4px solid var(--rojo);padding-left:18px;font-size:19px;font-weight:600;line-height:1.45}
.cita-caso cite{display:block;font-style:normal;font-weight:400;font-size:15px;color:var(--gris);margin-top:8px}
.caso-fotos{display:grid;grid-template-columns:1fr 1.3fr;grid-template-rows:1fr 1fr;gap:12px;height:520px}
.caso-fotos img{width:100%;height:100%;object-fit:cover;border-radius:14px}
.caso-fotos img:first-child{grid-row:1/3}
@media (max-width:900px){
  .caso-in{grid-template-columns:1fr;gap:30px}
  .caso-fotos{height:420px}
}
