/* Generado por generador/bloques: tema dentro de la marca del cliente (contraste AA comprobado). */
:root{--principal:#1F4FD8;--acento:#16A34A;--texto:#111827;--fondo:#FFFFFF;--superficie:#F5F6F6;--borde:#898D94;--sobre-principal:#FFFFFF;--suave:#4C525D;--tipografia:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;}
/* Bloques Segac · base (móvil primero). WCAG 2.2 AA: foco visible y no tapado, objetivos ≥ 44 px, reflujo a 320 px,
   texto ampliable al 200 %, sin información solo por color, movimiento reducido y colores forzados. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:1rem}
body{margin:0;background:var(--fondo);color:var(--texto);font-family:var(--tipografia);font-size:1.0625rem;line-height:1.6;overflow-wrap:break-word}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{line-height:1.2;margin:0 0 .5em;text-wrap:balance}
h1{font-size:clamp(1.9rem,1.4rem + 2.6vw,3.1rem)}
h2{font-size:clamp(1.45rem,1.2rem + 1.2vw,2.1rem)}
h3{font-size:1.2rem}
p,ul,ol,blockquote,figure,dl{margin:0 0 1em}
a{color:var(--principal);text-decoration-thickness:.08em;text-underline-offset:.15em}
a:hover{text-decoration-thickness:.16em}
:focus-visible{outline:3px solid var(--principal);outline-offset:3px;border-radius:2px}
.contenedor{width:100%;max-width:72rem;margin:0 auto;padding:0 1rem}
.saltar{position:absolute;left:1rem;top:-10rem;z-index:10;background:var(--fondo);color:var(--principal);padding:.75rem 1rem;border:2px solid var(--principal)}
.saltar:focus{top:1rem}
main:focus{outline:none}

/* Cabecera */
.cabecera{border-bottom:1px solid var(--borde);background:var(--fondo)}
.cabecera .contenedor{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;padding-top:.75rem;padding-bottom:.75rem}
.cabecera-centrada .contenedor{flex-direction:column;text-align:center}
.marca a{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;color:var(--texto);text-decoration:none;font-weight:700;font-size:1.3rem}
.marca-logo{max-height:3.5rem;width:auto}
.punto{display:inline-block;width:.5em;height:.5em;border-radius:50%;background:var(--acento)}
.navegacion{flex:1 1 auto}
.cabecera-centrada .navegacion{flex:0 1 auto}
.navegacion ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem 1rem}
.cabecera-centrada .navegacion ul{justify-content:center}
.navegacion a{display:inline-flex;align-items:center;min-height:44px;padding:0 .25rem;color:var(--texto)}
.navegacion a[aria-current="page"]{font-weight:700;text-decoration-thickness:.16em}

/* Botones (objetivo ≥ 44 px) */
.boton{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:.5rem 1.25rem;border-radius:.5rem;border:2px solid var(--principal);background:var(--principal);color:var(--sobre-principal);font:inherit;font-weight:600;text-decoration:none;cursor:pointer}
.boton:hover{text-decoration:underline}
.boton-secundario{background:transparent;color:var(--principal)}
.llamadas{display:flex;flex-wrap:wrap;gap:.75rem}

/* Bloques */
.bloque{padding:2.5rem 0}
.bloque+.bloque{border-top:1px solid var(--borde)}
.entradilla{font-size:1.125rem;color:var(--suave);max-width:48rem}
.heroe{padding:2.5rem 0 3rem}
.heroe-rejilla{display:grid;gap:1.5rem;align-items:center}
.heroe-subtitulo{font-size:1.2rem;max-width:42rem}
.heroe-imagen img,.imagen img{border-radius:.75rem;width:100%;object-fit:cover}
.foco-0-0{object-position:0% 0%}.foco-0-25{object-position:0% 25%}.foco-0-50{object-position:0% 50%}.foco-0-75{object-position:0% 75%}.foco-0-100{object-position:0% 100%}.foco-25-0{object-position:25% 0%}.foco-25-25{object-position:25% 25%}.foco-25-50{object-position:25% 50%}.foco-25-75{object-position:25% 75%}.foco-25-100{object-position:25% 100%}.foco-50-0{object-position:50% 0%}.foco-50-25{object-position:50% 25%}.foco-50-75{object-position:50% 75%}.foco-50-100{object-position:50% 100%}.foco-75-0{object-position:75% 0%}.foco-75-25{object-position:75% 25%}.foco-75-50{object-position:75% 50%}.foco-75-75{object-position:75% 75%}.foco-75-100{object-position:75% 100%}.foco-100-0{object-position:100% 0%}.foco-100-25{object-position:100% 25%}.foco-100-50{object-position:100% 50%}.foco-100-75{object-position:100% 75%}.foco-100-100{object-position:100% 100%}
.heroe-imagen-fondo .heroe-rejilla{position:relative}
.heroe-imagen-fondo .heroe-texto{background:var(--fondo);padding:1.25rem;border-radius:.75rem;border:1px solid var(--borde)}
.tarjetas{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}
.tarjeta{background:var(--superficie);border:1px solid var(--borde);border-radius:.75rem;padding:1.25rem;display:flex;flex-direction:column}
.tarjeta img{border-radius:.5rem;margin-bottom:1rem;aspect-ratio:4/3;object-fit:cover;width:100%}
.tarjeta>:last-child{margin-bottom:0}
.tarjeta .enlace{margin-top:auto}
.pasos{counter-reset:paso;list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.pasos>li{counter-increment:paso;position:relative;padding-left:3.25rem;min-height:2.5rem}
.pasos>li::before{content:counter(paso);position:absolute;left:0;top:0;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--principal);color:var(--sobre-principal);display:grid;place-items:center;font-weight:700}
.paso-titulo{display:block;font-weight:700;margin-bottom:.25rem}
.galeria{list-style:none;margin:0;padding:0;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr))}
.galeria figure{margin:0}
.galeria img{aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:.5rem}
.galeria-mosaico img{aspect-ratio:auto}
.galeria figcaption{font-size:.95rem;color:var(--suave);padding-top:.35rem}
.testimonios{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.testimonio{margin:0;background:var(--superficie);border:1px solid var(--borde);border-left:.35rem solid var(--acento);border-radius:.75rem;padding:1.25rem}
.testimonio blockquote{margin:0 0 .75rem;font-size:1.1rem}
.testimonio figcaption{color:var(--suave)}
.testimonio .autor{font-weight:700;color:var(--texto)}
.pregunta{border-bottom:1px solid var(--borde);padding:1rem 0}
.pregunta:last-child{border-bottom:0}
.pregunta>:last-child{margin-bottom:0}
.precio{font-weight:700}
.planes{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}
.plan{background:var(--superficie);border:1px solid var(--borde);border-radius:.75rem;padding:1.25rem;display:flex;flex-direction:column}
.plan-destacado{border:3px solid var(--principal)}
.plan-etiqueta{font-weight:700;color:var(--principal);margin-bottom:.25rem}
.plan-precio{font-size:1.8rem;font-weight:700;margin-bottom:.5rem}
.plan-periodo{font-size:1rem;font-weight:400;color:var(--suave)}
.plan .boton{margin-top:auto}
.plan ul{padding-left:1.25rem}
.datos-contacto{list-style:none;padding:0}
.datos-contacto li{margin-bottom:.5rem}
.datos-contacto a{display:inline-block;min-height:24px}
.mapa-enlaces{display:flex;flex-wrap:wrap;gap:.75rem}
.legal h2{margin-top:1.5rem}
.legal-fecha{color:var(--suave)}
.texto-cuerpo{max-width:48rem}
.imagen{margin:0 0 1rem}
.listado-grupos{display:grid;gap:1rem}
.horario{list-style:none;padding:0}
.horario li{padding:.35rem 0;border-bottom:1px solid var(--borde)}
.horario .dias{font-weight:700}

/* Formulario: etiquetas siempre visibles, campos ≥ 44 px, error no solo por color */
.formulario{display:grid;gap:1rem;max-width:40rem;margin-top:1rem}
.campo{display:grid;gap:.35rem}
.campo label{font-weight:600}
.campo input,.campo textarea{font:inherit;color:var(--texto);background:var(--fondo);border:2px solid var(--borde);border-radius:.5rem;padding:.6rem .75rem;min-height:44px;width:100%}
.campo input:focus-visible,.campo textarea:focus-visible{border-color:var(--principal)}
.consentimiento{grid-template-columns:auto 1fr;align-items:start;gap:.6rem}
.consentimiento input{width:24px;height:24px;min-height:24px;margin:.15rem 0 0}
.opcional{font-weight:400;color:var(--suave)}
.campo-trampa{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.formulario-aviso{color:var(--suave)}
.visualmente-oculto{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.tienda-anadir{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin-top:auto}
.tienda-anadir .campo-cantidad{max-width:8rem}
.disponibilidad,.referencia{color:var(--suave);font-size:.95rem}
.tienda-pedido fieldset{border:1px solid var(--borde);border-radius:.75rem;padding:1rem;display:grid;gap:1rem;margin:0 0 1rem}
.tienda-pedido legend{font-weight:700;padding:0 .25rem}
.tienda-lineas table{width:100%;border-collapse:collapse}.tienda-lineas th,.tienda-lineas td{text-align:left;padding:.5rem;border-bottom:1px solid var(--borde)}
.tienda-lineas td.importe,.tienda-lineas th.importe{text-align:right}
.tienda-estado:empty{display:none}
[hidden]{display:none!important}

/* Pie */
.pie{border-top:1px solid var(--borde);padding:2rem 0;color:var(--suave);background:var(--superficie)}
.pie p{margin:0 0 .5rem}
.pie a{display:inline-block;min-height:24px}
.pie strong{color:var(--texto)}
.pie-legal{list-style:none;padding:0;margin:0 0 .5rem;display:flex;flex-wrap:wrap;gap:.25rem 1rem}

/* Escritorio */
@media (min-width:48rem){
  .heroe-imagen-lateral .heroe-rejilla{grid-template-columns:1.1fr 1fr}
  .heroe-imagen-fondo .heroe-rejilla{grid-template-columns:1fr}
  .heroe-imagen-fondo .heroe-imagen{grid-area:1/1}
  .heroe-imagen-fondo .heroe-texto{grid-area:1/1;align-self:end;margin:1.5rem;max-width:40rem}
  .tarjetas,.planes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pasos{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}
  .testimonios{grid-template-columns:repeat(2,minmax(0,1fr))}
  .listado-grupos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .texto-con-imagen{display:grid;grid-template-columns:2fr 1fr;gap:2rem;align-items:start}
}
@media (min-width:64rem){
  .columnas-3,.planes{grid-template-columns:repeat(3,minmax(0,1fr))}
  .columnas-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .bloque{padding:3.5rem 0}
}

/* Preferencias del usuario */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media (prefers-contrast:more){.tarjeta,.plan,.testimonio,.campo input,.campo textarea{border-color:var(--texto)}.entradilla,.pie,.legal-fecha{color:var(--texto)}}
@media (forced-colors:active){.boton{border:2px solid ButtonText}.pasos>li::before{border:1px solid CanvasText}.punto{forced-color-adjust:none}}
@media print{.cabecera nav,.saltar,.formulario,.llamadas{display:none!important}body{color:#000;background:#fff}a{color:#000}.bloque{padding:1rem 0;break-inside:avoid}}
