/* Identidad visual compartida de la portada. */
/* Espacio compartido entre servicios y proceso: la mitad del anterior. */
.home-page .services#servicios { padding-bottom: clamp(32px,3.5vw,55px); }
.home-page section.security-process { padding-top: clamp(32px,3.5vw,55px); }
.process-connection { position: relative; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0 0 24px; padding-top: 16px; }
.process-connection::before { content: ''; position: absolute; top: 4px; left: 16.666%; right: 16.666%; height: 1px; background: linear-gradient(90deg,#b39b3d60,#efd963,#b39b3d60); transform-origin: left; }
.process-connection span { position: relative; text-align: center; color: #bdb58e; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.process-connection span::before { content: ''; position: absolute; top: -15px; left: calc(50% - 4px); width: 8px; height: 8px; border-radius: 50%; background: #eed32c; box-shadow: 0 0 12px #eed32c70; }
.process-connection.is-entering::before { animation: process-connect .9s ease-out both; }
.process-connection.is-entering span::before { animation: process-node .5s ease-out both; }
.process-connection.is-entering span:nth-child(2)::before { animation-delay: .3s; }
.process-connection.is-entering span:nth-child(3)::before { animation-delay: .6s; }
@keyframes process-connect { from { transform: scaleX(0); opacity: 0; } to { transform: scaleX(1); opacity: 1; } }
@keyframes process-node { from { transform: scale(.5); opacity: .2; } to { transform: scale(1); opacity: 1; } }
@media(prefers-reduced-motion:reduce) { .process-connection::before,.process-connection span::before { animation: none !important; } }
body.home-page {
    background-color: #090d12;
    background-image: radial-gradient(ellipse at 8% 28%, #27302633, transparent 48%), radial-gradient(ellipse at 95% 65%, #24456126, transparent 52%), linear-gradient(#090d128f,#090d128f), url('images/official-brand-pattern-transparent.png');
    background-size: 100% 100%,100% 100%,100% 100%,1448px auto;
    background-repeat: no-repeat,no-repeat,no-repeat,repeat;
}
.home-page .header { background: #080c12ed; border-bottom-color: #ffffff12; }
.home-page .nav-list a { font-size: .72rem; letter-spacing: .06em; }
.home-page .hero { min-height: 640px; height: min(900px,100svh); }
.home-page .hero-content { max-width: 1000px; }
.home-page .hero-title { font-size: clamp(3rem,7vw,6.8rem); letter-spacing: -.045em; line-height: 1.05; }
.home-page .hero-subtitle { letter-spacing: .14em; font-size: clamp(1rem,2vw,1.6rem); margin-top: 22px; }
.home-page .hero-description { color: #d4dce4; }
.home-page .hero-three-canvas { opacity: .38; }
.home-page :is(.services,.security-process,.protected-sectors,.about-us,.feature-section,.testimonials) { padding-top: clamp(64px,7vw,110px); padding-bottom: clamp(64px,7vw,110px); }
.home-page :is(.section-header h2,.feature-title,.testimonials h2) { font-size: clamp(1.8rem,3.2vw,2.7rem); letter-spacing: -.035em; line-height: 1.15; }
.home-page .section-header p { color: #a6b3c1; max-width: 620px; margin: 18px auto 0; }
.home-page :is(.service-card,.process-step,.sector-card,.review-card,.feature-item) {
    background: radial-gradient(420px circle at var(--light-x,50%) var(--light-y,0%),rgba(255,215,0,.055),transparent 65%),linear-gradient(145deg,#161d26f5,#0d1219fa);
    border: 1px solid #ffffff12;
    border-radius: 18px;
    box-shadow: 0 12px 36px #0000001c;
    transition: border-color .25s,box-shadow .25s;
}
.home-page :is(.service-card,.process-step,.sector-card,.review-card):hover { border-color: #d9be514f; box-shadow: 0 18px 48px #00000035; }
.home-page .service-card { text-align: left; padding: 30px; }
.home-page .service-icon { margin-left: 0; border-radius: 14px; background: #e7cc5010; border: 1px solid #e7cc5030; }
.home-page .service-card h3 { color: #f4f6f8; font-size: 1.15rem; }
.home-page .service-card p { color: #aeb8c4; line-height: 1.75; }
.home-page .service-list { border-top: 1px solid #ffffff0d; padding-top: 16px; }
.home-page .process-number { color: #e9d76c30; font-size: 3rem; letter-spacing: -.06em; }
.home-page .process-step::after { border-color: #e9d76c12; }
.home-page .sector-card { padding: 24px; }
.home-page .sector-card > span { color: #e5cf65; font-variant-numeric: tabular-nums; }
.home-page .about-trust { background: radial-gradient(ellipse at top,#d5b82e12,transparent 60%),linear-gradient(145deg,#151c25,#0b1017); border-color: #dac85e40; box-shadow: 0 24px 80px #0003; }
.home-page .about-trust-stats { gap: 8px; }
.home-page .about-trust-stats .experience-stat { border: 0; border-radius: 12px; background: #ffffff03; padding: 20px 10px; }
.home-page .feature-image img { filter: drop-shadow(0 0 28px #dec74f24); }
.home-page :is(.btn-primary,.btn-secondary) { border-radius: 9px; letter-spacing: .08em; }
.home-page .btn-primary { background: #eed32c; box-shadow: 0 8px 26px #d1b6291c; color: #11151b; }
.home-page :is(a,button):focus-visible { outline: 2px solid #ffe66a; outline-offset: 5px; }
.home-page .footer { background: #080c12; }
@media(max-width:768px) {
    .home-page .hero { min-height: 590px; }
    .home-page .hero-title { font-size: clamp(2.7rem,10vw,4rem); }
    .home-page .hero-subtitle { letter-spacing: .07em; }
    .home-page .service-card { padding: 25px; }
    .home-page .about-trust-stats { gap: 3px; }
    .home-page .about-trust-stats .experience-stat { padding: 16px 4px; }
    .home-page .experience-since { font-size: .49rem; }
    .home-page .about-trust-stats .experience-stat span { font-size: .68rem; }
}
