/* ==========================================================================
   Biguntek — componentes de las subpáginas de servicio (/servicios/<slug>/)
   Se apoya en styles.css (tokens, cabecera, botones, .eyebrow, .title, .list…).
   Todos los bloques animados usan [data-reveal] → .in (y se deshacen al subir).
   ========================================================================== */
.subpage main{overflow-x:clip}
.btn-lg{padding:14px 24px;font-size:16px}
.container.narrow{max-width:860px}

/* Ruta de navegación */
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:22px;font-size:13px;color:var(--gray-2)}
.crumbs a{color:var(--gray-1)}
.crumbs a:hover{color:var(--fg)}
.crumbs [aria-current]{color:var(--fg);font-weight:500}

/* ---------- Portada de la subpágina ---------- */
.sp-hero{padding:40px 0 96px}
.sp-hero .container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.sp-hero h1{margin-top:14px;font-size:clamp(36px,4.6vw,58px);font-weight:600;letter-spacing:-.035em;line-height:1.05;text-wrap:balance}
.sp-hero h1 .muted{color:var(--gray-2)}
.sp-hero .lead{margin-top:18px;font-size:18.5px}
.sp-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.sp-trust{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:26px;list-style:none;font-size:14px;color:var(--gray-1)}
.sp-trust li{display:inline-flex;align-items:center;gap:7px}
.sp-trust svg{width:16px;height:16px;color:var(--brand-text)}
.sp-visual{position:relative;min-width:0}
.sp-visual > img{width:100%;height:auto;border-radius:28px;box-shadow:var(--shadow)}
@media (max-width:960px){.sp-hero .container{grid-template-columns:1fr;gap:40px}}

/* ---------- Secciones ---------- */
.sp-sec{padding:110px 0}
.sp-sec.tinted{background:#f5f5f7}
.sp-sec.dark{background:#0b0b0c;color:#f5f5f7}
.sp-sec.dark .title{color:#fff}.sp-sec.dark .title .muted,.sp-sec.dark .lead{color:#a1a1a6}
.sp-head{max-width:760px}
.sp-head.center{margin:0 auto;text-align:center}
.sp-head.center .lead{margin-left:auto;margin-right:auto}
.title.sm{font-size:clamp(26px,3vw,34px)}
@media (max-width:640px){.sp-sec{padding:76px 0}.sp-hero{padding-bottom:64px}}

/* Texto largo (SEO): columnas de lectura cómoda */
.sp-prose{max-width:720px;margin-top:22px;font-size:17px;line-height:1.7;color:var(--gray-1)}
.sp-prose p + p{margin-top:14px}
.sp-prose strong{color:var(--fg);font-weight:600}
.sp-prose h3{margin-top:28px;font-size:20px;font-weight:600;letter-spacing:-.015em;color:var(--fg)}

/* Prestaciones: tarjetas con el icono al lado del título */
.sp-feats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:52px}
.sp-feat{padding:26px 24px;border-radius:24px;background:#fff;border:1px solid var(--line)}
.sp-sec.tinted .sp-feat{border-color:transparent}
.sp-feat-h{display:flex;align-items:center;gap:10px}
.sp-feat-h svg{flex:none;width:22px;height:22px;color:var(--brand-text);stroke-width:1.8}
.sp-feat h3{font-size:17.5px;font-weight:600;letter-spacing:-.015em}
.sp-feat p{margin-top:10px;font-size:15px;line-height:1.55;color:var(--gray-1)}
@media (max-width:960px){.sp-feats{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.sp-feats{grid-template-columns:1fr}}

/* Cifras animadas */
.sp-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:48px;list-style:none}
.sp-stats li{padding:26px 20px;border-radius:22px;background:#fff;text-align:center}
.sp-sec:not(.tinted) .sp-stats li{background:#f5f5f7}
.sp-stats b{display:block;font-size:clamp(34px,3.6vw,48px);font-weight:600;letter-spacing:-.035em;line-height:1;color:var(--brand-text);font-variant-numeric:tabular-nums}
.sp-stats span{display:block;margin-top:10px;font-size:14px;color:var(--gray-1);line-height:1.4}
@media (max-width:860px){.sp-stats{grid-template-columns:1fr 1fr}}

/* Bloque partido: texto + visual */
.sp-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.sp-split.reverse > :first-child{order:2}
@media (max-width:960px){.sp-split{grid-template-columns:1fr;gap:36px}.sp-split.reverse > :first-child{order:0}}

/* Gráfico de barras horizontales animadas */
.sp-bars{display:grid;gap:16px;padding:28px;border-radius:24px;background:#fff;border:1px solid var(--line)}
.sp-bar{display:grid;grid-template-columns:1fr auto;gap:8px 12px;font-size:14.5px}
.sp-bar b{font-weight:600;font-variant-numeric:tabular-nums}
.sp-bar i{grid-column:1/-1;height:10px;border-radius:10px;background:#eef0f2;overflow:hidden}
.sp-bar i::before{content:"";display:block;height:100%;width:var(--v);border-radius:inherit;background:var(--c,var(--brand));transform:scaleX(0);transform-origin:left;transition:transform 1300ms var(--ease-out)}
.in .sp-bar i::before,.sp-bars.in .sp-bar i::before{transform:scaleX(1)}
.sp-bar:nth-child(2) i::before{transition-delay:120ms}.sp-bar:nth-child(3) i::before{transition-delay:240ms}.sp-bar:nth-child(4) i::before{transition-delay:360ms}.sp-bar:nth-child(5) i::before{transition-delay:480ms}

/* Comparativa antes / con Biguntek */
.sp-vs{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:48px}
.sp-vs > div{padding:28px;border-radius:24px;background:#fff;border:1px solid var(--line)}
.sp-vs > div.good{border:2px solid var(--brand)}
.sp-vs h3{font-size:19px;font-weight:600}
.sp-vs ul{list-style:none;display:grid;gap:12px;margin-top:16px}
.sp-vs li{display:grid;grid-template-columns:20px 1fr;gap:10px;font-size:15px;color:var(--gray-1)}
.sp-vs li svg{width:18px;height:18px;margin-top:2px}
.sp-vs .bad li svg{color:#c81e3a}.sp-vs .good li svg{color:var(--brand-text)}
@media (max-width:760px){.sp-vs{grid-template-columns:1fr}}

/* Proceso numerado animado (reutiliza .proc de styles.css si se envuelve en .tel2-steps) */
.sp-steps{margin-top:48px}

/* Casos de uso / sectores */
.sp-cases{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:44px;list-style:none}
.sp-cases li{padding:20px;border-radius:20px;background:#fff;border:1px solid var(--line)}
.sp-cases b{display:flex;align-items:center;gap:8px;font-size:15.5px;font-weight:600}
.sp-cases b svg{width:18px;height:18px;color:var(--brand-text)}
.sp-cases span{display:block;margin-top:6px;font-size:14px;color:var(--gray-1);line-height:1.5}
@media (max-width:960px){.sp-cases{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.sp-cases{grid-template-columns:1fr}}

/* Preguntas frecuentes */
.sp-faq{margin-top:40px;border-top:1px solid var(--line)}
.sp-q{border-bottom:1px solid var(--line)}
.sp-q summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 2px;cursor:pointer;list-style:none;font-size:17.5px;font-weight:600;letter-spacing:-.01em}
.sp-q summary::-webkit-details-marker{display:none}
.sp-q summary::after{content:"";flex:none;width:10px;height:10px;border-right:2px solid var(--gray-2);border-bottom:2px solid var(--gray-2);transform:translateY(-3px) rotate(45deg);transition:transform 300ms var(--ease-out)}
.sp-q[open] summary::after{transform:translateY(3px) rotate(-135deg)}
.sp-a p{padding:0 30px 22px 2px;font-size:16px;line-height:1.65;color:var(--gray-1)}

/* Llamada a la acción por teléfono */
.sp-cta{padding:30px 0 90px}
.sp-cta-in{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;padding:48px;border-radius:32px;
  background:linear-gradient(120deg,#14532d,#1f7a31 60%,#25883a);color:#fff}
.sp-cta h2{font-size:clamp(26px,3vw,36px);font-weight:600;letter-spacing:-.03em;line-height:1.1;max-width:22ch}
.sp-cta p{margin-top:10px;max-width:54ch;color:#dcefdf}
.sp-cta-actions{display:flex;flex-wrap:wrap;gap:12px}
.btn-white svg,.btn-ghost-white svg{width:18px;height:18px}
@media (max-width:640px){.sp-cta-in{padding:30px 24px}}

/* Servicios relacionados */
.sp-rels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:28px}
.sp-rel{display:grid;gap:6px;padding:22px;border-radius:22px;background:#f5f5f7;transition:transform 240ms cubic-bezier(.32,.72,0,1),background-color 200ms ease}
.sp-rel svg{width:24px;height:24px;color:var(--brand-text)}
.sp-rel b{margin-top:6px;font-size:16px;font-weight:600}
.sp-rel span{font-size:14px;color:var(--gray-2)}
.sp-rel:active{transform:scale(.98)}
@media (hover:hover) and (pointer:fine){.sp-rel:hover{background:#ececf0}.sp-rel:hover span{color:var(--brand-text)}}
@media (max-width:860px){.sp-rels{grid-template-columns:1fr 1fr}}
.sp-stats b span{display:inline;margin:0;font-size:inherit;color:inherit;line-height:inherit}
.sp-sec:not(.tinted) .tel2-steps{background:#f5f5f7}

/* ---------- Documentos legales ---------- */
.doc{padding-top:36px;padding-bottom:112px}
.doc h1{font-size:clamp(34px,4.4vw,52px);font-weight:600;letter-spacing:-.035em;line-height:1.06}
.doc-date{margin-top:14px;font-size:14px;color:var(--gray-2)}
.doc h2{margin-top:48px;font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1.25}
.doc p,.doc li{font-size:17px;line-height:1.7;color:var(--gray-1)}
.doc>p,.doc li{text-align:justify;hyphens:auto;-webkit-hyphens:auto}
.doc>h1+p,.doc>h1+div,.doc>h1+h2,.doc>h1+ul,.doc>h1+ol{margin-top:32px}
.doc ol{margin-top:14px;padding-left:24px;display:grid;gap:8px}
.doc>ol>li::marker{font-weight:600;color:var(--fg)}
.doc u{text-underline-offset:3px}
.doc h2{scroll-margin-top:96px}
.doc-table td p{margin-top:0}
.doc-table td{font-size:15.5px}
.doc p{margin-top:14px}
.doc ul{margin-top:14px;padding-left:22px;display:grid;gap:8px}
.doc strong{color:var(--fg);font-weight:600}
.doc a{color:var(--brand-text);text-decoration:underline;text-underline-offset:3px}
.doc code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;background:var(--tint);padding:2px 6px;border-radius:6px}
.doc-table{margin-top:18px;overflow-x:auto;border:1px solid var(--line);border-radius:14px}
.doc-table table{width:100%;border-collapse:collapse;font-size:15.5px;line-height:1.55;min-width:520px}
.doc-table th,.doc-table td{text-align:left;vertical-align:top;padding:12px 16px;border-bottom:1px solid var(--line);color:var(--gray-1)}
.doc-table th{font-weight:600;color:var(--fg);background:var(--tint)}
.doc-table tr:last-child td{border-bottom:0}
@media (max-width:640px){.doc{padding-bottom:80px}.doc h2{margin-top:40px}}
