/* 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}
/* Tienda en vivo (bloque tienda-viva): escaparate, ficha, cesta y pedido. Fotos con tamaño estable (proporción fija:
   nada salta al cargar), objetivos ≥ 44 px, avisos con texto (nunca solo color) y una sola columna a 360 px. */
.tv-estado{margin:0 0 1rem;color:var(--suave)}.tv-estado:empty{margin:0}
.tv-lista{list-style:none;margin:0 0 1.5rem;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,9.5rem),1fr))}
.tv-tarjeta{position:relative;display:flex;flex-direction:column;gap:.5rem;background:var(--superficie);border:1px solid var(--borde);border-radius:.75rem;padding:.75rem}
.tv-tarjeta:focus-within{outline:3px solid var(--principal);outline-offset:2px}
.tv-tarjeta .tv-foto{order:-1}
.tv-tarjeta-titulo{font-size:1.05rem;margin:0}
.tv-tarjeta-titulo a{color:var(--texto);text-decoration:none}
.tv-tarjeta-titulo a::after{content:"";position:absolute;inset:0;border-radius:.75rem}
.tv-tarjeta-titulo a:focus-visible{outline:none}
.tv-tarjeta-titulo a:hover{text-decoration:underline}
.tv-tarjeta-pie{margin-top:auto;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem .75rem}
.tv-tarjeta-pie p{margin:0}
.tv-foto{aspect-ratio:4/3;border-radius:.5rem;overflow:hidden;background:var(--fondo);border:1px solid var(--borde);display:grid;place-items:center}
.tv-foto img{width:100%;height:100%;object-fit:cover}
.tv-sin-foto{color:var(--suave);font-size:.9rem}
.tv-precio{font-weight:700;font-variant-numeric:tabular-nums}
.tv-precio-grande{font-size:1.6rem;margin:0 0 .25rem}
.tv-disponible{color:var(--suave);font-size:.95rem}
.tv-agotado{color:var(--texto);font-weight:600}
.tv-nota{color:var(--suave);font-size:.95rem}
.tv-pie{margin:0}
.tv-vacio{border:1px dashed var(--borde);border-radius:.75rem;padding:2rem 1.25rem;text-align:center;margin:0 0 1.5rem;background:var(--superficie)}
.tv-vacio-titulo{font-size:1.25rem;font-weight:700;color:var(--texto)}
.tv-vacio>:last-child{margin-bottom:0}
.tv-ficha-rejilla{display:grid;gap:1.5rem;margin-bottom:1.5rem}
.tv-ficha-titulo{font-size:clamp(1.6rem,1.3rem + 1.4vw,2.3rem)}
.tv-ficha-titulo:focus{outline:none}
.tv-galeria{display:grid;gap:.75rem;align-content:start}
.tv-miniaturas{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.tv-miniatura{width:4.5rem;min-height:44px;padding:0;border:2px solid var(--borde);border-radius:.5rem;background:var(--fondo);cursor:pointer;overflow:hidden}
.tv-miniatura img{aspect-ratio:4/3;object-fit:cover;width:100%}
.tv-miniatura[aria-pressed="true"]{border-color:var(--principal);border-width:3px}
.tv-descripcion{max-width:42rem;white-space:pre-line}
.tv-anadir{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin:1rem 0 .5rem}
.tv-anadir .campo-cantidad{max-width:7rem}
.tv-variantes{flex:1 1 100%;border:1px solid var(--borde);border-radius:.75rem;padding:.75rem 1rem;margin:0;display:grid;gap:.5rem}
.tv-variantes legend{font-weight:700;padding:0 .25rem}
.boton:disabled{opacity:.6;cursor:not-allowed;text-decoration:none}
.tv-aviso-anadido:empty{display:none}
.tv-aviso-anadido{border-left:.3rem solid var(--principal);padding:.5rem .75rem;background:var(--superficie);border-radius:.25rem}
.tv-cesta h3{margin-bottom:.75rem}
.tv-lineas{list-style:none;margin:0 0 1rem;padding:0;border-top:1px solid var(--borde)}
.tv-linea{display:grid;grid-template-columns:4.5rem minmax(0,1fr) auto;grid-template-areas:"foto texto texto" "foto cantidad importe" ". quitar quitar";gap:.5rem .75rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--borde)}
.tv-foto-linea{grid-area:foto;align-self:start}
.tv-linea-texto{grid-area:texto}.tv-linea-texto p{margin:0}
.tv-linea-nombre{font-weight:700}
.tv-linea-nombre a{color:var(--texto)}
.tv-cantidad{grid-area:cantidad;display:flex;align-items:center;gap:.25rem}
.tv-cantidad input{width:3.5rem;min-height:44px;text-align:center;font:inherit;color:var(--texto);background:var(--fondo);border:2px solid var(--borde);border-radius:.5rem;-moz-appearance:textfield}
.tv-cantidad input::-webkit-inner-spin-button,.tv-cantidad input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.tv-paso{min-width:44px;min-height:44px;font:inherit;font-size:1.25rem;font-weight:700;line-height:1;color:var(--principal);background:var(--fondo);border:2px solid var(--borde);border-radius:.5rem;cursor:pointer}
.tv-paso:disabled{color:var(--suave);cursor:not-allowed}
.tv-linea-importe{grid-area:importe;margin:0;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.tv-quitar{grid-area:quitar;justify-self:start;min-height:44px;padding:0 .25rem;font:inherit;color:var(--principal);background:none;border:0;text-decoration:underline;cursor:pointer}
.tv-subtotal{margin:0 0 1.5rem}
.tv-total{display:flex;justify-content:space-between;gap:1rem;font-size:1.15rem;margin:0 0 .25rem}
.tv-total strong{font-variant-numeric:tabular-nums}
.tv-aviso-pago{border-left:.3rem solid var(--principal);background:var(--superficie);padding:.75rem 1rem;border-radius:.25rem;max-width:40rem}
.tv-aviso-prueba{border-left-style:dashed}
.tv-pedido fieldset{border:1px solid var(--borde);border-radius:.75rem;padding:1rem;display:grid;gap:1rem;margin:0}
.tv-pedido legend{font-weight:700;padding:0 .25rem}
.tv-pedido .tv-nota{margin:0}
.tv-error{margin:0;font-weight:600;color:var(--texto)}
.consentimiento .tv-error{grid-column:1/-1}
.tv-error::before,.tv-error-general:not(:empty)::before{content:"⚠ " / ""}
.campo input[aria-invalid="true"]{border-color:var(--texto);border-width:3px}
.tv-error-general{margin:0;font-weight:600}.tv-error-general:empty{display:none}
.tv-revision{max-width:40rem;border:1px solid var(--borde);border-radius:.75rem;padding:1.25rem;background:var(--superficie)}
.tv-revision:focus{outline:3px solid var(--principal);outline-offset:3px}
.tv-resumen{list-style:none;margin:0 0 .5rem;padding:0}
.tv-resumen li{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--borde);font-variant-numeric:tabular-nums}
.tv-resumen .tv-total{border-bottom:0;font-size:1.2rem;padding-top:.75rem}
.tv-recibo{max-width:40rem}.tv-recibo:focus{outline:none}
.tv-contador{display:inline-grid;place-items:center;min-width:1.5rem;height:1.5rem;padding:0 .35rem;margin-left:.35rem;border-radius:.75rem;background:var(--principal);color:var(--sobre-principal);font-size:.85rem;font-weight:700;line-height:1;text-decoration:none}
.tv-recibo-titulo{font-size:clamp(1.45rem,1.2rem + 1.2vw,2.1rem)}
[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}
  .tv-ficha-rejilla{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:2.5rem}
  .tv-linea{grid-template-columns:5.5rem minmax(0,1fr) auto auto auto;grid-template-areas:"foto texto cantidad importe quitar"}
  .tv-quitar{justify-self:end}
}
@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))}
  .tv-lista{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){.tv-contador{border:1px solid CanvasText}.tv-paso,.tv-miniatura{border:2px solid ButtonText}.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}}
