/* Atalaya Balear · hoja de estilo v2 (replanteo del 24/10/2026, docs/diseno/REPLANTEO.md)
   Una sola familia (Atkinson Hyperlegible Next, variable), un solo color de marca que significa «comprobado»,
   un solo radio (8 px) y una escala tipográfica de 1,25. Sin sombras decorativas. */
@font-face{font-family:"Atkinson Hyperlegible Next";font-weight:200 800;font-display:swap;src:url(fonts/atkinson-hyperlegible-next-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Atkinson Hyperlegible Next";font-weight:200 800;font-display:swap;src:url(fonts/atkinson-hyperlegible-next-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --fondo:#F4F7F5;--papel:#FDFEFD;--tinta:#14201C;--tinta-2:#46554F;--tinta-3:#5E6C66;--hilo:#D5DFDA;
  --marca:#0E5F4C;--marca-fuerte:#0A4A3B;--marca-suave:#E3EFEA;--sobre-marca:#FDFEFD;--sobre-marca-2:#CFE5DC;
  --banda:#0E5F4C;--aviso:#8A4B0F;--aviso-suave:#FBF1E6;--foco:#9A6700;
  --ease:cubic-bezier(.23,1,.32,1);
  --letra:"Atkinson Hyperlegible Next",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r:8px;--ancho:1180px;color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fondo);color:var(--tinta);font:400 1.0625rem/1.55 var(--letra);font-variant-numeric:tabular-nums;overflow-x:hidden}
h1,h2,h3{text-wrap:balance;margin:0} p{text-wrap:pretty}
a{color:var(--marca);text-decoration-thickness:1px;text-underline-offset:3px} a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--foco);outline-offset:2px;border-radius:2px}
.ico{flex:none;vertical-align:middle}
.envoltura{max-width:var(--ancho);margin:0 auto;padding:0 32px}
.saltar{position:absolute;left:-9999px;top:0;background:var(--tinta);color:var(--papel);padding:10px 16px;z-index:30}
.saltar:focus{left:16px;top:8px}
.aviso-preview{background:var(--aviso-suave);color:var(--aviso);font-size:.8125rem;font-weight:600;text-align:center;padding:6px 16px;border-bottom:1px solid var(--hilo)}
.visual-oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Marca */
.logo{display:inline-flex;align-items:center;gap:10px;color:var(--tinta);text-decoration:none;line-height:1}
.logo-marca{flex:none}
.logo-txt{font-size:1.25rem;letter-spacing:-.01em;white-space:nowrap} .logo-txt b{font-weight:800} .logo-txt span{font-weight:400;color:var(--tinta-2)}

/* Cabecera */
.cab{background:var(--papel);border-bottom:1px solid var(--hilo);position:relative;z-index:10}
.cab-in{display:flex;align-items:center;gap:32px;min-height:68px}
.nav{display:flex;gap:4px;flex:1}
.nav a{color:var(--tinta);text-decoration:none;font-weight:600;font-size:.9375rem;padding:8px 12px;border-radius:var(--r);white-space:nowrap}
.nav a:hover{background:var(--marca-suave)} .nav a[aria-current]{color:var(--marca);background:var(--marca-suave)}
.herramientas{display:flex;align-items:center;gap:8px}
.idiomas{display:flex;border:1px solid var(--hilo);border-radius:var(--r);overflow:hidden}
.idiomas a{font-size:.8125rem;font-weight:700;letter-spacing:.04em;color:var(--tinta-2);text-decoration:none;padding:7px 10px}
.idiomas a+a{border-left:1px solid var(--hilo)} .idiomas a[aria-current]{background:var(--tinta);color:var(--papel)}
/* Botones y chips */
.boton{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--r);border:1px solid var(--marca);background:var(--marca);color:var(--sobre-marca);font:700 1rem/1 var(--letra);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color .15s,transform .1s}
.boton:hover{background:var(--marca-fuerte);border-color:var(--marca-fuerte)} .boton:active{transform:scale(.98)}
.boton-sec{background:var(--papel);color:var(--tinta);border-color:var(--hilo)} .boton-sec:hover{background:var(--marca-suave);border-color:var(--marca)}
.boton-peq{min-height:38px;padding:0 12px;font-size:.9375rem}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 14px;border:1px solid var(--hilo);border-radius:999px;background:var(--papel);color:var(--tinta);font:600 .9375rem/1 var(--letra);text-decoration:none;cursor:pointer;white-space:nowrap}
.chip:hover{border-color:var(--marca)} .chip[aria-pressed=true]{background:var(--marca);border-color:var(--marca);color:var(--sobre-marca)}
.chip .n{font-weight:400;color:var(--tinta-3)} .chip[aria-pressed=true] .n{color:inherit;opacity:.85}

/* Insignia de verificación (el único elemento que usa el verde como estado) */
.insignia{display:inline-flex;align-items:center;gap:6px;font-size:.875rem;font-weight:700;color:var(--marca)}
.insignia-oficial{color:var(--tinta-2);font-weight:600}

/* Portada: panel verde a la izquierda y foto de Mallorca a la derecha */
.hero{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);background:var(--banda);color:#FDFEFD;min-height:min(82vh,760px)}
.hero-panel{display:flex;align-items:center;padding:56px 56px 48px max(32px,calc((100vw - var(--ancho)) / 2 + 32px))}
.hero-in{width:100%;max-width:700px}
.hero.sin-foto{grid-template-columns:1fr;min-height:0}
.hero h1{font-size:clamp(2.1rem,3.5vw,3.1rem);line-height:1.07;font-weight:800;letter-spacing:-.025em;max-width:19ch;color:#FDFEFD}
.hero-sub{font-size:1.1875rem;line-height:1.5;color:#CFE5DC;max-width:50ch;margin:18px 0 32px}
.hero-foto{position:relative;margin:0;overflow:hidden;background:#0A4A3B}
.hero-foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-foto figcaption,.cab-foto figcaption,.porque-foto figcaption{position:absolute;right:10px;bottom:8px;font-size:.6875rem;color:rgba(253,254,253,.85);text-shadow:0 1px 2px rgba(0,0,0,.6)}
.hero-foto figcaption a,.cab-foto figcaption a,.porque-foto figcaption a{color:inherit;text-decoration:none}
.buscador{background:var(--papel);color:var(--tinta);border-radius:var(--r);padding:8px;display:grid;grid-template-columns:1.3fr 1fr auto;gap:8px;box-shadow:0 18px 40px -24px rgba(5,30,24,.55)}
.campo{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-radius:6px;min-width:0}
.campo:focus-within{background:var(--marca-suave)}
.campo label{font-size:.8125rem;font-weight:700;color:var(--tinta-2)}
.campo select{appearance:none;-webkit-appearance:none;border:0;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%2346554F'%3E%3Cpath d='M213.66 101.66l-80 80a8 8 0 0 1-11.32 0l-80-80a8 8 0 0 1 11.32-11.32L128 164.69l74.34-74.35a8 8 0 0 1 11.32 11.32Z'/%3E%3C/svg%3E") no-repeat right center/16px;font:600 1.0625rem/1.3 var(--letra);color:var(--tinta);padding:2px 22px 2px 0;width:100%;cursor:pointer}
.campo select:focus-visible{outline:none}
.buscador .boton{min-height:56px;padding:0 26px;font-size:1.0625rem}
.atajos{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:20px}
.atajos-et{font-size:.9375rem;color:#CFE5DC;margin-right:4px}
.hero .atajos a{color:#FDFEFD;border:1px solid rgba(253,254,253,.4);border-radius:999px;padding:7px 14px;font-size:.9375rem;font-weight:600;text-decoration:none}
.hero .atajos a:hover{background:rgba(253,254,253,.12);border-color:#FDFEFD}
.garantias{display:flex;flex-wrap:wrap;gap:12px 32px;list-style:none;margin:40px 0 0;padding:20px 0 0;border-top:1px solid rgba(253,254,253,.22);color:#CFE5DC;font-size:.9375rem}
.garantias li{display:flex;align-items:center;gap:8px} .garantias b{color:#FDFEFD}

.seccion{padding:64px 0} .seccion+.seccion{border-top:1px solid var(--hilo)}
.sec-cab{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:28px}
.sec-cab h2,h2.sec{font-size:1.9375rem;line-height:1.15;font-weight:800;letter-spacing:-.015em}
.sec-cab p,.sec-intro{color:var(--tinta-2);max-width:62ch;margin:8px 0 0}

.indice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.indice-bloque{background:var(--papel);border:1px solid var(--hilo);border-radius:var(--r);padding:28px}
.indice-tit{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--tinta)}
.indice-tit .ico-caja{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--r);background:var(--marca-suave);color:var(--marca)}
.indice-tit h3{font-size:1.5625rem;font-weight:800;letter-spacing:-.01em}
.indice-tit p{margin:2px 0 0;color:var(--tinta-2);font-size:.9375rem}
.indice-tit:hover h3{color:var(--marca)}
.enlaces{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
.enlaces a{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--hilo);color:var(--tinta);text-decoration:none;font-weight:600}
.enlaces a:hover{color:var(--marca)} .enlaces .n{font-weight:400;color:var(--tinta-3)}
.enlaces-et{grid-column:1/-1;font-size:.8125rem;font-weight:700;color:var(--tinta-2);margin:16px 0 4px}

.lenguas{display:flex;flex-wrap:wrap;gap:12px}
.lengua{display:flex;flex-direction:column;gap:2px;min-width:180px;padding:18px 20px;border:1px solid var(--hilo);border-radius:var(--r);background:var(--papel);text-decoration:none;color:var(--tinta)}
.lengua:hover{border-color:var(--marca)} .lengua b{font-size:1.25rem;font-weight:800} .lengua span{font-size:.9375rem;color:var(--tinta-2)}

.metodo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:48px;align-items:start}
.pasos{list-style:none;margin:0;padding:0;counter-reset:paso;display:grid;gap:24px}
.pasos li{counter-increment:paso;display:grid;grid-template-columns:40px 1fr;gap:16px}
.pasos li::before{content:counter(paso);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--marca-suave);color:var(--marca);font-weight:800}
.pasos h3{font-size:1.1875rem;font-weight:800;margin-top:8px} .pasos p{margin:4px 0 0;color:var(--tinta-2)}
.ejemplo{background:var(--papel);border:1px solid var(--hilo);border-radius:var(--r);padding:24px}
.ejemplo-et{font-size:.8125rem;font-weight:700;color:var(--tinta-3);margin:0 0 12px}

.franja{background:var(--marca-suave)}
.franja-in{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-top:40px;padding-bottom:40px}
.franja h2{font-size:1.5625rem;font-weight:800} .franja p{margin:6px 0 0;color:var(--tinta-2);max-width:60ch}


/* Cabeceras de página con foto */
.pagina-cab-in{display:grid;grid-template-columns:minmax(0,1fr);gap:32px;align-items:center}
.con-foto .pagina-cab-in{grid-template-columns:minmax(0,1fr) 380px}
.cab-foto{position:relative;margin:0;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;background:var(--marca-suave)}
.cab-foto img{width:100%;height:100%;object-fit:cover;display:block}

.seccion-suave{background:var(--papel)}

/* Por qué una atalaya: foto grande y texto */
.porque{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);background:var(--tinta);color:#E5ECE9;min-height:440px}
.porque-foto{position:relative;margin:0;overflow:hidden}
.porque-foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.porque-txt{padding:56px max(32px,calc((100vw - var(--ancho)) / 2 + 32px)) 56px 56px;display:flex;flex-direction:column;justify-content:center;gap:16px}
.porque-txt h2{font-size:1.9375rem;font-weight:800;letter-spacing:-.015em;color:#FDFEFD} .porque-txt p{margin:0;font-size:1.125rem;line-height:1.6;max-width:46ch;color:#C9D6D1}
.porque-txt a{display:inline-flex;align-items:center;gap:8px;color:#7FD3B8;font-weight:700;text-decoration:none} .porque-txt a:hover{text-decoration:underline}

/* Movimiento: entra al cargar o al aparecer, siempre corto y con salida suave; nada con «reducir movimiento» */
@keyframes subir{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes acercar{from{transform:scale(1.1)}to{transform:scale(1)}}
@keyframes descubrir{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}
.js .hero h1 .w{display:inline-block;animation:subir .8s var(--ease) both;animation-delay:calc(var(--i) * 70ms + 80ms)}
.js .hero-sub{animation:subir .8s var(--ease) .45s both} .js .buscador{animation:subir .8s var(--ease) .6s both} .js .hero .atajos,.js .garantias{animation:subir .8s var(--ease) .75s both}
.js .hero-foto{animation:descubrir 1.1s var(--ease) .15s both} .js .hero-foto img{animation:acercar 2.4s var(--ease) .15s both}
.js [data-aparece]{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js [data-aparece].visto{opacity:1;transform:none}
.resultado{transition:border-color .2s,transform .25s var(--ease)} .resultado:hover{transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){.js [data-aparece]{opacity:1;transform:none}.js .hero *,.js .hero-foto,.js .cab-foto{animation:none!important}}


/* Titulares: reclamar la ficha, «Mi ficha» y avisos de error */
.titular{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;padding-top:28px;padding-bottom:64px;align-items:start}
.titular[data-titular="mi-ficha"]{grid-template-columns:minmax(0,760px)}
.titular-col{display:grid;gap:16px} .titular-col>.bloque+.bloque{margin-top:0}
.titular-cab{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.titular-cab h2{font-size:1.5625rem;font-weight:800}
.etiqueta{display:block;font-size:.9375rem;font-weight:700;margin:14px 0 6px;color:var(--tinta)}
.etiqueta .entrada{margin-top:6px;font-weight:400}
.entrada{display:block;width:100%;font:400 1rem/1.4 var(--letra);color:var(--tinta);background:var(--papel);border:1px solid var(--tinta-3);border-radius:var(--r);padding:11px 12px;min-height:46px}
.entrada:focus{outline:3px solid var(--foco);outline-offset:1px;border-color:var(--tinta)}
textarea.entrada{resize:vertical;min-height:0}
.ayuda{font-size:.875rem;color:var(--tinta-2);margin:6px 0 0}
.casilla{display:flex;gap:10px;align-items:flex-start;margin:12px 0 0;font-size:.9375rem;cursor:pointer} .casilla input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--marca);flex:none}
.casillas{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:0 16px} .casillas .casilla{margin-top:8px}
fieldset{border:0;margin:18px 0 0;padding:0;min-width:0} legend.etiqueta{margin-bottom:0;padding:0}
.rejilla-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.rejilla-horario{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px 12px;margin-top:6px} .rejilla-horario label{font-size:.875rem;font-weight:600;color:var(--tinta-2)} .rejilla-horario .entrada{margin-top:4px}
.form-cambios{margin-top:16px;padding-top:16px;border-top:1px solid var(--hilo)} .form-cambios h3{font-size:1.1875rem;font-weight:800;margin:0}
.form-cambios .boton{margin-top:20px}
.sugerencias{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px}
.sugerencias button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;background:var(--papel);border:1px solid var(--hilo);border-radius:var(--r);padding:10px 12px;font:inherit;color:var(--tinta);cursor:pointer}
.sugerencias button:hover{border-color:var(--marca)} .sugerencias b{font-weight:800} .sugerencias span{font-size:.875rem;color:var(--tinta-2)}
.ficha-elegida{display:flex;flex-direction:column;gap:2px;margin-bottom:12px} .ficha-elegida b{font-size:1.1875rem;font-weight:800} .ficha-elegida span{color:var(--tinta-2)}
.error-form{color:#A3261C;font-weight:700;margin:14px 0 0}
.bloque-ok{background:var(--marca-suave);border-color:transparent} .bloque-ok p{margin:0} .bloque-ok p+p{margin-top:8px}
form .boton{margin-top:18px}
.trampa{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.historial{margin:8px 0 0;padding-left:20px;font-size:.9375rem;color:var(--tinta-2)}
.titular-cta{margin-top:16px;padding:20px 22px;background:var(--marca-suave);border-radius:var(--r)} .titular-cta p{margin:0} .titular-cta p+p{margin-top:4px;color:var(--tinta-2);font-size:.9375rem} .titular-cta .boton{margin-top:12px}
.aviso-error{margin-top:12px;padding:14px 18px;border:1px solid var(--hilo);border-radius:var(--r);font-size:.9375rem}
.aviso-error summary{cursor:pointer;font-weight:700;color:var(--tinta-2)} .aviso-error form{margin-top:8px} .aviso-error form .boton{margin-top:8px}
@media (max-width:980px){.titular{grid-template-columns:1fr}}
@media (max-width:760px){.rejilla-2{grid-template-columns:1fr}}

.revision{margin-top:16px;padding-top:16px;border-top:1px solid var(--hilo)} .revision h3,.ayuda-web h3{font-size:1.1875rem;font-weight:800;margin:0}
.revision-resumen{margin:12px 0 4px;font-weight:800} .revision-resumen.con-sello{color:var(--marca)}
.criterios{list-style:none;margin:8px 0 12px;padding:0;display:grid;gap:8px}
.crit{display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;align-items:start;font-size:.9375rem}
.crit-marca{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-weight:800;font-size:.8125rem;margin-top:1px}
.crit-ok .crit-marca{background:var(--marca-suave);color:var(--marca)} .crit-mal .crit-marca{background:#FBE9E7;color:#A3261C} .crit-nulo .crit-marca{background:var(--fondo);color:var(--tinta-3)}
.crit-est{font-size:.8125rem;font-weight:700;color:var(--tinta-3);margin-left:6px} .crit-mal .crit-est{color:#A3261C} .crit-ok .crit-est{color:var(--marca)}
.crit .ayuda{margin-top:2px}
.pista-paquete{margin-top:4px} .pista-gratis{color:var(--marca);font-weight:700} .etiqueta-pago{font-size:.8125rem;font-weight:700;color:var(--tinta-3)}
.paquetes{border:0;margin:12px 0 0;padding:0;display:grid;gap:8px} .paquetes legend{padding:0;font-weight:800} .casilla.paquete{align-items:flex-start;padding:10px 12px;background:#fff;border:1px solid var(--hilo);border-radius:var(--r)}
.ayuda-web{margin-top:18px;padding:18px 20px;background:var(--marca-suave);border-radius:var(--r)} .ayuda-web p{margin:8px 0 0} .ayuda-web textarea{margin-top:10px} .ayuda-web .boton{margin-top:10px}
.sello-pill{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;font-weight:800;color:#FDFEFD;background:var(--marca);border-radius:999px;padding:4px 10px 4px 6px;white-space:nowrap}
.editora-pill{display:inline-flex;align-items:center;font-size:.8125rem;font-weight:800;color:var(--marca);background:transparent;border:1.5px solid var(--marca);border-radius:999px;padding:3px 10px;white-space:nowrap;text-decoration:none}
.editora-pill:hover{text-decoration:underline}

/* Migas y cabeceras de página */
.migas ol{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:4px 8px;font-size:.875rem;color:var(--tinta-2)}
.migas li{display:flex;align-items:center;gap:8px} .migas li+li::before{content:"/";color:var(--tinta-3)} .migas a{color:var(--tinta-2)}
.pagina-cab{background:var(--papel);border-bottom:1px solid var(--hilo);padding:32px 0 28px}
.pagina-cab h1{font-size:clamp(1.9rem,3.4vw,2.45rem);line-height:1.12;font-weight:800;letter-spacing:-.02em;max-width:28ch}
.pagina-cab .sub{color:var(--tinta-2);margin:10px 0 0;max-width:68ch}
.regla{display:flex;align-items:flex-start;gap:8px;margin:14px 0 0;font-size:.9375rem;color:var(--tinta-2)} .regla .ico{color:var(--marca);margin-top:2px}

/* Listado */
.barra{position:sticky;top:0;z-index:5;background:var(--fondo);border-bottom:1px solid var(--hilo)}
.barra-in{display:flex;gap:8px;align-items:center;padding-top:12px;padding-bottom:12px;overflow-x:auto;scrollbar-width:none}
.barra-in::-webkit-scrollbar{display:none}
.barra select{font:600 .9375rem/1 var(--letra);min-height:38px;border:1px solid var(--hilo);border-radius:999px;background:var(--papel);color:var(--tinta);padding:0 14px}
.barra .sep{width:1px;height:24px;background:var(--hilo);flex:none;margin:0 4px}
.cuerpo-listado{padding-top:28px;padding-bottom:64px}
.resultados-cab{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.resultados-cab h2{font-size:1.25rem;font-weight:800} .resultados-cab p{margin:0;color:var(--tinta-2);font-size:.9375rem}
.resultados{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.resultado{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 24px;background:var(--papel);border:1px solid var(--hilo);border-radius:var(--r);padding:20px 24px;position:relative}
.resultado[hidden]{display:none} .resultado:hover{border-color:var(--tinta-3)}
.resultado h3{font-size:1.25rem;font-weight:800;letter-spacing:-.01em;line-height:1.25}
.resultado h3 a{color:var(--tinta);text-decoration:none} .resultado h3 a::after{content:"";position:absolute;inset:0;border-radius:var(--r)}
.resultado h3 a:hover{color:var(--marca)}
.meta{display:flex;flex-wrap:wrap;gap:4px 16px;margin:6px 0 0;font-size:.9375rem;color:var(--tinta-2)}
.datos{display:grid;gap:6px;margin:14px 0 0;font-size:.9375rem}
.dato{display:flex;gap:8px;align-items:flex-start;margin:0} .dato .ico{color:var(--tinta-3);margin-top:2px}
.dato b{font-weight:700}
.abierto{color:var(--marca);font-weight:700} .cerrado{color:var(--tinta-2);font-weight:600}
.acciones-fila{display:flex;flex-direction:column;gap:8px;align-items:stretch;justify-content:flex-start;position:relative;z-index:1;min-width:150px}
.sin-resultados{background:var(--papel);border:1px dashed var(--tinta-3);border-radius:var(--r);padding:24px;color:var(--tinta-2)}
/* filtros: objetivos de 44px, quitar filtros, select activo y salidas cuando no hay resultados */
.barra .chip,.barra select{min-height:44px}
.barra select.activo{border-color:var(--marca);background:var(--marca-suave);color:var(--marca-fuerte)}
.barra .quitar{flex:none;min-height:44px;padding:0 14px;border:1px dashed var(--tinta-3);border-radius:999px;background:transparent;color:var(--tinta);font:600 .9375rem/1 var(--letra);cursor:pointer;white-space:nowrap}
.barra .quitar:hover{border-color:var(--marca);color:var(--marca-fuerte);background:var(--marca-suave)}
.sin-resultados p{margin:0 0 12px;max-width:70ch} .sin-resultados .vacio-alt:empty{display:none} .sin-resultados .boton{margin-top:4px}
.sin-resultados a{color:var(--marca-fuerte);text-decoration:underline;text-underline-offset:2px}
.cerca .compacta li:last-child{border-bottom:0}
.registro-solo{margin-top:48px} .registro-solo.sin-margen{margin-top:24px}
.registro-solo h2{font-size:1.25rem;font-weight:800} .registro-solo>p{color:var(--tinta-2);max-width:70ch;margin:6px 0 16px;font-size:.9375rem}
.compacta{list-style:none;margin:0;padding:0;background:var(--papel);border:1px solid var(--hilo);border-radius:var(--r);columns:2;column-gap:0}
.compacta li{break-inside:avoid;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:12px 20px;border-bottom:1px solid var(--hilo);font-size:.9375rem}
.compacta a.nom{font-weight:700;color:var(--tinta);text-decoration:none} .compacta a.nom:hover{color:var(--marca);text-decoration:underline}
.compacta .dir{grid-column:1;color:var(--tinta-2);font-size:.875rem} .compacta .tel{grid-row:1/3;grid-column:2;align-self:center;white-space:nowrap;color:var(--tinta-2)}
.relacionadas{display:flex;flex-wrap:wrap;gap:8px}
.faq{display:grid;gap:8px;max-width:820px}
.faq details{background:var(--papel);border:1px solid var(--hilo);border-radius:var(--r)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;padding:16px 20px;font-weight:700}
.faq summary::-webkit-details-marker{display:none} .faq summary .ico{transition:transform .2s;color:var(--tinta-3)} .faq details[open] summary .ico{transform:rotate(90deg)}
.faq details>div{padding:0 20px 18px;color:var(--tinta-2)} .faq details p{margin:0}

/* Ficha */
.ficha-cab{background:var(--papel);border-bottom:1px solid var(--hilo);padding:28px 0 32px}
.ficha-cab-in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 40px;align-items:end}
.ficha-cab h1{font-size:clamp(1.9rem,3.6vw,2.6rem);line-height:1.1;font-weight:800;letter-spacing:-.02em;overflow-wrap:anywhere}
.ficha-sub{margin:8px 0 0;font-size:1.0625rem;color:var(--tinta-2)}
.ficha-estado{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:14px;align-items:center}
.ficha-estado a{font-size:.875rem;color:var(--tinta-2)}
.acciones{display:flex;flex-wrap:wrap;gap:8px}
.ficha-cuerpo{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;padding-top:32px;padding-bottom:56px;align-items:start}
.bloque{background:var(--papel);border:1px solid var(--hilo);border-radius:var(--r);padding:24px 28px}
.bloque+.bloque{margin-top:16px}
.bloque h2{font-size:1.25rem;font-weight:800;margin-bottom:14px}
.bloque-nota{background:var(--aviso-suave);border-color:transparent;color:var(--tinta)} .bloque-nota h2{color:var(--aviso)}
.bloque-nota p{margin:0;max-width:66ch}
.checks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px}
.checks li{display:flex;gap:8px;align-items:flex-start} .checks .ico{color:var(--marca);margin-top:3px}
.fuente{display:flex;align-items:center;gap:6px;margin:16px 0 0;font-size:.8125rem;color:var(--tinta-3)} .fuente a{color:var(--tinta-3)}
.horario{width:100%;border-collapse:collapse;font-size:.9375rem} .horario th{text-align:left;font-weight:600;color:var(--tinta-2);padding:7px 0;width:40%}
.horario td{padding:7px 0} .horario tr+tr th,.horario tr+tr td{border-top:1px solid var(--hilo)}
.horario tr.hoy th,.horario tr.hoy td{color:var(--tinta);font-weight:800}
.lista-datos{margin:0;display:grid;gap:14px} .lista-datos div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px}
.lista-datos dt{color:var(--tinta-2);font-weight:600;font-size:.9375rem} .lista-datos dd{margin:0;overflow-wrap:anywhere}
.comprobado{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.comprobado li{display:flex;gap:10px;align-items:flex-start} .comprobado .ico{color:var(--marca);margin-top:2px}
.resumen{margin:0;font-size:1.0625rem;line-height:1.6;max-width:70ch}
.contacto{position:sticky;top:24px}
.contacto-lista{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.contacto-lista li{display:flex;gap:12px;align-items:flex-start;overflow-wrap:anywhere} .contacto-lista .ico{color:var(--tinta-3);margin-top:2px}
.contacto-lista span{display:block;font-size:.8125rem;color:var(--tinta-3)}
.cerca{padding:0 0 64px}

/* Páginas de texto */
.prosa{max-width:68ch;padding:40px 0 64px} .prosa p,.prosa li{margin:0 0 14px} .prosa h2{font-size:1.5625rem;font-weight:800;margin:36px 0 10px} .prosa h3{font-size:1.1875rem;font-weight:800;margin:24px 0 6px}
.prosa ul,.prosa ol{padding-left:22px}

/* Pie */







/* Raíz */
.raiz{min-height:100vh;display:grid;place-items:center;padding:32px 16px}
.raiz-caja{width:min(520px,100%);display:grid;gap:20px}
.raiz-idiomas{display:grid;gap:8px}
.raiz-idiomas a{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--papel);border:1px solid var(--hilo);border-radius:var(--r);padding:16px 20px;text-decoration:none;color:var(--tinta);font-weight:800}
.raiz-idiomas a:hover{border-color:var(--marca)} .raiz-idiomas span{font-weight:400;font-size:.9375rem;color:var(--tinta-2)}

@media (max-width:1080px){
  .cab-in{flex-wrap:wrap;gap:0 12px;padding-top:10px} .nav{order:3;flex-basis:100%;margin:0 -12px;overflow-x:auto;scrollbar-width:none} .herramientas{margin-left:auto}
}
@media (max-width:980px){
  .hero{grid-template-columns:1fr;min-height:0} .hero-foto{height:300px;order:-1} .hero-panel{padding:40px 32px 36px}
  .porque{grid-template-columns:1fr} .porque-foto{height:320px} .porque-txt{padding:40px 32px}
  .directorio{grid-template-columns:1fr} .con-foto .pagina-cab-in{grid-template-columns:minmax(0,1fr) 280px}
  .ficha-cuerpo{grid-template-columns:1fr} .contacto{position:static;order:-1}
  .metodo,.indice{grid-template-columns:1fr}
}
@media (max-width:760px){
  .envoltura{padding:0 16px} body{font-size:1rem}
  .logo-txt{font-size:1.125rem}
  .hero-panel{padding:32px 16px 28px} .hero-foto{height:220px} .buscador{grid-template-columns:1fr} .buscador .boton{min-height:52px}
  .porque-txt{padding:32px 16px} .con-foto .pagina-cab-in{grid-template-columns:1fr} .cab-foto{aspect-ratio:16/9;order:-1}
  .campo{border-bottom:1px solid var(--hilo);border-radius:0} .campo:last-of-type{border-bottom:0}
  .seccion{padding:44px 0} .sec-cab h2,h2.sec{font-size:1.5625rem}
  .indice-bloque{padding:20px} .enlaces{grid-template-columns:1fr}
  .resultado{grid-template-columns:1fr;padding:18px} .acciones-fila{flex-direction:row;flex-wrap:wrap;min-width:0}
  .acciones-fila .boton{flex:1 1 auto}
  .compacta{columns:1}
  .ficha-cab-in{grid-template-columns:1fr} .acciones .boton{flex:1 1 auto} .checks{grid-template-columns:1fr}
  .bloque{padding:20px} .lista-datos div{grid-template-columns:1fr;gap:2px}

}
@media print{.cab,.pie,.barra,.aviso-preview,.acciones,.acciones-fila{display:none} body{background:#fff}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* Ventana de reclamar en la ficha */
.modal{width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:24px;border:0;border-radius:14px;background:var(--papel);color:var(--tinta);box-shadow:0 24px 60px rgba(14,40,34,.22);overflow:auto}
.modal::backdrop{background:rgba(16,28,25,.45)}
.modal[open]{animation:modal-entra .22s var(--ease,cubic-bezier(.23,1,.32,1))}
.modal[open]::backdrop{animation:fondo-entra .22s ease-out}
@keyframes modal-entra{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
@keyframes fondo-entra{from{opacity:0}to{opacity:1}}
.modal-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.modal-cab h2{margin:0;font-size:1.35rem}
.modal-cab .ayuda{margin:4px 0 0}
.modal-cerrar{flex:none;width:44px;height:44px;margin:-10px -10px 0 0;border:0;border-radius:10px;background:transparent;font-size:1.6rem;line-height:1;color:inherit;cursor:pointer}
.modal-cerrar:hover{background:var(--marca-suave)}
.modal-cerrar:focus-visible{outline:2px solid var(--marca);outline-offset:2px}
.modal-sub{margin:12px 0 4px}
.modal form{display:grid}
.modal form .boton{margin-top:16px;justify-self:start}
.modal-ok{margin-top:16px}
@media (max-width:560px){.modal{width:100vw;max-width:100vw;max-height:92dvh;margin:auto 0 0;border-radius:16px 16px 0 0;padding:20px 16px}}
@media (prefers-reduced-motion:reduce){.modal[open],.modal[open]::backdrop{animation:none}}
.titular-uno{grid-template-columns:minmax(0,680px)}

/* fichas sin comprobar: el resto plegado */
.mas-registro{margin-top:8px}
.mas-registro>summary{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--hilo);border-radius:var(--r);background:var(--papel);font-weight:700;cursor:pointer;list-style:none}
.mas-registro>summary::-webkit-details-marker{display:none}
.mas-registro>summary:hover{border-color:var(--marca);background:var(--marca-suave)}
.mas-registro>summary:focus-visible{outline:2px solid var(--marca);outline-offset:2px}
.mas-registro[open]>summary{margin-bottom:8px}

/* ════════ Diseño v3.1 (24/10/2026): navegar con gusto ════════
   Lo comprobado se distingue a simple vista (verde, monograma, tarjeta); lo que solo sale del registro va en filas discretas.
   Piedra de marès como superficie de las secciones editoriales; movimiento corto y con propósito. */
:root{--piedra:#F1ECE2;--piedra-hilo:#E2D9C8;--sombra-alza:0 14px 30px -20px rgba(10,52,41,.5);--r-grande:12px}

/* Transiciones entre páginas (navegadores que las admiten); la cabecera no se mueve */
@view-transition{navigation:auto}
.cab{view-transition-name:cabecera}
::view-transition-old(root){animation:vt-sale .14s ease-out both}
::view-transition-new(root){animation:vt-entra .26s var(--ease) both}
@keyframes vt-sale{to{opacity:0}}
@keyframes vt-entra{from{opacity:0;transform:translateY(8px)}}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}

/* Pulsar se siente */
.boton:active,.chip:active,.lengua:active,.cat a:active{transform:scale(.97)}
.boton,.chip{transition:background-color .15s,border-color .15s,color .15s,transform .12s var(--ease)}
.chip[aria-pressed=true]{box-shadow:0 6px 14px -10px rgba(14,95,76,.8)}

/* Monograma: la «cara» de cada ficha */
.mono{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--r-grande);background:var(--marca-suave);color:var(--marca);font-weight:800;font-size:1.0625rem;letter-spacing:.03em;flex:none;transition:transform .3s var(--ease),background-color .2s}
.mono-grande{width:76px;height:76px;font-size:1.625rem;border-radius:16px}
.mono-oficial{background:var(--fondo);color:var(--tinta-3);border:1px dashed var(--tinta-3)}

/* Tarjeta de ficha comprobada */
.resultado{grid-template-columns:52px minmax(0,1fr) auto;gap:6px 20px;padding:20px 22px;border-radius:var(--r-grande);align-items:start}
.resultado:hover{border-color:color-mix(in srgb,var(--marca) 45%,var(--hilo));box-shadow:var(--sombra-alza);transform:translateY(-2px)}
.resultado:hover .mono{transform:scale(1.05);background:#D3E7DF}
.res-cuerpo{min-width:0}
.resultado h3{font-size:1.1875rem}
.resultado .meta{align-items:center;gap:6px 12px;margin-top:6px}
.insignia-corta{font-size:.8125rem;gap:4px;padding:3px 9px 3px 5px;border-radius:999px;background:var(--marca-suave)}
.insignia-corta .ico{width:16px;height:16px}
.resultado .datos{margin-top:12px;gap:5px}
.dato-idiomas span{color:var(--tinta);font-weight:600}
.dato-serv span{color:var(--tinta-2)} .dato-serv .punto{color:var(--hilo)}
.resultados[data-listado] .resultado:not([hidden]){animation:fila-entra .28s var(--ease)}
@keyframes fila-entra{from{transform:translateY(6px)}}
.acciones-fila{min-width:136px}

/* Filas «sin comprobar»: compactas y discretas, claramente detrás */
.registro-solo{margin-top:56px;padding-top:28px;border-top:1px solid var(--hilo)}
.registro-solo h2{display:flex;align-items:center;gap:10px;font-size:1.125rem;color:var(--tinta-2)}
.registro-solo h2::before{content:"";width:10px;height:10px;border-radius:50%;border:2px solid var(--tinta-3);flex:none}
.registro-solo>p{font-size:.875rem;color:var(--tinta-3)}
.compacta{background:transparent;border:0;border-top:1px solid var(--hilo);border-radius:0;column-gap:40px}
.compacta li{padding:10px 2px;gap:2px 16px;font-size:.875rem}
.compacta a.nom{font-weight:600;color:var(--tinta)}
.compacta .dir{font-size:.8125rem;color:var(--tinta-3)}
.compacta .tel{color:var(--tinta-2);font-size:.8125rem;text-decoration:none;font-variant-numeric:tabular-nums}
.compacta .tel:hover{color:var(--marca);text-decoration:underline}
.mas-registro{margin-top:0}
.mas-registro>summary{display:flex;justify-content:center;gap:8px;width:100%;min-height:48px;margin-top:4px;border:1px dashed var(--tinta-3);background:transparent;color:var(--tinta-2);font-size:.9375rem;transition:background-color .15s,border-color .15s,color .15s}
.mas-registro>summary::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s var(--ease)}
.mas-registro[open]>summary::after{transform:translateY(2px) rotate(-135deg)}
.mas-registro>summary:hover{color:var(--tinta);border-style:solid}
.mas-registro[open]>.compacta{animation:subir .3s var(--ease)}
/* Registro plegado bajo demanda (src/lib/rendimiento.mjs): con JavaScript, el desplegable; sin él, un enlace a las zonas */
.mas-registro-nojs{margin:8px 0 0}.js .mas-registro-nojs{display:none}html:not(.js) .mas-registro[data-src]{display:none}

/* Directorio: la base es grande; cada categoría, una tesela con foto */
.sec-base h2{font-size:clamp(1.6rem,2.6vw,2.1rem)}
.frase-base{font-size:clamp(1.125rem,1.7vw,1.375rem);line-height:1.45;color:var(--tinta-2);max-width:58ch;margin-top:10px}
.frase-base .cifra{color:var(--tinta);font-weight:800;font-variant-numeric:tabular-nums}
.frase-base em{font-style:normal;color:var(--marca);font-weight:700} .frase-base em .cifra{color:var(--marca)}
.frase-sector{font-size:1.125rem;margin-top:14px}
.sin-resultados:not([data-vacio]){display:flex;gap:12px;align-items:flex-start;background:var(--piedra);border:1px solid var(--piedra-hilo);border-radius:var(--r-grande);color:var(--tinta-2)}
.sin-resultados:not([data-vacio])::before{content:"";flex:none;width:22px;height:22px;margin-top:1px;border-radius:50%;border:2px solid var(--tinta-3);background:radial-gradient(circle,var(--tinta-3) 0 2px,transparent 3px)}

/* Secciones editoriales sobre piedra */
.seccion-suave{background:var(--piedra);border-top:1px solid var(--piedra-hilo)!important;border-bottom:1px solid var(--piedra-hilo)}
.lengua{min-width:200px;padding:20px 22px;border-color:var(--piedra-hilo);border-radius:var(--r-grande);transition:border-color .2s,transform .25s var(--ease),box-shadow .25s var(--ease)}
.lengua b{font-size:1.5rem;letter-spacing:-.01em}
.lengua:hover{transform:translateY(-3px);box-shadow:var(--sombra-alza)}
.franja-foto{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);background:var(--piedra)}
.franja-img{position:relative;margin:0;min-height:260px;overflow:hidden}
.franja-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.franja-img figcaption{position:absolute;right:10px;bottom:8px;font-size:.6875rem;text-shadow:0 1px 2px rgba(0,0,0,.6)} .franja-img figcaption a{color:rgba(253,254,253,.9);text-decoration:none}
.franja-foto .franja-in{max-width:none;margin:0;padding:48px max(32px,calc((100vw - var(--ancho)) / 2 + 32px)) 48px 56px;align-content:center}
.ejemplo{border-radius:var(--r-grande)}

/* Ficha */
.ficha-cab{background:linear-gradient(180deg,var(--papel),var(--papel) 70%,var(--fondo))}
.ficha-tit{display:flex;gap:20px;align-items:center}
.bloque{border-radius:var(--r-grande)}
.bloque:has(.comprobado){background:var(--marca-suave);border-color:transparent}
.lenguas-ficha{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.lenguas-ficha li{display:flex;flex-direction:column;padding:10px 16px;border:1px solid var(--hilo);border-radius:var(--r-grande);background:var(--fondo);min-width:120px}
.lenguas-ficha b{font-size:1.0625rem;font-weight:800} .lenguas-ficha span{font-size:.8125rem;color:var(--tinta-2)}
.horario tr.hoy th,.horario tr.hoy td{background:var(--marca-suave)} .horario tr.hoy th{padding-left:8px;border-radius:6px 0 0 6px} .horario tr.hoy td{border-radius:0 6px 6px 0}
.barra-accion{display:none}

/* Menú compacto (móvil) */
.menu-movil{display:none;position:relative}
.menu-movil>summary{list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--hilo);border-radius:var(--r);font-weight:700;font-size:.9375rem;cursor:pointer;color:var(--tinta);background:var(--papel)}
.menu-movil>summary::-webkit-details-marker{display:none}
.menu-ico{display:grid;gap:4px;width:18px} .menu-ico i{display:block;height:2px;border-radius:2px;background:currentColor;transition:transform .2s var(--ease),opacity .2s}
.menu-movil[open] .menu-ico i:nth-child(1){transform:translateY(6px) rotate(45deg)} .menu-movil[open] .menu-ico i:nth-child(2){opacity:0} .menu-movil[open] .menu-ico i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.menu-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(300px,calc(100vw - 32px));display:grid;padding:8px;background:var(--papel);border:1px solid var(--hilo);border-radius:var(--r-grande);box-shadow:0 24px 50px -24px rgba(10,40,32,.45);z-index:40;transform-origin:top right;animation:menu-entra .2s var(--ease)}
.menu-panel a{display:flex;align-items:center;min-height:48px;padding:0 14px;border-radius:var(--r);color:var(--tinta);font-weight:700;text-decoration:none}
.menu-panel a:hover,.menu-panel a[aria-current]{background:var(--marca-suave);color:var(--marca)}
@keyframes menu-entra{from{opacity:0;transform:scale(.96) translateY(-4px)}}

@media (max-width:1080px){.ficha-cab-in{grid-template-columns:1fr}}
@media (max-width:980px){
  .contacto{order:0}
  .franja-foto{grid-template-columns:1fr} .franja-img{min-height:200px} .franja-foto .franja-in{padding:36px 32px}
}
@media (max-width:760px){
  .nav{display:none} .menu-movil{display:block}
  .cab-in{flex-wrap:nowrap;padding-top:0;min-height:60px} .herramientas{gap:8px}
  .idiomas a{padding:7px 8px}
  .resultado{grid-template-columns:44px minmax(0,1fr);padding:16px;gap:4px 14px} .resultado .mono{width:44px;height:44px;font-size:.9375rem;border-radius:10px}
  .resultado .acciones-fila{grid-column:1/-1;margin-top:8px}
  .mono-grande{width:56px;height:56px;font-size:1.25rem;border-radius:12px} .ficha-tit{gap:14px;align-items:flex-start}
  .franja-foto .franja-in{padding:28px 16px}
  /* barra de acciones fija en la ficha: lo de arriba no se repite */
  .barra-accion{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:20;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(253,254,253,.96);border-top:1px solid var(--hilo);box-shadow:0 -10px 30px -20px rgba(10,40,32,.5);animation:barra-sube .35s var(--ease) .2s both}
  .barra-accion .boton{min-height:48px}
  body:has(.barra-accion){padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  main:has(.barra-accion) .ficha-cab .acciones a[href^="tel:"],main:has(.barra-accion) .ficha-cab .acciones a[href*="google.com/maps"]{display:none}
  main:has(.barra-accion) .ficha-cab .acciones:not(:has(a:not([href^="tel:"]):not([href*="google.com/maps"]))){display:none}
}
@media (max-width:400px){.menu-movil>summary>span:last-child{display:none} .menu-movil>summary{padding:0 12px}}
@keyframes barra-sube{from{transform:translateY(100%)}}
@media (prefers-reduced-motion:reduce){.barra-accion,.menu-panel,.resultados[data-listado] .resultado:not([hidden]),.mas-registro[open]>.compacta{animation:none!important} .resultado:hover,.lengua:hover{transform:none}}

/* Titulares, segunda tanda (rama mejora/titulares): qué se gana al reclamar, alta, retirar, «avísame» y horario por día */
.ganas{margin:6px 0 0;font-size:.9375rem;color:var(--tinta-2)}
.enlace-boton{display:inline-flex;align-items:center;min-height:44px;padding:0 2px;background:none;border:0;font:inherit;font-weight:700;color:var(--marca);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.enlace-boton:hover{text-decoration-thickness:2px}
.alta-pregunta{padding:4px 0 0;font-size:.9375rem} .alta-pregunta b{font-weight:800}
.avisame-btn{margin-top:2px;font-size:.9375rem}
.cat-prox .cat-txt .avisame-btn{display:flex;color:var(--marca)}
.retirar-enlace{margin:10px 0 0;font-size:.875rem;color:var(--tinta-2)} .retirar-enlace a{color:var(--tinta-2)}
.reenviar{margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center} .reenviar .boton{margin-top:0}
.reenviar-caja .reenviar{margin-top:8px}
.revision-acciones{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 0} .revision-acciones .boton{margin-top:0}
.copiar-texto{margin-top:10px;font:400 .875rem/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}
.horario-dias{display:grid;gap:10px;margin-top:10px}
.dia-fila{display:grid;grid-template-columns:96px auto minmax(0,1fr);gap:6px 16px;align-items:start;padding:10px 12px;border:1px solid var(--hilo);border-radius:var(--r);background:var(--papel)}
.dia-nombre{font-weight:800;padding-top:10px}
.dia-cerrado{margin:0;min-height:44px;align-items:center}
.dia-tramos{display:flex;flex-wrap:wrap;gap:6px 24px;align-items:flex-end}
.tramo{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:end} .tramo[hidden]{display:none}
.tramo label{font-size:.875rem;font-weight:600;color:var(--tinta-2)} .tramo .entrada{margin-top:4px;width:auto;min-width:7.5rem}
.tramo-tit{flex-basis:100%;margin-bottom:-4px;font-size:.875rem;font-weight:700;color:var(--tinta-2)}
.dia-fila input[type=time]:disabled{opacity:.45;background:var(--fondo)}
@media (max-width:760px){.dia-fila{grid-template-columns:1fr auto} .dia-tramos{grid-column:1/-1} .dia-nombre{padding-top:0}}
.sugerencias .alta-pregunta{display:flex;flex-wrap:wrap;gap:0 8px;align-items:center}
.sugerencias .enlace-boton{display:inline-flex;flex-direction:row;width:auto;border:0;background:none;padding:0 2px;text-align:left}

/* lugares */
.enlaces-una{grid-template-columns:minmax(0,1fr)}
.lugares-cat .enlaces .n{text-align:right}
.relacionadas .chip .n{margin-left:2px}
.campo-donde{display:none}
.campo-donde input{appearance:none;-webkit-appearance:none;border:0;background:transparent;font:600 1.0625rem/1.3 var(--letra);color:var(--tinta);padding:2px 0;width:100%;min-width:0}
.campo-donde input::placeholder{color:var(--tinta-3);font-weight:600;opacity:1}
.campo-donde input:focus-visible{outline:none}
.js .campo-donde{display:flex}
.js .buscador{grid-template-columns:1fr 1fr}
.buscador-aviso{grid-column:1/-1;margin:0;padding:6px 12px 2px;font-size:.9375rem;color:var(--aviso)}
@media (max-width:760px){.js .buscador{grid-template-columns:1fr}}
/* guías */
.guia-regla{margin-top:16px}
.guia-meta{margin:10px 0 0;font-size:.875rem;font-weight:600;color:var(--tinta-3)}
.guia{display:grid;grid-template-columns:minmax(0,1fr);gap:0 64px;padding-top:36px;padding-bottom:72px}
.guia-toc{margin:0 0 32px;padding:18px 20px;background:var(--papel);border:1px solid var(--hilo);border-radius:var(--r);font-size:.9375rem}
.guia-toc-tit{margin:0 0 8px;font-size:.8125rem;font-weight:700;letter-spacing:.03em;color:var(--tinta-2)}
.guia-toc ol{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.guia-toc ol a{display:flex;align-items:center;min-height:44px;padding:6px 14px;border:1px solid var(--hilo);border-radius:999px;background:var(--fondo);color:var(--tinta);text-decoration:none;font-weight:600;line-height:1.25}
.guia-toc ol a:hover{border-color:var(--marca);color:var(--marca)}
.guia-toc-glos{margin:10px 0 0;padding-top:10px;border-top:1px solid var(--hilo)}
.guia-toc-glos a{display:flex;align-items:center;gap:8px;min-height:44px;color:var(--marca);font-weight:600;text-decoration:none}
.guia-toc-glos a:hover{text-decoration:underline}
.guia-cuerpo{max-width:68ch;font-size:1.0625rem;line-height:1.65}
.guia-cuerpo>*:first-child{margin-top:0}
.guia-cuerpo h2{font-size:1.5625rem;line-height:1.2;font-weight:800;letter-spacing:-.01em;margin:48px 0 12px;scroll-margin-top:24px}
.guia-cuerpo>h2:first-child{margin-top:0}
.guia-cuerpo h3{font-size:1.1875rem;font-weight:800;margin:28px 0 6px}
.guia-cuerpo p,.guia-cuerpo li{margin:0 0 14px}
.guia-cuerpo ul,.guia-cuerpo ol{padding-left:22px;margin:0 0 14px}
.guia-cuerpo li::marker{color:var(--tinta-3)}
.guia-cuerpo a{overflow-wrap:anywhere}
.ext::after{content:"\2197";display:inline-block;margin-left:.15em;font-size:.85em;text-decoration:none}
.guia-nota{padding:14px 18px;background:var(--marca-suave);border-radius:var(--r)}
.guia-aviso{margin:40px 0 0;padding:16px 20px;background:var(--aviso-suave);border-left:4px solid var(--aviso);border-radius:0 var(--r) var(--r) 0}
.guia-aviso strong{color:var(--tinta)}
.guia-chips{display:flex;flex-wrap:wrap;gap:8px}
.guia-chips .chip{min-height:44px}
.guia-fuentes{padding-left:20px;font-size:.9375rem;color:var(--tinta-2)}
.guia-fuentes li{margin-bottom:8px}
.guia-tabla-caja{margin:20px 0 24px;overflow-x:auto}
.guia-tabla{width:100%;border-collapse:collapse;background:var(--papel);border:1px solid var(--hilo);font-size:.9375rem;line-height:1.5}
.guia-tabla th,.guia-tabla td{padding:12px 14px;border:1px solid var(--hilo);text-align:left;vertical-align:top}
.guia-tabla thead th{background:var(--marca-suave);font-weight:800}
.guia-tabla tbody th{font-weight:800;background:var(--fondo);width:22%}
.guias-lista{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.guia-tarjeta{display:flex;flex-direction:column;gap:6px;height:100%;padding:22px 24px;background:var(--papel);border:1px solid var(--hilo);border-radius:var(--r);color:var(--tinta);text-decoration:none;transition:border-color .15s}
.guia-tarjeta:hover{border-color:var(--marca)} .guia-tarjeta:hover b{color:var(--marca)}
.guia-tarjeta b{font-size:1.1875rem;font-weight:800;line-height:1.25}
.guia-tarjeta span{color:var(--tinta-2);font-size:.9375rem}
.guia-tarjeta .guia-meta{margin:0;color:var(--marca);font-size:.8125rem;font-weight:700}
.glosario-caja{padding-top:28px;padding-bottom:72px}
.glosario-letras{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 20px}
.glosario-letras a{display:inline-grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--hilo);border-radius:var(--r);background:var(--papel);color:var(--tinta);font-weight:700;text-decoration:none}
.glosario-letras a:hover{border-color:var(--marca);color:var(--marca)}
.glosario-cuerpo{max-width:72ch}
.glosario-letra{margin:36px 0 8px;padding-bottom:8px;border-bottom:2px solid var(--tinta);font-size:1.5625rem;font-weight:800;scroll-margin-top:24px}
.glosario{margin:0}
.termino{padding:16px 14px;margin:0 -14px;border-bottom:1px solid var(--hilo);border-radius:var(--r);scroll-margin-top:24px}
.termino:target{background:var(--marca-suave)}
.termino dt{font-size:1.125rem;font-weight:800;margin:0 0 4px}
.termino dt a{color:var(--tinta);text-decoration:none} .termino dt a:hover{color:var(--marca);text-decoration:underline}
.termino dd{margin:0;line-height:1.6}
.termino-usos{margin:8px 0 0;font-size:.875rem;color:var(--tinta-2)}
@media (min-width:1000px){
  .guia{grid-template-columns:240px minmax(0,68ch);justify-content:start}
  .guia-toc{position:sticky;top:24px;align-self:start;margin:0;max-height:calc(100vh - 48px);overflow-y:auto}
  .guia-toc ol{display:grid;gap:2px}
  .guia-toc ol a{display:block;padding:8px 0;border:0;border-radius:0;background:none}
  .guia-toc ol a:hover{text-decoration:underline}
}
@media (max-width:700px){
  .guia-tabla-caja{overflow:visible}
  .guia-tabla thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .guia-tabla,.guia-tabla tbody,.guia-tabla tr,.guia-tabla th,.guia-tabla td{display:block;width:auto}
  .guia-tabla tr{margin:0 0 14px;border:1px solid var(--hilo);border-radius:var(--r);overflow:hidden}
  .guia-tabla th,.guia-tabla td{border:0}
  .guia-tabla tbody th{width:auto;border-bottom:1px solid var(--hilo)}
  .guia-tabla td+td{border-top:1px solid var(--hilo)}
  .guia-tabla td[data-et]:not([data-et=""])::before{content:attr(data-et);display:block;margin-bottom:2px;font-size:.8125rem;font-weight:700;color:var(--tinta-2)}
  .termino{margin:0 -8px;padding:14px 8px}
}

/* ════════ Pie (24/10/2026): agrupado por secciones, sobre piedra ════════ */
.pie{background:var(--piedra,#F1ECE2);border-top:1px solid var(--piedra-hilo,#E2D9C8);padding:56px 0 28px;font-size:.9375rem;color:var(--tinta-2)}
.pie h2{font-size:.8125rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--tinta);margin:0 0 14px}
.pie h2 a{color:inherit;text-decoration:none} .pie h2 a:hover{color:var(--marca)}
.pie ul{list-style:none;margin:0;padding:0}
.pie a{color:var(--tinta-2);text-decoration:none;text-underline-offset:3px} .pie a:hover{color:var(--marca);text-decoration:underline}
.pie a:focus-visible{outline:2px solid var(--marca);outline-offset:2px;border-radius:4px}
.pie-cab{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:24px 48px;align-items:center;padding-bottom:36px;border-bottom:1px solid var(--piedra-hilo,#E2D9C8)}
.pie-marca p{margin:14px 0 0;max-width:46ch;line-height:1.55}
.pie-cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:18px 20px;background:var(--papel);border:1px solid var(--piedra-hilo,#E2D9C8);border-radius:var(--r-grande,12px)}
.pie-cta p{margin:0;flex:1 1 220px;line-height:1.45} .pie-cta b{display:block;color:var(--tinta)}
.pie .pie-boton{color:var(--sobre-marca)} .pie .pie-boton:hover{color:var(--sobre-marca);text-decoration:none}
.pie-dir{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:28px 32px;padding:36px 0;border-bottom:1px solid var(--piedra-hilo,#E2D9C8)}
.pie-grupo ul{display:grid;gap:2px}
.pie-grupo a,.pie-lista a{display:inline-flex;align-items:center;min-height:32px}
.pie-fila{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:28px 32px;padding:32px 0}
.pie-lugares ul{display:flex;flex-wrap:wrap;gap:8px}
.pie-lugares a{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border:1px solid var(--piedra-hilo,#E2D9C8);border-radius:999px;background:var(--papel);font-size:.875rem}
.pie-lugares a:hover{border-color:var(--marca);text-decoration:none}
.pie-lista{display:grid;gap:2px}
.pie-idiomas{display:flex;flex-wrap:wrap;gap:8px}
.pie-idiomas a{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border:1px solid var(--piedra-hilo,#E2D9C8);border-radius:var(--r);background:var(--papel);font-size:.875rem}
.pie-idiomas a[aria-current]{background:var(--tinta);border-color:var(--tinta);color:var(--papel)}
.pie-legal{padding-top:20px;border-top:1px solid var(--piedra-hilo,#E2D9C8);font-size:.8125rem;color:var(--tinta-3);display:flex;justify-content:space-between;gap:8px 16px;flex-wrap:wrap}
.pie-legal p{margin:0} .pie-legal a{color:var(--tinta-3)}
@media (max-width:980px){.pie-cab{grid-template-columns:1fr} .pie-fila{grid-template-columns:1fr 1fr} .pie-lugares{grid-column:1/-1}}
@media (max-width:560px){
  .pie{padding-top:40px}
  .pie-dir{grid-template-columns:1fr 1fr;gap:24px 16px}
  .pie-grupo a,.pie-lista a{min-height:40px}
  .pie-fila{grid-template-columns:1fr}
  .pie-lista{grid-template-columns:1fr 1fr;column-gap:16px}
}

/* ════════ Observatorio (barómetro): barras en SVG con el dato en texto al lado ════════ */
.obs{padding-top:32px;padding-bottom:72px}
.obs-serie{margin:14px 0 6px;font-size:.875rem;font-weight:700;color:var(--marca);letter-spacing:.02em}
.obs-leer{margin-bottom:8px}
.obs-sec{padding:40px 0 8px} .obs-sec+.obs-sec{border-top:1px solid var(--hilo)}
.obs-sec>h2{font-size:1.5625rem;line-height:1.2;font-weight:800;letter-spacing:-.01em}
.obs-sec>.sec-intro{margin:8px 0 20px}
.obs-claves{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.obs-claves li{display:flex;flex-direction:column;gap:6px;padding:20px 22px;background:var(--piedra,#F1ECE2);border:1px solid var(--piedra-hilo,#E2D9C8);border-radius:var(--r-grande,12px)}
.obs-claves b{font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.05;font-weight:800;color:var(--marca);font-variant-numeric:tabular-nums}
.obs-claves span{color:var(--tinta-2);font-size:.9375rem;line-height:1.4}
.obs-graf{margin:0 0 28px;max-width:860px}
.obs-graf figcaption h3{font-size:1.1875rem;font-weight:800;margin:0 0 4px}
.obs-graf figcaption p{margin:0 0 14px;color:var(--tinta-2);font-size:.9375rem}
.obs-barras{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.obs-barras li{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr) 8.5rem;gap:14px;align-items:center}
.obs-et{font-weight:600;line-height:1.3}
.obs-exp{font-style:normal;font-size:.75rem;font-weight:700;color:var(--tinta-3);text-transform:uppercase;letter-spacing:.04em}
.obs-svg{display:block;width:100%;height:14px}
.obs-pista{fill:var(--marca-suave)} .obs-barra{fill:var(--marca)} .obs-barra-exp{fill:var(--marca);fill-opacity:.4}
.obs-val{font-variant-numeric:tabular-nums;white-space:nowrap} .obs-val b{font-weight:800} .obs-val small{color:var(--tinta-3);font-size:.8125rem;margin-left:4px}
.obs-sin{color:var(--tinta-3);font-size:.875rem}
.obs-tabla td{font-variant-numeric:tabular-nums}
.obs-prosa{max-width:68ch} .obs-prosa ul{padding-left:22px} .obs-prosa li{margin-bottom:8px} .obs-prosa h2+p,.obs-prosa h2+ul{margin-top:10px} .obs-prosa h2:not(:first-child){margin-top:28px;font-size:1.25rem;font-weight:800}
.obs-datos{max-width:76ch} .obs-datos h3{font-size:1.1875rem;font-weight:800;margin:20px 0 6px}
.obs-botones{display:flex;flex-wrap:wrap;gap:10px}
.obs-cita{padding:14px 18px;background:var(--papel);border:1px solid var(--hilo);border-left:4px solid var(--marca);border-radius:var(--r);font-size:.9375rem;line-height:1.5;overflow-wrap:anywhere}
@media (max-width:980px){.obs-claves{grid-template-columns:repeat(2,minmax(0,1fr))}}
.obs-claves li.obs-destacada{background:var(--marca-suave);border-color:var(--marca)} .obs-claves li.obs-destacada b{font-size:clamp(2rem,3.4vw,2.625rem)}
.obs-etq-nuevo{display:inline-block;vertical-align:middle;margin-left:8px;padding:2px 8px;border-radius:3px;background:var(--marca);color:#fff;font-size:.6875rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.obs-nuevo h3{font-size:1.1875rem;font-weight:800;margin:22px 0 8px} .obs-nuevo .guia-tabla-caja{margin:8px 0 18px}
.obs-valida .guia-tabla-caja{margin:12px 0 20px} .obs-valida .guia-tabla td strong{color:var(--marca)}
@media (max-width:700px){
  .obs-barras{gap:14px}
  .obs-barras li{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}
  .obs-et{grid-column:1} .obs-val{grid-column:2;grid-row:1;text-align:right} .obs-svg{grid-column:1 / -1;grid-row:2}
}
@media (max-width:480px){.obs-claves{grid-template-columns:1fr}}
@media print{.obs-barra,.obs-barra-exp{fill:#0E5F4C}}
/* Tabla de municipios en el móvil: tabla de verdad con las cuatro columnas clave (la versión en tarjetas de las guías se hace eterna con 66 filas) */
@media (max-width:700px){
  .guia-tabla.obs-tabla{display:table;width:100%;font-size:.875rem}
  .guia-tabla.obs-tabla thead{position:static;width:auto;height:auto;overflow:visible;clip:auto;display:table-header-group}
  .guia-tabla.obs-tabla tbody{display:table-row-group} .guia-tabla.obs-tabla tr{display:table-row;margin:0;border:0}
  .guia-tabla.obs-tabla th,.guia-tabla.obs-tabla td{display:table-cell;padding:8px 6px;border:1px solid var(--hilo)}
  .guia-tabla.obs-tabla tbody th{width:auto}
  .guia-tabla.obs-tabla td::before{content:none!important}
  .obs-tabla tr>:nth-child(3),.obs-tabla tr>:nth-child(4),.obs-tabla tr>:nth-child(6){display:none}
}
/* «Pide presupuesto» (apagado por defecto: src/lib/presupuestos.mjs) */
.presupuesto-cta{background:var(--marca-suave);border-top:1px solid var(--tinta-3);border-bottom:1px solid var(--tinta-3)}
.presupuesto-cta-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-block:20px}
.presupuesto-cta h2{margin:0;font-size:1.25rem} .presupuesto-cta p{margin:4px 0 0;max-width:62ch;color:var(--tinta-2)}
.presupuesto-ficha .boton{margin-top:12px}
.modal select.entrada{appearance:auto}
/* ——— Ficha ampliada (prototipo apagado, src/lib/ampliada.mjs): todo lo de pago se ve marcado como tal ——— */
.pill-ampliada{background:var(--aviso-suave);color:var(--aviso);border:1px solid #E8CFAE;text-decoration:none} .pill-ampliada:hover{background:#F6E4CC}
.boton-reserva{background:var(--tinta);border-color:var(--tinta);color:var(--papel)} .boton-reserva:hover{background:#000;border-color:#000}
.bloque-ampliada{border-style:dashed}
/* Segunda versión (src/lib/ampliada-piezas.mjs): cada bloque del titular lleva «Del titular» junto al título */
.bloque-cab{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;margin-bottom:14px} .bloque-cab h2{margin:0}
.del-titular{font-size:.8125rem;font-weight:600;color:var(--tinta-3);white-space:nowrap;cursor:help;text-decoration:underline dotted;text-underline-offset:3px}
/* Galería: una grande y cuatro pequeñas; la quinta dice cuántas quedan; todas se abren en el visor */
.galeria{list-style:none;margin:0;padding:0;display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}
.galeria li{margin:0;min-width:0} .galeria li:nth-child(n+6){display:none}
.galeria li:first-child{grid-column:span 2;grid-row:span 2}
.g-1{grid-template-columns:1fr} .g-1 li:first-child,.g-2 li{grid-column:auto;grid-row:auto} .g-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-3{grid-template-columns:repeat(3,minmax(0,1fr))} .g-3 li:first-child{grid-column:1/-1;grid-row:auto}
.g-4 li:first-child{grid-column:1/-1;grid-row:auto} .g-4{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-item{position:relative;display:block;height:100%;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);background:var(--marca-suave);cursor:zoom-in}
.galeria li:first-child .g-item{aspect-ratio:auto;min-height:100%} .g-1 .g-item,.g-3 li:first-child .g-item,.g-4 li:first-child .g-item{aspect-ratio:4/3}
.g-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s var(--ease)}
.g-item:hover img{transform:scale(1.03)} .g-item:active img{transform:scale(.99)}
.g-item:focus-visible{outline-offset:3px}
.g-mas{position:absolute;inset:0;display:grid;place-items:center;background:rgba(14,26,22,.58);color:var(--papel);font-size:1.5rem;font-weight:800}
/* Vídeo con fachada: el póster propio hasta que se pulsa */
.video-fachada{margin:0}
.vf-play,.vf-medio{display:block;position:relative;width:100%;height:auto;aspect-ratio:var(--ar,16/9);border:0;border-radius:var(--r);overflow:hidden;background:var(--marca-suave)}
.vf-play img{width:100%;height:100%;object-fit:cover;display:block}
.vf-boton{position:absolute;left:50%;top:50%;width:72px;height:72px;margin:-36px 0 0 -36px;display:grid;place-items:center;border-radius:50%;background:var(--tinta);color:var(--papel);transition:transform .2s var(--ease)}
.vf-boton .ico{margin-left:4px} .vf-play:hover .vf-boton{transform:scale(1.06)} .vf-play:active .vf-boton{transform:scale(.96)}
.vf-dur{position:absolute;right:10px;bottom:10px;padding:3px 8px;border-radius:6px;background:rgba(20,32,28,.82);color:var(--papel);font-size:.8125rem;font-weight:700}
.video-fachada figcaption{margin-top:10px;font-size:.9375rem;color:var(--tinta-2);max-width:68ch}
/* Servicios del titular: por grupos, una línea cada uno, y a la derecha el precio orientativo y el plazo */
.servicios-titular{display:grid;gap:22px}
.st-grupo h3{font-size:.8125rem;font-weight:800;color:var(--marca);margin:0 0 4px}
.st-lista{list-style:none;margin:0;padding:0}
.st-lista li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 24px;align-items:baseline;padding:12px 0;border-top:1px solid var(--hilo)}
.st-lista li:first-child{border-top-color:var(--tinta-3)}
.st-txt h3,.st-txt h4{font-size:1.0625rem;font-weight:800;margin:0}
.st-txt h3 a,.st-txt h4 a{color:var(--tinta);text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .25s var(--ease)}
.st-txt h3 a:hover,.st-txt h4 a:hover{background-size:100% 1px}
.st-txt h3 a::after,.st-txt h4 a::after{content:" ↗";color:var(--tinta-3);font-weight:400}
.st-txt p{margin:2px 0 0;color:var(--tinta-2);max-width:62ch}
.st-meta{display:grid;justify-items:end;gap:2px;text-align:right;font-size:.875rem;white-space:nowrap}
.st-precio{font-weight:800;color:var(--tinta)} .st-plazo{display:inline-flex;align-items:center;gap:5px;color:var(--tinta-2)} .st-plazo .ico{color:var(--tinta-3)}
.st-directorio{display:flex;gap:6px;align-items:flex-start;margin:18px 0 0;padding-top:14px;border-top:1px dashed var(--hilo);font-size:.875rem;color:var(--tinta-2)} .st-directorio .ico{margin-top:3px;color:var(--tinta-3)}
.faq-ficha{max-width:none} .faq-ficha details{background:var(--fondo)}
.bloque-cta p{margin:0 0 14px;max-width:62ch;color:var(--tinta-2)} .bloque-cta .acciones{display:flex;flex-wrap:wrap;gap:8px}
@media (max-width:760px){
  .galeria,.g-3,.g-4{grid-template-columns:repeat(2,minmax(0,1fr))} .galeria li:first-child{grid-column:1/-1;grid-row:auto} .galeria li:first-child .g-item{aspect-ratio:4/3}
  .g-1{grid-template-columns:1fr}
  .st-lista li{grid-template-columns:1fr} .st-meta{justify-items:start;text-align:left;grid-auto-flow:column;justify-content:start;gap:4px 14px;white-space:normal}
  .bloque-cta .acciones .boton{flex:1 1 100%}
  .vf-boton{width:56px;height:56px;margin:-28px 0 0 -28px} .vf-boton .ico{width:22px;height:22px}
}
@media (prefers-reduced-motion:reduce){.g-item img,.vf-boton{transition:none} .g-item:hover img{transform:none}}
.nota-horario{margin:12px 0 0;font-size:.9375rem;color:var(--tinta-2)}
.aviso-ampliada{display:flex;gap:8px;align-items:flex-start;margin:16px 0 0;padding:10px 14px;background:var(--aviso-suave);color:var(--aviso);border-radius:var(--r);font-size:.875rem} .aviso-ampliada .ico{margin-top:2px;flex:none} .aviso-ampliada a{color:inherit}
.nota-editora{margin-top:16px}
/* Logo propio de la ficha (campo `logo`): en el hueco del monograma, sobre papel para que conserve sus colores */
.mono.con-logo{background:var(--papel);border:1px solid var(--hilo);padding:0;overflow:hidden}
.resultado:hover .mono.con-logo{background:var(--papel)}
.mono.con-logo .logo-ficha{width:76%;height:76%;object-fit:contain;display:block}
/* «Mejora tu ficha» en Mi ficha */
.mejora{margin-top:20px;padding-top:20px;border-top:1px solid var(--hilo)} .mejora h3{font-size:1.1875rem;font-weight:800;margin:0}
.periodo{display:flex;gap:8px;margin:14px 0 4px;flex-wrap:wrap} .periodo .chip{cursor:pointer} .periodo input{position:absolute;opacity:0;pointer-events:none} .periodo .chip:has(input:checked){background:var(--marca);border-color:var(--marca);color:var(--sobre-marca)} .periodo .chip:has(input:focus-visible){outline:3px solid var(--foco);outline-offset:2px}
.planes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:14px 0}
.plan{background:var(--papel);border:1px solid var(--hilo);border-radius:var(--r);padding:20px 22px;display:flex;flex-direction:column} .plan h4{font-size:1.125rem;font-weight:800;margin:0}
.plan-precio{margin:8px 0 0;font-size:1rem} .plan-precio b{font-size:1.75rem;font-weight:800;letter-spacing:-.01em} .plan-iva{font-size:.8125rem;color:var(--tinta-3)}
.plan-todo{margin:10px 0 0;font-weight:700;font-size:.9375rem}
.plan-lista{list-style:none;margin:10px 0 16px;padding:0;display:grid;gap:8px;font-size:.9375rem;flex:1;align-content:start} .plan-lista li{padding-left:22px;position:relative} .plan-lista li::before{content:"✓";position:absolute;left:0;color:var(--marca);font-weight:800}
.plan .boton{align-self:flex-start}
.mejora[data-periodo=mes] .p-anio,.mejora[data-periodo=anio] .p-mes{display:none}
.mejora-ya{margin:12px 0 0;padding:12px 14px;background:var(--marca-suave);border-radius:var(--r)} .mejora-ok{font-weight:700;color:var(--marca)}
@media (max-width:760px){.planes{grid-template-columns:1fr}}
/* «Tus fotos» en Mi ficha: subida por el titular con ficha ampliada (src/assets/titulares.js) */
.fotos-tit{margin-top:20px;padding-top:20px;border-top:1px solid var(--hilo)} .fotos-tit h3{font-size:1.1875rem;font-weight:800;margin:0}
.fotos-reglas{margin:14px 0 0;padding:14px 16px;background:var(--aviso-suave);border-radius:var(--r)} .fotos-reglas h4{margin:0;font-size:1rem;font-weight:800} .fotos-reglas ul{margin:6px 0 0;padding-left:20px;font-size:.9375rem} .fotos-reglas li+li{margin-top:4px}
.fotos-zona{margin-top:14px;padding:18px;border:2px dashed var(--tinta-3);border-radius:var(--r);background:var(--papel);text-align:center;transition:background-color .2s var(--ease),border-color .2s var(--ease)}
.fotos-zona.encima{background:var(--marca-suave);border-color:var(--marca)} .fotos-zona:focus-within{outline:3px solid var(--foco);outline-offset:2px}
.fotos-zona-txt{margin:0;display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap} .fotos-zona label{cursor:pointer}
.fotos-previa{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:10px} .fotos-previa img{max-width:100%;max-height:220px;border-radius:var(--r);object-fit:contain;background:var(--fondo)}
.fotos-progreso{display:flex;align-items:center;gap:10px;margin-top:10px} .fotos-progreso progress{flex:1;max-width:320px;height:10px;accent-color:var(--marca)}
.fotos-acciones{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 0}
.fotos-lista{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:12px}
.foto-tit{display:grid;grid-template-columns:160px minmax(0,1fr);gap:14px;padding:12px;border:1px solid var(--hilo);border-radius:var(--r);background:var(--papel)}
.foto-tit img{width:160px;height:120px;object-fit:cover;border-radius:6px;background:var(--fondo)}
.foto-datos p{margin:0} .foto-datos p+p{margin-top:6px} .foto-alt{font-size:.9375rem}
.foto-pill{display:inline-block;font-size:.8125rem;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--marca-suave);color:var(--marca-fuerte)}
.foto-pendiente .foto-estado .foto-pill:first-child{background:var(--aviso-suave);color:var(--aviso)} .foto-rechazada .foto-estado .foto-pill{background:#FBE9E7;color:#9B2C1F} .foto-rechazada img{opacity:.6}
.foto-principal{background:var(--tinta);color:var(--papel)}
.foto-botones{display:flex;gap:6px;flex-wrap:wrap} .foto-editar{display:flex;gap:6px;flex-wrap:wrap;align-items:center} .foto-editar .entrada{flex:1 1 220px;min-width:0}
@media (max-width:560px){.foto-tit{grid-template-columns:1fr} .foto-tit img{width:100%;height:auto;aspect-ratio:4/3}}
@media (prefers-reduced-motion:reduce){.fotos-zona{transition:none}}
/* Recursos útiles (enlaces de afiliado de las guías y el glosario; solo existen si hay enlaces rellenos) */
.recursos{margin:48px 0 0;padding:22px 24px;background:var(--papel);border:1px solid var(--hilo);border-radius:var(--r)}
.guia-cuerpo .recursos h2{margin-top:0}
.recursos-aviso{margin:0 0 16px;padding:12px 14px;background:var(--aviso-suave);border-left:4px solid var(--aviso);border-radius:0 var(--r) var(--r) 0;font-size:.9375rem;line-height:1.5}
.recursos-lista{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.guia-cuerpo .recursos-lista li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0;padding:12px 0 0;border-top:1px solid var(--hilo)}
.guia-cuerpo .recursos-lista li:first-child{border-top:0;padding-top:0}
.recursos-lista a{font-weight:700}
.recursos-etiqueta{padding:2px 8px;border:1px solid var(--aviso);border-radius:999px;color:var(--aviso);font-size:.75rem;font-weight:700;letter-spacing:.02em}
.recursos-texto{flex-basis:100%;color:var(--tinta-2);font-size:.9375rem;line-height:1.5}
.termino-recurso{margin:8px 0 0;font-size:.9375rem;color:var(--tinta-2)}

/* Foto de Google en la fila del listado (sustituye al monograma cuando llega) */
.mono.con-foto{background:var(--fondo);overflow:hidden;padding:0}
.mono.con-foto img{width:100%;height:100%;object-fit:cover;display:block;animation:foto-entra .3s var(--ease,ease-out)}
@keyframes foto-entra{from{opacity:0}to{opacity:1}}
.foto-autor{margin:8px 0 0;font-size:.75rem;color:var(--tinta-3)} .foto-autor a{color:var(--tinta-3)}
@media (prefers-reduced-motion:reduce){.mono.con-foto img{animation:none}}

/* Accesibilidad WCAG 2.2 AA (frente accesibilidad, 25/10/2026; informe en docs/ACCESIBILIDAD.md)
   Foco no tapado (2.4.11): la barra de filtros es pegajosa arriba, la barra de acciones del móvil y el aviso de cookies están fijos abajo. */
html{scroll-padding-top:84px;scroll-padding-bottom:calc(var(--cookies-h,0px) + 16px)}
/* Crédito de las fotos: texto pequeño sobre fotografía; con fondo propio el contraste no depende de la foto (1.4.3) */
.hero-foto figcaption,.cab-foto figcaption,.porque-foto figcaption,.franja-img figcaption,.foto-google .gf-autor{font-size:.75rem;line-height:1.35;color:#fff;background:rgba(10,30,25,.8);padding:2px 8px;border-radius:4px;text-shadow:none}
.hero-foto figcaption a,.cab-foto figcaption a,.porque-foto figcaption a,.franja-img figcaption a,.foto-google .gf-autor a{color:#fff;text-decoration:underline;text-underline-offset:2px}
/* Foco visible en los campos del buscador de la portada: antes solo cambiaba el fondo (2.4.7) */
.campo:focus-within{outline:3px solid var(--foco);outline-offset:-3px}
/* Objetivos de 24 px como mínimo (2.5.8) */
.migas a{display:inline-flex;align-items:center;min-height:24px}
.compacta a.nom,.compacta a.tel{display:inline-flex;align-items:center;min-height:28px}
.compacta a.nom{justify-self:start}
.casilla input{width:24px;height:24px}
.aviso-error summary{display:flex;align-items:center;min-height:44px}
.termino dt a.ancla{display:inline-flex;align-items:center;min-height:28px}
/* Los enlaces con forma de ficha pueden partir línea: un nombre largo no debe ensanchar la página (reflow a 320 px, 1.4.10) */
a.chip{white-space:normal;max-width:100%}
.relacionadas{min-width:0}
/* Móvil y pantallas táctiles: 44 px */
@media (max-width:760px),(pointer:coarse){
  html{scroll-padding-bottom:calc(var(--cookies-h,0px) + 96px)}
  .chip,.boton-peq{min-height:44px}
  .migas a{min-height:44px}
  .idiomas a{display:inline-flex;align-items:center;min-height:44px}
  .compacta a.nom,.compacta a.tel{min-height:44px}
  .compacta li{padding-top:0;padding-bottom:0}
  .casilla{min-height:44px;align-items:center}
  .termino dt a.ancla{min-height:44px}
  .campo select,.campo input{min-height:44px}
  .pie-grupo a,.pie-lista a,.pie-lugares a,.pie-idiomas a{min-height:44px}
  .hero .atajos a{display:inline-flex;align-items:center;min-height:44px}
  .pie-grupo h2 a{display:inline-flex;align-items:center;min-height:44px}
  .grupo h3 a,.porque-txt a{align-items:center;min-height:44px}
  .grupo h3 a{display:inline-flex}
  .logo{min-height:44px}
}
/* Cabecera en 320 px: logo, idiomas y menú caben sin desbordar (1.4.10) */
@media (max-width:380px){
  .cab-in{gap:8px}
  .logo{gap:8px} .logo-txt{font-size:1.0625rem}
  .logo-txt span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .idiomas a{padding:0 6px;min-width:36px;justify-content:center}
  .herramientas{gap:6px;margin-left:auto}
  .menu-movil>summary{padding:0 10px}
}
/* A 320 px (zoom del 400 %; hasta 359 px desde el diseño v4, para no partirla en los móviles de 375-390 px) la barra de filtros se parte en líneas en vez de desplazarse de lado (1.4.10); no queda pegada porque ocuparía media pantalla */
@media (max-width:359px){
  .barra{position:static}
  .barra-in{flex-wrap:wrap;overflow:visible}
  .barra .sep{display:none}
}
/* Texto blanco sobre las fotos de las tarjetas de categoría: un velo oscuro detrás del propio bloque de texto garantiza 4,5:1 aunque la foto sea clara en esa zona (1.4.3) */
/* Espaciado de texto del usuario (1.4.12) y tablas anchas (1.4.10): nada queda cortado fuera de la pantalla */
@media (min-width:761px){.cab-in{flex-wrap:wrap}.nav{flex-wrap:wrap}}
.guia-tabla-caja:has(.obs-tabla){overflow-x:auto}
.guia-tabla-caja[tabindex]:focus-visible{outline:3px solid var(--foco);outline-offset:2px}
/* «Reducir movimiento» (2.3.3 y buenas prácticas): ninguna animación ni transición se queda fuera, ni siquiera las que se añadan después */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
/* Anillo de foco: el ámbar de antes (2,4:1 sobre blanco) no llegaba a 3:1 (1.4.11); ahora --foco es #9A6700 (4,8:1 sobre blanco) y, sobre los fondos oscuros de la portada, el ámbar claro */
.hero a:focus-visible,.hero button:focus-visible,.porque a:focus-visible,.porque button:focus-visible,.hero-foto a:focus-visible{outline-color:#FFD166}
.hero .buscador :focus-visible{outline-color:var(--foco)}
/* Destino del enlace «Ir al contenido»: recibe el foco al saltar (Safari y lectores), pero no es un control y no lleva anillo */
main[tabindex="-1"]:focus{outline:none}
/* Texto de ayuda dentro de los campos: color propio con contraste de 4,5:1 en todos los navegadores */
.entrada::placeholder{color:var(--tinta-3);opacity:1}

/* ════════ Diseño v4 (24/10/2026, docs/diseno/AUDITORIA-V4.md) ════════
   Lo que cambia: fotografía contenida (la de Google, miniatura o marco 4:3; la propia, franja partida hasta el borde),
   una pieza cartográfica propia (las islas dibujadas, cada isla un enlace, las torres de lo comprobado), filas de categoría con
   medidor de lo comprobado, y movimiento con propósito: transición de la fila a la ficha, el trazo de la costa, el sello, el progreso
   de lectura. Todo se ve quieto y completo sin JavaScript y con «reducir movimiento». */
:root{--agua:#E4EEEA;--costa:#8E9A93;--ease-io:cubic-bezier(.65,0,.35,1);--r-foto:12px}

/* ——— Cabecera de página: franja partida con foto propia a sangre ——— */
.pagina-cab{position:relative;overflow:hidden}
.pagina-cab-txt{min-width:0}
.pagina-cab.con-foto .pagina-cab-in{display:block}
.cab-foto{margin:0;border-radius:0;aspect-ratio:auto;background:var(--marca-suave);overflow:hidden}
.cab-foto img{width:100%;height:100%;object-fit:cover;display:block}
@media (min-width:761px){
  .pagina-cab.con-foto{min-height:clamp(300px,30vw,380px);display:flex;align-items:center;padding:40px 0 36px}
  .pagina-cab.con-foto>.envoltura{width:100%}
  .pagina-cab.con-foto .pagina-cab-txt{max-width:calc(58vw - max(32px,(100vw - var(--ancho)) / 2 + 32px) - 40px)}
  .pagina-cab.con-foto .cab-foto{position:absolute;top:0;right:0;bottom:0;width:42vw}
  .pagina-cab.con-foto .cab-foto::before{content:"";position:absolute;inset:0 auto 0 0;width:1px;background:var(--hilo);z-index:1}
}
@media (max-width:760px){
  .pagina-cab.con-foto{display:flex;flex-direction:column;padding-top:0}
  .pagina-cab.con-foto .cab-foto{order:-1;position:relative;aspect-ratio:21/9;margin-bottom:20px}
}
.js .pagina-cab .cab-foto{animation:descubrir .9s var(--ease) .05s both} .js .pagina-cab .cab-foto img{animation:acercar 2s var(--ease) .05s both}
/* Cabecera con mapa (islas y municipios) */
.pagina-cab.con-vista .pagina-cab-in{grid-template-columns:minmax(0,1fr) minmax(260px,460px);align-items:center;gap:24px 48px}
.cab-vista{min-width:0}
@media (max-width:760px){.pagina-cab.con-vista .pagina-cab-in{grid-template-columns:1fr}.cab-vista{max-width:420px}}

/* ——— Pieza cartográfica: «la vista» ——— */
.mapa{margin:0} .mapa svg{display:block;width:100%;height:auto;overflow:visible}
.mapa-agua path{fill:none;stroke:rgba(14,95,76,.09);stroke-width:14;stroke-linejoin:round}
.seccion-suave .mapa .isla{fill:var(--papel)}
.mapa svg{filter:drop-shadow(0 0 7px rgba(14,95,76,.16))}
.mapa .isla{fill:var(--piedra);stroke:var(--costa);stroke-width:1.6;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill .25s var(--ease),stroke .25s var(--ease)}
.mapa .isla-activa{fill:var(--marca-suave);stroke:var(--marca)}
.isla-enlace{cursor:pointer} .isla-enlace:focus{outline:none}
.isla-enlace:hover .isla,.isla-enlace:focus-visible .isla{fill:var(--marca-suave);stroke:var(--marca)}
.isla-enlace:focus-visible .isla{stroke:var(--foco);stroke-width:3.5}
.mapa-rot{pointer-events:none} .mapa-rot-nom{font:800 31px var(--letra);fill:var(--tinta)} .mapa-rot-n{font:700 21px var(--letra);fill:var(--marca)}
.isla-enlace:hover .mapa-rot-nom,.isla-enlace:focus-visible .mapa-rot-nom{text-decoration:underline;text-decoration-thickness:2px}
.torres{pointer-events:none}
.torre{fill:var(--marca);fill-opacity:.82;stroke:var(--papel);stroke-width:1.5}
.torre-hueca{fill:var(--papel);fill-opacity:1;stroke:var(--tinta-3)}
.mapa-yo .mapa-centro{fill:var(--marca);stroke:var(--papel);stroke-width:3}
.mapa-onda{fill:none;stroke:var(--marca);stroke-width:2.5;opacity:0;transform-box:fill-box;transform-origin:center}
.mapa-rot-yo{font:800 34px var(--letra);fill:var(--tinta);paint-order:stroke;stroke:var(--papel);stroke-width:7px;stroke-linejoin:round}
/* Entrada: la costa se traza, luego se rellena, y las torres aparecen de poniente a levante (--t, según la longitud) */
.js .mapa[data-aparece]{opacity:1;transform:none}
.js .mapa .isla{stroke-dasharray:1;stroke-dashoffset:1;fill-opacity:0;vector-effect:none}
.js .mapa.visto .isla{animation:costa 1.5s var(--ease-io) forwards,relleno .7s ease-out .9s forwards}
.js .mapa .torre,.js .mapa .mapa-yo,.js .mapa .mapa-rot{opacity:0}
.js .mapa .torre{transform-box:fill-box;transform-origin:center}
.js .mapa.visto .torre{animation:torre .45s var(--ease) calc(1s + var(--t,0ms)) forwards}
.js .mapa.visto .mapa-rot{animation:aparece .5s ease-out 1.2s forwards}
.js .mapa.visto .mapa-yo{animation:aparece .3s ease-out 1.3s forwards}
.js .mapa.visto .mapa-onda{animation:onda 1.6s ease-out 1.5s 2}
@keyframes costa{to{stroke-dashoffset:0}} @keyframes relleno{to{fill-opacity:1}} @keyframes aparece{to{opacity:1}}
@keyframes torre{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
@keyframes onda{0%{opacity:.75;transform:scale(1)}100%{opacity:0;transform:scale(3.2)}}
.mapa-bloque{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.8fr);gap:28px 56px;align-items:center}
.mapa-lado{min-width:0;display:grid;gap:18px;align-content:start} .mapa-lado h2{font-size:1.5625rem;font-weight:800}
.mapa-lado .fuente{margin:0} .mapa-mas{margin:0}
.islas-lista{list-style:none;margin:0;padding:0;border-top:2px solid var(--tinta)}
.islas-lista a{display:grid;grid-template-columns:minmax(0,1fr) 18px;gap:2px 12px;align-items:center;padding:12px 4px;border-bottom:1px solid var(--hilo);color:var(--tinta);text-decoration:none}
.islas-lista b{font-size:1.125rem;font-weight:800} .islas-lista span{grid-column:1;font-size:.875rem;color:var(--tinta-2)} .islas-lista .ico{grid-row:1/3;grid-column:2;color:var(--tinta-3);transition:transform .25s var(--ease)}
.islas-lista a:hover b{color:var(--marca)} .islas-lista a:hover .ico{transform:translateX(3px);color:var(--marca)}
@media (max-width:860px){.mapa-bloque{grid-template-columns:1fr}}
@media (max-width:760px){.mapa-rot{display:none} .mapa-rot-yo{display:inline;font-size:46px;stroke-width:9px} .mapa-agua path{stroke-width:18}}

/* ——— Ficha: cabecera con retrato, estado, acciones y «vista» (foto contenida o mapa) ——— */
.ficha-cab-in{display:grid;grid-template-columns:88px minmax(0,1fr);grid-template-rows:auto auto 1fr;grid-template-areas:"retrato tit" ". estado" ". acciones";column-gap:24px;row-gap:14px;align-items:start}
.ficha-cab-in.con-vista{grid-template-columns:88px minmax(0,1fr) minmax(220px,320px);grid-template-areas:"retrato tit vista" ". estado vista" ". acciones vista"}
.ficha-cab-in>.retrato{grid-area:retrato} .ficha-cab-in>.ficha-tit{grid-area:tit;display:block} .ficha-cab-in>.ficha-estado{grid-area:estado;margin:0} .ficha-cab-in>.acciones{grid-area:acciones;align-self:start} .ficha-cab-in>.vista{grid-area:vista}
.ficha-cab h1{width:fit-content;max-width:100%;view-transition-name:ficha-nombre}
.retrato{width:88px;height:88px;border-radius:18px;font-size:1.75rem;position:relative;overflow:hidden;view-transition-name:ficha-retrato}
.retrato .retrato-foto{display:none}
.foto-credito{margin:6px 0 0;font-size:.75rem;color:var(--tinta-3)} .foto-credito a{color:var(--tinta-3)}
.vista{position:relative;display:grid;align-self:start}
.vista>*{grid-area:1/1}
.vista .mapa-ficha{transition:opacity .4s var(--ease)}
.vista.con-foto .mapa-ficha{opacity:0;visibility:hidden}
/* El marco de la foto: 4:3, nunca más ancho de 320 px; el crédito, dentro, con fondo propio */
.foto-google{margin:0;position:relative;aspect-ratio:4/3;border-radius:var(--r-foto);overflow:hidden;background:var(--agua)}
.js .foto-google[hidden][data-place-id]{display:none!important}
.foto-google .gf{all:unset;display:block;width:100%;height:100%;cursor:zoom-in}
.foto-google .gf:focus-visible{outline:3px solid var(--foco);outline-offset:-3px}
.foto-google img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transform:scale(1.04);transition:opacity .5s var(--ease),transform 1.2s var(--ease)}
.foto-google.lista img{opacity:1;transform:none}
.foto-google .gf:hover img{transform:scale(1.03)}
.foto-google .gf-autor{position:absolute;left:8px;bottom:8px;right:auto;max-width:calc(100% - 16px)}
/* Mapa de la ficha: la isla en un marco 4:3 «de mar», con el punto del municipio */
.mapa-ficha{margin:0}
.mapa-marco{position:relative;display:block;aspect-ratio:4/3;border-radius:var(--r-foto);background:var(--agua);overflow:hidden}
.mapa-ficha-lamina{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.mapa-ficha-lamina img{display:block;width:100%;height:100%}
.mapa-ficha figcaption{margin-top:8px;font-size:.8125rem;color:var(--tinta-2)}
.mapa-punto{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--marca);box-shadow:0 0 0 3px var(--papel),0 2px 8px rgba(10,52,41,.35)}
.mapa-punto::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--marca);opacity:0}
.ficha-sin .mapa-punto{background:var(--papel);box-shadow:0 0 0 3px var(--tinta-3) inset,0 0 0 2px var(--papel)}
.js .mapa-ficha .mapa-punto{opacity:0;transform:translateY(-10px)}
.js .mapa-ficha.visto .mapa-punto{animation:punto .5s var(--ease) .35s forwards}
.js .mapa-ficha.visto .mapa-punto::after{animation:onda 1.6s ease-out .9s 2}
@keyframes punto{to{opacity:1;transform:none}}
/* Bloque «Ubicación»: el mapa al lado de la dirección (móvil, y escritorio cuando la cabecera enseña la foto) */
.bloque-ubic.con-mapa{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,220px);gap:20px 28px;align-items:start}
@media (min-width:761px){.bloque-ubic .mapa-ubic{display:none} .ficha-cuerpo.con-foto .bloque-ubic .mapa-ubic{display:block}
  .ficha-cuerpo:not(.con-foto) .bloque-ubic.con-mapa{grid-template-columns:1fr}
  .foto-credito{display:none!important}}
/* Sello: la insignia de lo comprobado se «estampa» al llegar a la ficha */
.js .ficha-verificada .ficha-estado .insignia:first-child .ico{animation:sello .55s var(--ease) .25s both}
@keyframes sello{from{opacity:0;transform:scale(1.6) rotate(-14deg)}to{opacity:1;transform:none}}
/* Visor de fotos a pantalla completa (foto de Google y galería del titular): fondo oscuro, la foto entera, pie con el contador */
.visor{padding:0;border:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;background:#0F1714;color:#E9EFEC;overflow:hidden}
.visor::backdrop{background:#0F1714}
.visor[open]{animation:fondo-entra .22s ease-out}
.visor figure{margin:0;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto}
.visor-marco{display:grid;place-items:center;min-height:0;padding:56px 72px 8px;touch-action:pan-y}
.visor-img{display:block;width:auto;height:auto;max-width:calc(100vw - 144px);max-height:calc(100dvh - 64px - var(--pie-visor,96px));object-fit:contain;border-radius:4px;user-select:none;-webkit-user-drag:none}
.visor-img.entra-der{animation:visor-der .22s var(--ease)} .visor-img.entra-izq{animation:visor-izq .22s var(--ease)}
@keyframes visor-der{from{opacity:.2;transform:translateX(24px)}to{opacity:1;transform:none}}
@keyframes visor-izq{from{opacity:.2;transform:translateX(-24px)}to{opacity:1;transform:none}}
.visor figcaption{display:flex;flex-wrap:wrap;gap:4px 14px;justify-content:center;align-items:baseline;max-width:980px;margin:0 auto;padding:12px 72px 20px;line-height:1.4;font-size:.9375rem;text-align:center;color:#CBD6D1;min-height:56px} .visor figcaption a{color:#E9EFEC}
.visor-n{flex:none;font-weight:700;color:#E9EFEC;font-variant-numeric:tabular-nums}
.visor-cerrar,.visor-nav{position:absolute;width:48px;height:48px;border:0;border-radius:50%;background:rgba(233,239,236,.12);color:#F4F7F5;font-size:1.75rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background-color .15s,transform .1s}
.visor-cerrar{top:12px;right:12px} .visor-nav{top:50%;margin-top:-24px;display:none} .visor-ant{left:12px} .visor-sig{right:12px} .visor.varias .visor-nav{display:grid}
.visor-cerrar:hover,.visor-nav:hover{background:rgba(233,239,236,.24)} .visor-cerrar:active,.visor-nav:active{transform:scale(.95)}
.visor :focus-visible{outline-color:#F2C14E}
@media (max-width:760px){.visor-marco{padding:60px 8px 4px} .visor-img{max-width:calc(100vw - 16px);max-height:calc(100dvh - 64px - var(--pie-visor,140px))} .visor-nav{top:auto;bottom:12px;margin:0} .visor figcaption{padding:12px 68px 22px;font-size:.875rem}}
@media (prefers-reduced-motion:reduce){.visor-img.entra-der,.visor-img.entra-izq,.visor[open]{animation:none}}
@media (max-width:979px){.ficha-cab-in.con-vista{grid-template-columns:76px minmax(0,1fr) 240px}.retrato{width:76px;height:76px;font-size:1.5rem;border-radius:16px}.ficha-cab-in{grid-template-columns:76px minmax(0,1fr)}}
@media (max-width:760px){
  .ficha-cab-in,.ficha-cab-in.con-vista{grid-template-columns:64px minmax(0,1fr);grid-template-areas:"retrato tit" "estado estado" "acciones acciones";column-gap:14px}
  .ficha-cab-in>.vista{display:none}
  .retrato{width:64px;height:64px;font-size:1.25rem;border-radius:14px}
  .retrato.con-foto{font-size:0;background:var(--fondo);border:0}
  .retrato.con-foto .mono-letras{display:none}
  .retrato .retrato-foto{all:unset;position:absolute;inset:0;display:block;cursor:zoom-in}
  .retrato .retrato-foto:focus-visible{outline:3px solid var(--foco);outline-offset:-3px;border-radius:inherit}
  .retrato .retrato-foto img{width:100%;height:100%;object-fit:cover;display:block;animation:foto-entra .4s var(--ease)}
  .bloque-ubic.con-mapa{grid-template-columns:1fr}
  .bloque-ubic .mapa-ubic{max-width:360px}
}

/* ——— Filas de categoría con medidor de lo comprobado (portada, grupos y lugares) ——— */
.catfs{list-style:none;margin:0;padding:0;display:grid}
.catf a{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(120px,190px) 18px;gap:4px 14px;align-items:center;padding:11px 10px;border-top:1px solid var(--hilo);color:var(--tinta);text-decoration:none;transition:background-color .2s var(--ease)}
.catf:first-child a{border-top:0}
.catf a:hover{background:var(--marca-suave)} .catf a:hover b{color:var(--marca)}
.catf a>.ico{color:var(--tinta-3);transition:transform .25s var(--ease),color .2s} .catf a:hover>.ico{transform:translateX(3px);color:var(--marca)}
.catf a:active{transform:scale(.99)}
.catf-ico{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:var(--marca-suave);color:var(--marca);overflow:hidden}
.catf-foto img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease)} .catf a:hover .catf-foto img{transform:scale(1.06)}
.catf-txt{display:flex;flex-direction:column;min-width:0} .catf-txt b{font-size:1.0625rem;font-weight:800;line-height:1.25;overflow-wrap:anywhere;transition:color .15s}
.catf-n{font-size:.875rem;color:var(--tinta-2)}
.catf-v{display:grid;gap:5px;font-size:.8125rem;font-weight:700;color:var(--marca)}
.catf-reg{color:var(--tinta-3);font-weight:600}
.medidor{display:block;height:6px;border-radius:3px;background:var(--hilo);overflow:hidden}
.medidor i{display:block;width:var(--p);height:100%;border-radius:inherit;background:var(--marca);transform-origin:left center}
.js [data-aparece] .medidor i{transform:scaleX(0);transition:transform .9s var(--ease) .25s}
.js [data-aparece].visto .medidor i{transform:none}
.catfs-2{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}
.catfs-2 .catf:nth-child(2) a{border-top:0}
.catfs-grandes{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}
.catfs-grandes .catf a{grid-template-columns:104px minmax(0,1fr) 18px;grid-template-areas:"ico txt flecha" "ico v flecha";padding:12px;border:1px solid var(--hilo);border-radius:var(--r-grande);background:var(--papel);row-gap:10px}
.catfs-grandes .catf a:hover{border-color:var(--marca);background:var(--papel);box-shadow:var(--sombra-alza)}
.catfs-grandes .catf-ico{grid-area:ico;width:104px;height:78px;border-radius:8px}
.catfs-grandes .catf-txt{grid-area:txt;align-self:end} .catfs-grandes .catf-v{grid-area:v;align-self:start} .catfs-grandes .catf a>.ico{grid-area:flecha}
.cat-prox-linea{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:10px 10px 2px;font-size:.875rem;color:var(--tinta-3);list-style:none}
.cat-prox-linea>span:first-child{font-weight:700;color:var(--tinta-2)} .prox{display:inline-flex;align-items:center;gap:6px}
@media (max-width:760px){
  .catf a{grid-template-columns:40px minmax(0,1fr) 18px;grid-template-areas:"ico txt flecha" "ico v flecha";padding:10px 4px}
  .catf-ico{grid-area:ico;width:40px;height:40px} .catf-txt{grid-area:txt} .catf a>.ico{grid-area:flecha}
  .catf-v{grid-area:v;grid-auto-flow:column;grid-template-columns:minmax(56px,110px) auto;justify-content:start;align-items:center;column-gap:10px}
  .catf-txt{flex-direction:row;flex-wrap:wrap;align-items:baseline;column-gap:8px} .catf-n{font-size:.8125rem}
  .catfs-2{grid-template-columns:1fr} .catfs-2 .catf:nth-child(2) a{border-top:1px solid var(--hilo)}
  .catfs-grandes{grid-template-columns:1fr} .catfs-grandes .catf a{grid-template-columns:88px minmax(0,1fr) 18px;padding:10px} .catfs-grandes .catf-ico{width:88px;height:66px}
}

/* ——— Portada: el directorio en cuatro paneles, cada uno con su foto contenida ——— */
.directorio{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.grupo-panel{background:var(--papel);border:1px solid var(--hilo);border-radius:16px;overflow:hidden}
.grupo-foto{display:block;aspect-ratio:16/5;overflow:hidden;background:var(--marca-suave)}
.grupo-foto img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1s var(--ease)}
.grupo-panel:has(h3 a:hover) .grupo-foto img{transform:scale(1.04)}
.grupo-panel h3{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0;padding:18px 20px 8px;font-size:1.375rem;font-weight:800;letter-spacing:-.01em}
.grupo-panel h3 a{display:inline-flex;align-items:center;gap:8px;color:var(--tinta);text-decoration:none} .grupo-panel h3 a:hover{color:var(--marca)}
.grupo-panel h3 a .ico{transition:transform .25s var(--ease)} .grupo-panel h3 a:hover .ico{transform:translateX(3px)}
.grupo-panel h3 .n{font-size:.875rem;font-weight:600;color:var(--tinta-2);white-space:nowrap}
.grupo-panel .catfs{padding:0 10px 10px}
@media (max-width:980px){.directorio{grid-template-columns:1fr}}
/* Portada en el móvil: los atajos en una sola fila deslizable; el titular y el buscador, antes */
@media (max-width:760px){
  .hero .atajos{flex-wrap:nowrap;overflow-x:auto;margin:16px -16px 0;padding:2px 16px 6px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent)}
  .hero .atajos::-webkit-scrollbar{display:none}
  .hero .atajos a,.atajos-et{flex:none}
  .hero{grid-template-columns:minmax(0,1fr)} .hero-panel,.hero-in{min-width:0}
  .hero-foto{height:180px}
  .garantias{margin-top:24px;padding-top:16px;gap:8px 20px}
  .campo{padding:6px 12px} .hero-sub{margin:14px 0 22px;font-size:1.0625rem}
}
.lenguas{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.lengua{min-width:0}

/* ——— Listado: retrato de 64 px y movimiento de la fila ——— */
.resultado{grid-template-columns:64px minmax(0,1fr) auto}
.resultado .mono{width:64px;height:64px;border-radius:14px}
.resultado h3 a{display:inline-block;max-width:100%;overflow-wrap:anywhere}
@media (max-width:760px){.resultado{grid-template-columns:52px minmax(0,1fr)} .resultado .mono{width:52px;height:52px;border-radius:12px}}

/* ——— Transición de la fila a la ficha (elemento compartido) ——— */
::view-transition-group(ficha-nombre),::view-transition-group(ficha-retrato){animation-duration:.38s;animation-timing-function:var(--ease)}
::view-transition-old(ficha-nombre),::view-transition-new(ficha-nombre){height:100%;width:auto;object-fit:none;object-position:left top}
::view-transition-old(ficha-retrato),::view-transition-new(ficha-retrato){height:100%;width:100%;object-fit:cover}

/* ——— Guías: progreso de lectura (ligado al desplazamiento) y sección en curso ——— */
.progreso{display:none}
@supports (animation-timeline:scroll()){
  .progreso{display:block;position:fixed;top:0;left:0;right:0;height:3px;background:var(--marca);transform-origin:0 50%;z-index:30;animation:progreso linear both;animation-timeline:scroll(root)}
  @keyframes progreso{from{transform:scaleX(0)}to{transform:scaleX(1)}}
}
@media (prefers-reduced-motion:reduce){.progreso{display:none!important}}
.guia-toc ol a[aria-current]{color:var(--marca);font-weight:800}
@media (min-width:1000px){.guia-toc ol a{position:relative;padding-left:14px!important;transition:color .2s}.guia-toc ol a::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--hilo);transition:background-color .2s,transform .25s var(--ease)}.guia-toc ol a[aria-current]::before{background:var(--marca);transform:scale(1.4)}}

/* ——— Observatorio: las barras se llenan al verlas (el dato ya está escrito al lado) ——— */
.js .obs-graf .obs-barra,.js .obs-graf .obs-barra-exp{transform:scaleX(0);transform-box:fill-box;transform-origin:left center;transition:transform 1s var(--ease)}
.js .obs-graf.visto .obs-barra,.js .obs-graf.visto .obs-barra-exp{transform:none}
.js .obs-graf .obs-barras li:nth-child(2) rect{transition-delay:.06s} .js .obs-graf .obs-barras li:nth-child(3) rect{transition-delay:.12s} .js .obs-graf .obs-barras li:nth-child(4) rect{transition-delay:.18s} .js .obs-graf .obs-barras li:nth-child(n+5) rect{transition-delay:.24s}

/* ——— Reclamar: el formulario y, al lado, cómo funciona ——— */
.titular-reclamar{grid-template-columns:minmax(0,680px) minmax(260px,340px);justify-content:start;gap:32px}
.titular-aside{position:sticky;top:24px;padding:24px;background:var(--piedra);border:1px solid var(--piedra-hilo);border-radius:var(--r-grande)}
.titular-aside h2{font-size:1.25rem;font-weight:800;margin:0 0 18px}
.titular-aside .pasos{gap:18px} .titular-aside .pasos li{grid-template-columns:32px 1fr;gap:12px} .titular-aside .pasos li::before{width:32px;height:32px;background:var(--papel)} .titular-aside .pasos h3{font-size:1rem;margin-top:5px} .titular-aside .pasos p{font-size:.9375rem}
.titular-aside-nota{margin:20px 0 0;padding-top:16px;border-top:1px solid var(--piedra-hilo);font-weight:700;font-size:.9375rem}
@media (max-width:980px){.titular-reclamar{grid-template-columns:1fr}.titular-aside{position:static;order:-1}}

/* ——— Ritmo: la franja de profesionales, sin segunda foto, cierra la portada sobre verde suave ——— */
.franja{border-top:1px solid var(--hilo)}
.seccion-mapa{overflow:hidden}

/* El campo «¿Dónde?» (lista de sugerencias): sin la flecha negra que añade el navegador */
.campo-donde input::-webkit-calendar-picker-indicator{display:none!important;opacity:0}
/* Botones de cabecera de sección con textos largos (alemán): pueden partir línea en 320 px (1.4.10; fallaba en /de/zahnaerzte/) */
.sec-cab .boton{white-space:normal;max-width:100%;text-align:center;line-height:1.25;padding-block:10px}
/* Enlaces al mapa interactivo (docs/diseno/MAPA.md): solo un enlace; MapLibre se descarga en la página del mapa */
.cab-mapa{margin:12px 0 0} .ubic-mapa{margin:10px 0 0}
.cab-mapa a,.ubic-mapa a,a[data-enlace-mapa]{display:inline-flex;align-items:center;gap:6px;font-weight:700;min-height:44px}
/* «Servicios para tu negocio» en Mi ficha (src/lib/servicios.mjs): servicios de Teix, recomendados según la revisión */
.servicios{margin-top:20px;padding-top:20px;border-top:1px solid var(--hilo)} .servicios h3{font-size:1.1875rem;font-weight:800;margin:0} .servicios h4{font-size:1rem;font-weight:800;margin:18px 0 8px}
.sv-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.sv-paquete{background:var(--papel);border:1px solid var(--hilo);border-radius:var(--r);padding:16px 18px;display:flex;flex-direction:column;gap:6px} .sv-paquete h5{font-size:1rem;font-weight:800;margin:0}
.sv-recomendado{border-color:var(--marca);box-shadow:inset 3px 0 0 var(--marca)}
.sv-precio{margin:0;font-weight:700;font-size:.9375rem} .sv-resuelve{margin:0;font-size:.9375rem;color:var(--tinta-2);flex:1}
.sv-razones{margin:2px 0 0;padding-left:18px;font-size:.9375rem;display:grid;gap:4px}
.sv-paquete .boton{align-self:flex-start;margin-top:6px}
.sv-ya{margin:6px 0 0;font-weight:700;color:var(--marca);font-size:.9375rem}
.sv-gratis{margin-top:12px;padding:12px 14px;background:var(--marca-suave);border-radius:var(--r);font-size:.9375rem} .sv-gratis p{margin:0} .sv-gratis ul{margin:6px 0 0;padding-left:18px}
.sv-hablar{margin-top:16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap} .sv-hablar p{margin:0}
.sv-legal{margin-top:12px;font-size:.8125rem}
.sv-confirmar{grid-column:1/-1;margin-top:4px;padding:16px 18px;background:#fff;border:2px solid var(--marca);border-radius:var(--r);display:grid;gap:8px} .sv-confirmar h4{margin:0} .sv-confirmar label{display:grid;gap:4px}
.sv-campos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sv-botones{display:flex;gap:8px;flex-wrap:wrap}
.sv-ok{margin:14px 0 0;padding:12px 14px;background:var(--marca-suave);border-radius:var(--r);font-weight:700;color:var(--marca)}
@media (max-width:600px){.sv-campos{grid-template-columns:1fr}}
