/* Home v2. Su composición está aislada de las páginas interiores y del CRM.
   Colores compartidos: :root en site.css. */
.sv-home { --sv-home-section:76px; }
.sv-home .sv-section { padding-block:var(--sv-home-section); }
/* Hero de portada: retrato abierto y texto sobre un fondo de marca.
   La foto se cambia desde site.hero; los colores usan los tokens de site.css. */
.sv-home .sv-hero { --sv-hero-photo-left:54%; --sv-hero-photo-overhang:6vw; --sv-hero-photo-focus:98%; position:relative; padding:0; overflow:hidden; isolation:isolate; background:var(--sv-navy); color:var(--sv-white); }
.sv-home .sv-hero::after { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg,var(--sv-navy) 0%,var(--sv-navy) 49%,color-mix(in srgb,var(--sv-navy) 95%,transparent) 54%,color-mix(in srgb,var(--sv-navy) 70%,transparent) 60%,color-mix(in srgb,var(--sv-navy) 20%,transparent) 72%,transparent 84%); }
.sv-home .sv-hero-grid { position:relative; z-index:2; display:flex; align-items:center; min-height:630px; gap:0; padding-block:58px; }
.sv-home .sv-hero-copy { width:53%; min-width:0; padding:0; container-type:inline-size; }
.sv-home .sv-hero .sv-eyebrow { display:block; position:relative; max-width:490px; padding-bottom:22px; margin-bottom:25px; color:var(--sv-white); font-size:11px; font-weight:400; letter-spacing:3px; line-height:1.8; }
.sv-home .sv-hero .sv-eyebrow::before { position:absolute; left:0; bottom:0; width:46px; height:2px; background:var(--sv-accent); }
.sv-home .sv-hero h1 { max-width:none; color:var(--sv-white); font-size:clamp(20px,7.35cqw,60px); line-height:1.17; letter-spacing:-.02em; text-wrap:pretty; }
/* Dos cláusulas completas; el tamaño se adapta al ancho disponible del texto. */
.sv-home .sv-hero-title-line { display:block; }
.sv-home .sv-hero h1 em { color:inherit; font-weight:400; }
.sv-home .sv-hero-intro { max-width:560px; margin:27px 0 29px; color:var(--sv-white); font-size:17px; line-height:1.65; }
.sv-home .sv-hero-actions { align-items:center; flex-direction:row; gap:28px; }
.sv-home .sv-hero-actions .sv-btn { font-size:16px; min-height:56px; padding:16px 26px; background:var(--sv-white); color:var(--sv-navy); border-color:var(--sv-white); }
.sv-home .sv-hero-actions .sv-btn .sv-icon { color:var(--sv-accent); width:20px; height:20px; }
.sv-home .sv-hero-actions .sv-btn:hover:not(:disabled) { background:var(--sv-pale); color:var(--sv-navy); border-color:var(--sv-pale); }
.sv-home .sv-hero-actions .sv-text-link { color:var(--sv-white); border-color:color-mix(in srgb,var(--sv-white) 75%,transparent); font-size:16px; font-weight:400; }
.sv-home .sv-hero-actions .sv-text-link:hover { color:var(--sv-white); border-color:var(--sv-white); }
.sv-home .sv-hero-actions :focus-visible { outline-color:var(--sv-white); }
.sv-home .sv-hero-visual { position:absolute; inset:0 calc(-1 * var(--sv-hero-photo-overhang)) 0 auto; z-index:0; width:calc(100% - var(--sv-hero-photo-left) + var(--sv-hero-photo-overhang)); max-width:900px; margin:0; padding:0; }
.sv-home .sv-hero-photo { position:absolute; inset:0; height:100%; border-radius:0; background:var(--sv-navy); }
/* El degradado sigue el borde real de la foto, incluso al alcanzar su ancho máximo. */
.sv-home .sv-hero-photo::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg,var(--sv-navy),transparent 32%); }
.sv-home .sv-hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center var(--sv-hero-photo-focus); }
.sv-home .sv-hero-visual::before { content:""; position:absolute; inset:48% 0 0; z-index:1; pointer-events:none; background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--sv-navy) 70%,transparent)); }
.sv-home .sv-hero-visual figcaption { position:absolute; z-index:2; right:calc(var(--sv-hero-photo-overhang) + 200px); bottom:34px; display:block; width:165px; margin:0; padding-bottom:12px; color:var(--sv-white); font-size:11px; line-height:1.7; text-shadow:0 1px 8px color-mix(in srgb,var(--sv-navy) 85%,transparent); }
.sv-home .sv-hero-visual figcaption span { display:block; font-family:var(--sv-serif); font-size:13px; font-weight:700; }
.sv-home .sv-hero-visual figcaption::before { content:""; position:absolute; bottom:0; left:0; width:28px; height:2px; background:var(--sv-accent); }
@media (min-width:1550px) {
 .sv-home .sv-hero-grid { min-height:780px; padding-block:80px; }
 .sv-home .sv-hero-copy { width:63%; }
 .sv-home .sv-hero-intro { font-size:20px; max-width:650px; margin-block:32px; }
 .sv-home .sv-hero-actions .sv-btn { font-size:18px; min-height:64px; padding:18px 32px; }
 .sv-home .sv-hero-actions .sv-text-link { font-size:18px; }
}
@media (max-width:1150px) {
 .sv-home .sv-hero { --sv-hero-photo-left:50%; }
 .sv-home .sv-hero-grid { min-height:610px; padding-block:52px; }
 .sv-home .sv-hero-copy { width:55%; }
 .sv-home .sv-hero-intro { font-size:16px; max-width:485px; }
 .sv-home .sv-hero-actions { gap:22px; }
 .sv-home .sv-hero-actions .sv-btn { padding-inline:22px; }
 .sv-home .sv-hero-visual figcaption { right:calc(var(--sv-hero-photo-overhang) + 80px); }
}
@media (max-width:950px) {
 .sv-home .sv-hero-grid { min-height:570px; padding-block:44px; }
 .sv-home .sv-hero-copy { width:57%; }
 .sv-home .sv-hero .sv-eyebrow { font-size:9px; letter-spacing:2.2px; max-width:320px; padding-bottom:18px; margin-bottom:22px; }
 .sv-home .sv-hero-intro { font-size:15px; line-height:1.7; margin-block:24px; }
 .sv-home .sv-hero-actions { gap:22px; }
 .sv-home .sv-hero-actions .sv-btn { font-size:13px; min-height:52px; padding:14px 18px; gap:12px; }
 .sv-home .sv-hero-actions .sv-text-link { font-size:13px; gap:10px; }
 .sv-home .sv-hero { --sv-hero-photo-left:45%; }
 .sv-home .sv-hero-visual figcaption { right:calc(var(--sv-hero-photo-overhang) + 24px); bottom:28px; width:145px; font-size:10px; }
 .sv-home .sv-hero-visual figcaption span { font-size:12px; }
}
@media (max-width:680px) {
 .sv-home .sv-hero::after, .sv-home .sv-hero-visual::before, .sv-home .sv-hero-photo::before { display:none; }
 .sv-home .sv-hero-visual { position:relative; inset:auto; width:100%; height:auto; aspect-ratio:1; max-height:520px; }
 .sv-home .sv-hero-visual::after { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(180deg,var(--sv-navy) 0%,transparent 18%,transparent 62%,color-mix(in srgb,var(--sv-navy) 85%,transparent) 100%); }
 .sv-home .sv-hero-photo img { object-position:center 85%; }
 .sv-home .sv-hero-visual figcaption { left:20px; right:auto; bottom:24px; width:135px; }
 .sv-home .sv-hero-grid { min-height:0; padding-block:36px 24px; }
 .sv-home .sv-hero-copy { width:100%; }
 .sv-home .sv-hero .sv-eyebrow { max-width:100%; padding-bottom:16px; margin-bottom:23px; font-size:9px; letter-spacing:2px; }
 .sv-home .sv-hero-intro { font-size:15px; line-height:1.75; margin:24px 0 27px; max-width:470px; }
 .sv-home .sv-hero-actions { gap:16px 18px; align-items:center; }
 .sv-home .sv-hero-actions .sv-btn { min-height:52px; padding:15px 16px; }
 .sv-home .sv-hero-actions .sv-text-link { font-size:13px; }
}
.sv-home .sv-section-head { display:block; margin-bottom:32px; }
.sv-home .sv-section-head h2 { max-width:650px; }
.sv-home .sv-section-head p { max-width:590px; margin-top:18px; padding:0; }
.sv-home .sv-services-featured { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.sv-home .sv-service-card-visual { min-height:0; padding:0; border-radius:8px; overflow:hidden; border-color:var(--sv-line); }
.sv-home .sv-service-image { aspect-ratio:1.8; overflow:hidden; background:var(--sv-surface); }
.sv-home .sv-service-image img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.sv-home .sv-service-content { padding:22px 24px 24px; }
.sv-home .sv-card-top { margin-bottom:12px; }
.sv-home .sv-card-top .sv-icon { width:22px; height:22px; }
.sv-home .sv-card-top span { color:var(--sv-accent); }
.sv-home .sv-service-card h3 { max-width:none; min-height:56px; font-size:20px; line-height:1.4; margin-bottom:10px; }
.sv-home .sv-service-card p { font-size:14px; line-height:1.65; margin-bottom:20px; }
.sv-home .sv-card-link { font-size:13px; }
.sv-home .sv-services-secondary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:24px; }
.sv-service-compact { display:flex; align-items:center; gap:12px; padding:19px 0; border-bottom:1px solid var(--sv-line); color:var(--sv-navy); font-size:14px; font-weight:700; }
.sv-service-compact > .sv-icon:first-child { color:var(--sv-accent); width:20px; height:20px; }
.sv-service-compact > .sv-icon:last-child { margin-left:auto; color:var(--sv-blue); width:17px; height:17px; transition:transform .2s; }
.sv-service-compact:hover { color:var(--sv-blue); }
.sv-service-compact:hover > .sv-icon:last-child { transform:translate(2px,-2px); }
.sv-home .sv-regularization { margin-top:28px; padding:22px 25px; background:var(--sv-surface); border-left:2px solid var(--sv-accent); }
.sv-home .sv-regularization h3 { font-size:19px; }
.sv-home .sv-regularization-copy > .sv-icon { width:25px; height:25px; }
.sv-home .sv-about-grid { grid-template-columns:.85fr 1fr; gap:84px; }
.sv-home .sv-about-visual { padding:0; }
.sv-home .sv-about-visual::before { display:none; }
.sv-home .sv-about-main { height:450px; border-radius:8px; object-position:center 70%; }
.sv-home .sv-about-copy h2 { margin-bottom:20px; }
.sv-home .sv-about-copy > p { margin-bottom:0; font-size:15px; line-height:1.8; max-width:520px; }
.sv-about-expertise { display:grid; gap:16px; margin:25px 0 0; padding:0; list-style:none; }
.sv-about-expertise li { display:flex; align-items:flex-start; gap:14px; }
.sv-about-expertise .sv-icon { width:20px; height:20px; color:var(--sv-accent); margin-top:3px; }
.sv-about-expertise strong { display:block; color:var(--sv-navy); font-size:14px; }
.sv-about-expertise small { display:block; color:var(--sv-muted); font-size:12px; margin-top:2px; }
.sv-home .sv-about-registration { margin-top:15px; }
.sv-home .sv-about-more { margin-top:26px; }
/* Fondo propio y foto de ambiente: el FAQ marca un nuevo tramo del recorrido. */
.sv-home .sv-faq { position:relative; overflow:hidden; padding-block:80px; background:var(--sv-surface); }
.sv-home .sv-faq-grid { position:relative; grid-template-columns:1fr; gap:32px; }
.sv-home .sv-faq-copy h2 { max-width:650px; }
.sv-home .sv-faq-copy > p { max-width:590px; }
.sv-home .sv-faq-list { max-width:980px; width:100%; }
.sv-faq-scene { position:absolute; inset:0 0 auto auto; width:46%; height:330px; overflow:hidden; }
.sv-faq-scene img { width:100%; height:100%; object-fit:cover; object-position:center 60%; opacity:.8; }
.sv-faq-scene::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,var(--sv-surface),transparent 45%),linear-gradient(180deg,transparent 10%,var(--sv-surface)); }
.sv-home .sv-faq-list summary { padding-block:18px; }
.sv-home .sv-contact { padding-block:34px; }
@media (hover:hover) {
 .sv-home .sv-service-card-visual:hover .sv-service-image img { transform:scale(1.035); }
}
@media (max-width:1150px) {
 .sv-home .sv-service-content { padding:20px; }
 .sv-home .sv-services-featured, .sv-home .sv-services-secondary { gap:18px; }
 .sv-home .sv-about-grid { gap:55px; }
}
@media (max-width:950px) {
 .sv-home { --sv-home-section:60px; }
 .sv-home .sv-services-featured { gap:14px; }
 .sv-home .sv-service-content { padding:18px 16px; }
 .sv-home .sv-service-card h3 { font-size:18px; min-height:75px; }
 .sv-home .sv-service-card p { font-size:13px; }
 .sv-home .sv-about-grid { gap:38px; }
 .sv-home .sv-about-main { height:420px; }
 .sv-home .sv-faq { padding-block:60px; }
 .sv-faq-scene { width:42%; height:270px; }
}
@media (max-width:680px) {
 .sv-home { --sv-home-section:48px; }
 .sv-home .sv-section-head { margin-bottom:26px; }
 .sv-home .sv-section-head p { margin-top:16px; max-width:100%; }
 .sv-home .sv-services-featured { grid-template-columns:1fr; gap:22px; }
 .sv-home .sv-service-image { aspect-ratio:1.9; }
 .sv-home .sv-service-content { padding:22px; }
 .sv-home .sv-service-card h3 { font-size:21px; min-height:0; }
 .sv-home .sv-service-card p { font-size:14px; margin-bottom:18px; }
 .sv-home .sv-card-top { margin-bottom:14px; }
 .sv-home .sv-services-secondary { grid-template-columns:1fr; gap:0; margin-top:18px; }
 .sv-home .sv-service-compact { font-size:15px; padding-block:18px; }
 .sv-home .sv-regularization { display:block; padding:22px; }
 .sv-home .sv-regularization-copy { align-items:flex-start; gap:12px; }
 .sv-home .sv-regularization-copy > .sv-icon { margin-top:4px; }
 .sv-home .sv-regularization .sv-text-link { margin-top:16px; margin-left:37px; }
 .sv-home .sv-about-grid { grid-template-columns:1fr; gap:30px; }
 .sv-home .sv-about-main { height:360px; object-position:center 66%; }
 .sv-home .sv-about-copy h2 { font-size:31px; }
 .sv-home .sv-faq { padding:0 0 48px; }
 .sv-home .sv-faq-grid { grid-template-columns:1fr; gap:28px; }
 .sv-faq-scene { position:relative; inset:auto; width:100%; height:160px; margin-bottom:32px; }
 .sv-faq-scene img { opacity:1; object-position:center 68%; }
 .sv-faq-scene::after { background:linear-gradient(180deg,transparent 45%,var(--sv-surface)); }
 .sv-home .sv-faq-copy h2 { font-size:30px; }
 .sv-home .sv-faq-copy > p { max-width:none; }
 .sv-home .sv-contact h2 { font-size:25px; }
}
@media (prefers-reduced-motion:reduce) {
 .sv-home .sv-service-image img, .sv-service-compact > .sv-icon { transition:none; }
 .sv-home .sv-service-card-visual:hover .sv-service-image img { transform:none; }
}
