/* Servicios · INPRIA NORTE */
.svs{--sv-x:clamp(24px,5vw,80px)}
.pg-serv{--sv-x:clamp(24px,5vw,80px)}
@media (min-width:861px){.pg-serv .inn-hd__nav~.inn-hd__cta--2{display:inline-flex}}
@media (min-width:861px) and (max-width:1080px){.pg-serv .inn-hd__in{gap:var(--space-3)}.pg-serv .inn-hd__nav>a,.pg-serv .inn-hd__navitem>a{padding:0 8px}.pg-serv .inn-hd__cta{margin-left:0}}
.pg-serv{--sv-x:clamp(24px,5vw,80px)}
/* Módulo de servicios: fijado a pantalla completa, avanza con el scroll */
.svs{position:relative;--step:70svh;height:calc(100svh - 68px + 5 * var(--step))}
.svs-pin{position:sticky;top:68px;height:calc(100svh - 68px);overflow:hidden;color:#fff;background:#0F2D50}
.svs-bgs,.svs-bg{position:absolute;inset:0}
.svs-bg,.svs-pbg{background:linear-gradient(135deg,#1B3E66 0%,#0F2D50 55%,#0A2038 100%)}
.svs-bg{opacity:0;transition:opacity .6s ease}
.svs-bg.on{opacity:1}
.svs-bg img,.svs-bg video,.svs-pbg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.svs-veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,30,54,.9) 0%,rgba(15,45,80,.72) 34%,rgba(15,45,80,.55) 62%,rgba(15,45,80,.55) 100%)}
.svs-bar{position:absolute;left:0;right:0;top:0;z-index:3;height:3px;background:rgba(255,255,255,.12)}
.svs-bar i{display:block;height:100%;width:100%;background:#8B1E2D;transform-origin:left;transform:scaleX(0)}
.svs-in{position:relative;z-index:2;height:100%;display:grid;grid-template-columns:minmax(0,35fr) minmax(0,65fr);gap:clamp(32px,5vw,80px);align-items:center;padding:clamp(28px,5vh,56px) var(--sv-x)}
.svs-count{margin:0 0 28px;font-size:.85rem;font-weight:500;letter-spacing:.14em;color:#B9C6D6}
.svs-count b{font-weight:500;color:#fff}
.svs-idx{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:22px}
.svs-ix{display:flex;align-items:baseline;gap:14px;width:100%;padding:2px 0 2px 18px;border:0;border-left:2px solid transparent;background:none;color:#8FA3BA;text-align:left;cursor:pointer;font-family:var(--font-sans);transition:color .5s ease,border-color .5s ease}
.svs-ixn{flex:none;font-size:.78rem;font-weight:500;letter-spacing:.1em}
.svs-ixt{font-weight:300;font-size:1.05rem;line-height:1.25;transition:font-size .5s cubic-bezier(.22,.61,.36,1)}
.svs-ix:hover{color:#C8D4E2}
.svs-ix.on{color:#fff;border-left-color:#8B1E2D}
.svs-ix.on .svs-ixt{font-size:clamp(1.3rem,1rem + .9vw,1.7rem)}
.svs-ix:focus-visible{outline:2px solid #fff;outline-offset:4px}
.svs-stage{display:grid}
.svs-p{grid-area:1/1;position:relative;overflow:hidden;padding:48px;border:1px solid rgba(255,255,255,.12);border-radius:0;background:rgba(15,45,80,.4);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;transform:translateY(12px);visibility:hidden;transition:opacity .4s ease,transform .4s cubic-bezier(.22,.61,.36,1),visibility 0s linear .4s}
.svs-p.on{opacity:1;transform:none;visibility:visible;transition:opacity .4s ease .12s,transform .4s cubic-bezier(.22,.61,.36,1) .12s,visibility 0s}
.svs-p.out{transform:translateY(-12px)}
.svs-pbg{display:none}
.svs-wm{position:absolute;right:28px;top:-10px;font-weight:300;font-size:clamp(7rem,5rem + 6vw,12rem);line-height:1;letter-spacing:-.04em;color:rgba(255,255,255,.12);pointer-events:none}
.svs-t{position:relative;margin:0;font-weight:300;font-size:clamp(1.9rem,1.2rem + 2vw,3rem);line-height:1.1;letter-spacing:-.01em;color:#fff;text-wrap:balance}
.svs-f{position:relative;margin:24px 0 0;font-size:1.12rem;line-height:1.5;color:rgba(255,255,255,.92)}
.svs-cards{position:relative;list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.svs-cards li{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid rgba(255,255,255,.2);border-radius:0;background:rgba(255,255,255,.03);font-size:.98rem;line-height:1.35;color:#fff;opacity:0;transform:translateY(8px);transition:opacity .4s ease,transform .4s ease}
.svs-p.on .svs-cards li{opacity:1;transform:none;transition-delay:calc(.2s + var(--d) * 80ms)}
.svs-cards svg{width:26px;height:26px;color:#E58A97}
.svs-btn{position:relative;margin-top:32px}
.svs-mark{position:absolute;right:24px;bottom:24px;z-index:2;width:22px;height:auto;opacity:.35}
@media (max-height:760px) and (min-width:761px){.svs-p{padding:36px}.svs-f{margin-top:16px}.svs-cards{margin-top:22px}.svs-btn{margin-top:22px}.svs-idx{gap:18px}}
@media (max-width:760px){
.svs-pin{height:calc(100svh - 68px - 68px)}
.svs{height:calc(100svh - 136px + 5 * var(--step))}
.svs-in{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:14px;padding:16px 16px 18px}
.svs-side{display:flex;align-items:center;justify-content:space-between;gap:12px}
.svs-count{margin:0;font-size:.9rem}
.svs-idx{flex-direction:row;gap:8px}
.svs-ix{width:36px;height:36px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:50%;justify-content:center;align-items:center}
.svs-ix.on{background:#8B1E2D;border-color:#8B1E2D}
.svs-ixt{display:none}
.svs-ixn{font-size:.8rem;letter-spacing:0}
.svs-stage{flex:1;min-height:0}
.svs-p{padding:22px 20px}
.svs-wm{font-size:6rem;right:14px}
.svs-t{font-size:1.6rem}
.svs-f{margin-top:12px;font-size:1rem}
.svs-cards{grid-template-columns:1fr;gap:8px;margin-top:16px}
.svs-cards li{flex-direction:row;align-items:center;padding:12px 14px;font-size:1rem}
.svs-cards svg{width:22px;height:22px;flex:none}
.svs-btn{display:flex;width:100%;justify-content:center;margin-top:16px;min-height:48px}
.svs-mark{display:none}
}
@media (prefers-reduced-motion:reduce) and (min-width:100000px){
.svs{height:auto}
.svs-pin{position:static;height:auto;overflow:visible}
.svs-bgs,.svs-bar,.svs-side,.svs-mark{display:none}
.svs-in{display:block;padding:0}
.svs-stage{display:block}
.svs-p,.svs-p.on{position:relative;display:block;opacity:1;visibility:visible;transform:none;transition:none;border:0;border-radius:0;padding:clamp(48px,8vw,96px) var(--sv-x);background:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.svs-pbg{display:block;position:absolute;inset:0;z-index:-1}
.svs-pbg::after{content:"";position:absolute;inset:0;background:rgba(15,45,80,.72)}
.svs-p{isolation:isolate}
.svs-cards li{opacity:1;transform:none;transition:none}
}
/* Franja final */
.svf{background:#0F2D50;border-top:1px solid rgba(255,255,255,.08)}
.svf-in{min-height:120px;display:flex;align-items:center;justify-content:space-between;gap:20px 32px;flex-wrap:wrap;padding:24px var(--sv-x)}
.svf-t{margin:0;font-weight:300;font-size:clamp(1.4rem,1rem + 1vw,1.9rem);color:#fff}
.svf-act{display:flex;align-items:center;flex-wrap:wrap;gap:12px 14px}
.svf-mail{margin-left:8px;color:#fff;font-size:.92rem;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.45)}
.svf-mail:hover{color:#fff;border-bottom-color:#fff}
/* Barra fija de móvil */
.svbar{display:none}
@media (max-width:760px){
.svf-act .inn-btn{flex:1 1 100%;justify-content:center}
.svf-mail{margin:4px 0 0}
.svbar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid #E1E6ED;box-shadow:0 -8px 24px -12px rgba(15,45,80,.25);transition:transform .45s ease,opacity .45s ease}
.svbar .inn-btn{flex:1;justify-content:center;padding:0 10px;font-size:.86rem;min-height:44px}
.svbar .svbar-2{background:#fff;color:#0F2D50;border-color:rgba(15,45,80,.4)}
.svbar.off{transform:translateY(110%);opacity:0;pointer-events:none}
.pg-serv{padding-bottom:72px}
}
.pg-serv .sv-h1{max-width:none}
.pg-serv .pg-hero__img{object-position:50% 78%}
/* Separador entre la cabecera y el módulo de servicios: filete fino con la brújula del logo */
.sv-sep{display:flex;align-items:center;justify-content:center;gap:22px;padding:clamp(40px,6vh,64px) var(--sv-x);background:#fff}
.sv-sep i{flex:0 1 min(30vw,380px);height:1px;background:linear-gradient(90deg,rgba(15,45,80,0),rgba(15,45,80,.22))}
.sv-sep i:last-child{background:linear-gradient(90deg,rgba(15,45,80,.22),rgba(15,45,80,0))}
.sv-sep svg{flex:none;width:11px;height:auto}
/* Franja de contacto situada entre la cabecera y el módulo, en blanco */
.svf--light{background:#fff;border-top:0;border-bottom:1px solid #E1E6ED}
.svf--light .svf-t{color:#0F2D50}
.svf--light .inn-btn--ghost{background:transparent;color:#0F2D50;border-color:rgba(15,45,80,.45)}
.svf--light .inn-btn--ghost:hover,.svf--light .inn-btn--ghost:active{background:rgba(15,45,80,.06);color:#0F2D50;border-color:#0F2D50}
.svf--light .svf-mail{color:#0F2D50;border-bottom-color:rgba(15,45,80,.4)}
.svf--light .svf-mail:hover{color:#8B1E2D;border-bottom-color:#8B1E2D}
/* Disciplinas: la brújula fijada bajo la cabecera */
.pg-serv .es-pin{top:68px;height:calc(100vh - 68px);height:calc(100svh - 68px)}
/* Brújula 3D de servicios: disco + barra de carga circular */
.svs-mark{display:none}
.svs-cg{position:absolute;right:clamp(20px,2.4vw,32px);bottom:clamp(20px,3vh,32px);z-index:2;width:92px;height:92px;border-radius:50%;background:rgba(255,255,255,.95);box-shadow:0 16px 40px rgba(4,16,32,.35)}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.svs-cg{background:rgba(255,255,255,.84);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}}
.svs-cg svg{position:absolute;inset:-7px;width:calc(100% + 14px);height:calc(100% + 14px);transform:rotate(-90deg);overflow:visible}
.svs-cg circle{fill:none;stroke-width:2.4}
.svs-cg circle:first-child{stroke:rgba(255,255,255,.22)}
.svs-cg-p{stroke:#8B1E2D;stroke-linecap:round;stroke-dasharray:0 100}
@media (max-width:760px),(prefers-reduced-motion:reduce) and (min-width:100000px){.svs-cg{display:none}}
.svs-cg{width:60px;height:60px;box-shadow:0 10px 24px rgba(4,16,32,.28)}
.svs-cg svg{inset:-5px;width:calc(100% + 10px);height:calc(100% + 10px)}
.svs-cg circle{stroke-width:2}

.svs-veil{background:linear-gradient(115deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.4) 32%,rgba(0,0,0,.05) 62%,rgba(0,0,0,0) 80%),linear-gradient(0deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.15) 45%,rgba(0,0,0,0) 75%)}
/* Cabecera blanca dentro de la misma pantalla del módulo */
.svs-pin{--svh:clamp(104px,15vh,140px)}
.svs-head{position:absolute;left:0;right:0;top:0;height:var(--svh);z-index:3;background:#fff;color:#0F2D50;border-bottom:1px solid #E3E8EF;display:flex;align-items:center}
.svs-head-in{width:100%;display:flex;align-items:flex-end;justify-content:space-between;gap:24px 48px;flex-wrap:wrap;padding:0 var(--sv-x)}
.svs-head-eb{display:inline-flex;align-items:center;gap:12px;font-size:.75rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#4A5568}
.svs-head-eb i{width:28px;height:3px;background:#8B1E2D;display:block}
.svs-head-t{margin:10px 0 0;font-family:var(--font-display,Poppins,sans-serif);font-weight:300;font-size:clamp(1.6rem,1rem + 1.6vw,2.4rem);line-height:1.1;letter-spacing:-.01em;color:#0F2D50}
.svs-head-s{margin:0;max-width:46ch;font-size:1rem;line-height:1.55;color:#4A5568;text-wrap:pretty}
.svs-bgs,.svs-veil{top:var(--svh)}
.svs-bar{top:var(--svh)}
.svs-in{position:absolute;left:0;right:0;bottom:0;top:var(--svh);height:auto}
@media (max-height:760px) and (min-width:761px){.svs-pin{--svh:96px}.svs-head-t{font-size:1.7rem}}
@media (max-width:760px){.svs-pin{--svh:96px}.svs-head-in{padding:0 16px}.svs-head-s{display:none}.svs-head-t{font-size:1.5rem;margin-top:8px}}
@media (prefers-reduced-motion:reduce) and (min-width:100000px){.svs-head{position:static;height:auto;padding:28px 0}.svs-in{position:static}}
.svs-bgs .svs-veil{top:0}
.svs-bar{display:none}
.svs-head-t{font-size:clamp(1.15rem,.7rem + 1.15vw,1.9rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:760px){.svs-head-t{white-space:normal;font-size:1.15rem;line-height:1.3}}
.svs-pin{--svh:clamp(76px,10vh,96px)}
.svs-head{background:#F4F1EC;border-bottom-color:#E5E0D6}
.svs-head-t{margin-top:6px}
@media (max-height:760px) and (min-width:761px){.svs-pin{--svh:76px}}
@media (max-width:760px){.svs-pin{--svh:84px}}
/* Fondo más oscuro y tarjetas en el mismo tono negro del velo */
.svs-bgs .svs-veil{background:linear-gradient(115deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.55) 32%,rgba(0,0,0,.3) 62%,rgba(0,0,0,.24) 80%),linear-gradient(0deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.25) 45%,rgba(0,0,0,.12) 75%)}
.svs-p{background:rgba(8,10,14,.5);border-color:rgba(255,255,255,.14)}
.svs-cards li{background:rgba(0,0,0,.28);border-color:rgba(255,255,255,.16)}
/* Tramos iguales por servicio + asentamiento suave; panel sin desenfoque (más fluido sobre vídeo) */
.svs-snap{position:absolute;left:0;width:1px;height:1px;pointer-events:none;scroll-snap-align:start;scroll-margin-top:68px}
.svs-p{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(8,10,14,.86)}
.svs-bg{will-change:opacity}
.svs{--step:115svh}

.svs-p{background:rgba(6,8,12,.96);-webkit-backdrop-filter:none;backdrop-filter:none}
.svs-cards li{background:rgba(255,255,255,.04)}
/* Módulo de servicios encajado dentro de los márgenes de la web (no a sangre) */
@media (min-width:761px) and (min-width:0){
.svs{--svc:1440px}
.svs-pin{width:min(calc(100% - 2 * clamp(16px,2.5vw,40px)),var(--svc));margin-inline:auto;overflow:hidden;box-shadow:0 24px 60px rgba(15,45,80,.16)}
.svs-in{padding-left:clamp(28px,4vw,64px);padding-right:clamp(28px,4vw,64px)}
}
@media (min-width:1500px) and (min-width:0){.svs{--svc:min(94vw,2400px)}}
/* Índice de servicios: cada título siempre en una sola línea, también al agrandarse */
@media (min-width:761px){
.svs-in{grid-template-columns:minmax(0,40fr) minmax(0,60fr)}
.svs-idx{container-type:inline-size}
.svs-ixt{white-space:nowrap}
.svs-idx li:nth-child(1) .svs-ixt{font-size:min(1.05rem,calc((100cqi - 64px) / 12.1))}.svs-idx li:nth-child(1) .svs-ix.on .svs-ixt{font-size:min(clamp(1.3rem,1rem + .9vw,1.7rem),calc((100cqi - 64px) / 12.1))}
.svs-idx li:nth-child(2) .svs-ixt{font-size:min(1.05rem,calc((100cqi - 64px) / 14.4))}.svs-idx li:nth-child(2) .svs-ix.on .svs-ixt{font-size:min(clamp(1.3rem,1rem + .9vw,1.7rem),calc((100cqi - 64px) / 14.4))}
.svs-idx li:nth-child(3) .svs-ixt{font-size:min(1.05rem,calc((100cqi - 64px) / 15.4))}.svs-idx li:nth-child(3) .svs-ix.on .svs-ixt{font-size:min(clamp(1.3rem,1rem + .9vw,1.7rem),calc((100cqi - 64px) / 15.4))}
.svs-idx li:nth-child(4) .svs-ixt{font-size:min(1.05rem,calc((100cqi - 64px) / 20.8))}.svs-idx li:nth-child(4) .svs-ix.on .svs-ixt{font-size:min(clamp(1.3rem,1rem + .9vw,1.7rem),calc((100cqi - 64px) / 20.8))}
.svs-idx li:nth-child(5) .svs-ixt{font-size:min(1.05rem,calc((100cqi - 64px) / 5.5))}.svs-idx li:nth-child(5) .svs-ix.on .svs-ixt{font-size:min(clamp(1.3rem,1rem + .9vw,1.7rem),calc((100cqi - 64px) / 5.5))}
}
/* Cabecera y márgenes de Servicios: blanco puro y plano; el volumen lo dan las sombras */
.svs,.svs-head{background:#fff}
.svs-head{border-bottom:0;box-shadow:0 1px 0 rgba(15,45,80,.06),0 14px 30px -14px rgba(15,45,80,.30)}
@media (min-width:761px) and (min-width:0){.svs-pin{box-shadow:0 2px 6px rgba(15,45,80,.06),0 30px 70px -20px rgba(15,45,80,.30)}}

/* Mismo velo que la portada y el cierre */
.svs-bgs .svs-veil{background:linear-gradient(115deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.7) 32%,rgba(0,0,0,.52) 62%,rgba(0,0,0,.46) 80%),linear-gradient(0deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.25) 45%,rgba(0,0,0,.15) 75%)}
