/* =========================================================
   SCSI Soluciones — hoja de estilos principal
   1. Variables y reset      5. Sistemas / Sectores
   2. Tipografía y utilidades 6. Valores / Nosotros / Proceso
   3. Encabezado             7. FAQ / Contacto
   4. Hero y cifras          8. Pie, flotantes y responsive
   ========================================================= */

/* 1. Variables y reset ------------------------------------ */
:root{
  --deep:#1B0B33; --purple:#2C1450; --plum:#4A2382; --ink:#1B1035;
  --orange:#E9611F; --orange-dark:#C44A0F;
  --body:#4A4160; --mut:#6B6480; --soft:#8A83A0;
  --line:#EDE9F3; --line-2:#DCD4E9; --cream:#FAF8F6;
  --lav:#BEB2D9; --lav-2:#C4B6DE;
  --sora:'Sora',system-ui,sans-serif; --sans:'Instrument Sans',system-ui,sans-serif;
  --wrap:1240px; --pad:40px; --head:82px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,video{display:block;max-width:100%}
button{font:inherit}
a{color:var(--orange);text-decoration:none}
a:hover{color:var(--orange-dark)}
p{text-wrap:pretty}
::selection{background:var(--orange);color:#fff}

/* 2. Tipografía y utilidades ------------------------------ */
.container{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.section{padding:110px 0}
.section--cream{background:var(--cream)}
.eyebrow{display:block;font-family:var(--sora);font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--orange)}
.h1{font-family:var(--sora);font-size:clamp(32px,4.2vw,56px);line-height:1.06;letter-spacing:-.035em;font-weight:600;margin:0}
.h2{font-family:var(--sora);font-size:clamp(28px,3.2vw,42px);line-height:1.1;letter-spacing:-.03em;font-weight:600;color:var(--ink);margin:16px 0 0}
.h3{font-family:var(--sora);font-weight:600;letter-spacing:-.02em;margin:0}
.lead{font-size:18px;line-height:1.65;color:var(--mut);margin:18px 0 0}
.head{max-width:760px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--sora);font-size:15.5px;font-weight:500;padding:15px 28px;border:1px solid transparent;border-radius:999px;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s}
.btn--primary{background:var(--orange);color:#fff;box-shadow:0 10px 26px -12px rgba(233,97,31,.7)}
.btn--primary:hover{background:var(--orange-dark);color:#fff;transform:translateY(-2px)}
.btn--outline{background:#fff;color:var(--plum);border-color:var(--line-2)}
.btn--outline:hover{border-color:var(--plum);color:var(--plum);transform:translateY(-2px)}
.btn--glass{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.28);color:#fff}
.btn--glass:hover{background:#fff;color:var(--deep);transform:translateY(-2px)}
.btn--sm{font-size:14px;padding:11px 20px}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--sora);font-size:15.5px;font-weight:500;color:var(--plum);border-bottom:1px solid #CFC3E4;padding-bottom:4px;transition:gap .2s,border-color .2s}
.link-arrow:hover{gap:14px;color:var(--plum);border-color:var(--orange)}
.link-arrow--light{color:#fff;border-color:rgba(255,255,255,.3)}
.link-arrow--light:hover{color:#fff;border-color:var(--orange)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
.reveal.is-in{opacity:1;transform:none}
.reveal--d1{transition-delay:.1s}
.arrow-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:#fff;color:var(--plum);font-size:16px;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.arrow-btn:hover{background:var(--plum);border-color:var(--plum);color:#fff}
/* Accesibilidad: salto al contenido, texto solo para lectores y foco visible */
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--orange);color:#fff;font-family:var(--sora);font-size:14px;font-weight:500;padding:12px 20px;border-radius:0 0 10px 0}
.skip-link:focus{left:0;color:#fff}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--orange);outline-offset:3px;border-radius:4px}

/* 3. Encabezado ------------------------------------------- */
.site-header{position:fixed;inset:0 0 auto;z-index:90;background:rgba(255,255,255,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px var(--pad)}
.nav-logo{display:flex;align-items:center}
.nav-logo img{height:46px;width:auto}
.nav-links{display:flex;align-items:center;gap:30px;font-size:14.5px;font-weight:500}
.nav-links a{color:var(--body)}
.nav-links a:hover{color:var(--orange)}

/* 4. Hero y cifras ---------------------------------------- */
.hero{position:relative;background:var(--deep);overflow:hidden}
.hero-inner{position:relative;width:100%;min-height:100vh}
.hero-slide[data-slide="0"]{position:relative;min-height:100vh}
.hero-slide{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity 1.2s ease;padding:132px 96px 74px var(--pad)}
.hero-slide.is-active{opacity:1;pointer-events:auto}
.hero-slide--type{background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero-glow{position:absolute;top:-200px;right:-160px;width:640px;height:640px;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 35% 35%,rgba(74,35,130,.12),rgba(233,97,31,.07) 55%,rgba(255,255,255,0) 72%)}
.hero-col{position:relative;width:100%;max-width:1000px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}
.hero-col>*{flex:0 0 auto}
.badge{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--plum);background:#F5F1FA;border:1px solid #E6DDF3;padding:7px 14px;border-radius:999px}
.badge i{width:6px;height:6px;border-radius:50%;background:var(--orange)}
.monitor{width:100%;flex:0 0 auto;perspective:1600px}
.monitor-tilt{transform:rotateX(2.5deg)}
.monitor-frame{background:#241041;border-radius:16px;padding:12px;box-shadow:0 50px 90px -44px rgba(27,16,53,.6),inset 0 2px 0 rgba(255,255,255,.08)}
.monitor-screen{background:#1A0B31;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.07)}
.monitor-bar{display:flex;align-items:center;gap:7px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.07)}
.monitor-bar span{width:10px;height:10px;border-radius:50%}
.dot-1{background:var(--orange)}.dot-2{background:#6C46A8}.dot-3{background:#2E1A4D}
.monitor-url{margin-left:8px;width:auto;height:auto;border-radius:0;font-family:var(--sora);font-size:11.5px;color:#8877AE;letter-spacing:.04em}
.screen-pad{padding:5.4vh 46px 6vh;min-height:38vh;display:flex;flex-direction:column;justify-content:center}
.type-line{position:relative;margin:0}
.type-line + .type-line{margin-top:2.2vh}
.type-line .ghost{visibility:hidden}
.type-line .live{position:absolute;inset:0}
.type-title{font-family:var(--sora);font-size:clamp(28px,3.6vw,48px);line-height:1.06;letter-spacing:-.035em;font-weight:600;color:#fff}
.type-body{font-size:clamp(14px,1.35vw,18px);line-height:1.6;color:var(--lav);max-width:780px}
.caret{display:inline-block;width:9px;height:.8em;background:var(--orange);vertical-align:-2px;margin-left:4px;animation:blink 1s steps(1) infinite}
.caret[hidden]{display:none}
.monitor-neck{height:14px;width:26%;margin:0 auto;background:linear-gradient(#241041,#1A0B31);border-radius:0 0 8px 8px}
.monitor-base{height:8px;width:40%;margin:0 auto;background:var(--line);border-radius:999px}
.hero-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.hero-note{font-size:13.5px;color:var(--soft);margin:0}
.hero-slide--photo{padding:0}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-veil{position:absolute;inset:0;background:linear-gradient(100deg,rgba(27,11,51,.92),rgba(27,11,51,.72) 45%,rgba(27,11,51,.25))}
.hero-photo-copy{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:24px;padding:132px 96px 74px var(--pad);max-width:var(--wrap);margin:0 auto}
.hero-photo-copy .h1{color:#fff;max-width:780px}
.hero-photo-copy p{font-size:19px;line-height:1.62;color:#D6CCEA;margin:0;max-width:620px}
.is-active .anim{animation:heroIn 1.1s cubic-bezier(.22,.61,.36,1) both}
.is-active .anim--2{animation-delay:.18s}
.is-active .anim--3{animation-delay:.34s}
.hero-slide--video{background:#14082A;padding:0}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* El video es más claro que la foto, así que el velo va un poco más cargado
   para que el texto blanco se lea siempre. */
.hero-slide--video .hero-veil{background:
  linear-gradient(100deg,rgba(20,8,42,.95),rgba(20,8,42,.84) 46%,rgba(20,8,42,.5)),
  linear-gradient(180deg,rgba(20,8,42,.45),rgba(20,8,42,0) 38%)}
.hero-slide--video .hero-photo-copy .h1{max-width:820px}
.hero-slide--video .hero-photo-copy p{max-width:680px}
.video-hint{position:absolute;inset:0;display:grid;place-items:center;padding:132px var(--pad) 74px}
.video-hint-inner{width:100%;max-width:720px;border:1px dashed rgba(255,255,255,.28);border-radius:20px;padding:54px 40px;text-align:center}
.video-hint-inner h2{font-family:var(--sora);font-size:30px;line-height:1.14;letter-spacing:-.025em;font-weight:600;color:#fff;margin:24px 0 0}
.video-hint-inner p{font-size:16.5px;line-height:1.62;color:#A99BC6;margin:14px 0 0}
.play-badge{width:66px;height:66px;margin:0 auto;border-radius:50%;background:rgba(233,97,31,.16);border:1px solid rgba(233,97,31,.5);display:grid;place-items:center}
.hero-rail{position:absolute;right:22px;top:50%;transform:translateY(-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:16px}
.hero-rail .arrow-btn{background:transparent;border-color:var(--line-2);color:var(--plum)}
.hero-rail .arrow-btn:hover{background:var(--orange);border-color:var(--orange);color:#fff}
.hero-rail[data-tone="light"] .arrow-btn{border-color:rgba(255,255,255,.4);color:#fff}
.hero-dots{display:flex;flex-direction:column;gap:9px}
.hero-dots button{width:4px;height:26px;border:none;padding:0;border-radius:999px;background:rgba(27,16,53,.22);cursor:pointer;transition:background .3s}
.hero-rail[data-tone="light"] .hero-dots button{background:rgba(255,255,255,.4)}
.hero-dots button.is-on,.hero-rail[data-tone="light"] .hero-dots button.is-on{background:var(--orange)}
.stats{padding:70px 0 20px}
.stats-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.stats-head .eyebrow{margin:0}
.rowbtns{display:flex;gap:10px}
.viewport{overflow:hidden;margin-top:26px}
.track{display:flex;gap:16px;transition:transform .6s cubic-bezier(.4,0,.2,1)}
.stat-card{flex:0 0 calc((100% - 48px)/4);min-width:220px;background:var(--cream);border:1px solid var(--line);border-radius:20px;padding:28px}
.stat-card--dark{background:linear-gradient(160deg,var(--purple),var(--deep));border:none;color:#fff}
.stat-num{font-family:var(--sora);font-size:46px;font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--orange);margin-top:22px}
.stat-num--word{font-size:40px;line-height:1.1}
.stat-card--dark .stat-num{color:#fff}
.stat-card p{margin:10px 0 0;font-size:14.5px;line-height:1.5;color:var(--mut)}
.stat-card--dark p{color:var(--lav)}

/* 5. Banda parallax, servicios, sistemas, sectores -------- */
.band{position:relative;overflow:hidden;background:#14082A}
.band-img{position:absolute;top:-14%;left:0;width:100%;height:128%;will-change:transform}
.band-img img{width:100%;height:100%;object-fit:cover}
.band-veil{position:absolute;inset:0;background:linear-gradient(100deg,rgba(20,8,42,.94),rgba(20,8,42,.82) 48%,rgba(20,8,42,.55))}
.band-grid{position:relative;min-height:82vh;padding:180px var(--pad);display:grid;grid-template-columns:.92fr 1fr;gap:70px;align-items:center;max-width:var(--wrap);margin:0 auto}
.band-grid .h2{color:#fff}
.band-copy{display:flex;flex-direction:column;gap:22px}
.band-copy p{font-size:18px;line-height:1.68;color:#D6CCEA;margin:0}
.bento{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:46px}
.tile{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px;transition:transform .3s,border-color .3s}
.tile:hover{transform:translateY(-4px);border-color:var(--line-2)}
.tile h3{font-size:19px;margin-top:16px;color:var(--ink)}
.tile p{font-size:15px;line-height:1.56;color:var(--mut);margin:8px 0 0}
.tile--cream{background:var(--cream)}
.tile--wide{grid-column:span 2}
.tile--wide h3{font-size:20px}
.tile--hero{grid-column:span 2;grid-row:span 2;position:relative;overflow:hidden;border:none;background:linear-gradient(150deg,var(--purple),var(--deep));color:#fff;min-height:300px;display:flex;flex-direction:column;justify-content:space-between;padding:34px}
.tile--hero h3{font-size:27px;color:#fff}
.tile--hero p{color:var(--lav);max-width:330px;font-size:16px;line-height:1.6}
.cube{position:absolute;right:-60px;bottom:-70px;width:260px;height:260px;perspective:700px;opacity:.5}
.cube-inner{width:100%;height:100%;transform:rotateX(58deg) rotateZ(45deg);animation:floaty 7s ease-in-out infinite}
.cube-inner span{position:absolute;border-radius:20px}
.cube-inner span:nth-child(1){inset:0;border:1px solid rgba(233,97,31,.75)}
.cube-inner span:nth-child(2){inset:26px;border:1px solid rgba(255,255,255,.32);transform:translateZ(34px)}
.cube-inner span:nth-child(3){inset:54px;border:1px solid rgba(233,97,31,.5);transform:translateZ(68px)}
.systems{position:relative;background:var(--deep);overflow:hidden;padding:110px 0}
.systems-glow{position:absolute;inset:-20% 0;pointer-events:none;background:radial-gradient(60% 50% at 78% 22%,rgba(233,97,31,.22),rgba(27,11,51,0) 70%),radial-gradient(50% 45% at 12% 78%,rgba(108,70,168,.3),rgba(27,11,51,0) 70%)}
.systems .container{position:relative}
.systems .h2{color:#fff}
.systems .lead{color:#B3A6CF}
.stile{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:26px;transition:transform .3s,background .3s}
.stile:hover{transform:translateY(-4px);background:rgba(255,255,255,.08)}
.stile h3{font-size:19px;color:#fff;margin-top:14px}
.stile p{font-size:15px;line-height:1.56;color:#A99BC6;margin:8px 0 0}
.stile--wide{grid-column:span 2;background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.12);padding:30px}
.stile--wide h3{font-size:24px;margin-top:18px}
.stile--wide p{font-size:15.5px;color:#B3A6CF;line-height:1.6;margin-top:10px}
.stile--gov{grid-column:span 4;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:22px;background:linear-gradient(100deg,rgba(233,97,31,.16),rgba(255,255,255,.05));border-color:rgba(233,97,31,.32);padding:30px}
.tag{display:inline-block;font-family:var(--sora);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#C6A6E8}
.tag--pill{font-size:11.5px;color:var(--orange);border:1px solid rgba(233,97,31,.45);padding:5px 11px;border-radius:999px}
.tag--warm{color:#F0A47A;font-size:11.5px}
.btn--white{background:#fff;color:var(--deep)}
.btn--white:hover{background:#fff;color:var(--deep);transform:translateY(-2px)}
.sect-media{position:relative;width:100%;aspect-ratio:1140/760;overflow:hidden;background:#EFEAF4}
.sect-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sect-panel{position:absolute;right:0;bottom:0;width:66%;height:72%;border-top:2px solid var(--orange);border-left:2px solid var(--orange);border-top-left-radius:46% 100%;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);display:flex;align-items:flex-end}
.sect-copy{padding:12% 6% 8% 12%}
.sect-copy .h2{font-size:clamp(24px,2.6vw,40px)}
.sect-copy p{font-size:clamp(14px,1.25vw,17.5px);line-height:1.6;color:#57506E;margin:14px 0 0;max-width:620px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.chip{font-family:var(--sora);font-size:15px;font-weight:500;color:#2E2247;background:rgba(255,255,255,.7);border:1px solid #E4DEEE;padding:12px 20px;border-radius:999px;transition:background .2s,color .2s,border-color .2s}
.chip:hover{background:var(--purple);color:#fff;border-color:var(--purple)}

/* 6. Valores, nosotros, proceso, tecnología, clientes ----- */
.values-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px}
.vtrack{display:flex;gap:20px;transition:transform .6s cubic-bezier(.4,0,.2,1)}
.vcard{flex:0 0 calc((100% - 40px)/3);min-width:260px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:34px}
.vcard-num{font-family:var(--sora);font-size:13px;font-weight:600;color:var(--orange);letter-spacing:.08em}
.vcard h3{font-size:23px;margin:14px 0 0;color:var(--ink)}
.vcard p{font-size:16px;line-height:1.65;color:var(--mut);margin:12px 0 0}
.vcard--dark{background:var(--purple);border:none;display:flex;flex-direction:column;justify-content:flex-end}
.vcard--dark h3{color:#fff;margin:0}
.vcard--dark p{color:var(--lav)}
.two-col{display:grid;grid-template-columns:1fr .85fr;gap:64px;align-items:center}
.two-col--flip{grid-template-columns:.8fr 1fr}
.about p{font-size:17.5px;line-height:1.68;color:var(--body);margin:18px 0 0}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:34px}
.team-grid div{background:#fff;padding:20px 18px}
.team-grid strong{display:block;font-family:var(--sora);font-size:15px;font-weight:600;color:var(--ink)}
.team-grid p{font-size:13.5px;color:var(--soft);margin:5px 0 0}
/* Marco de foto (Nosotros). El borde punteado solo se ve mientras NO haya imagen. */
.frame{position:relative;width:100%;aspect-ratio:4/5;border-radius:20px;overflow:hidden;background:var(--cream);border:1px dashed var(--line-2);display:grid;place-items:center}
.frame:has(img){border:none;background:transparent}
.frame img{width:100%;height:100%;object-fit:cover}
.frame span{font-size:14px;color:var(--soft);padding:20px;text-align:center}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:44px}
.step{border-top:2px solid var(--line-2);padding-top:22px}
.step:first-child{border-top-color:var(--orange)}
.step-num{font-family:var(--sora);font-size:13px;font-weight:600;color:var(--plum);letter-spacing:.1em}
.step:first-child .step-num{color:var(--orange)}
.step h3{font-size:21px;margin:12px 0 0;color:var(--ink)}
.step p{font-size:15.5px;line-height:1.62;color:var(--mut);margin:10px 0 0}
.tech-list{display:flex;flex-wrap:wrap;gap:10px}
.tech-list span{font-family:var(--sora);font-size:14.5px;font-weight:500;color:#2E2247;border:1px solid var(--line);padding:11px 18px;border-radius:10px}
.clients{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
.client{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;display:flex;flex-direction:column}
/* Caja de logotipo de cliente ----------------------------------------------
   Alto fijo para que las tres tarjetas queden alineadas, y el logo se escala
   DENTRO de la caja sin recortarse (contain), respetando su proporción.
   --logo-h controla el tamaño óptico según la forma del logo:
   los horizontales se ven bien más bajos; los cuadrados/circulares, más altos. */
.client-logo{--logo-h:72px;height:88px;display:flex;align-items:center;justify-content:flex-start}
.client-logo img{max-height:var(--logo-h);max-width:min(210px,100%);width:auto;height:auto;object-fit:contain}
.client-logo--wide{--logo-h:56px}     /* logotipos horizontales (tipo wordmark)   */
.client-logo--stacked{--logo-h:80px}  /* símbolo arriba y nombre abajo (apilados) */
.client-logo--square{--logo-h:78px}   /* logos cuadrados o circulares (sellos)    */
.client p{font-size:16px;line-height:1.65;color:var(--body);margin:18px 0 0}
.client strong{font-family:var(--sora);font-size:14px;font-weight:600;color:var(--ink);display:block;margin-top:auto;padding-top:16px}

/* 7. FAQ y contacto --------------------------------------- */
.faq-grid{display:grid;grid-template-columns:.7fr 1fr;gap:60px;align-items:start}
.faq details{border-top:1px solid var(--line);padding:22px 0}
.faq details:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;font-family:var(--sora);font-size:18px;font-weight:500;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{color:var(--orange);font-size:21px;line-height:1;font-style:normal;transition:transform .25s}
.faq details[open] summary i{transform:rotate(45deg)}
.faq details p{font-size:16px;line-height:1.68;color:var(--mut);margin:14px 0 0;max-width:620px}
.contact{position:relative;background:var(--purple);overflow:hidden;padding:110px 0}
.contact-glow{position:absolute;inset:-25% -10%;pointer-events:none;background:radial-gradient(45% 40% at 20% 25%,rgba(233,97,31,.28),rgba(44,20,80,0) 70%),radial-gradient(45% 40% at 85% 80%,rgba(108,70,168,.4),rgba(44,20,80,0) 70%)}
.contact .container{position:relative}
.contact-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:start}
.contact-copy .h1{color:#fff;font-size:clamp(30px,3.4vw,44px);line-height:1.08}
.contact-copy p{font-size:18px;line-height:1.65;color:var(--lav-2);margin:20px 0 0;max-width:460px}
.contact-copy .fine{font-size:13.5px;color:#9E8FC0}
.contact-links{margin-top:36px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.contact-links a.mail{color:#fff;border-bottom:1px solid rgba(255,255,255,.35)}
.form-card{background:#fff;border-radius:22px;padding:34px;box-shadow:0 40px 80px -40px rgba(0,0,0,.5)}
.form-card h3{font-size:23px;color:var(--ink)}
.form-card .hint{font-size:15px;line-height:1.6;color:var(--mut);margin:10px 0 0}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:26px}
label.field{display:block}
label.field span{display:block;font-size:13px;font-weight:600;color:var(--body);margin-bottom:7px}
input,select,textarea{width:100%;font-family:var(--sans);font-size:15px;color:var(--ink);padding:12px 14px;border:1px solid var(--line-2);border-radius:10px;background:#fff}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--plum);outline-offset:1px}
.error{display:block;font-size:12.5px;color:#C0391A;margin-top:6px}
.check{display:flex;align-items:flex-start;gap:10px;margin-top:18px;cursor:pointer;font-size:14.5px;line-height:1.5;color:var(--body)}
.check input{width:17px;height:17px;margin-top:2px;accent-color:var(--plum)}
.submit{width:100%;margin-top:22px;background:var(--orange);color:#fff;font-family:var(--sora);font-size:16px;font-weight:500;padding:16px;border:none;border-radius:999px;cursor:pointer;transition:background .2s,transform .2s}
.submit:hover{background:var(--orange-dark);transform:translateY(-1px)}
.form-note{font-size:12.5px;line-height:1.55;color:var(--soft);margin:12px 0 0;text-align:center}
.form-ok{font-size:14.5px;color:#1F7A4D;font-weight:600;margin:12px 0 0;text-align:center}
.form-bad{font-size:14.5px;color:#C0391A;font-weight:600;line-height:1.5;margin:12px 0 0;text-align:center}
.form-ok[hidden],.form-bad[hidden]{display:none}
/* Campo trampa para robots: fuera de la vista, pero no con display:none
   (algunos bots detectan ese truco). */
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.submit[disabled]{opacity:.65;cursor:progress}

/* 7 bis. Páginas legales (aviso de privacidad) ------------- */
.legal{padding:150px 0 90px;background:#fff}
.legal-wrap{max-width:820px}
.legal-title{margin:14px 0 0;font-size:clamp(30px,3.6vw,46px);color:var(--ink)}
.legal-lead{font-size:18.5px;line-height:1.7;color:var(--mut);margin:20px 0 0}
.legal-meta{font-size:13.5px;color:var(--soft);margin:16px 0 0}
.legal-toc{margin-top:44px;background:var(--cream);border:1px solid var(--line);border-radius:20px;padding:28px 32px}
.legal-toc h2{font-family:var(--sora);font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--orange);margin:0}
.legal-toc ol{margin:18px 0 0;padding-left:20px;columns:2;column-gap:34px}
.legal-toc li{margin:0 0 9px;font-size:15px;line-height:1.45;break-inside:avoid}
.legal-toc a{color:var(--plum)}
.legal-toc a:hover{color:var(--orange)}
.legal section{margin-top:56px;scroll-margin-top:110px}
.legal section .h2{font-size:clamp(22px,2.3vw,29px);margin:0}
.legal h3{font-family:var(--sora);font-size:17.5px;font-weight:600;letter-spacing:-.015em;color:var(--ink);margin:30px 0 0}
.legal p{font-size:16.5px;line-height:1.72;color:var(--body);margin:16px 0 0}
.legal ul,.legal ol.legal-pasos{margin:16px 0 0;padding-left:22px}
.legal li{font-size:16.5px;line-height:1.7;color:var(--body);margin:0 0 10px}
.legal li::marker{color:var(--orange)}
.legal strong{color:var(--ink)}
.legal em{color:var(--plum);font-style:normal;font-weight:500}
.legal-card{margin-top:22px;background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:26px 28px}
.legal-card h3{margin:0;font-size:15px}
.legal-datos{list-style:none;margin:16px 0 0;padding:0}
.legal-datos li{margin:0 0 12px;font-size:16px;line-height:1.6}
.legal-datos li:last-child{margin-bottom:0}
.legal-datos span{display:block;font-family:var(--sora);font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--soft);margin-bottom:2px}
.legal-alert{border-left:3px solid var(--orange);background:#FFF6F1;border-radius:0 12px 12px 0;padding:18px 22px;margin-top:22px}
.legal-nota{border-left:3px solid var(--line-2);background:var(--cream);border-radius:0 12px 12px 0;padding:18px 22px;margin-top:22px;font-size:15.5px}
.legal-cierre{border-top:1px solid var(--line);padding-top:44px}
.legal-volver{margin-top:30px}
/* Resalta los datos que faltan por sustituir; al quitar data-editar desaparece. */
[data-editar]{background:#FFE9AE;border-bottom:2px dashed #C08A00;padding:1px 5px;border-radius:3px}
.site-footer--slim{padding:34px 0}
.footer-bottom--solo{margin-top:0;padding-top:0;border-top:none}
.footer-bottom--solo nav{display:flex;gap:20px}

/* 8. Pie, flotantes y responsive -------------------------- */
.site-footer{background:var(--deep);color:#fff;padding:76px 0 30px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:46px}
.footer-logo{height:56px;width:auto;background:#fff;border-radius:10px;padding:8px 14px}
.footer-claim{font-family:var(--sora);font-size:19px;font-weight:500;letter-spacing:-.015em;margin:22px 0 0}
.footer-about{font-size:14.5px;line-height:1.62;color:#A99BC6;margin:12px 0 0;max-width:330px}
.socials{display:flex;gap:10px;margin-top:22px}
.socials a{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:50%;color:var(--lav-2);transition:background .2s,border-color .2s,color .2s}
.socials a:hover{background:var(--orange);border-color:var(--orange);color:#fff}
.footer-col h4{font-family:var(--sora);font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--orange);margin:0}
.footer-col nav{display:flex;flex-direction:column;gap:11px;margin-top:18px;font-size:14.5px}
.footer-col a,.footer-col span{color:var(--lav-2)}
.footer-col a:hover{color:#fff}
.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-top:54px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);font-size:13px;color:#8B7DAE}
.footer-bottom a{color:#8B7DAE}
.wa-float{position:fixed;right:22px;bottom:22px;z-index:95;display:inline-flex;align-items:center;gap:9px;background:var(--orange);color:#fff;font-family:var(--sora);font-size:14.5px;font-weight:500;padding:14px 20px;border-radius:999px;box-shadow:0 14px 34px -12px rgba(233,97,31,.85);transition:transform .2s}
.wa-float:hover{transform:translateY(-3px);color:#fff}
.cookies{position:fixed;left:22px;bottom:22px;z-index:96;max-width:380px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 24px 60px -24px rgba(27,16,53,.4)}
.cookies[hidden]{display:none}
.cookies p{font-size:14.5px;line-height:1.6;color:var(--body);margin:0}
.cookies-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;align-items:center}
.cookies-actions button{font-family:var(--sora);font-size:14px;font-weight:500;padding:11px 18px;border-radius:999px;cursor:pointer;border:1px solid var(--line-2);background:#fff;color:var(--plum)}
.cookies-actions button.primary{background:var(--plum);color:#fff;border-color:var(--plum)}

@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes heroIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@keyframes floaty{0%,100%{transform:rotateX(58deg) rotateZ(45deg) translateY(0)}50%{transform:rotateX(58deg) rotateZ(45deg) translateY(-10px)}}

@media (max-width:900px){
  :root{--pad:22px}
  .nav-links{display:none}
  .band-grid,.two-col,.two-col--flip,.faq-grid,.contact-grid,.team-grid,.clients{grid-template-columns:1fr}
  .band-grid{padding:110px var(--pad);min-height:0}
  .bento{grid-template-columns:1fr 1fr}
  .tile--hero,.tile--wide,.stile--wide,.stile--gov{grid-column:span 2}
  .stat-card{flex-basis:calc((100% - 16px)/2)}
  .steps{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .hero-slide{padding:120px var(--pad) 74px}
  /* padding derecho extra para que el texto no quede debajo de las flechas del hero */
  .hero-photo-copy,.video-hint{padding:120px 66px 74px var(--pad)}
  .screen-pad{padding:26px 22px 30px;min-height:0}
  .sect-media{aspect-ratio:auto;display:flex;flex-direction:column}
  .sect-img{position:static;height:auto;aspect-ratio:1140/760}
  .sect-panel{position:static;width:100%;height:auto;border-left:none;border-top-left-radius:0;background:#fff}
  .sect-copy{padding:34px 22px 40px}
  .hero-rail{right:10px}
  .field-grid{grid-template-columns:1fr}
  .legal{padding:120px 0 70px}
  .legal-toc{padding:22px 24px}
  .legal-toc ol{columns:1}
}
@media (max-width:560px){
  .bento,.clients{grid-template-columns:1fr}
  .tile--hero,.tile--wide,.stile--wide,.stile--gov{grid-column:span 1}
  .stat-card{flex-basis:100%}
  .steps{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .vcard{flex-basis:100%}
}
@media print{.wa-float,.cookies,.hero-rail{display:none}}

/* Respeta a quien pide menos movimiento en su sistema operativo */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}
