/* Sonia Varón · web pública
   Hoja propia del sitio público: no comparte nada con Velzon ni con el CRM.
   Los nombres de clase conservan el prefijo sv- como espacio de nombres. */
:root {
  /* Brand kit de Sonia Varón: paleta y tipografías facilitadas por la clienta. */
  --sv-blue:#003C9F; --sv-navy:#002B73; --sv-pale:#DCE8FA;
  --sv-gray:#F4F5F7; --sv-white:#FFFFFF; --sv-ink:#252525;
  --sv-muted:#595F6D; --sv-line:#DEE5EF;
  /* Acento cálido para los detalles: rompe el azul sin competir con la marca. */
  --sv-sand:#C0A98A; --sv-sand-ink:#8A7550; --sv-sand-soft:#F7F3EC; --sv-sand-line:#E8DFD1;
  --sv-serif:"Libre Baskerville",Georgia,"Times New Roman",serif;
  --sv-sans:"Lato",Arial,sans-serif;
}
body {
  margin:0; color:var(--sv-ink); background:var(--sv-white);
  font-family:var(--sv-sans); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:clip;
}
*, *::before, *::after { box-sizing:border-box; }
body.sv-lock { overflow:hidden; }
::selection { color:var(--sv-navy); background:var(--sv-pale); }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-family:var(--sv-serif); color:var(--sv-navy); font-weight:400; }
h2 { font-size:clamp(30px,3.1vw,43px); line-height:1.32; letter-spacing:-1.25px; }
h3 { font-size:23px; line-height:1.4; letter-spacing:-.4px; }
a { color:inherit; text-decoration:none; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; }
button,a,input,textarea { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid var(--sv-blue); outline-offset:5px; }
/* Los títulos reciben el foco para anunciar el cambio de paso: no necesitan recuadro. */
.sv-dialog h2:focus-visible { outline:none; }
img { display:block; max-width:100%; }
.sv-icon { width:21px; height:21px; flex:0 0 auto; stroke:currentColor; fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.sv-sprite { position:absolute; width:0; height:0; overflow:hidden; }
.sv-wrap { width:min(1240px,calc(100% - 112px)); margin-inline:auto; }
.sv-section { padding:104px 0; scroll-margin-top:24px; }
.sv-eyebrow { display:flex; align-items:center; gap:12px; margin-bottom:21px; color:var(--sv-blue); text-transform:uppercase; letter-spacing:2.05px; font-size:11px; font-weight:900; }
.sv-eyebrow::before { content:""; width:28px; height:1px; background:var(--sv-sand); }
.sv-italic { font-style:italic; }
.sv-btn { min-height:52px; padding:14px 23px; display:inline-flex; align-items:center; justify-content:center; gap:16px; border:1px solid transparent; border-radius:5px; background:var(--sv-blue); color:white; font-weight:700; font-size:14px; line-height:1.4; transition:background .2s, transform .2s, border-color .2s; }
.sv-btn:hover:not(:disabled) { background:var(--sv-navy); transform:translateY(-2px); }
.sv-btn:disabled { opacity:.4; transform:none; cursor:not-allowed; }
.sv-btn .sv-icon { width:18px; height:18px; }
.sv-btn-outline { color:var(--sv-blue); border-color:#B8CAE7; background:transparent; }
.sv-btn-outline:hover { background:var(--sv-pale); }
.sv-btn-white { background:white; color:var(--sv-navy); }
.sv-btn-white:hover { background:var(--sv-pale); }
.sv-text-link { padding:0 0 5px; border:0; border-bottom:1px solid #A7BEDF; background:none; display:inline-flex; align-items:center; gap:14px; font-size:14px; font-weight:700; color:var(--sv-blue); }
.sv-text-link .sv-icon { width:18px; height:18px; transition:transform .2s; }
.sv-text-link:hover .sv-icon { transform:translateX(4px); }
.sv-skip { position:fixed; top:-100px; left:16px; z-index:30; padding:12px 20px; background:var(--sv-navy); color:white; }
.sv-skip:focus { top:10px; }
/* Header */
.sv-topbar { background:var(--sv-gray); color:var(--sv-muted); font-size:11px; letter-spacing:.25px; }
.sv-topbar-inner { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:33px; }
.sv-topbar-inner span { display:flex; align-items:center; gap:8px; }
.sv-topbar .sv-icon { width:13px; height:13px; }
.sv-demo-label { color:var(--sv-blue); }
.sv-topbar-end { display:flex; align-items:center; gap:18px; }
/* Iconos de contacto y redes (barra superior y pie). */
.sv-social { display:flex; align-items:center; gap:4px; list-style:none; margin:0; padding:0; }
.sv-social a, .sv-social-pending { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-width:26px; height:26px; padding:0 4px; border-radius:20px; color:var(--sv-blue); transition:background .2s, color .2s; }
.sv-social a:hover { background:var(--sv-pale); color:var(--sv-navy); }
.sv-social-pending { opacity:.4; cursor:default; }
.sv-topbar .sv-social .sv-icon { width:14px; height:14px; }
.sv-footer .sv-social { margin-top:14px; gap:8px; }
.sv-footer .sv-social a, .sv-footer .sv-social-pending { width:36px; height:36px; padding:0; border:1px solid var(--sv-line); border-radius:50%; }
.sv-footer .sv-social .sv-icon { width:17px; height:17px; }
.sv-header { position:relative; z-index:10; background:white; border-bottom:1px solid #ECF0F6; }
.sv-header-inner { min-height:100px; display:flex; align-items:center; justify-content:space-between; gap:34px; }
/* Cabecera: solo el texto del logotipo. La firma queda para el favicon y el pie. */
.sv-logo { display:block; width:250px; height:auto; }
.sv-nav { display:flex; align-items:center; gap:29px; font-size:13px; }
.sv-nav > a { padding:15px 0; border-bottom:1px solid transparent; }
.sv-nav > a:hover, .sv-nav > a[aria-current="page"] { color:var(--sv-blue); border-color:var(--sv-blue); }
.sv-header-actions { display:flex; align-items:center; gap:14px; }
.sv-header-actions .sv-btn { min-height:44px; padding:11px 18px; font-size:13px; gap:12px; }
.sv-menu-toggle { display:none; width:44px; height:44px; align-items:center; justify-content:center; color:var(--sv-navy); border:1px solid var(--sv-line); border-radius:4px; background:white; }
/* Hero */
.sv-hero { padding:50px 0 59px; position:relative; }
.sv-hero-grid { display:grid; grid-template-columns:1.13fr 1fr; align-items:center; gap:68px; }
.sv-hero-copy { padding:16px 0; }
.sv-hero h1 { font-size:clamp(42px,4.08vw,57px); line-height:1.22; letter-spacing:-2.2px; max-width:640px; }
.sv-hero h1 em { font-weight:400; color:var(--sv-blue); }
.sv-hero-intro { max-width:473px; margin:25px 0 26px; color:var(--sv-muted); font-size:16px; line-height:1.8; }
.sv-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; }
.sv-hero-actions .sv-text-link { font-size:13px; }
.sv-hero-facts { display:flex; align-items:center; flex-wrap:wrap; gap:16px; margin-top:23px; font-size:12px; color:var(--sv-muted); }
.sv-hero-facts span { display:flex; align-items:center; gap:6px; }
.sv-hero-facts .sv-icon { width:15px; height:15px; color:var(--sv-blue); }
.sv-hero-facts > span + span::before { content:""; width:1px; height:13px; background:#CDD7E5; margin-right:10px; }
.sv-hero-visual { position:relative; padding:12px 18px 12px 0; }
.sv-hero-backdrop { position:absolute; inset:0 0 32px 25px; border:1px solid #CDDCF1; border-radius:230px 230px 12px 12px; transform:rotate(4deg); }
.sv-hero-photo { position:relative; height:530px; border-radius:230px 230px 10px 10px; overflow:hidden; background:var(--sv-pale); }
.sv-hero-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 65%; }
.sv-photo-note { position:absolute; left:-28px; bottom:31px; z-index:1; display:flex; gap:16px; align-items:center; padding:18px 26px 18px 21px; background:white; border:1px solid var(--sv-line); border-radius:5px; box-shadow:0 8px 30px #002b730a; }
.sv-note-icon { width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:var(--sv-pale); color:var(--sv-blue); }
.sv-photo-note strong { display:block; font-family:var(--sv-serif); font-weight:400; color:var(--sv-navy); font-size:17px; }
.sv-photo-note small { display:block; color:var(--sv-muted); font-size:11px; margin-top:3px; }
.sv-vertical-note { position:absolute; right:-23px; top:52%; writing-mode:vertical-rl; font-size:9px; letter-spacing:2.2px; color:var(--sv-blue); text-transform:uppercase; }
.sv-trustbar { border-top:1px solid var(--sv-line); border-bottom:1px solid var(--sv-line); }
.sv-trust-grid { display:grid; grid-template-columns:repeat(3,1fr); min-height:96px; align-items:center; }
.sv-trust-item { display:flex; justify-content:center; align-items:center; gap:15px; color:var(--sv-navy); font-size:13px; }
.sv-trust-item + .sv-trust-item { border-left:1px solid var(--sv-line); }
.sv-trust-item .sv-icon { width:24px; height:24px; }
/* Services */
.sv-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:60px; margin-bottom:43px; }
.sv-section-head p { max-width:354px; color:var(--sv-muted); font-size:15px; line-height:1.75; padding-bottom:4px; }
.sv-services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.sv-service-card { position:relative; display:flex; flex-direction:column; padding:28px 28px 26px; min-height:268px; border:1px solid var(--sv-line); border-radius:6px; background:white; transition:background .2s,border-color .2s,transform .2s; }
.sv-service-card:hover { background:#F7FAFF; border-color:#B5CAE9; transform:translateY(-3px); }
.sv-card-top { display:flex; align-items:center; justify-content:space-between; color:var(--sv-blue); margin-bottom:22px; }
.sv-card-top .sv-icon { width:30px; height:30px; stroke-width:1.2; }
.sv-card-top span { font-size:11px; color:#75839B; letter-spacing:1px; }
.sv-service-card h3 { font-size:19px; line-height:1.45; margin-bottom:12px; max-width:270px; }
.sv-service-card p { font-size:13px; color:var(--sv-muted); line-height:1.75; margin-bottom:24px; }
.sv-service-card .sv-card-link { margin-top:auto; display:flex; align-items:center; justify-content:space-between; width:100%; color:var(--sv-blue); font-size:12px; font-weight:700; }
.sv-service-card .sv-card-link .sv-icon { width:18px; height:18px; }
.sv-service-card .sv-card-link::after { content:""; position:absolute; inset:0; }
.sv-service-card .sv-card-link:focus-visible { outline:none; }
.sv-service-card:focus-within { outline:3px solid var(--sv-blue); outline-offset:3px; }
.sv-regularization { display:flex; align-items:center; justify-content:space-between; gap:38px; padding:26px 32px; margin-top:25px; background:var(--sv-pale); border-radius:6px; }
.sv-regularization-copy { display:flex; align-items:center; gap:24px; }
.sv-regularization-copy > .sv-icon { width:31px; height:31px; color:var(--sv-blue); }
.sv-regularization h3 { font-size:19px; margin-bottom:3px; }
.sv-regularization p { font-size:13px; color:#354C70; }
.sv-regularization small { display:block; font-size:10px; color:#4A5D78; margin-top:4px; }
.sv-regularization .sv-text-link { white-space:nowrap; }
/* About */
.sv-about { background:var(--sv-gray); }
.sv-about-grid { display:grid; grid-template-columns:1fr 1fr; gap:101px; align-items:center; }
.sv-about-visual { position:relative; padding:0 50px 40px 15px; }
.sv-about-visual::before { content:""; position:absolute; left:0; bottom:17px; top:45px; right:94px; border:1px solid #C5D2E4; border-radius:170px 170px 5px 5px; }
.sv-about-main { width:100%; height:474px; object-fit:cover; object-position:50% 72%; border-radius:160px 160px 5px 5px; position:relative; }
.sv-about-small { position:absolute; width:170px; height:217px; object-fit:cover; object-position:50% 55%; bottom:0; right:-10px; border:7px solid var(--sv-gray); border-radius:10px; }
.sv-about-copy h2 { margin-bottom:25px; }
.sv-about-copy p { color:var(--sv-muted); font-size:15px; line-height:1.85; margin-bottom:16px; }
.sv-about-copy p strong { color:var(--sv-navy); font-weight:700; }
.sv-about-copy .sv-about-quote { font-size:17px; color:var(--sv-blue); font-family:var(--sv-serif); font-style:italic; margin:20px 0; }
.sv-about-name { display:flex; align-items:center; gap:20px; padding-top:18px; margin-top:23px; border-top:1px solid #D5DEEA; }
.sv-about-name span { font-family:var(--sv-serif); font-size:20px; color:var(--sv-navy); }
.sv-about-name small { font-size:11px; color:var(--sv-muted); max-width:180px; line-height:1.6; border-left:1px solid #BDCBDD; padding-left:20px; }
/* Process */
.sv-centered { text-align:center; }
.sv-centered .sv-eyebrow { justify-content:center; }
.sv-process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:55px; margin-top:48px; }
.sv-step { position:relative; padding-top:2px; }
.sv-step-number { display:inline-flex; width:43px; height:43px; align-items:center; justify-content:center; border:1px solid #B2C9EA; border-radius:50%; font-size:13px; color:var(--sv-blue); background:white; margin-bottom:25px; }
.sv-step:not(:last-child)::after { content:""; position:absolute; top:23px; left:65px; width:calc(100% - 35px); height:1px; background:var(--sv-line); }
.sv-step h3 { font-size:21px; margin-bottom:14px; }
.sv-step p { font-size:14px; color:var(--sv-muted); max-width:320px; line-height:1.8; }
/* Consultation */
.sv-consult { padding:0 0 98px; scroll-margin-top:32px; }
.sv-consult-panel { position:relative; background:var(--sv-navy); border-radius:10px; display:grid; grid-template-columns:1.35fr 1fr; gap:70px; padding:58px 64px; overflow:hidden; }
.sv-consult-panel::before,.sv-consult-panel::after { content:""; position:absolute; width:580px; height:580px; border:1px solid #DCE8FA16; border-radius:50%; left:-145px; bottom:-385px; pointer-events:none; }
.sv-consult-panel::after { width:700px; height:700px; left:-205px; bottom:-445px; }
.sv-consult-copy { align-self:center; position:relative; z-index:1; }
.sv-consult-copy .sv-eyebrow { color:var(--sv-pale); }
.sv-consult-copy .sv-eyebrow::before, .sv-claim .sv-eyebrow::before, .sv-banner .sv-eyebrow::before { background:var(--sv-pale); }
.sv-consult-copy h2 { color:white; font-size:40px; margin-bottom:20px; }
.sv-consult-copy > p { color:#D3DEEF; font-size:15px; max-width:390px; line-height:1.85; }
.sv-consult-features { display:flex; gap:26px; margin-top:31px; color:#E3EBF8; font-size:12px; }
.sv-consult-features span { display:flex; align-items:center; gap:8px; }
.sv-price-card { position:relative; background:white; padding:30px 32px 25px; border-radius:6px; z-index:1; }
.sv-price-label { color:var(--sv-navy); font-size:12px; letter-spacing:.5px; }
.sv-price { color:var(--sv-navy); display:flex; align-items:baseline; gap:12px; margin:0 0 14px; }
.sv-price strong { font-size:64px; letter-spacing:-3px; line-height:1.3; font-weight:400; }
.sv-price span { font-size:12px; color:var(--sv-muted); }
.sv-price-lines { display:grid; gap:8px; border-top:1px solid var(--sv-line); padding-top:15px; font-size:12px; margin-bottom:20px; color:var(--sv-muted); }
.sv-price-lines p { display:flex; align-items:center; gap:10px; }
.sv-price-lines .sv-icon { width:15px; height:15px; color:var(--sv-blue); }
.sv-price-card .sv-btn { width:100%; }
.sv-price-card small { display:block; text-align:center; font-size:9px; color:var(--sv-muted); margin-top:10px; line-height:1.6; }
/* FAQ */
.sv-faq { padding-top:0; }
.sv-faq-grid { display:grid; grid-template-columns:.86fr 1.3fr; gap:90px; }
.sv-faq-copy h2 { max-width:350px; margin-bottom:22px; }
.sv-faq-copy > p { color:var(--sv-muted); font-size:14px; max-width:290px; line-height:1.8; margin-bottom:23px; }
.sv-faq-list { border-top:1px solid var(--sv-line); }
.sv-faq-list details { border-bottom:1px solid var(--sv-line); padding:0; }
.sv-faq-list summary { display:flex; justify-content:space-between; align-items:center; gap:20px; list-style:none; cursor:pointer; padding:22px 0; color:var(--sv-navy); font-size:15px; font-weight:700; }
.sv-faq-list summary::-webkit-details-marker { display:none; }
.sv-faq-list summary .sv-icon { width:17px; height:17px; transition:transform .2s; }
.sv-faq-list details[open] summary .sv-icon { transform:rotate(45deg); }
.sv-faq-list details p { font-size:14px; color:var(--sv-muted); padding:0 35px 24px 0; line-height:1.85; }
/* Contact and footer */
.sv-contact { background:var(--sv-pale); padding:44px 0; scroll-margin-top:20px; }
.sv-contact-inner { display:flex; justify-content:space-between; align-items:center; gap:40px; }
.sv-contact h2 { font-size:27px; letter-spacing:-.65px; margin-bottom:8px; }
.sv-contact p { color:#354C70; font-size:13px; max-width:630px; }
.sv-contact-actions { display:flex; gap:12px; flex-shrink:0; }
.sv-contact-actions .sv-btn { font-size:13px; min-height:48px; }
.sv-footer { padding:50px 0 18px; }
.sv-footer-main { display:grid; grid-template-columns:1.3fr 1.1fr .8fr 1fr; gap:50px; padding-bottom:35px; }
.sv-footer-brand { display:flex; align-items:center; gap:26px; }
.sv-footer-brand img { width:137px; height:103px; }
.sv-footer-brand p { font-family:var(--sv-serif); color:var(--sv-navy); font-size:13px; line-height:1.9; max-width:180px; }
.sv-footer-column h3 { font-family:var(--sv-sans); font-weight:700; font-size:12px; margin:10px 0 16px; letter-spacing:.2px; }
.sv-footer-column a,.sv-footer-column > p,.sv-footer-column > button { display:block; font-size:12px; color:var(--sv-muted); margin-bottom:8px; }
.sv-footer-column button { padding:0; border:0; background:none; text-align:left; }
.sv-footer-column a:hover,.sv-footer-column button:hover { color:var(--sv-blue); }
.sv-footer-bottom { border-top:1px solid var(--sv-line); padding-top:18px; display:flex; justify-content:space-between; gap:20px; font-size:10px; color:var(--sv-muted); }
.sv-footer-legal { display:flex; flex-wrap:wrap; gap:20px; }
.sv-footer-legal a { color:inherit; font-size:10px; }
.sv-footer-legal a:hover { color:var(--sv-blue); }
.sv-mobile-cta { display:none; }
/* Accessible native dialogs */
.sv-dialog { width:min(650px,calc(100% - 32px)); max-height:calc(100dvh - 40px); border:0; border-radius:12px; padding:0; color:var(--sv-ink); box-shadow:0 28px 100px #00173745; background:white; }
.sv-dialog::backdrop { background:#0016359E; backdrop-filter:blur(4px); }
.sv-dialog-head { position:sticky; top:0; padding:16px 26px; border-bottom:1px solid var(--sv-line); background:white; display:flex; justify-content:space-between; align-items:center; gap:20px; z-index:2; }
.sv-dialog-head > span { font-size:10px; font-weight:900; letter-spacing:1.3px; text-transform:uppercase; color:var(--sv-blue); }
.sv-close { width:34px; height:34px; display:grid; place-items:center; border:0; border-radius:50%; background:var(--sv-gray); color:var(--sv-navy); }
.sv-dialog-body { padding:32px; }
.sv-dialog h2 { font-size:30px; letter-spacing:-.8px; margin-bottom:15px; }
.sv-dialog-body > p { color:var(--sv-muted); font-size:14px; margin-bottom:20px; line-height:1.8; }
.sv-dialog-body > ul { list-style:none; margin:22px 0; padding:0; }
.sv-dialog-body > ul li { padding:10px 0 10px 24px; border-bottom:1px solid var(--sv-line); font-size:14px; position:relative; }
.sv-dialog-body > ul li::before { content:"—"; position:absolute; left:0; color:var(--sv-blue); }
.sv-demo-notice { background:var(--sv-gray); border-left:2px solid #B3C8E8; padding:13px 15px; color:#505B6D; font-size:11px; line-height:1.7; margin-bottom:23px; }
.sv-booking-progress { display:flex; gap:16px; font-size:10px; text-transform:uppercase; letter-spacing:.8px; margin:0 0 25px; padding:0; list-style:none; color:#667182; }
.sv-booking-progress li { flex:1; border-bottom:2px solid var(--sv-line); padding-bottom:9px; }
.sv-booking-progress li.sv-active { border-color:var(--sv-blue); color:var(--sv-blue); font-weight:900; }
.sv-booking-step[hidden] { display:none; }
.sv-booking-step > p { font-size:13px; color:var(--sv-muted); margin-bottom:18px; }
.sv-mode-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:21px; }
.sv-mode { display:flex; align-items:center; gap:14px; position:relative; padding:18px; border:1px solid var(--sv-line); border-radius:6px; cursor:pointer; }
.sv-mode:has(input:checked) { border-color:var(--sv-blue); background:#F0F5FD; }
.sv-mode:has(input:focus-visible) { outline:3px solid var(--sv-blue); outline-offset:2px; }
.sv-mode input { position:absolute; opacity:0; width:1px; height:1px; }
.sv-mode .sv-icon { color:var(--sv-blue); width:26px; height:26px; }
.sv-mode strong { display:block; color:var(--sv-navy); font-size:13px; }
.sv-mode small { font-size:10px; color:var(--sv-muted); }
.sv-booking-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:23px; }
.sv-calendar-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:10px 0 15px; }
.sv-calendar-head strong { font-size:14px; color:var(--sv-navy); }
/* «septiembre de 2026»: solo la primera letra, no cada palabra. */
.sv-calendar-head strong::first-letter { text-transform:uppercase; }
.sv-calendar-nav { display:flex; gap:8px; }
.sv-calendar-nav button { width:32px; height:32px; display:grid; place-items:center; border:1px solid var(--sv-line); color:var(--sv-navy); background:white; border-radius:4px; }
.sv-calendar-nav button:disabled { opacity:.3; }
.sv-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.sv-calendar > span { text-align:center; font-size:10px; color:var(--sv-muted); padding:5px; }
.sv-calendar > button { min-height:35px; border:1px solid var(--sv-line); border-radius:4px; background:white; color:var(--sv-navy); font-size:12px; }
.sv-calendar > button:disabled { border-color:transparent; color:#9BA4B2; background:#F7F8FA; }
.sv-calendar > button.sv-selected,.sv-time.sv-selected { background:var(--sv-blue); border-color:var(--sv-blue); color:white; }
.sv-time-label { font-size:12px; margin:19px 0 10px; color:var(--sv-navy); }
.sv-times { display:flex; flex-wrap:wrap; gap:8px; }
.sv-time { padding:8px 14px; border:1px solid var(--sv-line); border-radius:4px; background:white; color:var(--sv-navy); font-size:12px; }
.sv-booking-error { min-height:20px; color:var(--sv-blue); font-size:12px; margin-top:10px; }
.sv-booking-summary { margin:15px 0; border-top:1px solid var(--sv-line); }
.sv-booking-summary > div { display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding:13px 0; border-bottom:1px solid var(--sv-line); }
.sv-booking-summary dt { color:var(--sv-muted); font-size:12px; }
.sv-booking-summary dd { margin:0; text-align:right; color:var(--sv-navy); font-size:13px; font-weight:700; }
.sv-contact-channels { display:grid; gap:12px; margin:20px 0; }
.sv-contact-channel { display:flex; align-items:center; gap:15px; padding:17px; border:1px solid var(--sv-line); border-radius:5px; color:var(--sv-navy); }
.sv-contact-channel strong { display:block; font-size:13px; }
.sv-contact-channel small { display:block; font-size:11px; color:var(--sv-muted); }
.sv-noscript { padding:12px 20px; text-align:center; background:var(--sv-pale); color:var(--sv-navy); font-size:13px; }
@media (min-width:1550px) {
 .sv-hero { padding:62px 0 67px; }
 .sv-hero-photo { height:570px; }
}
@media (max-width:1150px) {
 .sv-wrap { width:calc(100% - 72px); }
 .sv-nav { gap:18px; font-size:12px; }
 .sv-header-inner { gap:20px; }
 .sv-hero-grid { gap:45px; grid-template-columns:1.1fr 1fr; }
 .sv-hero h1 { font-size:45px; }
 .sv-hero-photo { height:490px; }
 .sv-hero-intro { font-size:15px; }
 .sv-hero-actions { gap:18px; }
 .sv-hero-actions .sv-btn { padding-inline:18px; }
 .sv-photo-note { left:-20px; padding:14px 18px; }
 .sv-section { padding-block:80px; }
 .sv-about-grid { gap:65px; }
 .sv-about-main { height:430px; }
 .sv-service-card { padding:23px; }
 .sv-consult-panel { padding:44px; gap:40px; }
 .sv-consult-copy h2 { font-size:34px; }
 .sv-faq { padding-top:0; }
 .sv-contact-inner { gap:28px; }
 .sv-footer-main { grid-template-columns:repeat(3,1fr); gap:30px; }
 .sv-footer-main > .sv-footer-brand { grid-column:1/-1; flex-direction:row; align-items:center; }
 .sv-footer-brand { gap:18px; }
 .sv-footer-brand img { width:115px; height:auto; }
}
@media (max-width:950px) {
 .sv-wrap { width:calc(100% - 48px); }
 .sv-header-inner { min-height:88px; }
 .sv-logo { width:210px; }
 .sv-menu-toggle { display:flex; }
 .sv-nav { display:none; position:absolute; left:0; right:0; top:100%; padding:20px 24px 25px; background:white; border-bottom:1px solid var(--sv-line); box-shadow:0 15px 25px #002b730a; flex-direction:column; align-items:stretch; gap:0; font-size:15px; }
 .sv-nav.sv-open { display:flex; }
 .sv-hero-grid { gap:35px; }
 .sv-hero h1 { font-size:39px; letter-spacing:-1.6px; }
 .sv-hero-photo { height:455px; }
 .sv-hero-actions { align-items:flex-start; flex-direction:column; }
 .sv-hero-facts { gap:9px; font-size:10px; }
 .sv-hero-facts > span + span::before { margin-right:4px; }
 .sv-hero-facts .sv-icon { width:12px; height:12px; }
 .sv-photo-note { bottom:25px; }
 .sv-photo-note strong { font-size:14px; }
 .sv-photo-note small { font-size:10px; }
 .sv-photo-note .sv-note-icon { width:34px; height:34px; }
 .sv-vertical-note { right:-18px; }
 .sv-trust-item { font-size:11px; gap:9px; }
 .sv-services-grid { grid-template-columns:repeat(2,1fr); }
 .sv-service-card { min-height:240px; }
 .sv-section-head { gap:30px; }
 .sv-section-head p { max-width:300px; font-size:14px; }
 .sv-regularization { padding:24px; gap:22px; }
 .sv-regularization-copy { gap:15px; }
 .sv-about-grid { gap:40px; }
 .sv-about-visual { padding-right:30px; }
 .sv-about-main { height:425px; }
 .sv-about-small { width:135px; height:170px; }
 .sv-about-name { gap:13px; }
 .sv-about-name span { font-size:17px; }
 .sv-about-name small { padding-left:13px; font-size:10px; }
 .sv-process-grid { gap:30px; }
 .sv-step h3 { font-size:18px; }
 .sv-consult-panel { padding:36px; gap:28px; grid-template-columns:1fr 1fr; }
 .sv-consult-copy h2 { font-size:31px; }
 .sv-consult-features { flex-direction:column; gap:10px; }
 .sv-price-card { padding:26px 23px; }
 .sv-faq-grid { gap:50px; }
 .sv-contact-inner { align-items:flex-start; flex-direction:column; gap:23px; }
}
@media (max-width:680px) {
 body { padding-bottom:76px; }
 .sv-wrap { width:calc(100% - 40px); }
 .sv-topbar-inner { min-height:29px; justify-content:center; flex-wrap:wrap; gap:2px 14px; padding:4px 0; font-size:9px; }
 .sv-topbar-end { gap:10px; }
 .sv-topbar .sv-social a, .sv-topbar .sv-social-pending { min-width:24px; height:24px; }
 .sv-topbar .sv-demo-label { display:none; }
 .sv-header-inner { min-height:72px; gap:12px; }
 .sv-logo { width:150px; }
 .sv-header-actions { gap:8px; }
 .sv-header-actions .sv-btn { min-height:40px; padding:10px 12px; font-size:11px; gap:7px; }
 .sv-header-actions .sv-btn .sv-icon { width:15px; height:15px; }
 .sv-menu-toggle { width:40px; height:40px; }
 .sv-hero { padding:30px 0 39px; }
 .sv-hero-grid { grid-template-columns:1fr; gap:31px; }
 .sv-hero-copy { padding:0; }
 .sv-eyebrow { font-size:9px; letter-spacing:1.5px; gap:8px; margin-bottom:17px; }
 .sv-eyebrow::before { width:21px; }
 .sv-hero h1 { font-size:clamp(34px,8.95vw,49px); letter-spacing:-1.4px; line-height:1.28; }
 .sv-hero-intro { font-size:14px; line-height:1.8; margin:21px 0 24px; }
 .sv-hero-actions { gap:19px; }
 .sv-hero-actions .sv-btn { min-height:49px; font-size:13px; padding-inline:20px; }
 .sv-hero-actions .sv-text-link { font-size:12px; }
 .sv-hero-facts { margin-top:19px; font-size:11px; gap:11px; }
 .sv-hero-facts > span + span::before { margin-right:4px; }
 .sv-hero-visual { padding:9px 14px 12px 9px; width:min(420px,100%); margin-inline:auto; }
 .sv-hero-backdrop { inset:0 0 31px 28px; }
 .sv-hero-photo { height:406px; border-radius:180px 180px 8px 8px; }
 .sv-hero-photo img { object-position:center 55%; }
 .sv-photo-note { left:0; bottom:25px; padding:15px 20px; gap:12px; }
 .sv-photo-note strong { font-size:16px; }
 .sv-photo-note small { font-size:10px; }
 .sv-vertical-note { display:none; }
 .sv-trust-grid { min-height:0; grid-template-columns:1fr; padding:10px 0; }
 .sv-trust-item { padding:14px 0; justify-content:flex-start; gap:15px; font-size:12px; }
 .sv-trust-item + .sv-trust-item { border-left:0; border-top:1px solid var(--sv-line); }
 .sv-trust-item .sv-icon { width:22px; height:22px; }
 .sv-section { padding-block:60px; }
 h2 { font-size:31px; letter-spacing:-.95px; line-height:1.35; }
 .sv-section-head { flex-direction:column; align-items:flex-start; gap:20px; margin-bottom:30px; }
 .sv-section-head p { max-width:100%; font-size:14px; }
 .sv-services-grid { grid-template-columns:1fr; gap:13px; }
 .sv-service-card { min-height:0; padding:24px; }
 .sv-card-top { margin-bottom:18px; }
 .sv-service-card h3 { max-width:none; font-size:20px; }
 .sv-service-card p { margin-bottom:20px; }
 .sv-regularization { flex-direction:column; align-items:flex-start; gap:21px; padding:25px 24px; margin-top:20px; }
 .sv-regularization-copy { align-items:flex-start; gap:14px; }
 .sv-regularization-copy > .sv-icon { width:23px; height:23px; margin-top:5px; }
 .sv-regularization h3 { font-size:18px; }
 .sv-regularization .sv-text-link { margin-left:37px; font-size:12px; }
 .sv-about-grid { grid-template-columns:1fr; gap:42px; }
 .sv-about-visual { max-width:430px; width:100%; margin-inline:auto; padding:0 47px 28px 8px; }
 .sv-about-main { height:382px; border-radius:140px 140px 5px 5px; object-position:center 62%; }
 .sv-about-small { right:0; width:139px; height:174px; border-width:6px; }
 .sv-about-copy h2 { margin-bottom:21px; }
 .sv-about-copy p { font-size:14px; }
 .sv-about-copy .sv-about-quote { font-size:16px; }
 .sv-about-name { gap:20px; }
 .sv-about-name span { font-size:20px; }
 .sv-about-name small { font-size:11px; padding-left:20px; }
 .sv-centered { text-align:left; }
 .sv-centered .sv-eyebrow { justify-content:flex-start; }
 .sv-process-grid { grid-template-columns:1fr; gap:30px; margin-top:34px; }
 .sv-step { padding-left:62px; }
 .sv-step-number { position:absolute; top:0; left:0; width:38px; height:38px; }
 .sv-step:not(:last-child)::after { width:1px; left:19px; top:50px; height:calc(100% - 25px); }
 .sv-step h3 { font-size:20px; margin-bottom:11px; }
 .sv-step p { font-size:13px; max-width:none; }
 .sv-consult { padding-bottom:59px; }
 .sv-consult-panel { grid-template-columns:1fr; padding:30px 23px 23px; gap:27px; }
 .sv-consult-copy h2 { font-size:31px; }
 .sv-consult-copy > p { font-size:14px; }
 .sv-consult-features { flex-direction:row; flex-wrap:wrap; gap:16px; margin-top:23px; font-size:11px; }
 .sv-price-card { padding:25px 23px; }
 .sv-price strong { font-size:60px; }
 .sv-faq { padding-top:0; }
 .sv-faq-grid { grid-template-columns:1fr; gap:30px; }
 .sv-faq-copy h2 { margin-bottom:17px; max-width:100%; }
 .sv-faq-copy > p { max-width:100%; margin-bottom:16px; }
 .sv-faq-list summary { font-size:14px; padding:21px 0; }
 .sv-faq-list details p { font-size:13px; }
 .sv-contact { padding:34px 0; }
 .sv-contact h2 { font-size:25px; line-height:1.4; }
 .sv-contact p { font-size:13px; }
 .sv-contact-actions { gap:10px; width:100%; }
 .sv-contact-actions .sv-btn { font-size:12px; gap:9px; padding-inline:15px; flex:1; }
 .sv-footer { padding-top:32px; }
 .sv-footer-main { grid-template-columns:1fr 1fr; gap:23px 30px; padding-bottom:26px; }
 .sv-footer-brand { grid-column:1/-1; flex-direction:row; gap:25px; align-items:center; }
 .sv-footer-brand img { width:116px; }
 .sv-footer-brand p { font-size:12px; }
 .sv-footer-column h3 { margin-bottom:14px; font-size:11px; }
 .sv-footer-column a,.sv-footer-column > p,.sv-footer-column > button { font-size:11px; }
 .sv-footer-bottom { flex-direction:column; gap:13px; font-size:9px; }
 .sv-footer-legal { gap:17px; }
 .sv-footer-legal a { font-size:9px; }
 .sv-mobile-cta { display:flex; position:fixed; left:0; right:0; bottom:0; z-index:12; min-height:76px; align-items:center; justify-content:space-between; gap:16px; background:#FFFFFFF7; backdrop-filter:blur(8px); border-top:1px solid var(--sv-line); padding:11px 20px max(11px,env(safe-area-inset-bottom)); }
 .sv-mobile-cta strong { display:block; color:var(--sv-navy); font-size:17px; line-height:1.35; }
 .sv-mobile-cta-unit { font-size:12px; font-weight:400; }
 .sv-mobile-cta small { display:block; font-size:9px; color:var(--sv-muted); }
 .sv-mobile-cta .sv-btn { min-height:44px; font-size:12px; padding:11px 19px; }
 .sv-dialog { max-height:calc(100dvh - 20px); }
 .sv-dialog-head { padding:13px 20px; }
 .sv-dialog-body { padding:24px 21px; }
 .sv-dialog h2 { font-size:25px; }
 .sv-mode { padding:14px 10px; gap:9px; }
 .sv-mode .sv-icon { width:22px; height:22px; }
 .sv-mode strong { font-size:12px; }
 .sv-mode small { font-size:9px; }
 .sv-booking-progress { gap:10px; font-size:9px; letter-spacing:.1px; }
 .sv-booking-actions .sv-btn { font-size:12px; padding-inline:16px; min-height:46px; }
 .sv-calendar { gap:4px; }
 .sv-booking-summary dd { font-size:12px; }
}
/* ==========================================================================
   Páginas interiores. Mismos tokens, radios y ritmos que la home.
   ========================================================================== */
/* Cabecera de página */
.sv-page-hero { position:relative; padding:44px 0 64px; border-bottom:1px solid var(--sv-line); }
.sv-page-hero-copy { position:relative; max-width:600px; }
.sv-page-hero h1 { font-size:clamp(36px,3.6vw,50px); line-height:1.2; letter-spacing:-1.8px; }
.sv-page-intro { max-width:500px; margin:22px 0 28px; color:var(--sv-muted); font-size:16px; line-height:1.8; }
/* Imagen de ambiente como fondo: el texto queda sobre blanco y la imagen asoma a la derecha. */
.sv-page-hero-bg { display:flex; align-items:center; min-height:480px; padding:56px 0 72px; overflow:hidden; isolation:isolate; background:var(--sv-pale); }
.sv-page-hero-bg > .sv-wrap { flex:0 0 auto; }
.sv-page-hero-image { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:right center; }
.sv-page-hero-bg::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, #fff 0%, #fff 34%, rgba(255,255,255,.84) 50%, rgba(255,255,255,.28) 74%, rgba(255,255,255,.06) 100%); }
/* Con personas: difuminadas, más veladas y con un tinte azul claro, siempre en segundo plano. */
.sv-page-hero-people .sv-page-hero-image { filter:blur(4px) saturate(.75); transform:scale(1.08); }
.sv-page-hero-people::after { background:linear-gradient(90deg, #fff 0%, #fff 40%, rgba(255,255,255,.9) 56%, rgba(255,255,255,.6) 78%, rgba(255,255,255,.45) 100%), linear-gradient(rgba(220,232,250,.35), rgba(220,232,250,.35)); }
.sv-page-hero-plain { background:var(--sv-gray); border-bottom:0; padding:44px 0 56px; }
.sv-page-hero-plain .sv-page-intro { margin-bottom:0; max-width:620px; }
/* Migas */
.sv-breadcrumbs { margin-bottom:26px; font-size:12px; color:var(--sv-muted); }
.sv-breadcrumbs ol { display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0; padding:0; }
.sv-breadcrumbs li + li::before { content:"/"; margin-right:8px; color:#A9B6C9; }
.sv-breadcrumbs a:hover { color:var(--sv-blue); }
.sv-breadcrumbs [aria-current] { color:var(--sv-navy); }
/* Detalle de servicio */
.sv-detail-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:90px; align-items:start; }
.sv-detail-copy h2 { margin-bottom:24px; }
.sv-detail-copy h3 { font-size:21px; margin-bottom:12px; }
.sv-detail-copy > p { color:var(--sv-muted); font-size:15px; line-height:1.85; margin-bottom:16px; max-width:560px; }
.sv-detail-copy .sv-demo-notice { margin-top:24px; max-width:560px; }
.sv-detail-card { padding:34px 34px 30px; border:1px solid var(--sv-line); border-radius:6px; background:white; }
.sv-detail-card > h3 { font-size:21px; margin-bottom:18px; }
.sv-detail-card > .sv-btn { margin-top:26px; }
.sv-check-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--sv-line); }
.sv-check-list li { display:flex; align-items:flex-start; gap:14px; padding:14px 0; border-bottom:1px solid var(--sv-line); font-size:14px; line-height:1.65; color:var(--sv-ink); }
.sv-check-list .sv-icon { width:18px; height:18px; margin-top:2px; color:var(--sv-blue); }
.sv-consult-details { margin-top:56px; }
.sv-consult-details .sv-check-list { margin:6px 0 18px; max-width:420px; }
/* Para quién y valores */
.sv-audience { background:var(--sv-gray); }
.sv-audience h2 { margin-bottom:38px; }
.sv-audience-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.sv-values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:44px; }
.sv-values-grid-tight { margin-top:0; }
/* Sección con foto de fondo velada en gris: textura suave detrás de las tarjetas. */
.sv-photo-section { position:relative; overflow:hidden; isolation:isolate; }
.sv-photo-section-bg { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; filter:grayscale(1) blur(2px); transform:scale(1.04); }
.sv-photo-section::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(244,245,247,.9) 0%, rgba(244,245,247,.8) 100%); }
.sv-value { padding:30px 30px 28px; border:1px solid var(--sv-line); border-radius:6px; background:white; }
.sv-value > .sv-icon { width:30px; height:30px; stroke-width:1.2; color:var(--sv-blue); margin-bottom:20px; }
.sv-value h3 { font-size:19px; line-height:1.45; margin-bottom:10px; }
.sv-value p { font-size:14px; color:var(--sv-muted); line-height:1.75; }
/* Primera consulta: datos clave */
.sv-facts-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin:38px 0 0; }
.sv-fact { display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; column-gap:14px; row-gap:2px; padding:24px; border:1px solid var(--sv-line); border-radius:6px; }
.sv-fact .sv-icon { grid-row:1 / 3; width:24px; height:24px; color:var(--sv-blue); margin-top:3px; }
.sv-fact dt { font-size:11px; letter-spacing:1.3px; text-transform:uppercase; font-weight:900; color:var(--sv-muted); }
.sv-fact dd { margin:0; font-family:var(--sv-serif); color:var(--sv-navy); font-size:20px; line-height:1.35; }
/* Sobre mí */
.sv-about-page .sv-about-copy h1 { font-size:clamp(36px,3.6vw,50px); line-height:1.2; letter-spacing:-1.8px; }
.sv-about-page .sv-about-copy .sv-page-intro { margin:18px 0 20px; }
.sv-about-more { margin-top:26px; }
.sv-claim { padding:96px 0; background:var(--sv-navy); text-align:center; }
.sv-claim .sv-eyebrow { justify-content:center; color:var(--sv-pale); }
.sv-claim h2 { color:white; font-size:clamp(30px,3.4vw,46px); line-height:1.3; }
.sv-claim h2 em { color:var(--sv-pale); }
.sv-claim p { max-width:560px; margin:24px auto 0; color:#D3DEEF; font-size:15px; line-height:1.85; }
/* Banda con imagen: la foto queda muy velada bajo el azul marino, solo como textura. */
.sv-claim-image { position:relative; overflow:hidden; isolation:isolate; }
.sv-claim-bg { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; filter:blur(3px) saturate(.6); transform:scale(1.08); }
.sv-claim-image::after { content:""; position:absolute; inset:0; z-index:-1; background:rgba(0,43,115,.86); }
/* El panel de la consulta no tiene margen superior: tras la banda azul necesita aire. */
.sv-claim + .sv-consult { padding-top:98px; }
/* Banner de llamada a la acción: foto de fondo difuminada en el azul de marca, con parallax.
   Mismo patrón a todo el ancho que «Lo que me impulsa», pero comercial y alineado a la izquierda. */
.sv-banner { position:relative; overflow:hidden; isolation:isolate; padding:92px 0; background:var(--sv-blue); color:white; }
.sv-banner-bg { position:absolute; left:0; top:-18%; z-index:-2; width:100%; height:136%; object-fit:cover; filter:blur(6px) saturate(.75); transform:translate3d(0, var(--sv-parallax, 0px), 0) scale(1.06); }
.sv-banner::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(100deg, rgba(0,60,159,.95) 0%, rgba(0,60,159,.86) 48%, rgba(0,43,115,.66) 100%); }
.sv-banner-inner { display:grid; grid-template-columns:1fr auto; align-items:center; gap:70px; }
.sv-banner .sv-eyebrow { color:var(--sv-pale); }
.sv-banner h2 { color:white; max-width:640px; }
.sv-banner-copy > p { max-width:520px; margin-top:18px; color:#DCE8FA; font-size:15px; line-height:1.85; }
.sv-banner-facts { display:flex; flex-wrap:wrap; gap:10px; list-style:none; margin:26px 0 0; padding:0; }
.sv-banner-facts li { display:flex; align-items:center; gap:8px; padding:8px 14px; border:1px solid rgba(220,232,250,.35); border-radius:40px; background:rgba(255,255,255,.08); font-size:12px; color:white; }
.sv-banner-facts .sv-icon { width:15px; height:15px; }
.sv-banner-actions { display:flex; flex-direction:column; align-items:flex-start; gap:22px; padding-left:44px; border-left:1px solid rgba(220,232,250,.3); }
.sv-banner .sv-text-link { color:white; border-color:rgba(220,232,250,.55); }
/* Consulta en la home: enlace a su página */
.sv-consult-more { margin-top:28px; color:white; border-color:#6F89B9; }
/* Otros servicios y legales */
.sv-related { padding-top:0; }
.sv-faq.sv-faq-page { padding-top:104px; }
.sv-contact-schedule { font-size:13px; color:var(--sv-muted); margin:-6px 0 18px; }
.sv-prose { max-width:760px; }
.sv-prose > p { color:var(--sv-muted); font-size:15px; line-height:1.85; margin-bottom:24px; }
@media (max-width:1150px) {
 .sv-page-hero-bg { min-height:430px; }
 .sv-detail-grid { gap:55px; }
 .sv-facts-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:950px) {
 .sv-banner-inner { grid-template-columns:1fr; gap:34px; }
 .sv-banner-actions { flex-direction:row; flex-wrap:wrap; align-items:center; padding-left:0; border-left:0; }
 .sv-page-hero-copy { max-width:520px; }
 .sv-page-hero h1 { font-size:36px; letter-spacing:-1.3px; }
 .sv-page-hero-bg::after { background:linear-gradient(90deg, #fff 0%, rgba(255,255,255,.95) 48%, rgba(255,255,255,.55) 100%); }
 .sv-page-hero-people::after { background:linear-gradient(90deg, #fff 0%, rgba(255,255,255,.95) 52%, rgba(255,255,255,.72) 100%), linear-gradient(rgba(220,232,250,.35), rgba(220,232,250,.35)); }
 .sv-detail-grid { grid-template-columns:1fr; gap:40px; }
 .sv-values-grid { grid-template-columns:1fr; }
}
@media (max-width:680px) {
 .sv-page-hero { padding:26px 0 44px; }
 .sv-page-hero-bg { min-height:0; padding:26px 0 44px; }
 .sv-page-hero-image { object-position:center; }
 .sv-page-hero-bg::after { background:linear-gradient(180deg, rgba(255,255,255,.93) 0%, rgba(255,255,255,.88) 100%); }
 .sv-page-hero-people::after { background:linear-gradient(180deg, rgba(255,255,255,.95) 0%, rgba(255,255,255,.92) 100%); }
 .sv-page-hero h1, .sv-about-page .sv-about-copy h1 { font-size:clamp(31px,8.4vw,40px); letter-spacing:-1.1px; }
 .sv-page-intro { font-size:14px; margin:18px 0 22px; }
 .sv-breadcrumbs { margin-bottom:18px; font-size:11px; }
 .sv-detail-card { padding:24px 22px; }
 .sv-audience-grid, .sv-facts-grid { grid-template-columns:1fr; }
 .sv-value { padding:24px; }
 .sv-claim { padding:64px 0; }
 .sv-claim + .sv-consult { padding-top:59px; }
 .sv-banner { padding:60px 0; }
 .sv-banner-actions { flex-direction:column; align-items:stretch; }
 .sv-banner-actions .sv-text-link { align-self:flex-start; }
 .sv-faq.sv-faq-page { padding-top:60px; }
 .sv-footer-main { grid-template-columns:1fr 1fr; }
}
@media (prefers-reduced-motion:reduce) {
 .sv-banner-bg { transform:scale(1.06); }
 *, *::before, *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}


/* Reserva de la primera consulta.
   Todo el recorrido se resuelve en el servidor: el calendario son enlaces y las
   horas, botones de radio. No hace falta JavaScript para reservar. */
.sv-wizard { scroll-margin-top:20px; }
.sv-hours-label, .sv-wizard-nav { scroll-margin-top:24px; scroll-margin-bottom:24px; }
.sv-booking-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:40px; align-items:start; }
.sv-booking-main { min-width:0; }
.sv-step-title { display:flex; align-items:baseline; gap:12px; margin:36px 0 16px; font-family:var(--sv-serif); font-size:21px; color:var(--sv-navy); }
.sv-booking-main > .sv-step-title:first-child { margin-top:0; }
.sv-step-title span { flex:0 0 auto; font-family:var(--sv-sans); font-size:12px; font-weight:700; letter-spacing:.08em; color:var(--sv-sand-ink); }

.sv-mode[href] { text-decoration:none; color:inherit; }
.sv-mode-on { border-color:var(--sv-blue); background:#F0F5FD; }

.sv-cal { border:1px solid var(--sv-line); border-radius:8px; padding:18px; }
.sv-cal-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.sv-cal-head strong { font-size:15px; color:var(--sv-navy); }
.sv-cal-head strong::first-letter { text-transform:uppercase; }
.sv-cal-nav { display:flex; gap:8px; }
.sv-cal-nav a, .sv-cal-nav span { width:36px; height:36px; display:grid; place-items:center; border:1px solid var(--sv-line); border-radius:5px; color:var(--sv-navy); }
.sv-cal-nav span { opacity:.3; }
.sv-cal-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.sv-cal-weekday { text-align:center; font-size:11px; color:var(--sv-muted); padding:4px 0; }
.sv-cal-day { min-height:44px; display:grid; place-items:center; border:1px solid var(--sv-line); border-radius:5px; font-size:14px; color:var(--sv-navy); text-decoration:none; }
/* El hover solo donde hay ratón: en una pantalla táctil se queda pegado al
   tocar y el día elegido parecía arena en vez de azul. Y nunca sobre el día
   ya elegido, que manda su propio color. */
@media (hover:hover) {
  a.sv-cal-day:not(.sv-cal-on):hover { border-color:var(--sv-sand); background:var(--sv-sand-soft); }
  .sv-cal-nav a:hover { background:var(--sv-pale); border-color:var(--sv-blue); }
}
.sv-cal-off { border-color:transparent; background:#F7F8FA; color:#9BA4B2; }
a.sv-cal-day.sv-cal-on, .sv-cal-on { background:var(--sv-blue); border-color:var(--sv-blue); color:white; font-weight:700; }
.sv-cal-none, .sv-cal-hint { margin-top:14px; font-size:14px; color:var(--sv-muted); }
.sv-cal-times-label { padding:0; margin-bottom:10px; font-size:13px; color:var(--sv-navy); }

/* Las horas son etiquetas con un radio dentro: se ven como botones. */
.sv-time:has(input) { position:relative; cursor:pointer; }
.sv-time input { position:absolute; opacity:0; width:1px; height:1px; }
.sv-time:has(input:checked) { background:var(--sv-blue); border-color:var(--sv-blue); color:white; }
.sv-time:has(input:focus-visible) { outline:3px solid var(--sv-blue); outline-offset:2px; }

.sv-booking-form { margin-top:8px; }
.sv-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.sv-field { margin:0; display:flex; flex-direction:column; gap:6px; border:0; padding:0; }
.sv-field-wide { grid-column:1 / -1; }
.sv-field label, .sv-field legend { font-size:13px; font-weight:700; color:var(--sv-navy); }
.sv-field input, .sv-field select, .sv-field textarea {
  width:100%; min-height:48px; padding:12px 14px; border:1px solid var(--sv-line);
  border-radius:5px; background:white; color:var(--sv-ink); font-size:15px;
}
.sv-field textarea { min-height:110px; resize:vertical; }
.sv-field input:focus-visible, .sv-field select:focus-visible, .sv-field textarea:focus-visible { outline:3px solid var(--sv-blue); outline-offset:1px; border-color:var(--sv-blue); }

/* Señuelo: fuera de la vista, pero no display:none, que algunos robots detectan. */
.sv-honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.sv-consent { display:flex; margin:22px 0 0; font-size:14px; }
.sv-consent label { display:flex; align-items:flex-start; gap:10px; }
.sv-consent input { margin-top:3px; width:18px; height:18px; flex:0 0 auto; accent-color:var(--sv-blue); }
.sv-booking-submit { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:26px; }
.sv-booking-submit form { margin:0; }
.sv-btn-danger { color:#B3261E; border-color:#E7B9B6; }
.sv-btn-danger:hover { background:#FBEDEC; }

.sv-form-errors, .sv-form-success { padding:16px 18px; border-radius:6px; margin-bottom:26px; font-size:14px; }
.sv-form-errors { border:1px solid #E7B9B6; background:#FBEDEC; color:#7A1C16; }
.sv-form-success { border:1px solid #B7DCC6; background:#EEF8F2; color:#14532D; }
.sv-form-errors ul { margin:6px 0 0; padding-left:20px; }

.sv-booking-aside { border:1px solid var(--sv-sand-line); border-radius:8px; padding:24px; background:var(--sv-sand-soft); position:sticky; top:24px; }
.sv-booking-aside h2 { font-family:var(--sv-serif); font-size:19px; color:var(--sv-navy); margin-bottom:10px; }
.sv-booking-aside p { font-size:14px; color:var(--sv-muted); }
.sv-booking-aside dl { display:grid; gap:12px; margin:18px 0 0; }
.sv-booking-aside dt { font-size:12px; color:var(--sv-muted); }
.sv-booking-aside dd { margin:0; font-size:15px; font-weight:700; color:var(--sv-navy); }
/* En español el mes y el día van en minúscula: solo se levanta la inicial. */
.sv-booking-aside dd::first-letter, .sv-booking-detail dd::first-letter, .sv-cal-times-label::first-letter { text-transform:uppercase; }
.sv-booking-aside-note { margin-top:18px; font-size:13px; }

.sv-booking-confirm { max-width:720px; }
.sv-booking-detail { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:0; }
.sv-booking-detail > div { border-top:1px solid var(--sv-line); padding-top:12px; }
.sv-booking-detail dt { font-size:12px; color:var(--sv-muted); margin-bottom:4px; }
.sv-booking-detail dd { margin:0; font-size:16px; font-weight:700; color:var(--sv-navy); }
.sv-booking-note { margin-top:20px; font-size:14px; color:var(--sv-muted); }

@media (max-width:900px) {
  .sv-booking-layout { grid-template-columns:1fr; gap:28px; }
  .sv-booking-aside { position:static; order:-1; }
}
@media (max-width:640px) {
  .sv-form-grid, .sv-booking-detail { grid-template-columns:1fr; }
  .sv-cal { padding:12px; }
  .sv-cal-grid { gap:4px; }
  .sv-cal-day { min-height:40px; font-size:13px; }
  .sv-step-title { font-size:19px; }
  .sv-booking-submit .sv-btn { width:100%; }
}

/* Formulario por pasos y horas repartidas en franjas. */
.sv-wizard-steps { display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0 0 30px; padding:0; }
.sv-wizard-steps li { display:flex; align-items:center; gap:8px; padding:8px 14px; border:1px solid var(--sv-sand-line); border-radius:999px; background:var(--sv-sand-soft); color:var(--sv-muted); font-size:12px; }
.sv-wizard-steps li span { font-weight:700; color:var(--sv-sand-ink); }
.sv-wizard-steps li.sv-on { border-color:var(--sv-blue); background:var(--sv-blue); color:white; }
.sv-wizard-steps li.sv-on span { color:white; }
.sv-wizard-nav { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }

.sv-tz { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:16px; font-size:13px; }
.sv-tz label { color:var(--sv-muted); }
.sv-tz select { min-height:42px; max-width:100%; padding:8px 12px; border:1px solid var(--sv-line); border-radius:5px; background:white; color:var(--sv-ink); font-size:14px; }
.sv-tz-apply { min-height:42px; padding:8px 16px; border:1px solid var(--sv-sand-line); border-radius:5px; background:var(--sv-sand-soft); color:var(--sv-sand-ink); font-size:13px; }

.sv-hours-label { margin:24px 0 12px; font-size:14px; color:var(--sv-navy); font-weight:700; }
.sv-hours-label::first-letter { text-transform:uppercase; }
.sv-hours { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.sv-hours-part { min-width:0; }
.sv-hours-part h3 { margin:0 0 10px; padding-bottom:8px; border-bottom:1px solid var(--sv-sand-line); color:var(--sv-sand-ink); font-family:var(--sv-sans); font-size:11px; font-weight:900; letter-spacing:1.4px; text-transform:uppercase; }
.sv-hours-part .sv-time { display:flex; justify-content:center; width:100%; margin-bottom:8px; }
.sv-hours-part .sv-time small { display:block; font-size:10px; opacity:.75; }
.sv-hours-none { margin:0; color:var(--sv-muted); font-size:12px; }
.sv-cal[aria-busy="true"] { opacity:.55; }

@media (max-width:640px) {
  /* En el móvil cada franja ocupa una fila y sus horas van en rejilla:
     apiladas una por línea la lista se hace larguísima. */
  .sv-hours { grid-template-columns:1fr; gap:22px; }
  .sv-hours-part { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .sv-hours-part h3, .sv-hours-none { grid-column:1 / -1; }
  .sv-hours-part .sv-time { margin:0; }
  .sv-wizard-steps li { flex:1 1 auto; justify-content:center; }
  .sv-tz select { width:100%; }
}

/* Cómo pagar la consulta, cuando el despacho pide el pago por adelantado. */
.sv-pay { border:1px solid var(--sv-sand-line); background:var(--sv-sand-soft); border-radius:8px; padding:22px 24px; margin-bottom:26px; }
.sv-pay h2 { font-family:var(--sv-serif); font-size:19px; color:var(--sv-navy); margin-bottom:10px; }
.sv-pay p { font-size:14px; color:var(--sv-muted); margin-bottom:10px; }
.sv-pay ul { list-style:none; margin:0 0 10px; padding:0; display:grid; gap:10px; }
.sv-pay li { display:flex; flex-wrap:wrap; gap:4px 10px; padding:12px 14px; border:1px solid var(--sv-line); border-radius:6px; background:white; }
.sv-pay li strong { color:var(--sv-navy); font-size:13px; }
.sv-pay li span { font-size:15px; overflow-wrap:anywhere; }
.sv-pay-concept { font-weight:700; color:var(--sv-navy) !important; }

/* El error, también junto al control que lo provocó. */
.sv-field-error { margin:14px 0 0; padding:10px 14px; border-left:3px solid #B3261E; background:#FBEDEC; color:#7A1C16; font-size:14px; border-radius:0 4px 4px 0; }
