@layer reset, base, layout, components, sections, variants, skin, state;
/* ═══════════════════════════════════════════════════════════════
   tema.css · persianascerdanyola.net
   Arquetipo T01 Taller · semilla sal=0
   Prefijo de clases: pec-
   Generado por generador-temas.py — NO editar a mano.
   Para cambiar el diseño, regenerar con otra sal y actualizar el registro.
   ═══════════════════════════════════════════════════════════════ */

/* Tipos registrados: permiten animar e interpolar tokens sin JS */
@property --h { syntax:'<number>'; inherits:true; initial-value:0; }

:root{
  /* ── SEMILLA CROMÁTICA ─────────────────────────────────────────
     Solo se declaran dos colores reales. Todo lo demás se deriva en
     el navegador con oklch() relativo, color-mix() y contrast-color().
     Cambiar --c-brand recalcula la web entera manteniendo contrastes. */
  --h: 336;
  --c-brand:  #4B2142;
  --c-accent: #C9A24A;

  /* Derivados de marca (esquema: mono) */
  --c-brand-hi:   oklch(from var(--c-brand) calc(l + .10) c h);
  --c-brand-lo:   oklch(from var(--c-brand) calc(l - .12) c h);
  --c-brand-lo-ink: oklch(1 0 0);   /* texto del botón principal en :hover */
  --c-brand-soft: oklch(from var(--c-brand) calc(l + .34) calc(c * .30) h);
  --c-brand-ink:  oklch(1 0 0);   /* calculada con WCAG: contrast-color() de Chrome elegía blanco a 4,42:1 sobre naranjas medios */
  --c-accent-ink: oklch(0.15 0 0);

  /* Superficies (crema) */
  --c-surface:   oklch(0.985 0.010 var(--h));
  --c-surface-2: oklch(0.955 0.021 var(--h));
  --c-ink:       oklch(0.20 0.018 var(--h));
  --c-ink-soft:  oklch(from var(--c-ink) 0.52 calc(c * .8) h);
  --c-ink-soft-claro: oklch(from var(--c-ink) 0.52 calc(c * .8) h);
  --c-band-ink-soft: oklch(0.863 .02 336);                /* texto secundario sobre fondo oscuro */
  --c-band:      oklch(0.24 0.015 var(--h));
  --c-band-ink:  oklch(1 0 0);
  --c-line:      color-mix(in oklch, var(--c-ink) 12%, transparent);
  --c-focus:     oklch(from var(--c-accent) .62 .19 h);
  --c-error:     oklch(0.55 .19 27);

  /* ── CTA DE LLAMADA (R24) ─────────────────────────────────────
     Header, menú móvil y barra inferior. Elegido por el generador para
     contrastar 12.56:1 con la superficie y 13.16:1 con su texto.
     Candidato: brand. Para cambiarlo: regenerar con --cta. */
  --c-cta:       var(--c-brand);
  --c-cta-ink:   oklch(1 0 0);

  /* ── MARCA Y ACENTO COMO TEXTO (R25) ──────────────────────────
     Cuando el color de marca o de acento se usa para LETRA (cifras, etiquetas,
     fechas, marcas), se usa esta versión: misma tonalidad, claridad ajustada
     para 4.6:1 contra --c-surface, --c-surface-2 y --c-brand-soft. */
  --c-brand-text:  oklch(from var(--c-brand) 0.28 c h);
  --c-brand-text-claro: oklch(from var(--c-brand) 0.28 c h);
  --c-brand-text-oscuro: oklch(from var(--c-brand) 0.64 c h);   /* sobre banda y heroes oscuros */
  --c-accent-text: oklch(from var(--c-accent) 0.531 c h);
  --c-accent-text-oscuro: oklch(from var(--c-accent) 0.731 c h);

  /* ── GEOMETRÍA (recta) ───────────────────────────── */
  --r-btn:0; --r-card:0; --r-input:0; --r-img:0;
  --bw-card:2px; --bw-btn:2px; --bw-line:1px;

  /* ── SOMBRAS (dura-color) ─────────────────────────────────── */
  --sh-card:6px 6px 0 var(--c-accent);
  --sh-btn:4px 4px 0 var(--c-accent);
  --sh-hover:2px 2px 0 var(--c-accent);

  /* ── RITMO (base 8px · densidad compacta ×0.82) ───────── */
  --w-container:1080px;
  --sp-1:7px; --sp-2:13px; --sp-3:20px; --sp-4:33px;
  --sp-5:52px; --sp-6:85px;
  --sp-section:clamp(59px, 3.7vw, 88px);
  --sp-block:var(--sp-4);
  --sp-gap:20px;
  --card-pad:26px;

  /* ── TIPOGRAFÍA (escala modular ×1.333) ────────────────────────── */
  --ff-head:'Chivo', system-ui, sans-serif;
  --ff-body:'Chivo', system-ui, sans-serif;
  --fw-head:800; --fw-body:400; --fw-strong:700;
  --fs-h1:clamp(33.8px, 4.7vw, 56.7px);
  --fs-h2:clamp(26.1px, 3.1vw, 37.9px);
  --fs-h3:21.9px;
  --fs-body:16.6px;
  --fs-small:12.0px;
  --tt-head:none; --ls-head:-0.02em;
  --lh-head:1.10; --lh-body:1.6;

  /* ── COMPONENTES ─────────────────────────────────────────────── */
  --btn-pad:13px 26px;
  --btn-fw:800;
  --btn-tt:none; --btn-ls:0;
  --eyebrow:block;
  --icon-sw:1.75;
  --h-img-service:197px;
  --h-img-hero:341px;

  /* ── MOVIMIENTO ──────────────────────────────────────────────── */
  --tr:.12s;
  --ease:linear;
}

/* Fallback para navegadores sin contrast-color(): tinta calculada con luminancia WCAG real */
@supports not (color: contrast-color(red)){
  :root{
    --c-brand-ink:oklch(1 0 0);
    --c-accent-ink:oklch(0.15 0 0);
    --c-band-ink:oklch(1 0 0);
    --c-brand-lo-ink:oklch(1 0 0);
    --c-cta-ink:oklch(1 0 0);
  }
}

/* ── VARIANTES ACTIVAS ─────────────────────────────────────────────
   base.css define todos los layouts. Estas clases en <body> activan
   los de esta web. Vocabulario de clases: box / frame / link
   ────────────────────────────────────────────────────────────────── */
/* hero:H3 servicios:S1 ventajas:V2
   proceso:P2 resenas:R4 faq:F1
   zonas:Z2 contacto:CT3 footer:FO4
   etiqueta:numero-texto numeracion:sin iconos:Phosphor */

/* Etiqueta y numeración en @layer variants: así las reglas de contraste de
   base.css (fondos de banda, @layer state) pueden ajustarlas. */
@layer variants {
/* Etiqueta de sección — variante numero-texto */
.pec-eyebrow{counter-increment:sec;color:var(--c-ink-soft);font-size:var(--fs-small)}
.pec-eyebrow::before{content:counter(sec,decimal-leading-zero) ' — ';color:var(--c-accent)}

/* Numeración del proceso — variante sin */
.pec-step-num{display:none}
}

/* ═══════════════════════════════════════════════════════════════
   Propuesta A · «Te la subimos hoy» · dirección comercial-atrevido (web-direccion-arte)
   Fuentes del brief, papeles del color (ciruela protagonista, oro viejo para cifras y CTA en banda),
   forma rotunda (radio 0), recurso (titular gigante con punto final + banda de cifras en ciruela),
   elemento original PFX-f-pulsador y laboratorio PFX-x-antes (carta antes-despues) y carril de servicios
   en móvil (carta horizontal).
   ═══════════════════════════════════════════════════════════════ */
@font-face{font-family:'Epilogue';src:url('/fonts/titular-800.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:'Plus Jakarta Sans';src:url('/fonts/texto-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Plus Jakarta Sans';src:url('/fonts/texto-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
:root{
  --ff-head:'Epilogue',system-ui,sans-serif; --ff-body:'Plus Jakarta Sans',system-ui,sans-serif;
  --fw-head:800; --fw-body:400; --fw-strong:600; --btn-fw:600;
  /* Papeles: ciruela #4B2142 protagonista (H1, botones, banda de cifras); tinta ciruela casi negra para lo oscuro;
     crema de fondo; oro viejo #C9A24A solo para cifras, la tecla del pulsador y la CTA sobre fondo oscuro */
  --c-surface:#FBF7F1; --c-surface-2:#F3EAE0; --c-ink:#1F1520; --c-ink-soft:#5A4A57; --c-ink-soft-claro:#5A4A57;
  --c-band:#1F1520; --c-band-ink:#FFFFFF; --c-band-ink-soft:#D8C7D3;
  --c-line:#E4D8CF; --c-brand-soft:#EFE3EC;
  --c-brand-text:#4B2142; --c-brand-text-claro:#4B2142; --c-brand-text-oscuro:#E2C77E;
  --c-accent-text:#7A5C14; --c-accent-text-oscuro:#E2C77E;
  --c-cta:#4B2142; --c-cta-ink:#FFFFFF;
  --oro:#C9A24A;
  --c-resena-meta:#F2E6EE; --c-resena-filete:rgb(201 162 74 / .55);
  /* Forma rotunda: radio 0, borde de 2 px en tinta, sin sombras suaves */
  --r-btn:0; --r-card:0; --r-input:0; --r-img:0;
  --bw-card:2px; --bw-btn:2px;
  --sh-card:none; --sh-hover:none; --sh-btn:none;
  --w-container:1200px; --sp-1:4px; --sp-2:8px; --sp-3:16px; --sp-4:24px; --sp-5:40px; --sp-6:64px;
  --sp-section:clamp(64px,7.5vw,112px); --card-pad:clamp(20px,2.2vw,28px); --sp-gap:20px;
  --fs-hero:clamp(2.55rem,1.1rem + 5vw,5.1rem); --fs-h1:var(--fs-hero); --fs-h2:clamp(1.9rem,1.2rem + 2.2vw,3rem); --fs-h3:1.22rem;
  --fs-body:17px; --fs-small:.875rem; --tt-head:none; --ls-head:-.035em; --lh-head:1.02; --lh-body:1.62;
  --btn-pad:15px 26px; --btn-tt:uppercase; --btn-ls:.06em;
  --icon-sw:2.5;
}
@layer skin{
  body{background:var(--c-surface)}
  :is(h1,h2){letter-spacing:var(--ls-head);line-height:var(--lh-head)}
  h2{line-height:1.05}
  h3{letter-spacing:-.015em;font-family:var(--ff-head);font-weight:800}
  /* Sin guion automático en titulares («Cerdan-yola», «per-siana»); solo se parte lo que no cabe */
  h2,h3{hyphens:manual}
  /* Aire entre el H2 y su entradilla en todas las cabeceras de sección */
  :is(.pec-v-cab,.pec-head) h2 + p{margin-top:var(--sp-3)}
  .pec-eyebrow{counter-increment:none;font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--c-brand-text)}
  .pec-eyebrow::before{content:"";display:inline-block;width:1.6em;height:3px;background:var(--oro);margin-right:.7em;vertical-align:.3em}
  .pec-v--oscura .pec-eyebrow,.pec-v--marca .pec-eyebrow{color:var(--c-accent-text-oscuro)}
  /* Botones rectos en mayúsculas: ciruela sólido + contorno; sobre fondo oscuro o de marca, oro con tinta */
  .pec-btn{font-weight:600;font-size:.88rem;border-radius:0}
  .pec-btn--primary{background:var(--c-brand);color:#fff;border-color:var(--c-brand)}
  .pec-btn--primary:hover{background:var(--c-ink);border-color:var(--c-ink)}
  .pec-btn--secondary{background:transparent;color:var(--c-ink);border-color:var(--c-ink)}
  .pec-btn--secondary:hover{background:var(--c-ink);color:#fff}
  :is(.pec-v--oscura,.pec-v--marca) .pec-btn--primary{background:var(--oro);color:#1F1520;border-color:var(--oro)}
  :is(.pec-v--oscura,.pec-v--marca) .pec-btn--primary:hover{background:#fff;border-color:#fff}
  /* Hero gigante: titular a todo el ancho con la ciudad en ciruela y punto final; foto panorámica con marco oro desplazado */
  .pec-hv--gigante{padding-block:clamp(2rem,4.5vw,4rem) clamp(3rem,6vw,5rem)}
  .pec-hv--gigante h1{max-width:none;font-weight:800;hyphens:manual;overflow-wrap:normal}
  .pec-v-destacada{color:var(--c-brand-text)}
  .pec-hv--gigante .pec-hv-pie{margin-top:var(--sp-4);align-items:center}
  .pec-hv--gigante .pec-hv-pie>*{min-width:0}
  .pec-hv--gigante .pec-hv-texto{align-self:start}
  .pec-hv--gigante .pec-hv-texto>p{color:var(--c-ink-soft);font-size:1.12rem}
  .pec-hv--gigante .pec-hv-media{aspect-ratio:16/8;margin:0 12px 12px 0;align-self:center}
  .pec-hv--gigante .pec-hv-media::before{content:"";position:absolute;inset:12px -12px -12px 12px;background:var(--oro);z-index:-1}
  .pec-hv--gigante .pec-hv-media img{object-position:var(--foco,50% 50%)}
  @media (min-width:900px){.pec-hv--gigante .pec-hv-pie{grid-template-columns:.85fr 1.15fr;align-items:start}
    .pec-hv--gigante .pec-hv-media{aspect-ratio:16/9;align-self:start}}
  @media (max-width:899px){.pec-hv--gigante .pec-hv-media{aspect-ratio:16/10}}
  /* Banda de cifras en ciruela con las cifras en oro (recurso característico) */
  .pec-v--marca{background:var(--c-brand)}
  .pec-v-cifras{text-align:left;gap:0}
  .pec-v-cifras li{padding:.4rem var(--sp-4);border-left:2px solid rgb(201 162 74 / .55)}
  /* La cifra se mide con el ancho de su celda (no del viewport) y nunca parte palabras (R37: el texto no se toca) */
  .pec-v-cifras li{container-type:inline-size;min-width:0}
  .pec-v-cifras strong{color:var(--c-accent-text-oscuro);font-size:clamp(1.5rem,14cqi,3.3rem);letter-spacing:-.04em;overflow-wrap:normal;word-break:normal;hyphens:manual}
  .pec-v-cifras{grid-template-columns:1fr}
  @media (min-width:560px){.pec-v-cifras{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--sp-4)}}
  /* Desde 1200 px, fila flexible repartida por el contenido: el ancho de cada celda lo marca su cifra (el rótulo
     no cuenta: contain:inline-size) y, si una cifra no cabe, la banda pasa a otra fila en vez de desbordar.
     Por debajo, la rejilla 2×2 por ancho de celda */
  @media (min-width:1200px){
    .pec-v-cifras{display:flex;flex-wrap:wrap;row-gap:var(--sp-4)}
    .pec-v-cifras li{flex:1 1 auto;container-type:normal;min-width:0;padding-inline:var(--sp-4) var(--sp-3)}
    .pec-v-cifras span{contain:inline-size}
    .pec-v-cifras strong{font-size:3.3rem}
  }
  .pec-v-cifras span{color:#F2E6EE;opacity:1;font-size:.95rem}
  .pec-v--marca:has(.pec-v-cifras){padding-block:clamp(40px,5vw,64px)}
  /* Servicios: tarjetas rectas con borde de 2 px, número grande en contorno y la sexta casilla de llamada en ciruela */
  .pec-v-numeradas{gap:0;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));border-top:2px solid var(--c-ink);border-left:2px solid var(--c-ink)}
  .pec-v-numeradas>li{border:0;border-right:2px solid var(--c-ink);border-bottom:2px solid var(--c-ink);padding:clamp(22px,2.4vw,32px);background:var(--c-surface)}
  .pec-v-numeradas>li::before{content:counter(v-num,decimal-leading-zero);border:0;width:auto;height:auto;place-items:start;justify-items:start;font-family:var(--ff-head);font-weight:800;
    font-size:3rem;line-height:1;color:transparent;-webkit-text-stroke:1.5px var(--c-brand);letter-spacing:-.04em}
  .pec-v-numeradas>li:hover{background:var(--c-brand-soft)}
  .pec-v-numeradas a{color:var(--c-brand-text);font-weight:600;margin-top:auto;text-underline-offset:.3em;text-decoration-thickness:2px}
  .pec-v-numeradas>li.pec-x-llama{background:var(--c-brand);color:#fff;justify-content:center}
  .pec-v-numeradas>li.pec-x-llama::before{content:none}
  .pec-x-llama p{margin:0;color:#F2E6EE}
  .pec-x-llama strong{display:block;font-family:var(--ff-head);font-size:1.45rem;letter-spacing:-.02em;color:#fff;margin-bottom:.35rem}
  .pec-v-numeradas .pec-x-llama a.pec-btn{color:#1F1520;background:var(--oro);border-color:var(--oro);text-decoration:none;align-self:flex-start;margin-top:var(--sp-3)}
  /* Carta «horizontal»: en móvil los servicios son un carril con desplazamiento lateral y scroll-snap */
  @media (max-width:699px){
    .pec-v-numeradas{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;border:0;gap:12px;padding-bottom:14px;margin-right:calc(var(--sp-3) * -1);padding-right:var(--sp-3);
      scrollbar-color:var(--c-brand) transparent}
    .pec-v-numeradas>li{flex:0 0 82%;scroll-snap-align:start;border:2px solid var(--c-ink)}
  }
  /* Locales: foto con marco oro desplazado y lista con check ciruela */
  .pec-v-check img{box-shadow:12px 12px 0 var(--oro)}
  .pec-v-check li::before{border-color:var(--c-brand)}
  .pec-v-check li{font-weight:600}
  /* Aire entre el H2, los párrafos y la lista de comercios (crítica 2026-10-15, vuelta 2) */
  .pec-v-check :is(h2,p,ul) + :is(p,ul){margin-top:var(--sp-3)}
  /* Pasos: número en cuadrado ciruela, línea fina */
  .pec-v-pasos>li::before{border-radius:0;font-family:var(--ff-head);font-weight:800;background:var(--c-brand);color:#fff}
  .pec-v-pasos>li::after{background:var(--c-ink);height:2px}
  /* Cita del técnico en la banda de marca, comillas en oro */
  .pec-v-cita blockquote{font-weight:800;letter-spacing:-.025em;font-size:clamp(1.6rem,1rem + 2.2vw,2.7rem);line-height:1.12}
  .pec-v-cita blockquote p{margin:0}
  .pec-v-cita blockquote p::first-letter{color:var(--oro)}
  .pec-v-cita figcaption{font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;color:#F2E6EE;opacity:1}
  /* Zonas como etiquetas rectas */
  .pec-v-zonas li span{border-radius:0;border:2px solid var(--c-ink);background:var(--c-surface);font-weight:600}
  /* Rótulos de grupo con aire: el H3 no se monta sobre los chips anteriores (crítica 2026-10-15, vuelta 1) */
  .pec-v-zonas + h3{margin-top:var(--sp-5)}
  h3:has(+ .pec-v-zonas){margin-bottom:var(--sp-3)}
  .pec-v-zonas + p{margin-top:var(--sp-5)}
  /* Preguntas: filetes de 2 px */
  .pec-faq-item{border-bottom:2px solid var(--c-ink)}
  .pec-faq-q{font-family:var(--ff-head);font-weight:800}
}

/* Elemento original · PFX-f-pulsador: la banda de urgencias es el pulsador de pared de una persiana.
   La tecla de subir llama; la de bajar lleva al formulario. Placa marfil con tornillos, teclas basculantes. */
@layer skin{
  .pec-f-pulsador-grid{display:grid;gap:var(--sp-5);align-items:center}
  .pec-f-pulsador h2{margin-bottom:var(--sp-3);color:#fff;font-size:clamp(2rem,1.2rem + 2.6vw,3.3rem);max-width:18ch}
  .pec-f-pulsador-texto>p{color:var(--c-band-ink-soft);max-width:36rem;font-size:1.08rem}
  .pec-f-pulsador-datos{list-style:none;padding:0;margin:var(--sp-4) 0 0;display:flex;flex-wrap:wrap;gap:.5rem}
  .pec-f-pulsador-datos li{border:1.5px solid rgb(226 199 126 / .6);color:#F4EAD0;padding:.35rem .8rem;font-size:.9rem;font-weight:600}
  .pec-f-placa{position:relative;justify-self:center;width:min(100%,330px);padding:26px;background:#E9E0D2 linear-gradient(160deg,#FBF6EC,#E9E0D2);border-radius:22px;
    box-shadow:0 0 0 1px rgb(0 0 0 / .25),0 26px 50px rgb(0 0 0 / .45),inset 0 -3px 0 rgb(0 0 0 / .08);display:grid;gap:10px}
  .pec-f-tornillo{position:absolute;left:50%;width:11px;height:11px;margin-left:-5.5px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#B9AE9C);
    box-shadow:inset 0 0 0 1px rgb(0 0 0 / .18)}
  .pec-f-tornillo::after{content:"";position:absolute;inset:4.5px 1.5px;background:rgb(0 0 0 / .28)}
  .pec-f-tornillo--a{top:8px}.pec-f-tornillo--b{bottom:8px}
  .pec-f-tecla{display:grid;justify-items:center;gap:.2rem;text-align:center;padding:22px 16px;min-height:132px;align-content:center;text-decoration:none;color:#1F1520;
    background:#F1EADF linear-gradient(180deg,#FFFDF8,#F1EADF);border-radius:12px;box-shadow:inset 0 0 0 1px rgb(31 21 32 / .14),0 4px 0 #CFC4B3}
  .pec-f-tecla--sube{background:var(--oro) linear-gradient(180deg,#E2C77E,var(--oro));box-shadow:inset 0 0 0 1px rgb(31 21 32 / .2),0 4px 0 #9C7C2F}
  .pec-f-flecha{width:26px;height:17px;fill:var(--c-brand)}
  .pec-f-tecla--sube .pec-f-flecha{fill:#1F1520}
  .pec-f-tecla-txt{font-family:var(--ff-head);font-weight:800;font-size:1.3rem;letter-spacing:-.02em;line-height:1.1}
  .pec-f-tecla-num{font-size:.92rem;font-weight:600;color:#3B2A38}
  .pec-f-tecla--sube .pec-f-tecla-num{color:#1F1520;font-size:1.05rem}
  .pec-f-tecla:hover .pec-f-tecla-txt{text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:2px}
  .pec-f-tecla:focus-visible{outline:3px solid #fff;outline-offset:3px}
  @media (prefers-reduced-motion:no-preference){
    .pec-f-tecla{transition:transform .12s ease,box-shadow .12s ease}
    .pec-f-tecla:active{transform:translateY(3px);box-shadow:inset 0 0 0 1px rgb(31 21 32 / .2),0 1px 0 #9C7C2F}
  }
  @media (min-width:900px){.pec-f-pulsador-grid{grid-template-columns:1.25fr .75fr;gap:var(--sp-6)}}
}

/* Laboratorio · PFX-x-antes (carta «antes-despues»): comparador accesible. Sin JS, las dos fotos lado a lado;
   con JS (clase is-js) se superponen y un deslizador nativo (teclado y lector) mueve el corte. */
@layer skin{
  .pec-x-antes-grid{display:grid;gap:var(--sp-5);align-items:center}
  .pec-x-antes .pec-v-cab{margin-bottom:0}
  .pec-x-antes .pec-v-cab .pec-btn{margin-top:var(--sp-3)}
  .pec-x-comp{margin:0;--pos:50%}
  .pec-x-comp-marco{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:4px;border:2px solid var(--c-ink)}
  .pec-x-comp-marco img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
  .pec-x-comp-et{position:absolute;top:12px;background:var(--c-ink);color:#fff;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .65rem}
  .pec-x-comp-et--a{left:12px}.pec-x-comp-et--d{right:12px;background:var(--c-brand)}
  .pec-x-comp.is-js .pec-x-comp-marco{display:block;aspect-ratio:3/2;overflow:hidden}
  .pec-x-comp.is-js .pec-x-comp-marco img{position:absolute;inset:0;height:100%;aspect-ratio:auto}
  .pec-x-comp.is-js .pec-x-comp-despues{clip-path:inset(0 0 0 var(--pos))}
  .pec-x-comp.is-js .pec-x-comp-marco::after{content:"";position:absolute;top:0;bottom:0;inset-inline-start:var(--pos);width:4px;margin-left:-2px;background:var(--oro)}
  .pec-x-comp-rango{display:block;width:100%;margin:14px 0 0;accent-color:var(--c-brand);min-height:44px}
  .pec-x-comp-rango:focus-visible{outline:3px solid var(--c-brand);outline-offset:2px}
  .pec-x-comp figcaption{margin-top:.5rem;font-size:var(--fs-small);color:var(--c-ink-soft)}
  @media (min-width:900px){.pec-x-antes-grid{grid-template-columns:.8fr 1.2fr;gap:var(--sp-6)}}
}

/* Primera pantalla en ciruela (protagonista, comercial-atrevido) y banda de cifras en oro viejo a todo el ancho */
@layer skin{
  .pec-hv--gigante{background:var(--c-brand);color:#fff;--c-ink-soft:#F2E6EE;--c-brand-text:#E2C77E}
  .pec-hv--gigante h1{color:#fff}
  .pec-hv--gigante .pec-v-destacada{color:#E2C77E}
  .pec-hv--gigante .pec-eyebrow{color:#E2C77E}
  .pec-hv--gigante .pec-hv-texto>p{color:#F2E6EE}
  .pec-hv--gigante .pec-btn--primary{background:var(--oro);color:#1F1520;border-color:var(--oro)}
  .pec-hv--gigante .pec-btn--primary:hover{background:#fff;border-color:#fff}
  .pec-hv--gigante .pec-btn--secondary{color:#fff;border-color:rgb(255 255 255 / .75)}
  .pec-hv--gigante .pec-btn--secondary:hover{background:#fff;color:var(--c-brand)}
  .pec-hv--gigante .pec-hv-media::before{background:var(--oro)}
  .pec-v--marca:has(.pec-v-cifras){background:var(--oro);color:#1F1520}
  .pec-v--marca .pec-v-cifras strong{color:#1F1520}
  .pec-v--marca .pec-v-cifras span{color:#1F1520;font-weight:600}
  .pec-v--marca .pec-v-cifras li{border-left-color:rgb(31 21 32 / .35)}
}

/* Reseñas r3 en la banda ciruela, en el sitio de la antigua v-cita (web-diseno, 2026-10-15).
   Se añade al final de web/css/tema.css al aplicar la propuesta A. Medido en agentes/tmp/A-resenas. */
@layer skin{
  .pec-resenas{background:var(--c-brand);color:var(--c-band-ink)}
  .pec-resenas h2,.pec-resenas .pec-head p,.pec-resenas .pec-head a,.pec-resenas .pec-review-text{color:var(--c-band-ink)}
  .pec-resenas .pec-eyebrow,.pec-resenas .pec-stars{color:var(--c-accent-text-oscuro)}
  .pec-resenas .pec-review-meta{color:var(--c-resena-meta)}
  .pec-resenas--r3 .pec-card{border-bottom-color:var(--c-resena-filete)}
  .pec-resenas .pec-avatar{background:var(--oro);color:var(--c-ink)}
  .pec-resenas .pec-review-text{max-width:62ch;font-size:1.12rem}
}

/* Móvil (crítica visual 2026-10-15, vuelta 1): aviso de cookies compacto (texto pequeño y «Vale» en línea)
   y las dos CTA del hero justo bajo el H1, para que el aviso no las tape en 360×740. Solo cambia el orden visual:
   la entradilla no tiene enlaces, así que el orden del foco y de lectura sigue siendo el del marcado. */
@layer skin{
  @media (max-width:599px){
    .pec-hv--gigante .pec-hv-texto{display:flex;flex-direction:column}
    .pec-hv--gigante .pec-hv-acciones{order:-1;margin-top:0;margin-bottom:var(--sp-4)}
  }
}

/* El aviso de cookies vive en @layer state de base.css: su versión compacta para móvil va en la misma capa
   (mismo patrón que base.css usa en horizontal: texto pequeño y «Vale» en línea). Sin cambiar marcado ni textos. */
@layer state{
  @media (max-width:599px){
    .pec-cookies{padding-block:var(--sp-2)}
    .pec-cookies .pec-container{flex-wrap:nowrap;gap:var(--sp-2)}
    .pec-cookies p{font-size:.8rem;line-height:1.35;margin:0}
    .pec-cookies .pec-btn{flex:none;min-height:44px;padding-inline:16px}
  }
}

/* Subpáginas (web-diseno, modo corregir, 2026-10-15): ancho de lectura, rejillas que reparten bien el número
   real de piezas, estados del pulsador distinguibles y migas de pan visibles en la cabecera ciruela. */
@layer skin{
  /* 1 · Ancho de lectura (≤85 caracteres por línea) en la lista de piezas, con sus filetes, y en el aviso */
  .pec-v-lista{max-width:44rem}
  /* Desde 1100 px la cabecera de la sección pasa a la izquierda y la lista (con su frase de cierre) a la derecha:
     el ancho de lectura no deja media banda vacía */
  @media (min-width:1100px){
    .pec-container:has(> .pec-v-lista){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,44rem);column-gap:var(--sp-6);align-items:start}
    .pec-container:has(> .pec-v-lista) > .pec-v-cab{grid-column:1;grid-row:1 / span 3;margin-bottom:0}
    .pec-container:has(> .pec-v-lista) > :not(.pec-v-cab){grid-column:2}
    .pec-container:has(> .pec-v-lista) > .pec-v-lista + *{margin-top:var(--sp-4)}
  }
  .pec-v-aviso p{max-width:60ch}
  /* 2 · Síntomas: 3 por fila en 6 columnas; con 3n+2 piezas (5, 8) la última fila se reparte en dos mitades,
     con 4 queda en 2×2 y con 3n+1 (7) la última ocupa la fila: nunca quedan celdas vacías */
  @media (min-width:560px) and (max-width:899px){
    .pec-v-sintomas{grid-template-columns:repeat(2,minmax(0,1fr))}
    .pec-v-sintomas > :nth-child(odd):last-child{grid-column:1 / -1}
  }
  @media (min-width:900px){
    .pec-v-sintomas{grid-template-columns:repeat(6,minmax(0,1fr))}
    .pec-v-sintomas > *{grid-column:span 2}
    .pec-v-sintomas > :nth-last-child(2):nth-child(3n+1),
    .pec-v-sintomas > :nth-last-child(2):nth-child(3n+1) + *,
    .pec-v-sintomas > :first-child:nth-last-child(4),
    .pec-v-sintomas > :first-child:nth-last-child(4) ~ *{grid-column:span 3}
    .pec-v-sintomas > :nth-child(3n+1):last-child:not(:nth-child(4)){grid-column:1 / -1}
  }
  /* 4 · Galería blindada: un alt o un pie largo no ensancha la página; con 3 fotos, 3 columnas iguales (sin huecos) */
  .pec-v-galeria{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pec-v-galeria > figure{min-width:0}
  .pec-v-galeria > figure:first-child:nth-last-child(3){grid-column:1 / -1}
  .pec-v-galeria > figure:first-child:nth-last-child(3) img{aspect-ratio:16/9}
  @media (min-width:900px){
    .pec-v-galeria{grid-template-columns:repeat(4,minmax(0,1fr))}
    .pec-v-galeria:has(> figure:first-child:nth-last-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}
    .pec-v-galeria > figure:first-child:nth-last-child(3){grid-column:auto;grid-row:auto}
    .pec-v-galeria > figure:first-child:nth-last-child(3) img{aspect-ratio:1}
  }
  /* 3 · Pulsador: al pasar o pulsar, la tecla se «enciende» en ciruela (9:1 frente a la placa marfil) */
  .pec-f-tecla:is(:hover,:active),.pec-f-tecla--sube:is(:hover,:active){background:var(--c-brand) none;color:var(--c-band-ink);
    box-shadow:inset 0 0 0 2px var(--oro),0 4px 0 #2A1226}
  .pec-f-tecla:is(:hover,:active) .pec-f-flecha{fill:var(--oro)}
  .pec-f-tecla:is(:hover,:active) .pec-f-tecla-num{color:var(--c-resena-meta)}
  @media (prefers-reduced-motion:no-preference){
    .pec-f-tecla:active{box-shadow:inset 0 0 0 2px var(--oro),0 1px 0 #2A1226}
  }
  /* 5 · Migas de pan (subpáginas): primera línea del hero ciruela, letra pequeña, separador oro por CSS;
     el hero sube su aire superior lo que ocupan, para que H1 y CTA sigan en la primera pantalla */
  .pec-hv--gigante:has(.pec-migas){padding-top:clamp(.75rem,1.6vw,1.5rem)}
  .pec-migas{margin:0 0 var(--sp-2);min-height:24px;font-size:.84rem;font-weight:600;color:var(--c-resena-meta)}
  .pec-migas ol{display:flex;flex-wrap:wrap;align-items:center;gap:0 .6em;margin:0;padding:0;list-style:none}
  .pec-migas li{display:inline-flex;align-items:center;min-width:0}
  .pec-migas li + li::before{content:"›" / "";margin-right:.6em;color:var(--oro);font-weight:800}
  .pec-migas a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;margin-block:-10px;color:var(--c-band-ink);
    text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em}
  .pec-migas a:hover{text-decoration-thickness:3px;text-decoration-color:var(--oro)}
  .pec-migas a:active{color:var(--c-accent-text-oscuro);text-decoration-thickness:3px}
  .pec-migas a:focus-visible{outline:3px solid var(--c-band-ink);outline-offset:2px}
  .pec-migas [aria-current="page"]{font-weight:400;color:var(--c-resena-meta)}
}

/* Crítica visual final, vuelta 1 (web-diseno, modo corregir, 2026-10-16). Solo forma: marcado y textos intactos. */
@layer skin{
  /* 1 · Frase de cierre tras una rejilla o lista (niveles, pasos, numeradas, síntomas, lista): aire de 24 px */
  .pec-container > :is(ol,ul,div:not(.pec-v-cab)) + p{margin-top:var(--sp-4)}
  /* 2 · Legales: cada H2 (y H3) se separa del párrafo anterior; el párrafo, del titular */
  .pec-legal .pec-prose :is(h2,h3):not(:first-child){margin-top:var(--sp-5)}
  .pec-legal .pec-prose :is(h2,h3) + *{margin-top:var(--sp-2)}
  .pec-legal .pec-prose h1 + *{margin-top:var(--sp-3)}
  /* 3 · Carril de servicios en móvil: el foco se dibuja por dentro, así no lo corta el borde de la ventana */
  @media (max-width:699px){
    .pec-v-numeradas:focus-visible{outline-offset:-4px}
  }
  /* 4 · Foto junto a un texto largo: arriba, a la altura del titular, y acompaña la lectura (sticky bajo la cabecera) */
  @media (min-width:900px){
    .pec-v-check:has(> div > p:nth-of-type(3)){align-items:start}
    .pec-v-check:has(> div > p:nth-of-type(3)) > img{position:sticky;top:calc(var(--hdr-h, 96px) + var(--sp-4))}
  }
  /* 5 · Rejilla de 5 tarjetas (sin casilla de llamada): 2 + 2 + 1 a lo ancho entre 700 y 899 px; 3 + 2 mitades desde 900 */
  @media (min-width:700px) and (max-width:899px){
    .pec-v-numeradas:has(> li:nth-child(5):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
    .pec-v-numeradas > li:nth-child(5):last-child{grid-column:1 / -1}
  }
  @media (min-width:900px){
    .pec-v-numeradas:has(> li:nth-child(5):last-child){grid-template-columns:repeat(6,minmax(0,1fr))}
    .pec-v-numeradas:has(> li:nth-child(5):last-child) > li{grid-column:span 2}
    .pec-v-numeradas:has(> li:nth-child(5):last-child) > li:nth-child(n+4){grid-column:span 3}
  }
  /* 6 · Síntomas con la forma del brief: filetes de 2 px en tinta entre tarjetas y en el contorno */
  .pec-v-sintomas{border:0;border-top:2px solid var(--c-ink);border-left:2px solid var(--c-ink)}
  .pec-v-sintomas > *{margin:0;border:0;border-right:2px solid var(--c-ink);border-bottom:2px solid var(--c-ink)}
  /* 7 · Subpáginas a 1280×800: el hero sube 5 px para que el aviso de cookies no roce las CTA */
  .pec-hv--gigante:has(.pec-migas){padding-top:clamp(.5rem,1.2vw,1.2rem)}
}
