/* Lux Motion — hoja de estilos
   Paleta tomada de las piezas de Instagram. Contrastes verificados (WCAG AA). */

@font-face{font-family:"Anton";src:url("../fonts/anton-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Poppins";src:url("../fonts/poppins-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Poppins";src:url("../fonts/poppins-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Poppins";src:url("../fonts/poppins-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Poppins";src:url("../fonts/poppins-latin-700-normal.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  --crema:#FBF6E9;
  --crema-2:#F3EBD6;
  --tinta:#17131A;
  --tinta-suave:#4B4452;
  --fucsia:#E6007E;
  --fucsia-boton:#C8006E;
  --fucsia-texto:#B8005F;
  --turquesa:#00A3BD;
  --turquesa-fondo:#00697C;
  --amarillo:#FFB612;
  --naranja:#FF5B14;
  --azul:#1F4FB5;
  --linea:rgba(23,19,26,.16);

  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-in-out:cubic-bezier(.77,0,.175,1);

  --f-display:"Anton","Arial Narrow",Impact,sans-serif;
  --f-body:"Poppins","Segoe UI",system-ui,-apple-system,Arial,sans-serif;
  
  --ancho:1180px;
  --pad:clamp(1.25rem,4vw,2.5rem);
  --header-h:84px;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px)}
body{margin:0;background:var(--crema);color:var(--tinta);font-family:var(--f-body);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}

.solo-lectores{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

:focus-visible{outline:3px solid var(--azul);outline-offset:3px;border-radius:4px}
.saltar{position:absolute;left:1rem;top:-5rem;z-index:100;background:var(--tinta);color:var(--crema);padding:.75rem 1.1rem;border-radius:8px;font-weight:600;text-decoration:none;transition:top .2s var(--ease-out)}
.saltar:focus{top:1rem}

.contenedor{width:100%;max-width:var(--ancho);margin-inline:auto;padding-inline:var(--pad)}

/* ---------- Tipografía ---------- */
.display{font-family:var(--f-display);font-weight:400;text-transform:uppercase;letter-spacing:.005em;line-height:.98}
h1.display{font-size:clamp(2.5rem,5.6vw,4.7rem)}
h2.display{font-size:clamp(2.1rem,5vw,3.9rem)}
h3.display{font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.05}
.lead{font-size:clamp(1.08rem,1.6vw,1.25rem);line-height:1.6;max-width:38rem}
.texto-fucsia{color:var(--fucsia-texto)}
.texto-turquesa{color:var(--turquesa-fondo)}

/* ---------- Botones ---------- */
.boton{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.8rem 1.6rem;border:2px solid var(--tinta);border-radius:999px;font-weight:600;font-size:1rem;line-height:1.2;text-decoration:none;cursor:pointer;background:transparent;transition:transform .16s var(--ease-out),background-color .16s var(--ease-out),color .16s var(--ease-out),box-shadow .16s var(--ease-out)}
.boton:active{transform:scale(.97)}
.boton-primario{background:var(--fucsia-boton);border-color:var(--fucsia-boton);color:#fff;box-shadow:4px 4px 0 var(--tinta)}
.boton-secundario{background:var(--crema);color:var(--tinta)}
.boton-claro{background:var(--crema);color:var(--tinta);border-color:var(--crema)}
.boton[disabled]{opacity:.7;cursor:progress}
@media (hover:hover) and (pointer:fine){
  .boton-primario:hover{transform:translate(-1px,-1px);box-shadow:6px 6px 0 var(--tinta)}
  .boton-primario:active{transform:translate(2px,2px) scale(.98);box-shadow:2px 2px 0 var(--tinta)}
  .boton-secundario:hover{background:var(--tinta);color:var(--crema)}
  .boton-claro:hover{background:#fff}
}

/* ---------- Header ---------- */
.cabecera{position:sticky;top:0;z-index:50;background:var(--crema);border-bottom:2px solid var(--tinta)}
.cabecera-interior{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--header-h)}
.marca{display:block;line-height:0;border-radius:6px}
.marca img{height:62px;width:auto}
.nav-lista{display:flex;align-items:center;gap:clamp(.9rem,2.4vw,2rem)}
.nav-lista a:not(.boton){display:inline-block;padding:.5rem .1rem;font-weight:500;font-size:.98rem;text-decoration:none;background-image:linear-gradient(var(--fucsia),var(--fucsia));background-repeat:no-repeat;background-size:0 3px;background-position:0 100%;transition:background-size .22s var(--ease-out)}
.nav-lista .boton{min-height:44px;padding:.55rem 1.2rem;font-size:.95rem}
@media (hover:hover) and (pointer:fine){.nav-lista a:not(.boton):hover{background-size:100% 3px}}
.menu-boton{display:none;align-items:center;justify-content:center;gap:.6rem;min-height:48px;min-width:48px;padding:.5rem .9rem;border:2px solid var(--tinta);border-radius:999px;background:var(--crema);font-weight:600;cursor:pointer}
.menu-boton{transition:transform .16s var(--ease-out)}
.menu-boton:active{transform:scale(.97)}
.menu-icono{width:20px;height:14px;position:relative;display:block}
.menu-icono::before,.menu-icono::after,.menu-icono span{content:"";position:absolute;left:0;right:0;height:2px;background:currentColor;border-radius:2px;transition:transform .25s var(--ease-out),opacity .15s}
.menu-icono::before{top:0}.menu-icono span{top:6px}.menu-icono::after{top:12px}
.menu-boton[aria-expanded="true"] .menu-icono::before{transform:translateY(6px) rotate(45deg)}
.menu-boton[aria-expanded="true"] .menu-icono span{opacity:0}
.menu-boton[aria-expanded="true"] .menu-icono::after{transform:translateY(-6px) rotate(-45deg)}

.barra-color{height:10px;background:linear-gradient(90deg,var(--azul) 0 20%,var(--turquesa) 20% 40%,var(--fucsia) 40% 60%,var(--naranja) 60% 80%,var(--amarillo) 80% 100%)}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;padding-block:clamp(2.5rem,6vw,5rem) clamp(3rem,7vw,6rem)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,5vw,4rem);align-items:center}
.hero h1{margin-bottom:1.5rem}
.hero h1 .l2{display:block;color:var(--fucsia-texto)}
.hero .lead{margin-bottom:2rem}
.acciones{display:flex;flex-wrap:wrap;gap:.9rem 1.1rem;align-items:center}
.hero-arte{position:relative;width:min(100%,430px);margin-inline:auto;aspect-ratio:5/6}
.hero-foto{position:absolute;inset:0;border-radius:58% 42% 52% 48% / 46% 56% 44% 54%;overflow:hidden;border:3px solid var(--tinta);box-shadow:14px 14px 0 var(--amarillo);transform:rotate(2deg);background:var(--crema-2)}
.hero-foto img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.forma{position:absolute;border-radius:50%;pointer-events:none}
.forma.f1{width:76px;height:76px;background:var(--turquesa);right:-22px;top:-18px}
.forma.f2{width:30px;height:30px;background:var(--fucsia);left:-14px;top:22%}
.forma.f3{width:52px;height:52px;background:var(--naranja);right:-12px;bottom:14%}

/* entrada orquestada del hero (una sola vez, al cargar) */
@keyframes sube{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes aparece{from{opacity:0;transform:scale(.94) rotate(2deg)}to{opacity:1;transform:rotate(2deg)}}
@keyframes pop{from{opacity:0;transform:scale(.9) rotate(-8deg)}to{opacity:1;transform:rotate(-4deg)}}
.d1{--i:1}.d2{--i:2}.i1{--i:1}.i2{--i:2}.i3{--i:3}
.hero h1>span{display:block;opacity:0;animation:sube .7s var(--ease-out) forwards}
.hero h1>span+span{animation-delay:70ms}
.hero .entra{opacity:0;animation:sube .7s var(--ease-out) forwards;animation-delay:calc((var(--i,0) + 1) * 70ms)}
.hero .hero-foto{animation:aparece .8s var(--ease-out) .15s both}
.hero .forma{animation:pop .6s var(--ease-out) both;animation-delay:calc(.45s + var(--i,0) * 70ms)}

/* ---------- Secciones ---------- */
.seccion{padding-block:clamp(3.5rem,8vw,6.5rem)}
.seccion-cabecera{max-width:44rem;margin-bottom:clamp(2rem,4vw,3.25rem)}
.seccion-cabecera h2{margin-bottom:1rem}
.seccion-cabecera p{color:var(--tinta-suave)}

/* Servicios */
.servicios-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.figura-arco{position:sticky;top:calc(var(--header-h) + 24px);border:3px solid var(--tinta);border-radius:999px 999px 28px 28px;overflow:hidden;box-shadow:12px 12px 0 var(--fucsia);background:var(--crema-2);max-width:420px}
.figura-arco img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 30%}
.lista-servicios li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:1.1rem;padding-block:1.4rem;border-top:2px solid var(--linea)}
.lista-servicios li:last-child{border-bottom:2px solid var(--linea)}
.icono-circulo{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;color:#fff}
.icono-circulo svg{width:28px;height:28px}
.ic-fucsia{background:var(--fucsia-boton)}
.ic-turquesa{background:var(--turquesa-fondo)}
.ic-naranja{background:#C2410C}
.ic-azul{background:var(--azul)}
.ic-amarillo{background:var(--amarillo);color:var(--tinta)}
.lista-servicios h3{font-size:1.2rem;font-weight:600;line-height:1.3;margin-bottom:.25rem}
.lista-servicios p{color:var(--tinta-suave);font-size:1rem}

/* Método */
.metodo{position:relative;padding-top:clamp(8rem,14vw,10rem)}
.metodo .contenedor{position:relative}
.metodo-panel{position:relative;z-index:2;background:var(--tinta);color:var(--crema);border-radius:28px;padding:clamp(2rem,5vw,4rem)}
.metodo-panel h2{margin-bottom:.9rem;max-width:30rem}
.metodo-panel .intro{color:#E9E1D0;max-width:32rem;margin-bottom:2.5rem}
.tortuga{position:absolute;z-index:1;right:clamp(1.5rem,9vw,7rem);top:0;width:clamp(150px,22vw,240px);transform:translateY(-76%) rotate(5deg)}
.pasos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,3vw,2.5rem)}
.pasos li{border-top:3px solid var(--amarillo);padding-top:1.1rem}
.paso-n{font-family:var(--f-display);font-size:2.6rem;line-height:1;color:var(--amarillo);display:block;margin-bottom:.4rem}
.pasos h3{font-size:1.35rem;font-weight:600;margin-bottom:.4rem}
.pasos p{color:#E9E1D0;font-size:1rem}

/* Agentes IA */
.agentes{background:var(--amarillo)}
.agentes-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);align-items:start}
.agentes h2{margin-bottom:1.1rem}
.agentes .lead{margin-bottom:1.5rem}
.agentes-casos{display:grid;gap:1.1rem}
.caso{background:var(--crema);border:3px solid var(--tinta);border-radius:22px;padding:1.5rem 1.6rem;box-shadow:8px 8px 0 var(--tinta)}
.caso .icono-circulo{margin-bottom:.9rem}
.caso h3{font-size:1.25rem;font-weight:600;margin-bottom:.35rem}
.caso p{font-size:1rem;color:var(--tinta-suave)}
.nota-agentes{margin-top:1.4rem;font-size:.98rem}

/* Paquetes */
.paquetes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,2.5vw,2rem);align-items:stretch}
.paquete{display:flex;flex-direction:column;border:3px solid var(--tinta);border-radius:24px;background:var(--crema);overflow:hidden}
.paquete-cab{padding:1.4rem 1.6rem 1.2rem;color:#fff}
.paquete-cab .display{font-size:2.4rem;line-height:1}
.pq-start .paquete-cab{background:var(--azul)}
.pq-grow .paquete-cab{background:var(--turquesa-fondo)}
.pq-lux .paquete-cab{background:var(--fucsia-boton)}
.paquete-cuerpo{display:flex;flex-direction:column;gap:1rem;flex:1;padding:1.5rem 1.6rem 1.7rem}
.paquete-cuerpo p{color:var(--tinta-suave);font-size:1rem}
.insignia{display:inline-block;align-self:flex-start;background:var(--amarillo);color:var(--tinta);border:2px solid var(--tinta);border-radius:999px;padding:.25rem .85rem;font-weight:600;font-size:.88rem;line-height:1.4}
.paquete .boton{margin-top:auto;align-self:flex-start}
.pq-lux{box-shadow:10px 10px 0 var(--fucsia)}
.paquete{transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out)}
@media (hover:hover) and (pointer:fine){
  .paquete:hover{transform:translateY(-4px)}
  .pq-start:hover{box-shadow:8px 8px 0 var(--azul)}
  .pq-grow:hover{box-shadow:8px 8px 0 var(--turquesa-fondo)}
  .pq-lux:hover{box-shadow:14px 14px 0 var(--fucsia)}
}
.nota-paquetes{margin-top:1.75rem;color:var(--tinta-suave);font-size:.98rem}

/* Portafolio (se muestra solo si hay videos en config.js) */
.portafolio-grid{--g:1.1rem;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--g)}
.pf-item{flex:0 0 calc((100% - 3 * var(--g)) / 4);position:relative;border:3px solid var(--tinta);border-radius:20px;overflow:hidden;background:var(--tinta);aspect-ratio:9/16}
.pf-item video{width:100%;height:100%;object-fit:cover;display:block}
.pf-pie{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem;padding:2.5rem .8rem .8rem;background:linear-gradient(transparent,rgba(23,19,26,.88));color:#fff;font-size:.9rem;line-height:1.3}
.pf-pie strong{font-weight:600}
.pf-pausa{flex:none;width:44px;height:44px;border-radius:50%;border:2px solid #fff;background:rgba(23,19,26,.6);color:#fff;display:grid;place-items:center;cursor:pointer}
.pf-pausa{transition:transform .16s var(--ease-out)}
.pf-pausa:active{transform:scale(.94)}
.pf-pausa svg{width:18px;height:18px}

/* Contacto */
.contacto{background:var(--crema-2);border-top:2px solid var(--tinta)}
.contacto-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,4rem);align-items:start}
.contacto-lado h2{margin-bottom:1rem}
.contacto-lado .lead{margin-bottom:1.5rem}
.perro-celular{width:min(100%,260px);margin-top:1.5rem;transform:rotate(-4deg)}
.datos-contacto{display:grid;gap:.6rem;margin-top:1.25rem}
.datos-contacto a{font-weight:600;text-underline-offset:4px}

.formulario{background:var(--crema);border:3px solid var(--tinta);border-radius:26px;padding:clamp(1.4rem,3.5vw,2.4rem);box-shadow:10px 10px 0 var(--turquesa)}
.fila{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.25rem}
.campo{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1.1rem}
.campo label{font-weight:600;font-size:.97rem}
.campo .opc{font-weight:400;color:var(--tinta-suave)}
.campo input,.campo select,.campo textarea{width:100%;min-height:48px;padding:.7rem .9rem;background:#fff;border:2px solid var(--tinta);border-radius:12px;transition:border-color .15s,box-shadow .15s var(--ease-out)}
.campo textarea{min-height:120px;resize:vertical}
.campo input:focus-visible,.campo select:focus-visible,.campo textarea:focus-visible{outline:3px solid var(--azul);outline-offset:2px}
.campo [aria-invalid="true"]{border-color:#B00020;box-shadow:0 0 0 3px rgba(176,0,32,.16)}
.error-campo{color:#B00020;font-size:.92rem;font-weight:500;min-height:0}
.error-campo:empty{display:none}
.trampa{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.consentimiento{display:grid;grid-template-columns:28px minmax(0,1fr);gap:.75rem;align-items:start;margin:.4rem 0 1.2rem;padding:1rem;background:var(--crema-2);border-radius:14px}
.consentimiento input{width:24px;height:24px;margin:2px 0 0;accent-color:var(--fucsia-boton)}
.consentimiento label{font-size:.95rem;line-height:1.55}
.consentimiento .error-campo{grid-column:2}
.mini-aviso{font-size:.88rem;color:var(--tinta-suave);margin-top:1rem;line-height:1.55}
.resumen-errores{animation:suave .25s var(--ease-out);border:2px solid #B00020;background:#FDECEF;color:#7A0016;border-radius:14px;padding:1rem 1.2rem;margin-bottom:1.25rem;font-weight:500}
.resumen-errores ul{margin-top:.4rem;list-style:disc;padding-left:1.2rem}
.resumen-errores a{color:#7A0016;font-weight:600}
.estado{margin-top:1rem;font-weight:500}
.exito{display:grid;gap:.75rem;text-align:left;animation:suave .35s var(--ease-out)}
.exito h3{font-size:1.6rem}
.exito .check{width:56px;height:56px;border-radius:50%;background:var(--turquesa-fondo);display:grid;place-items:center}
.exito .check svg{width:30px;height:30px;stroke:#fff;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;stroke-dashoffset:30;animation:trazo .45s var(--ease-out) .12s forwards}
@keyframes trazo{to{stroke-dashoffset:0}}

/* ---------- Footer ---------- */
.pie{background:var(--crema);border-top:2px solid var(--tinta);padding-block:2.75rem 2rem}
.pie-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr);gap:2rem;align-items:start}
.pie img{height:60px;width:auto;margin-bottom:.75rem}
.pie p,.pie li{font-size:.97rem;color:var(--tinta-suave)}
.pie h2{font-family:var(--f-body);font-size:1rem;font-weight:700;text-transform:none;letter-spacing:0;margin-bottom:.6rem;color:var(--tinta)}
.pie li{margin-bottom:.15rem}
.pie a,.pie .enlace-boton{display:inline-block;padding:.35rem 0;color:var(--tinta);text-underline-offset:4px}
.enlace-boton{background:none;border:0;cursor:pointer;font:inherit;text-decoration:underline;min-height:44px}
.pie-base{margin-top:2rem;padding-top:1.25rem;border-top:2px solid var(--linea);font-size:.92rem;color:var(--tinta-suave)}

/* ---------- Banner de cookies ---------- */
.cookies{position:fixed;left:50%;bottom:1rem;z-index:90;width:min(calc(100% - 1.5rem),720px);transform:translateX(-50%);background:var(--crema);border:3px solid var(--tinta);border-radius:22px;box-shadow:8px 8px 0 var(--tinta);padding:1.25rem 1.4rem;max-height:calc(100vh - 2rem);overflow:auto}
.cookies[hidden]{display:none}
.cookies.entra-cookies{animation:cookies-in .35s var(--ease-out)}
@keyframes cookies-in{from{opacity:0;transform:translateX(-50%) translateY(14px)}to{opacity:1;transform:translateX(-50%)}}
.cookies.sale-cookies{pointer-events:none;animation:cookies-out .2s var(--ease-out) forwards}
@keyframes cookies-out{from{opacity:1;transform:translateX(-50%)}to{opacity:0;transform:translateX(-50%) translateY(14px)}}
.cookies h2{font-family:var(--f-body);text-transform:none;font-weight:700;font-size:1.1rem;letter-spacing:0;line-height:1.3;margin-bottom:.4rem}
.cookies p{font-size:.95rem;line-height:1.55;color:var(--tinta-suave)}
.cookies p a{color:var(--tinta);font-weight:600}
.cookies-botones{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.cookies .boton{min-height:46px;padding:.6rem 1.2rem;font-size:.97rem}
.cookies-opciones{margin-top:1rem;display:grid;gap:.75rem}
.cookies-opciones[hidden]{display:none}
.opcion-cookie{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem 1rem;align-items:center;padding:.85rem 1rem;background:var(--crema-2);border-radius:14px}
.opcion-cookie strong{display:block;font-size:.97rem}
.opcion-cookie span.desc{display:block;font-size:.88rem;color:var(--tinta-suave);line-height:1.45}
.interruptor{position:relative;width:56px;height:32px;flex:none}
.interruptor input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:2}
.interruptor .pista{position:absolute;inset:0;border-radius:999px;background:#6B6473;transition:background-color .2s var(--ease-out)}
.interruptor .bola{position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform .22s var(--ease-out)}
.interruptor input:checked ~ .pista{background:var(--turquesa-fondo)}
.interruptor input:checked ~ .bola{transform:translateX(24px)}
.interruptor input:disabled{cursor:not-allowed}
.interruptor input:disabled ~ .pista{opacity:.6}
.interruptor input:focus-visible ~ .pista{outline:3px solid var(--azul);outline-offset:3px}

/* ---------- Páginas legales ---------- */
.legal{padding-block:clamp(2.5rem,6vw,4.5rem)}
.legal-cuerpo{max-width:46rem}
.legal h1{margin-bottom:.75rem}
.legal .actualizado{color:var(--tinta-suave);margin-bottom:2rem;font-size:.98rem}
.legal h2{font-family:var(--f-body);text-transform:none;font-weight:700;font-size:1.35rem;letter-spacing:0;line-height:1.3;margin:2.2rem 0 .6rem}
.legal h3{font-size:1.1rem;font-weight:600;margin:1.4rem 0 .4rem}
.legal p{margin-bottom:1rem}
.legal ul{list-style:disc;padding-left:1.4rem;margin-bottom:1rem}
.legal li{margin-bottom:.4rem}
.legal a:not(.boton){color:var(--fucsia-texto);font-weight:600;text-underline-offset:3px}
.legal .tabla-envoltorio{overflow-x:auto;margin-bottom:1.25rem}
.legal table{border-collapse:collapse;width:100%;min-width:560px;font-size:.96rem}
.legal th,.legal td{border:2px solid var(--linea);padding:.65rem .8rem;text-align:left;vertical-align:top}
.legal th{background:var(--crema-2);font-weight:600}
.volver{display:inline-block;margin-bottom:1.5rem;font-weight:600;text-underline-offset:4px}

/* ---------- Giro: marcas con propósito ---------- */
.hero .apoyo{margin-top:1.4rem;color:var(--tinta-suave);font-size:.98rem;max-width:34rem}
.sello{position:absolute;left:-14px;bottom:9%;z-index:2;width:104px;height:104px;border-radius:50%;background:#fff;border:3px solid var(--tinta);box-shadow:5px 5px 0 var(--tinta);padding:15px;display:block;line-height:0;transform:rotate(-8deg)}
.sello svg{width:100%;height:100%}
.hero .sello{animation:pop .6s var(--ease-out) both;animation-delay:.75s}
.d3{--i:3}

.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,3vw,2.5rem)}
.trio li{border-top:3px solid var(--tinta);padding-top:1.3rem}
.trio .icono-circulo{margin-bottom:.9rem}
.trio h3{font-size:1.25rem;font-weight:600;margin-bottom:.35rem}
.trio p{color:var(--tinta-suave)}
.que-hacemos .seccion-cabecera{max-width:52rem;margin-bottom:2.5rem}

.proposito{background:var(--crema-2);border-block:2px solid var(--tinta)}
.proposito-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(1.5rem,5vw,4.5rem);align-items:start}
.proposito-texto .lead{max-width:none;margin-bottom:1.1rem}
.proposito-texto .lead:last-child{margin-bottom:0}

.marcas-cabecera{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(1.25rem,4vw,3rem);align-items:center;margin-bottom:clamp(2rem,4vw,3rem)}
.bucle-grande{display:block;width:clamp(104px,16vw,176px);line-height:0}
.bucle-grande svg{width:100%;height:auto}
.marcas-cabecera h2{margin-bottom:1rem}
.marcas-cabecera .lead{max-width:46rem}
.marcas-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.marca-card{background:var(--crema);border:3px solid var(--tinta);border-radius:22px;padding:1.5rem;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out)}
.marca-card .icono-circulo{margin-bottom:.9rem}
.marca-card .icono-circulo svg{width:36px;height:36px}
.marca-card h3{font-size:1.15rem;font-weight:600;line-height:1.3;margin-bottom:.3rem}
.marca-card p{color:var(--tinta-suave);font-size:1rem}
@media (hover:hover) and (pointer:fine){.marca-card:hover{transform:translateY(-3px);box-shadow:6px 6px 0 var(--tinta)}}
.marcas-cierre{margin-top:2.25rem;display:flex;flex-wrap:wrap;gap:1.25rem 2rem;align-items:center;justify-content:space-between;padding:1.5rem 1.75rem;background:var(--crema-2);border-radius:22px}
.marcas-cierre p{max-width:44rem}

.manifiesto{position:relative;background:var(--tinta);color:var(--crema);border-radius:28px;padding:clamp(2rem,6vw,5rem);overflow:hidden}
.manifiesto>*{position:relative;max-width:42rem}
.manifiesto p{margin-bottom:1.15rem;color:#E9E1D0}
.manifiesto .eyebrow{font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:.85rem;color:var(--amarillo);margin-bottom:1.5rem}
.manifiesto .mani-linea{font-family:var(--f-display);text-transform:uppercase;font-size:clamp(1.9rem,4.6vw,3.4rem);line-height:1.02;color:var(--crema);margin-bottom:1.4rem}
.manifiesto .mani-acento{color:var(--amarillo)}
.manifiesto .mani-cierre{font-weight:600;color:var(--crema);margin-bottom:0}
.manifiesto-sello{position:absolute!important;right:clamp(1rem,5vw,4rem);top:clamp(1rem,4vw,3rem);width:clamp(90px,14vw,170px);line-height:0;opacity:.95;max-width:none!important}
.manifiesto-sello svg{width:100%;height:auto}

.grupo-checks{border:0;padding:0;margin:0 0 1.1rem;min-width:0}
.grupo-checks legend{font-weight:600;font-size:.97rem;padding:0;margin-bottom:.2rem}
.grupo-checks .mini-aviso{margin:0 0 .7rem}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.check{display:flex;align-items:flex-start;gap:.6rem;min-height:48px;padding:.6rem .75rem;background:#fff;border:2px solid var(--linea);border-radius:12px;cursor:pointer;font-size:.95rem;line-height:1.4;transition:border-color .15s,background-color .15s}
.check input{flex:none;width:22px;height:22px;margin:1px 0 0;accent-color:var(--fucsia-boton)}
.check:has(input:checked){border-color:var(--tinta);background:var(--crema-2)}
.check:has(input:focus-visible){outline:3px solid var(--azul);outline-offset:2px}

/* ---------- Responsivo ---------- */
@media (max-width:960px){
  .pf-item{flex-basis:calc((100% - 2 * var(--g)) / 3)}
  .hero-grid,.servicios-grid,.agentes-grid,.contacto-grid{grid-template-columns:minmax(0,1fr)}
  .hero-arte{width:min(100%,320px);margin-top:1.5rem}
  .figura-arco{position:relative;top:0;max-width:340px}
  .paquetes-grid{grid-template-columns:minmax(0,1fr)}
  .trio,.marcas-grid{grid-template-columns:minmax(0,1fr)}
  .proposito-grid{grid-template-columns:minmax(0,1fr)}
  .pasos{grid-template-columns:minmax(0,1fr)}
  .pie-grid{grid-template-columns:minmax(0,1fr)}
  .perro-celular{width:200px}
}
@media (max-width:820px){
  .menu-boton{display:inline-flex}
  .nav{position:absolute;left:0;right:0;top:100%;background:var(--crema);border-bottom:2px solid var(--tinta);padding:1rem var(--pad) 1.5rem;display:block;visibility:hidden;opacity:0;transform:translateY(-8px);transform-origin:top;pointer-events:none;transition:opacity .2s var(--ease-out),transform .2s var(--ease-out),visibility 0s linear .2s}
  .nav.abierto{visibility:visible;opacity:1;transform:none;pointer-events:auto;transition-delay:0s}
  .nav-lista{flex-direction:column;align-items:stretch;gap:.25rem}
  .nav-lista a:not(.boton){padding:.8rem 0;font-size:1.05rem}
  .nav-lista .boton{margin-top:.5rem}
}
@media (max-width:560px){
  .checks{grid-template-columns:minmax(0,1fr)}
  .marcas-cabecera{grid-template-columns:minmax(0,1fr)}
  .bucle-grande{width:96px}
  .sello{width:84px;height:84px;padding:12px;left:-8px}
  .manifiesto-sello{display:none}
  .portafolio-grid{--g:.75rem}
  .pf-item{flex-basis:calc((100% - var(--g)) / 2)}
  .pf-item{border-radius:16px;border-width:2px}
  .pf-pie{padding:2rem .6rem .6rem;font-size:.82rem}
  .fila{grid-template-columns:minmax(0,1fr)}
  .marca img{height:54px}
  .cookies{bottom:.5rem;padding:1.1rem}
  .lista-servicios li{grid-template-columns:52px minmax(0,1fr);gap:.9rem}
  .icono-circulo{width:50px;height:50px}
  .hero-foto{box-shadow:9px 9px 0 var(--amarillo)}
}

/* ---------- Entrada al hacer scroll ----------
   Solo transform/opacity (la propiedad `translate` se compone con el `transform` de cada
   elemento, así no pisa las rotaciones ni los hover). Las clases las añade site.js,
   por eso sin JavaScript todo el contenido se ve normal. */
@keyframes revela{from{opacity:0;translate:0 18px}}
@keyframes asoma{from{transform:translateY(10%) rotate(5deg)}}
@keyframes suave{from{opacity:0;translate:0 8px}}
.revela:not(.visible){opacity:0;translate:0 18px}
.revela.visible{animation:revela .6s var(--ease-out) backwards;animation-delay:calc(var(--i,0) * 70ms)}
.tortuga.asoma-tortuga:not(.visible){transform:translateY(10%) rotate(5deg)}
.tortuga.asoma-tortuga.visible{animation:asoma .75s var(--ease-out) .15s backwards}
.caso:nth-child(2),.proposito-texto{--i:1}
@media (min-width:961px){
  /* escalonado solo donde varias tarjetas entran en la misma fila */
  .trio li:nth-child(2),.marcas-grid li:nth-child(3n+2),.paquetes-grid .paquete:nth-child(3n+2),.pasos li:nth-child(3n+2){--i:1}
  .trio li:nth-child(3),.marcas-grid li:nth-child(3n),.paquetes-grid .paquete:nth-child(3n),.pasos li:nth-child(3n){--i:2}
}
@media print{
  .revela:not(.visible){opacity:1;translate:none}
  .tortuga.asoma-tortuga:not(.visible){transform:translateY(-76%) rotate(5deg)}
}

/* ---------- Movimiento reducido ----------
   Menos y más suave, no cero: se conservan los fundidos (ayudan a entender)
   y se quitan los desplazamientos. */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  @keyframes sube{from{opacity:0}to{opacity:1}}
  @keyframes aparece{from{opacity:0;transform:rotate(2deg)}to{opacity:1;transform:rotate(2deg)}}
  @keyframes pop{from{opacity:0;transform:rotate(-4deg)}to{opacity:1;transform:rotate(-4deg)}}
  @keyframes revela{from{opacity:0}}
  @keyframes asoma{from{opacity:0}}
  @keyframes suave{from{opacity:0}}
  .hero h1>span,.hero .entra,.hero .hero-foto,.hero .forma,.hero .sello{animation-duration:.3s;animation-delay:0ms}
  .revela:not(.visible){translate:none}
  .revela.visible{animation-duration:.3s;animation-delay:0ms}
  .tortuga.asoma-tortuga:not(.visible){transform:translateY(-76%) rotate(5deg);opacity:0}
  .tortuga.asoma-tortuga.visible{animation-duration:.3s;animation-delay:0ms}
  .nav{transform:none}
  .paquete:hover{transform:none}
}
@media (forced-colors:active){
  .boton,.menu-boton,.campo input,.campo select,.campo textarea{border:2px solid ButtonText}
}
