/* =========================================================================
   Psicólogos Infantiles · diseño propio «pastel lúdico»
   M PLUS Rounded 1c (títulos) + Figtree (texto) · iconos Phosphor duotono
   (no Fredoka ni Nunito Sans: son las de abaterapia.com y Javier quiere letra propia)
   Lila, rosa, menta y mantequilla con contorno de tinta tipo pegatina.
   Todo lo animado se apaga con prefers-reduced-motion (final del fichero).
   ========================================================================= */
:root{
    --tinta:#2E2A5B; --tinta-2:#4B4780; --tinta-3:#625E8C;
    --fondo:#FCFBFF; --lila:#F3F0FF; --lila-2:#E4DEFF; --lila-3:#B9AEF5; --lila-4:#6A55C2;
    --rosa:#FF7A8A; --rosa-2:#FFD6DC; --rosa-3:#FFEDEF; --rosa-4:#C9374B;
    --menta:#C9F2E3; --menta-2:#E9FAF3; --menta-4:#1E7A5F;
    --mante:#FFE7A8; --mante-2:#FFF5D6; --mante-4:#8A5A00;
    --cielo:#D2E9FF; --cielo-2:#EDF6FF; --cielo-4:#1D5FA0;
    --melo:#FFE0CC; --melo-4:#A3471B;
    --blanco:#fff; --linea:#E7E3F7;
    --borde:2px solid var(--tinta);
    --pega:4px 4px 0 var(--tinta); --pega-s:3px 3px 0 var(--tinta); --pega-l:6px 6px 0 var(--tinta);
    --suave:0 10px 30px -14px rgba(46,42,91,.35);
    --r:22px; --r-s:14px; --r-xs:10px;
    --ease:cubic-bezier(.34,1.56,.64,1); --ease-s:cubic-bezier(.2,.8,.2,1);
    --ff:'Figtree',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
    --fh:'M PLUS Rounded 1c','Figtree',system-ui,sans-serif;
    --cont:1200px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--ff);font-size:17px;line-height:1.6;color:var(--tinta);background:var(--fondo);overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--lila-4);text-decoration:none}
a:hover{color:var(--tinta)}
h1,h2,h3,h4{font-family:var(--fh);font-weight:800;line-height:1.12;margin:0 0 .45em;color:var(--tinta);letter-spacing:-.01em}
h1{font-size:clamp(2rem,4.2vw,3.2rem)}
h2{font-size:clamp(1.55rem,3vw,2.3rem)}
h3{font-size:1.2rem}
p{margin:0 0 1em}
.p-wrap{max-width:var(--cont);margin:0 auto;padding:0 22px}
.p-main{min-height:60vh}
.visually-hidden,.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ph-duotone{vertical-align:-.14em;line-height:1}
::selection{background:var(--mante);color:var(--tinta)}
:focus-visible{outline:3px solid var(--rosa);outline-offset:3px;border-radius:6px}

/* ---- Botones ---- */
.p-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-family:var(--fh);font-weight:500;font-size:1.02rem;
    padding:.72em 1.35em;border-radius:16px;border:var(--borde);background:var(--tinta);color:#fff;box-shadow:var(--pega-s);cursor:pointer;
    transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .2s;text-decoration:none;line-height:1.1}
.p-btn:hover{transform:translate(-2px,-2px);box-shadow:var(--pega);color:#fff}
.p-btn:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--tinta)}
.p-btn-rosa{background:var(--rosa);color:var(--tinta)}.p-btn-rosa:hover{color:var(--tinta)}
.p-btn-blanco{background:#fff;color:var(--tinta)}.p-btn-blanco:hover{color:var(--tinta)}
.p-btn-menta{background:var(--menta);color:var(--tinta)}.p-btn-menta:hover{color:var(--tinta)}
.p-btn-sm{font-size:.9rem;padding:.55em 1em;border-radius:12px}
.p-btn-block{width:100%}
.p-link{font-family:var(--fh);font-weight:500;display:inline-flex;align-items:center;gap:.35em;color:var(--tinta);border-bottom:2px solid var(--rosa);padding-bottom:1px}
.p-link:hover{color:var(--rosa-4)}

/* ---- Cabecera ---- */
.p-header{position:sticky;top:0;z-index:60;background:rgba(252,251,255,.86);backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);
    border-bottom:2px solid transparent;transition:border-color .25s,background .25s}
.p-header.scrolled{border-bottom-color:var(--tinta);background:rgba(252,251,255,.96)}
.p-header-in{display:flex;align-items:center;gap:18px;height:76px}
.p-logo img{height:46px;width:auto}
.p-nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.p-nav > a,.p-drop > button{display:inline-flex;align-items:center;gap:7px;font-family:var(--fh);font-weight:500;font-size:1rem;color:var(--tinta);
    padding:9px 14px;border-radius:14px;border:2px solid transparent;background:none;cursor:pointer;transition:background .2s,border-color .2s,transform .25s var(--ease)}
.p-nav > a:hover,.p-drop > button:hover,.p-drop.open > button{background:var(--lila);border-color:var(--tinta);transform:rotate(-1.5deg)}
.p-nav .ph-duotone{font-size:1.25rem;color:var(--lila-4)}
.p-nav .p-nav-cta{background:var(--mante);border:var(--borde);box-shadow:var(--pega-s);margin-left:6px}
.p-nav .p-nav-cta:hover{background:var(--mante);transform:translate(-2px,-2px) rotate(0);box-shadow:var(--pega)}
.p-drop{position:relative}
.p-drop-panel{position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%,8px) scale(.98);opacity:0;visibility:hidden;
    background:#fff;border:var(--borde);border-radius:var(--r);box-shadow:var(--pega-l);padding:16px;min-width:520px;transition:all .25s var(--ease)}
.p-drop.open .p-drop-panel{opacity:1;visibility:visible;transform:translate(-50%,0) scale(1)}
.p-drop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}
.p-drop-grid.cols4{grid-template-columns:repeat(4,1fr)}
.p-drop-grid a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;color:var(--tinta);font-weight:600;font-size:.95rem}
.p-drop-grid a:hover{background:var(--lila)}
.p-drop-grid a .ph-duotone{font-size:1.3rem;color:var(--rosa-4)}
.p-drop-foot{display:flex;justify-content:flex-end;margin-top:10px;padding-top:10px;border-top:2px dashed var(--linea)}
.p-burger{display:none;margin-left:auto;width:48px;height:48px;border-radius:14px;border:var(--borde);background:#fff;box-shadow:var(--pega-s);cursor:pointer;font-size:1.5rem;color:var(--tinta)}
@media(max-width:1200px){
    .p-burger{display:inline-grid;place-items:center}
    .p-nav{position:fixed;inset:76px 0 auto 0;margin:0;flex-direction:column;align-items:stretch;gap:4px;background:var(--fondo);border-bottom:var(--borde);
        padding:14px 18px 22px;max-height:calc(100vh - 76px);overflow:auto;transform:translateY(-12px);opacity:0;visibility:hidden;transition:all .25s var(--ease-s)}
    .p-nav.open{transform:none;opacity:1;visibility:visible}
    .p-drop-panel{position:static;transform:none;min-width:0;box-shadow:none;margin-top:6px;display:none;opacity:1;visibility:visible}
    .p-drop.open .p-drop-panel{display:block;transform:none}
    .p-drop-grid.cols4{grid-template-columns:repeat(2,1fr)}
    .p-header-in{height:76px}
}
.p-search-mini{display:flex;align-items:center;gap:6px;background:#fff;border:var(--borde);border-radius:14px;padding:4px 4px 4px 12px;position:relative;width:300px}
.p-search-mini input{border:0;outline:none;font:inherit;font-size:.95rem;flex:1;min-width:0;background:none;color:var(--tinta)}
.p-search-mini button{border:0;background:var(--rosa);color:var(--tinta);border-radius:10px;width:36px;height:34px;cursor:pointer;font-size:1.15rem}
@media(max-width:1260px){.p-search-mini{display:none}}

/* Barra inferior tipo app (móvil) */
.p-tabbar{display:none}
@media(max-width:760px){
    .p-tabbar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:12px;right:12px;bottom:12px;z-index:70;background:#fff;border:var(--borde);
        border-radius:20px;box-shadow:var(--pega);padding:6px}
    .p-tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;font-family:var(--fh);font-size:.75rem;color:var(--tinta);padding:6px 4px;border-radius:14px}
    .p-tabbar a .ph-duotone{font-size:1.45rem;color:var(--lila-4)}
    .p-tabbar a.on{background:var(--lila)}
    body{padding-bottom:86px}
}

/* ---- Formas decorativas ---- */
.p-shape{position:absolute;pointer-events:none;z-index:0}
.p-blob{border-radius:42% 58% 63% 37% / 41% 44% 56% 59%}
.p-sq{border-radius:26px}
.p-dot{border-radius:50%}
.p-float{animation:flotar 7s ease-in-out infinite}
.p-wiggle{animation:menear 5s ease-in-out infinite}
.p-spin{animation:girar 26s linear infinite}
@keyframes flotar{0%,100%{transform:translateY(0) rotate(var(--rot,0deg))}50%{transform:translateY(-18px) rotate(calc(var(--rot,0deg) + 6deg))}}
@keyframes menear{0%,100%{transform:rotate(var(--rot,0deg))}25%{transform:rotate(calc(var(--rot,0deg) - 5deg))}75%{transform:rotate(calc(var(--rot,0deg) + 5deg))}}
@keyframes girar{to{transform:rotate(360deg)}}
@keyframes boing{0%{transform:scale(1)}30%{transform:scale(1.12,.9)}50%{transform:scale(.94,1.06)}70%{transform:scale(1.03,.98)}100%{transform:scale(1)}}

/* ---- Portada ---- */
.p-hero{position:relative;overflow:hidden;padding:64px 0 90px;background:var(--lila)}
.p-hero::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:60px;background:var(--fondo);
    clip-path:polygon(0 60%,8% 40%,18% 62%,30% 35%,42% 58%,55% 32%,67% 60%,80% 38%,90% 58%,100% 40%,100% 100%,0 100%)}
.p-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.p-hero h1{font-size:clamp(2.2rem,4.6vw,3.6rem);margin-bottom:.35em}
.p-hero h1 .p-mark{position:relative;white-space:nowrap;color:var(--rosa-4)}
.p-hero h1 .p-mark::after{content:"";position:absolute;left:-4px;right:-4px;bottom:.06em;height:.32em;background:var(--mante);border-radius:8px;z-index:-1;
    transform-origin:left;animation:subrayar 1.1s .4s var(--ease-s) both}
@keyframes subrayar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.p-hero-lead{font-size:1.15rem;color:var(--tinta-2);max-width:46ch;margin-bottom:26px}
.p-kicker{display:inline-flex;align-items:center;gap:8px;font-family:var(--fh);font-weight:500;font-size:.95rem;color:var(--tinta);background:#fff;border:var(--borde);
    border-radius:999px;padding:6px 14px;box-shadow:var(--pega-s);margin-bottom:20px;transform:rotate(-2deg)}
.p-kicker .ph-duotone{color:var(--rosa-4);font-size:1.15rem}
.p-search{position:relative;background:#fff;border:var(--borde);border-radius:24px;box-shadow:var(--pega-l);padding:10px;display:grid;
    grid-template-columns:1fr 1fr auto;gap:8px;max-width:640px}
.p-search label{display:flex;align-items:center;gap:10px;padding:6px 12px;border-radius:16px;background:var(--lila);transition:background .2s}
.p-search label:focus-within{background:var(--mante-2)}
.p-search label .ph-duotone{font-size:1.4rem;color:var(--lila-4);flex:none}
.p-search input,.p-search select{flex:1;min-width:0;border:0;background:none;font:inherit;font-weight:600;font-size:1rem;color:var(--tinta);padding:10px 0;outline:none;appearance:none;-webkit-appearance:none}
.p-search .p-btn{border-radius:16px}
@media(max-width:720px){.p-search{grid-template-columns:1fr}.p-search .p-btn{width:100%}}
.p-hero-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.p-tag{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.9rem;padding:6px 13px;border-radius:999px;border:2px solid var(--tinta);color:var(--tinta);background:#fff;
    transition:transform .25s var(--ease),background .2s}
.p-tag:hover{transform:translateY(-3px) rotate(-2deg);color:var(--tinta);background:var(--mante)}
.p-hero-art{position:relative;height:440px}
.p-hero-art .p-face{position:absolute;display:grid;place-items:center;border:var(--borde);box-shadow:var(--pega);font-size:3rem;color:var(--tinta)}
.p-hero-art .f1{width:170px;height:170px;background:var(--rosa-2);top:18px;left:40px;--rot:-8deg}
.p-hero-art .f2{width:140px;height:140px;background:var(--menta);top:110px;right:20px;--rot:10deg;animation-delay:-2s}
.p-hero-art .f3{width:120px;height:120px;background:var(--mante);bottom:40px;left:10px;--rot:6deg;animation-delay:-4s}
.p-hero-art .f4{width:96px;height:96px;background:var(--cielo);bottom:20px;right:90px;--rot:-12deg;animation-delay:-1s}
.p-hero-art .p-bubble{position:absolute;background:#fff;border:var(--borde);border-radius:18px;box-shadow:var(--pega-s);padding:10px 14px;font-family:var(--fh);font-size:1rem;
    display:flex;align-items:center;gap:8px;white-space:nowrap}
.p-hero-art .p-bubble .ph-duotone{font-size:1.3rem;color:var(--rosa-4)}
.p-hero-art .b1{top:210px;left:120px;--rot:-3deg}
.p-hero-art .b2{top:22px;right:40px;--rot:4deg;animation-delay:-3s}
@media(max-width:940px){.p-hero-grid{grid-template-columns:1fr}.p-hero-art{display:none}.p-hero{padding:40px 0 76px}}

/* Cifras */
.p-stats{display:flex;flex-wrap:wrap;gap:12px;margin-top:-34px;position:relative;z-index:2}
.p-stat{flex:1 1 180px;background:#fff;border:var(--borde);border-radius:var(--r);box-shadow:var(--pega);padding:16px 20px;display:flex;align-items:center;gap:14px}
.p-stat .ph-duotone{font-size:2.1rem;color:var(--lila-4)}
.p-stat b{display:block;font-family:var(--fh);font-size:1.7rem;line-height:1}
.p-stat span{font-size:.92rem;color:var(--tinta-2)}

/* Secciones */
.p-sec{padding:72px 0}
.p-sec-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px;margin-bottom:28px}
.p-sec-head p{color:var(--tinta-2);max-width:56ch;margin:0}
.p-eyebrow{display:inline-block;font-family:var(--fh);font-weight:500;color:var(--rosa-4);margin-bottom:6px}
.p-sec-alt{background:var(--menta-2)}
.p-sec-lila{background:var(--lila)}

/* Por edades */
.p-ages{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.p-age{position:relative;display:flex;flex-direction:column;gap:6px;padding:22px 20px 20px;border:var(--borde);border-radius:var(--r);box-shadow:var(--pega);color:var(--tinta);
    min-height:230px;overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.p-age:hover{transform:translate(-3px,-3px) rotate(-1deg);box-shadow:var(--pega-l);color:var(--tinta)}
.p-age .p-age-ic{width:62px;height:62px;border-radius:18px;background:#fff;border:var(--borde);display:grid;place-items:center;font-size:2rem;margin-bottom:8px}
.p-age:hover .p-age-ic{animation:boing .7s}
.p-age b{font-family:var(--fh);font-size:1.45rem;line-height:1.05}
.p-age small{font-weight:700;font-size:.9rem;opacity:.75}
.p-age p{margin:0;font-size:.95rem}
.p-age.a1{background:var(--rosa-2)}.p-age.a2{background:var(--mante)}.p-age.a3{background:var(--menta)}.p-age.a4{background:var(--cielo)}
@media(max-width:900px){.p-ages{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.p-ages{grid-template-columns:1fr}.p-age{min-height:0}}

/* Preocupaciones (especialidades) */
.p-cloud{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.p-worry{display:inline-flex;align-items:center;gap:9px;font-family:var(--fh);font-weight:500;font-size:1.05rem;padding:11px 18px;border-radius:999px;
    border:var(--borde);background:#fff;color:var(--tinta);box-shadow:var(--pega-s);transition:transform .3s var(--ease),box-shadow .3s,background .2s}
.p-worry .ph-duotone{font-size:1.4rem}
.p-worry:nth-child(5n+1){background:var(--rosa-3)}.p-worry:nth-child(5n+2){background:var(--menta-2)}.p-worry:nth-child(5n+3){background:var(--mante-2)}
.p-worry:nth-child(5n+4){background:var(--cielo-2)}.p-worry:nth-child(5n+5){background:var(--lila)}
.p-worry:nth-child(odd){transform:rotate(-1.5deg)}.p-worry:nth-child(even){transform:rotate(1.5deg)}
.p-worry:hover{transform:translate(-2px,-4px) rotate(0) scale(1.04);box-shadow:var(--pega);color:var(--tinta)}
.p-worry small{font-family:var(--ff);font-weight:700;font-size:.78rem;color:var(--tinta-3)}

/* Cómo funciona */
.p-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:paso}
.p-step{position:relative;background:#fff;border:var(--borde);border-radius:var(--r);padding:26px 20px 20px;box-shadow:var(--pega-s)}
.p-step::before{counter-increment:paso;content:counter(paso);position:absolute;top:-22px;left:18px;width:46px;height:46px;border-radius:14px;border:var(--borde);
    display:grid;place-items:center;font-family:var(--fh);font-weight:600;font-size:1.4rem;background:var(--mante);transform:rotate(-6deg)}
.p-step:nth-child(2)::before{background:var(--rosa-2);transform:rotate(5deg)}.p-step:nth-child(3)::before{background:var(--menta)}.p-step:nth-child(4)::before{background:var(--cielo);transform:rotate(4deg)}
.p-step b{font-family:var(--fh);font-size:1.15rem;display:block;margin:6px 0 4px}
.p-step p{margin:0;font-size:.95rem;color:var(--tinta-2)}
@media(max-width:900px){.p-steps{grid-template-columns:repeat(2,1fr);row-gap:34px}}
@media(max-width:480px){.p-steps{grid-template-columns:1fr}}

/* Ciudades */
.p-cities{display:flex;gap:14px;overflow-x:auto;padding:6px 4px 18px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.p-city{flex:0 0 auto;scroll-snap-align:start;display:flex;flex-direction:column;justify-content:space-between;width:190px;height:130px;padding:16px;border:var(--borde);
    border-radius:var(--r);background:#fff;color:var(--tinta);box-shadow:var(--pega-s);transition:transform .3s var(--ease),box-shadow .3s,background .2s}
.p-city:hover{transform:translate(-2px,-3px) rotate(-1.5deg);box-shadow:var(--pega);background:var(--mante-2);color:var(--tinta)}
.p-city b{font-family:var(--fh);font-size:1.25rem;line-height:1.1}
.p-city span{display:flex;align-items:center;gap:6px;font-weight:700;font-size:.9rem;color:var(--tinta-2)}
.p-city span .ph-duotone{color:var(--rosa-4)}
.p-provs{display:flex;flex-wrap:wrap;gap:8px}
.p-provs a{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:12px;background:#fff;border:2px solid var(--linea);color:var(--tinta);font-weight:700;font-size:.93rem;
    transition:all .2s}
.p-provs a small{font-weight:800;color:var(--lila-4)}
.p-provs a:hover{border-color:var(--tinta);background:var(--lila);transform:translateY(-2px)}

/* ---- Tarjeta de centro (idea heredada: foto arriba y logo en su recuadro) ---- */
.p-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px}
.p-card{position:relative;display:flex;flex-direction:column;background:#fff;border:var(--borde);border-radius:var(--r);box-shadow:var(--pega-s);overflow:hidden;
    transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.p-card:hover{transform:translate(-3px,-3px);box-shadow:var(--pega-l)}
.p-card-media{position:relative;display:block;aspect-ratio:16/10;background:var(--lila);border-bottom:var(--borde);overflow:hidden}
.p-card-media img.foto{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-s)}
.p-card:hover .p-card-media img.foto{transform:scale(1.06)}
.p-card-media.solo-logo{display:grid;place-items:center;padding:18px 26px}
.p-card-media.solo-logo img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 2px 0 rgba(46,42,91,.06))}
.p-card-media.sin-img{display:grid;place-items:center}
.p-card-ph{width:82px;height:82px;border-radius:24px;border:var(--borde);display:grid;place-items:center;font-family:var(--fh);font-weight:600;font-size:2.2rem;color:var(--tinta);
    background:#fff;box-shadow:var(--pega-s);transform:rotate(-6deg)}
.p-card-media.tono1{background:var(--rosa-2)}.p-card-media.tono2{background:var(--menta)}.p-card-media.tono3{background:var(--mante)}.p-card-media.tono4{background:var(--cielo)}.p-card-media.tono5{background:var(--lila-2)}
.p-card-logo{position:absolute;right:12px;bottom:-26px;z-index:2;width:64px;height:64px;border-radius:16px;background:#fff;border:var(--borde);box-shadow:var(--pega-s);
    display:grid;place-items:center;padding:6px;overflow:hidden}
.p-card-logo img{max-width:100%;max-height:100%;object-fit:contain}
.p-card-badges{position:absolute;left:10px;top:10px;display:flex;gap:6px;z-index:2}
.p-chip{display:inline-flex;align-items:center;gap:4px;font-size:.76rem;font-weight:800;padding:3px 9px;border-radius:999px;border:2px solid var(--tinta);background:#fff;color:var(--tinta)}
.p-chip.on{background:var(--menta)}.p-chip.verif{background:var(--mante)}.p-chip.top{background:var(--rosa)}
.p-card-body{display:flex;flex-direction:column;gap:6px;padding:16px 16px 14px;flex:1}
.p-card-tipo{font-size:.78rem;font-weight:800;color:var(--lila-4);letter-spacing:.02em}
.p-card-name{font-family:var(--fh);font-weight:600;font-size:1.12rem;line-height:1.2;margin:0;padding-right:58px}
.p-card-name a{color:var(--tinta)}
.p-card-name a::after{content:"";position:absolute;inset:0;z-index:1}
.p-card-loc{display:flex;gap:6px;font-size:.9rem;color:var(--tinta-2);margin:0}
.p-card-loc .ph-duotone{color:var(--rosa-4);flex:none;margin-top:2px}
.p-card-esp{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
.p-card-esp span{font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:8px;background:var(--lila);color:var(--tinta-2)}
.p-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:10px;border-top:2px dashed var(--linea)}
.p-stars{display:inline-flex;align-items:center;gap:5px;font-weight:800;font-size:.95rem}
.p-stars .ph-duotone{color:#F2A900;font-size:1.15rem}
.p-stars small{font-weight:700;color:var(--tinta-3)}
.p-card-acts{position:relative;z-index:3;display:flex;gap:6px}
.p-card-acts a,.p-card-acts button{width:36px;height:36px;border-radius:11px;border:2px solid var(--tinta);background:#fff;color:var(--tinta);display:grid;place-items:center;
    font-size:1.15rem;cursor:pointer;transition:background .2s,transform .25s var(--ease)}
.p-card-acts a:hover,.p-card-acts button:hover{background:var(--mante);transform:translateY(-2px)}
.fav-btn[aria-pressed="true"]{background:var(--rosa)!important;color:var(--tinta)}
.fav-pop{animation:boing .6s}

/* ---- Cabecera de páginas interiores ---- */
.p-head{position:relative;overflow:hidden;background:var(--lila);padding:34px 0 56px;border-bottom:var(--borde)}
.p-head.t-rosa{background:var(--rosa-3)}.p-head.t-menta{background:var(--menta-2)}.p-head.t-mante{background:var(--mante-2)}.p-head.t-cielo{background:var(--cielo-2)}
.p-head .p-wrap{position:relative;z-index:1}
.p-head h1{max-width:22ch;margin-bottom:.3em}
.p-head-sub{font-size:1.08rem;color:var(--tinta-2);margin:0;max-width:60ch}
.p-crumbs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.88rem;font-weight:700;margin-bottom:16px;color:var(--tinta-3)}
.p-crumbs a{color:var(--tinta-2)}
.p-crumbs a:hover{color:var(--rosa-4)}
.p-crumbs .sep{opacity:.5}
.p-head .p-shape{opacity:.9}

/* ---- Listados: filtros a la izquierda ---- */
.p-list{display:grid;grid-template-columns:270px 1fr;gap:30px;align-items:start;padding:36px 0 60px}
.p-side{position:sticky;top:96px;display:flex;flex-direction:column;gap:16px}
.p-box{background:#fff;border:var(--borde);border-radius:var(--r);padding:18px;box-shadow:var(--pega-s)}
.p-box h3{font-size:1.05rem;display:flex;align-items:center;gap:8px;margin-bottom:12px}
.p-box h3 .ph-duotone{color:var(--rosa-4);font-size:1.3rem}
.p-filter{display:flex;flex-direction:column;gap:2px;max-height:360px;overflow:auto;margin:0 -6px;padding:0 6px}
.p-filter a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:10px;color:var(--tinta);font-weight:600;font-size:.93rem}
.p-filter a small{font-weight:800;color:var(--tinta-3);font-size:.8rem}
.p-filter a:hover{background:var(--lila)}
.p-filter a.on{background:var(--tinta);color:#fff}.p-filter a.on small{color:var(--lila-2)}
.p-results-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.p-results-head b{font-family:var(--fh);font-size:1.15rem}
.p-seg{display:inline-flex;background:#fff;border:var(--borde);border-radius:14px;padding:3px;gap:3px}
.p-seg button{border:0;background:none;font:inherit;font-weight:700;font-size:.9rem;padding:6px 12px;border-radius:10px;cursor:pointer;color:var(--tinta);display:inline-flex;align-items:center;gap:6px}
.p-seg button.on{background:var(--mante)}
.p-select{font:inherit;font-weight:700;font-size:.9rem;border:var(--borde);border-radius:12px;padding:7px 10px;background:#fff;color:var(--tinta)}
@media(max-width:900px){.p-list{grid-template-columns:1fr}.p-side{position:static}.p-filter{max-height:none;flex-direction:row;flex-wrap:wrap}.p-filter a{border:2px solid var(--linea)}}
.p-pag{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:34px 0 0}
.p-pag a,.p-pag span{min-width:44px;height:44px;padding:0 14px;display:inline-grid;place-items:center;border-radius:14px;border:var(--borde);background:#fff;color:var(--tinta);font-weight:800}
.p-pag a:hover{background:var(--lila)}
.p-pag .on{background:var(--tinta);color:#fff}
.p-pag .gap{border:0;background:none}
.p-empty{text-align:center;background:#fff;border:2px dashed var(--lila-3);border-radius:var(--r);padding:40px 24px}
.p-empty .ph-duotone{font-size:3rem;color:var(--lila-4)}
.p-note{display:flex;gap:12px;align-items:flex-start;background:var(--mante-2);border:2px solid var(--mante);border-radius:var(--r-s);padding:12px 16px;margin-bottom:18px;color:var(--mante-4);font-weight:600}
.p-note p{margin:0}
.p-note .ph-duotone{font-size:1.4rem;flex:none}
#dir-map-wrap{margin-top:20px}
#dir-map{height:520px;border:var(--borde);border-radius:var(--r);box-shadow:var(--pega-s)}
.p-geo{margin-top:46px}
.p-geo h2{font-size:1.5rem}
.p-local{margin-top:46px;background:#fff;border:var(--borde);border-radius:var(--r);padding:26px 28px;box-shadow:var(--pega-s)}
.p-local h2{font-size:1.4rem}
.p-local p{color:var(--tinta-2)}

/* Comunidades */
.p-coms{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.p-com{background:#fff;border:var(--borde);border-radius:var(--r);padding:18px 18px 12px;box-shadow:var(--pega-s)}
.p-com h2{font-size:1.2rem;margin-bottom:8px}
.p-com h2 a{color:var(--tinta)}
.p-com ul{list-style:none;margin:0;padding:0}
.p-com li a{display:flex;justify-content:space-between;padding:6px 8px;border-radius:10px;color:var(--tinta);font-weight:600}
.p-com li a:hover{background:var(--lila)}
.p-com li a small{font-weight:800;color:var(--lila-4)}

/* Especialidades */
.p-esps{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.p-esp{position:relative;display:flex;gap:14px;align-items:flex-start;padding:18px;background:#fff;border:var(--borde);border-radius:var(--r);box-shadow:var(--pega-s);color:var(--tinta);
    transition:transform .3s var(--ease),box-shadow .3s}
.p-esp:hover{transform:translate(-2px,-3px) rotate(-.8deg);box-shadow:var(--pega);color:var(--tinta)}
.p-esp-ic{flex:none;width:54px;height:54px;border-radius:16px;border:var(--borde);display:grid;place-items:center;font-size:1.8rem;background:var(--lila)}
.p-esp:nth-child(5n+1) .p-esp-ic{background:var(--rosa-2)}.p-esp:nth-child(5n+2) .p-esp-ic{background:var(--menta)}.p-esp:nth-child(5n+3) .p-esp-ic{background:var(--mante)}.p-esp:nth-child(5n+4) .p-esp-ic{background:var(--cielo)}
.p-esp:hover .p-esp-ic{animation:boing .7s}
.p-esp b{font-family:var(--fh);font-size:1.12rem;display:block;line-height:1.2}
.p-esp span{font-size:.9rem;color:var(--tinta-2)}
.p-intro{background:#fff;border:var(--borde);border-radius:var(--r);padding:26px 30px;box-shadow:var(--pega-s);margin:-28px 0 30px;position:relative;z-index:2}
.p-faq{margin-top:44px}
.p-faq details{background:#fff;border:var(--borde);border-radius:var(--r-s);margin-bottom:10px;overflow:hidden}
.p-faq summary{cursor:pointer;list-style:none;padding:14px 18px;font-family:var(--fh);font-weight:500;font-size:1.08rem;display:flex;justify-content:space-between;gap:12px}
.p-faq summary::-webkit-details-marker{display:none}
.p-faq summary::after{content:"+";font-size:1.4rem;line-height:1;transition:transform .3s var(--ease)}
.p-faq details[open] summary{background:var(--mante-2)}
.p-faq details[open] summary::after{transform:rotate(45deg)}
.p-faq .p-prose{padding:12px 18px 4px}
.p-faq details > p{margin:0;padding:12px 18px 16px;color:var(--tinta-2);line-height:1.65}

/* ---- Ficha ---- */
.p-ficha-top{position:relative;background:var(--lila);border-bottom:var(--borde);padding:26px 0 0;overflow:hidden}
.p-ficha-hero{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;padding-bottom:28px}
.p-ficha-logo{width:120px;height:120px;border-radius:28px;background:#fff;border:var(--borde);box-shadow:var(--pega);display:grid;place-items:center;padding:10px;overflow:hidden;transform:rotate(-3deg)}
.p-ficha-logo img{max-width:100%;max-height:100%;object-fit:contain}
.p-ficha-logo .ini{font-family:var(--fh);font-weight:600;font-size:3rem}
.p-ficha-hero h1{font-size:clamp(1.7rem,3.4vw,2.6rem);margin-bottom:.2em}
.p-ficha-meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font-weight:700;color:var(--tinta-2)}
.p-ficha-meta .ph-duotone{color:var(--rosa-4)}
.p-ficha-cta{display:flex;flex-direction:column;gap:10px}
@media(max-width:820px){.p-ficha-hero{grid-template-columns:auto 1fr}.p-ficha-cta{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}.p-ficha-logo{width:88px;height:88px}}
.p-ficha-cover{border:var(--borde);border-radius:var(--r);overflow:hidden;box-shadow:var(--pega);margin-bottom:24px;aspect-ratio:21/9;background:var(--lila-2)}
.p-ficha-cover img{width:100%;height:100%;object-fit:cover}
.p-ficha{display:grid;grid-template-columns:1fr 360px;gap:28px;align-items:start;padding:30px 0 60px}
.p-ficha > aside{position:sticky;top:96px;display:flex;flex-direction:column;gap:18px}
@media(max-width:980px){.p-ficha{grid-template-columns:1fr}.p-ficha > aside{position:static}}
.p-panel{background:#fff;border:var(--borde);border-radius:var(--r);padding:22px 24px;box-shadow:var(--pega-s);margin-bottom:22px}
.p-panel h2{font-size:1.35rem;display:flex;align-items:center;gap:10px}
.p-panel h2 .ph-duotone{color:var(--rosa-4);font-size:1.5rem}
.p-datos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.p-datos li{display:flex;gap:12px;align-items:flex-start}
.p-dato-ic{flex:none;width:42px;height:42px;border-radius:12px;background:var(--lila);border:2px solid var(--tinta);display:inline-flex;align-items:center;justify-content:center;color:var(--tinta)}
.p-dato-ic .ph-duotone{vertical-align:0}
.p-datos .k{display:block;font-size:.8rem;font-weight:800;color:var(--tinta-3)}
.p-datos .v{font-weight:700;color:var(--tinta);word-break:break-word}
.p-tags{display:flex;flex-wrap:wrap;gap:8px}
.p-tags a,.p-tags span{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:12px;border:2px solid var(--tinta);background:var(--lila);color:var(--tinta);font-weight:700;font-size:.93rem;
    transition:transform .25s var(--ease),background .2s}
.p-tags a:nth-child(4n+2){background:var(--menta-2)}.p-tags a:nth-child(4n+3){background:var(--mante-2)}.p-tags a:nth-child(4n+4){background:var(--rosa-3)}
.p-tags a:hover{transform:translateY(-2px) rotate(-1deg);color:var(--tinta)}
.p-tags .ph-duotone{font-size:1.2rem}
.p-muted{color:var(--tinta-3);font-size:.88rem}
.p-horario{width:100%;border-collapse:collapse;font-size:.93rem}
.p-horario td{padding:3px 0}
.p-form{display:flex;flex-direction:column;gap:10px}
.p-form input,.p-form textarea,.p-form select{font:inherit;font-size:.98rem;padding:11px 13px;border-radius:12px;border:2px solid var(--linea);background:var(--fondo);color:var(--tinta);width:100%}
.p-form input:focus,.p-form textarea:focus,.p-form select:focus{outline:none;border-color:var(--tinta);background:#fff}
.p-form label{font-weight:700;font-size:.9rem}
.p-form .fila{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hp-field{position:absolute!important;left:-9999px!important}
.p-claim{display:flex;gap:14px;align-items:center;background:var(--mante-2);border:var(--borde);border-radius:var(--r);padding:14px 18px;margin:20px 0 0;color:var(--tinta);box-shadow:var(--pega-s)}
.p-claim .ph-duotone{font-size:2rem;color:var(--mante-4);flex:none}
.p-claim p{margin:0;flex:1;font-size:.95rem}
.p-claim:hover{color:var(--tinta)}
.p-map{height:300px;border-radius:var(--r-s);border:var(--borde);overflow:hidden;margin-top:12px}
.p-resenas{display:flex;flex-direction:column;gap:12px}
.p-resena{background:var(--fondo);border:2px solid var(--linea);border-radius:var(--r-s);padding:12px 14px}
.p-resena b{font-family:var(--fh)}
.p-resena p{margin:.3em 0 0;font-size:.95rem}
.p-galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.p-galeria img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;border:2px solid var(--tinta)}
.p-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.p-social a{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.88rem;padding:6px 11px;border-radius:10px;border:2px solid var(--linea);color:var(--tinta)}
.p-social a:hover{border-color:var(--tinta);background:var(--lila)}

/* ---- Guías ---- */
.p-guides{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:20px}
.p-guide{position:relative;display:flex;flex-direction:column;gap:8px;padding:22px;border:var(--borde);border-radius:var(--r);background:#fff;box-shadow:var(--pega-s);color:var(--tinta);
    transition:transform .3s var(--ease),box-shadow .3s;overflow:hidden}
.p-guide:hover{transform:translate(-3px,-3px);box-shadow:var(--pega-l);color:var(--tinta)}
.p-guide:first-child{grid-row:span 2;background:var(--menta)}
.p-guide:first-child h3{font-size:1.7rem}
.p-guide h3{font-size:1.18rem;margin:0}
.p-guide p{margin:0;color:var(--tinta-2);font-size:.95rem}
.p-guide .p-chip{align-self:flex-start;background:var(--mante)}
.p-guide .p-guide-ic{position:absolute;right:-14px;bottom:-18px;font-size:7rem;opacity:.16;transform:rotate(-12deg)}
.p-guide:nth-child(3){background:var(--rosa-3)}.p-guide:nth-child(4){background:var(--cielo-2)}.p-guide:nth-child(5){background:var(--mante-2)}
@media(max-width:900px){.p-guides{grid-template-columns:1fr 1fr}.p-guide:first-child{grid-column:1/-1;grid-row:auto}}
@media(max-width:560px){.p-guides{grid-template-columns:1fr}}
.p-topics{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 8px}
.p-topics a{padding:7px 14px;border-radius:999px;border:2px solid var(--tinta);background:#fff;color:var(--tinta);font-weight:700;font-size:.92rem}
.p-topics a.on,.p-topics a:hover{background:var(--mante)}
.p-topics a span{color:var(--tinta-3);font-weight:800;font-size:.8rem}
.p-article{max-width:780px;margin:0 auto;padding:10px 22px 60px}
.p-article-head{padding:30px 0 10px}
.p-lead{font-size:1.25rem;color:var(--tinta-2);line-height:1.55}
.p-meta{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;font-weight:700;font-size:.9rem;color:var(--tinta-3);margin:14px 0 6px}
.p-meta .ph-duotone{color:var(--rosa-4)}
.p-toc{background:var(--mante-2);border:var(--borde);border-radius:var(--r);padding:18px 22px;margin:24px 0;box-shadow:var(--pega-s)}
.p-toc b{font-family:var(--fh);font-size:1.1rem}
.p-toc ol{margin:.5em 0 0;padding-left:1.3em;columns:2;column-gap:26px}
.p-toc li{margin:.25em 0;break-inside:avoid}
.p-toc a{color:var(--tinta);font-weight:600}
.p-toc a:hover{color:var(--rosa-4)}
@media(max-width:640px){.p-toc ol{columns:1}}
.p-prose{font-size:1.07rem;line-height:1.78;color:var(--tinta-2)}
.p-prose h2{font-size:clamp(1.4rem,2.6vw,1.85rem);margin:1.7em 0 .5em;color:var(--tinta);scroll-margin-top:100px}
.p-prose h3{font-size:1.2rem;margin:1.4em 0 .4em;color:var(--tinta)}
.p-prose strong{color:var(--tinta)}
.p-prose a{color:var(--lila-4);font-weight:700;text-decoration:underline;text-decoration-color:var(--rosa);text-decoration-thickness:2px;text-underline-offset:3px}
.p-prose ul,.p-prose ol{padding-left:1.25em}
.p-prose li{margin:.35em 0}
.p-prose li::marker{color:var(--rosa-4);font-weight:800}
.p-prose .destacado,.p-prose blockquote{margin:1.5em 0;padding:16px 20px;border-radius:var(--r-s);background:var(--menta-2);border:2px solid var(--menta-4);color:var(--tinta)}
.p-prose .alerta{margin:1.5em 0;padding:16px 20px;border-radius:var(--r-s);background:var(--rosa-3);border:2px solid var(--rosa-4);color:var(--tinta)}
.p-prose .alerta ul{margin:.4em 0 0}
.p-prose ul.fuentes{font-size:.92rem;color:var(--tinta-2);line-height:1.55}
.p-prose ul.fuentes a{overflow-wrap:anywhere}
.p-prose table{width:100%;border-collapse:separate;border-spacing:0;margin:1.3em 0;font-size:.96rem;border:var(--borde);border-radius:var(--r-s);overflow:hidden}
.p-prose th{background:var(--mante);color:var(--tinta);text-align:left;padding:10px 14px;font-family:var(--fh);font-weight:500}
.p-prose td{padding:10px 14px;border-top:2px solid var(--linea);vertical-align:top;background:#fff}
.p-aviso{display:flex;gap:12px;align-items:flex-start;margin:34px 0 18px;padding:14px 18px;border-radius:var(--r-s);background:var(--lila);color:var(--tinta-2);font-size:.92rem}
.p-aviso p{margin:0}
.p-aviso .ph-duotone{font-size:1.5rem;color:var(--lila-4);flex:none}
.p-guide-cta{display:flex;align-items:center;gap:16px;padding:18px 22px;border-radius:var(--r);border:var(--borde);background:var(--rosa-2);color:var(--tinta);box-shadow:var(--pega);
    transition:transform .3s var(--ease),box-shadow .3s}
.p-guide-cta:hover{transform:translate(-2px,-2px);box-shadow:var(--pega-l);color:var(--tinta)}
.p-guide-cta .ic{width:52px;height:52px;border-radius:16px;background:#fff;border:var(--borde);display:grid;place-items:center;font-size:1.7rem;flex:none}
.p-guide-cta span{flex:1;display:flex;flex-direction:column}
.p-guide-cta b{font-family:var(--fh);font-size:1.15rem}
.p-progress{position:fixed;top:0;left:0;height:5px;width:100%;transform-origin:left;transform:scaleX(0);background:var(--rosa);z-index:90;pointer-events:none}

/* ---- Bandas y CTA ---- */
.p-cta{position:relative;overflow:hidden;display:grid;grid-template-columns:1.4fr auto;gap:24px;align-items:center;background:var(--mante);border:var(--borde);border-radius:30px;
    padding:38px 40px;box-shadow:var(--pega-l)}
.p-cta h2{margin-bottom:.25em}
.p-cta p{margin:0;color:var(--tinta-2);max-width:56ch}
.p-cta .acts{display:flex;flex-wrap:wrap;gap:10px;position:relative;z-index:1}
@media(max-width:760px){.p-cta{grid-template-columns:1fr;padding:28px 24px}}
.p-marquee{overflow:hidden;border-top:var(--borde);border-bottom:var(--borde);background:var(--tinta);padding:12px 0}
.p-marquee-track{display:flex;gap:30px;width:max-content;animation:marquesina 38s linear infinite}
.p-marquee:hover .p-marquee-track{animation-play-state:paused}
.p-marquee a{display:inline-flex;align-items:center;gap:10px;color:#fff;font-family:var(--fh);font-weight:500;font-size:1.15rem;white-space:nowrap}
.p-marquee a .ph-duotone{color:var(--mante);font-size:1.4rem}
.p-marquee a:hover{color:var(--mante)}
@keyframes marquesina{to{transform:translateX(-50%)}}

/* ---- Pie ---- */
.p-footer{position:relative;margin-top:40px;background:var(--tinta);color:#E4DEFF;padding:56px 0 22px;overflow:hidden}
.p-footer::before{content:"";position:absolute;left:0;right:0;top:-1px;height:40px;background:var(--fondo);
    clip-path:polygon(0 0,100% 0,100% 30%,90% 60%,78% 35%,64% 62%,50% 30%,36% 60%,22% 34%,10% 62%,0 36%)}
.p-foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px;position:relative}
.p-footer h3{color:#fff;font-size:1.1rem}
.p-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.p-footer a{color:#E4DEFF;font-size:.94rem}
.p-footer a:hover{color:var(--mante)}
.p-footer .p-logo img{height:56px;width:auto}
.p-foot-sos{margin-top:16px;padding:14px 16px;border-radius:var(--r-s);background:rgba(255,255,255,.08);font-size:.88rem;line-height:1.55}
.p-foot-sos b{color:var(--mante)}
.p-foot-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:36px;padding-top:18px;border-top:1px solid rgba(255,255,255,.15);font-size:.86rem;color:#B9AEF5}
@media(max-width:900px){.p-foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.p-foot-grid{grid-template-columns:1fr}}

/* ---- Elementos que crea main.js (avisos, sugerencias, PWA) ---- */
.flash{padding:12px 0;font-weight:700;border-bottom:var(--borde)}
.flash-ok{background:var(--menta)}.flash-aviso{background:var(--mante)}.flash-error{background:var(--rosa-2)}
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:100;max-width:560px;margin:0 auto;background:#fff;border:var(--borde);border-radius:var(--r);box-shadow:var(--pega-l);
    padding:16px 18px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;transform:translateY(30px);opacity:0;transition:all .35s var(--ease)}
.cookie-banner.show{transform:none;opacity:1}
.cookie-banner p{margin:0;flex:1 1 260px;font-size:.9rem}
.cookie-banner button{font-family:var(--fh);font-size:.95rem;padding:8px 14px;border-radius:12px;border:var(--borde);cursor:pointer;background:#fff;color:var(--tinta)}
.cookie-banner .cookie-acc{background:var(--mante)}
.pwa-banner{position:fixed;left:16px;right:16px;bottom:100px;z-index:95;max-width:420px;margin:0 auto;background:#fff;border:var(--borde);border-radius:var(--r);box-shadow:var(--pega);
    padding:12px 14px;display:flex;gap:12px;align-items:center;transform:translateY(20px);opacity:0;transition:all .3s var(--ease)}
.pwa-banner.show{transform:none;opacity:1}
.pwa-banner img{width:40px;height:40px;border-radius:10px}
.pwa-banner .pwa-tx{flex:1;font-size:.88rem;display:flex;flex-direction:column}
.pwa-banner button{border:var(--borde);border-radius:10px;background:var(--mante);font-family:var(--fh);padding:6px 10px;cursor:pointer}
.pwa-banner .pwa-x{background:#fff}
.search-suggest{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border:var(--borde);border-radius:16px;box-shadow:var(--pega);padding:6px;z-index:80;max-height:60vh;overflow:auto}
.search-suggest .ss-item{display:flex;gap:8px;align-items:center;padding:8px 10px;border-radius:10px;color:var(--tinta);font-weight:600;font-size:.92rem}
.search-suggest .ss-item:hover,.search-suggest .ss-item.on{background:var(--lila)}
.search-suggest .ss-h{font-size:.75rem;font-weight:800;color:var(--tinta-3);padding:6px 10px 2px}
.scroll-glow{position:fixed;top:0;left:0;height:4px;background:var(--rosa);z-index:90;pointer-events:none}
.foot-trail-layer{display:none}
.ad-contenido,.ad-lateral{margin:30px 0;text-align:center}
.slider{position:relative;overflow:hidden;border-radius:var(--r-s)}
.slider-track{display:flex;transition:transform .45s var(--ease-s)}
.slide{flex:0 0 100%;margin:0}
.slide img{width:100%;aspect-ratio:16/10;object-fit:cover}
.slider-btn{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:12px;border:var(--borde);background:#fff;cursor:pointer;display:grid;place-items:center}
.slider-btn.prev{left:10px}.slider-btn.prev .ph-duotone{transform:rotate(180deg)}.slider-btn.next{right:10px}
.slider-dots{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:6px}
.slider-dots button{width:9px;height:9px;border-radius:50%;border:2px solid var(--tinta);background:#fff;padding:0}
.slider-dots button.on{background:var(--rosa)}

/* ---- Entrada al hacer scroll ---- */
.js [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease-s),transform .7s var(--ease)}
.js [data-reveal].in{opacity:1;transform:none}
.js [data-stagger] > *{opacity:0;transform:translateY(24px) scale(.96);transition:opacity .55s var(--ease-s),transform .6s var(--ease);transition-delay:calc(var(--i,0) * 60ms)}
.js [data-stagger].in > *{opacity:1;transform:none}
.js [data-stagger].in > .p-worry:nth-child(odd){transform:rotate(-1.5deg)}
.js [data-stagger].in > .p-worry:nth-child(even){transform:rotate(1.5deg)}

@media(prefers-reduced-motion:reduce){
    *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
    .js [data-reveal],.js [data-stagger] > *{opacity:1;transform:none}
}

/* Anuncios: separados del contenido y etiquetados (normas de AdSense: nada de clics por error) */
.ad-slot{margin:30px 0;padding:10px 0;text-align:center;clear:both}
.ad-slot .ad-label{display:block;font-size:.72rem;font-weight:800;color:var(--tinta-3);margin-bottom:6px}
.p-side .ad-slot{margin:6px 0}
.horario{font-size:.92rem}
.horario table{width:100%;border-collapse:collapse}
.horario td{padding:2px 0}
.horario .hoy,.horario tr.hoy td{font-weight:800;color:var(--tinta)}
.p-nav > a,.p-drop > button{white-space:nowrap}
.p-hero h1{position:relative;z-index:0}
@media(max-width:1440px){.p-search-mini{display:none}}
[hidden]{display:none!important}
.p-hero h1 .p-mark::after{z-index:-1;opacity:.95}
.hr-row{display:flex;justify-content:space-between;gap:12px;padding:3px 0;border-bottom:1px dashed var(--linea);font-size:.92rem}
.hr-row:last-child{border-bottom:0}
.hr-row span{color:var(--tinta-2);font-weight:600}
.hr-row b{font-weight:800}
@media(max-width:600px){
    .p-hero .p-dot,.p-hero .p-sq{display:none}
    .p-hero h1{font-size:2.05rem}
    .p-hero-lead{font-size:1.02rem}
    .p-search{box-shadow:var(--pega)}
    .p-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
    .p-stat{padding:12px;gap:10px;flex-direction:column;align-items:flex-start}
    .p-stat .ph-duotone{font-size:1.6rem!important}
    .p-stat b{font-size:1.35rem}
    .p-stat span{font-size:.82rem}
    .p-sec{padding:52px 0}
    .p-head{padding:26px 0 44px}
    .p-head .p-shape{opacity:.45}
    .p-cta{border-radius:22px}
}
@media(max-width:900px){
    .p-list{gap:16px;padding-top:22px}
    .p-side{gap:10px}
    .p-box{padding:12px 14px}
    .p-box h3{margin-bottom:8px;font-size:.98rem}
    .p-filter{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}
    .p-filter::-webkit-scrollbar{display:none}
    .p-filter a{flex:0 0 auto;white-space:nowrap}
    .p-side .ad-slot{display:none}
}
.p-list > *,.p-ficha > *{min-width:0}
.p-results-head > div{min-width:0}
@media(max-width:600px){.p-results-head{flex-direction:column;align-items:flex-start}.p-cards{grid-template-columns:1fr}}
.p-ficha-top .p-wrap{position:relative;z-index:1}
@media(max-width:760px){
    .cookie-banner{bottom:96px}
    .pwa-banner{bottom:170px}
    .p-ficha-top .p-shape{opacity:.35}
    .p-ficha-top .p-sq{display:none}
    .p-claim{flex-wrap:wrap}
    .p-ficha-hero h1{font-size:1.6rem}
}

/* Carrusel de ciudades: sin barra, avanza solo, flechas y arrastre */
.p-cities{scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;padding:8px 6px 22px;margin:0 -6px;cursor:grab;
    -webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent)}
.p-cities::-webkit-scrollbar{display:none}
.p-cities.arrastrando{cursor:grabbing;scroll-behavior:auto;scroll-snap-type:none}
.p-cities.arrastrando a{pointer-events:none}
.p-slider-ctrl{display:flex;align-items:center;gap:10px}
.p-arrow{width:46px;height:46px;border-radius:14px;border:var(--borde);background:#fff;box-shadow:var(--pega-s);display:grid;place-items:center;cursor:pointer;color:var(--tinta);
    transition:transform .25s var(--ease),box-shadow .25s,background .2s}
.p-arrow:hover{transform:translate(-2px,-2px);box-shadow:var(--pega);background:var(--mante)}
.p-arrow:active{transform:translate(1px,1px);box-shadow:0 0 0 var(--tinta)}
@media(max-width:600px){.p-slider-ctrl .p-btn{display:none}}
/* El buscador del hero siempre por encima de los adornos */
.p-hero-grid > div:first-child{position:relative;z-index:3}
.p-hero-art{z-index:1}
.p-hero-art .f3{left:auto;right:150px;bottom:10px;width:104px;height:104px}
.p-hero-art .f4{right:20px;bottom:60px}

/* Tarjeta: portada ilustrada cuando el centro no tiene foto (formas y el icono del motivo, muy suave) */
.p-card-media.portada{background-color:var(--lila-2);
    background-image:radial-gradient(circle at 18% 28%,rgba(255,255,255,.75) 0 26px,transparent 27px),
                     radial-gradient(circle at 82% 78%,rgba(255,255,255,.55) 0 44px,transparent 45px),
                     radial-gradient(circle at 70% 18%,rgba(46,42,91,.10) 0 9px,transparent 10px),
                     radial-gradient(circle at 30% 82%,rgba(46,42,91,.08) 0 6px,transparent 7px)}
.p-card-media.portada.tono1{background-color:var(--rosa-2)}.p-card-media.portada.tono2{background-color:var(--menta)}
.p-card-media.portada.tono3{background-color:var(--mante)}.p-card-media.portada.tono4{background-color:var(--cielo)}.p-card-media.portada.tono5{background-color:var(--lila-2)}
.p-portada-ic{display:none}
.p-card-media.portada .p-portada-ic{position:absolute;inset:0;display:grid;place-items:center;color:var(--tinta);opacity:.22;transition:transform .5s var(--ease)}
.p-card:hover .p-card-media.portada .p-portada-ic{transform:scale(1.12) rotate(-6deg)}
.p-card-logo{width:70px;height:70px;bottom:-30px}
.p-card-logo b{font-family:var(--fh);font-weight:600;font-size:1.7rem;color:var(--tinta)}
.p-card-body{padding-top:20px}
.p-card-top{position:relative}
.p-card-top .p-card-logo{position:absolute;right:12px;bottom:-30px;top:auto}
/* Firma del pie: «Hecho con ❤ por 3CWeb», con el corazón latiendo como en el resto de proyectos */
.p-made{display:inline-flex;align-items:center;gap:6px}
.p-heart{fill:var(--rosa);filter:drop-shadow(0 0 6px rgba(255,122,138,.55));animation:latido 1.3s ease-in-out infinite;transform-origin:center}
.p-by{font-weight:800;color:#fff!important;border-bottom:2px solid var(--rosa)}
@keyframes latido{0%,100%{transform:scale(1)}14%{transform:scale(1.28)}28%{transform:scale(1)}42%{transform:scale(1.22)}70%{transform:scale(1)}}

/* Planes de suscripción */
.p-planes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;align-items:stretch}
.p-plan{position:relative;display:flex;flex-direction:column;background:#fff;border:var(--borde);border-radius:var(--r);box-shadow:var(--pega-s);padding:26px 24px 22px}
.p-plan h2{font-size:1.45rem;margin-bottom:6px}
.p-precio{font-family:var(--fh);font-weight:600;font-size:2.4rem;line-height:1;margin-bottom:16px}
.p-precio small{font-family:var(--ff);font-size:.95rem;font-weight:700;color:var(--tinta-3)}
.p-plan ul{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:9px;flex:1}
.p-plan li{display:flex;gap:9px;align-items:flex-start;font-size:.97rem}
.p-plan li .ph-duotone{color:var(--menta-4);flex:none;margin-top:2px}
.p-plan-top{background:var(--mante-2);box-shadow:var(--pega-l);transform:translateY(-6px)}
.p-plan-badge{position:absolute;top:-16px;right:18px;background:var(--rosa);border:var(--borde);border-radius:999px;padding:4px 12px;font-family:var(--fh);font-weight:500;font-size:.9rem;transform:rotate(3deg)}
.p-plan li{display:block;position:relative;padding-left:28px}
.p-plan li .ph-duotone{position:absolute;left:0;top:3px}
/* Cabecera: el logo nunca se encoge ni se deforma; botones del menú todos iguales */
.p-logo{flex:none;display:block}
.p-logo img{height:50px;width:auto;max-width:none;display:block}
.p-header-in{gap:14px}
.p-nav{flex-wrap:nowrap}
.p-nav > a,.p-drop > button{height:46px;line-height:1;font-size:.98rem;padding:0 13px}
.p-nav .p-nav-cta{height:46px}
.p-search-mini{width:240px;flex:0 1 240px}
@media(max-width:1500px){.p-search-mini{display:none}}
@media(max-width:1320px){.p-nav > a,.p-drop > button{padding:0 9px;font-size:.93rem}}
@media(max-width:760px){.p-logo img{height:42px}}

/* Galería de la ficha (la primera foto grande) y visor a pantalla completa */
.p-galeria{grid-template-columns:repeat(4,1fr);gap:10px}
.p-galeria a{display:block;border-radius:14px;overflow:hidden;border:2px solid var(--tinta);cursor:zoom-in;position:relative}
.p-galeria a:first-child{grid-column:span 2;grid-row:span 2}
.p-galeria img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;border:0;border-radius:0;transition:transform .5s var(--ease-s)}
.p-galeria a:hover img{transform:scale(1.07)}
.p-galeria a::after{content:"";position:absolute;inset:0;background:rgba(46,42,91,0);transition:background .25s}
.p-galeria a:hover::after{background:rgba(46,42,91,.12)}
@media(max-width:600px){.p-galeria{grid-template-columns:repeat(2,1fr)}}
.p-ficha-cover a{display:block;cursor:zoom-in;height:100%}
.p-visor{position:fixed;inset:0;z-index:200;background:rgba(27,24,58,.92);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s}
.p-visor.on{opacity:1;visibility:visible}
.p-visor img{max-width:min(92vw,1400px);max-height:84vh;border-radius:18px;border:3px solid #fff;box-shadow:0 30px 80px rgba(0,0,0,.5);object-fit:contain;background:#fff;
    transform:scale(.94);transition:transform .35s var(--ease)}
.p-visor.on img{transform:scale(1)}
.p-visor button{position:absolute;width:54px;height:54px;border-radius:16px;border:var(--borde);background:#fff;color:var(--tinta);cursor:pointer;display:grid;place-items:center;box-shadow:var(--pega-s)}
.p-visor button:hover{background:var(--mante)}
.p-visor .v-cerrar{top:18px;right:18px}
.p-visor .v-prev{left:18px;top:50%;transform:translateY(-50%)}
.p-visor .v-next{right:18px;top:50%;transform:translateY(-50%)}
.p-visor .v-cuenta{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:#fff;font-family:var(--fh);font-size:1rem;background:rgba(255,255,255,.12);padding:6px 14px;border-radius:999px}
@media(max-width:600px){.p-visor .v-prev,.p-visor .v-next{top:auto;bottom:14px;transform:none}.p-visor .v-cuenta{bottom:28px}}
/* El aviso para instalar la web como app solo tiene sentido en el móvil */
@media(min-width:761px),(hover:hover) and (pointer:fine){.pwa-banner{display:none!important}}

/* Pesos para M PLUS Rounded 1c (500, 700, 800) */
.p-btn,.p-nav > a,.p-drop > button,.p-kicker,.p-worry,.p-tag,.p-chip{font-weight:700}
.p-card-name,.p-city b,.p-age b,.p-esp b,.p-step b,.p-stat b,.p-precio,.p-guide h3,.p-toc b,.p-faq summary{font-weight:800}

/* ===== Profesionales: recuadro del lateral y pestaña fija para destacar el centro ===== */
.p-promo{background:var(--rosa-3);text-align:center;position:relative;overflow:hidden}
.p-promo h3{justify-content:center;margin:6px 0 6px}
.p-promo p{margin:0 0 14px;font-size:.95rem;color:var(--tinta-2)}
.p-promo-ic{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#fff;border:var(--borde);color:var(--rosa-4);box-shadow:var(--pega-s);animation:promo-pulso 2.6s var(--ease) infinite}
.p-promo-sec{display:block;margin:10px 0 4px;font-weight:700;font-size:.92rem}
.p-promo small{display:block;color:var(--tinta-2);font-size:.8rem}
@keyframes promo-pulso{0%,100%{transform:scale(1)}50%{transform:scale(1.08) rotate(-6deg)}}
.p-sidetab{position:fixed;right:0;top:50%;z-index:60;display:flex;align-items:center;gap:8px;padding:16px 10px;writing-mode:vertical-rl;transform:translateY(-50%);
  background:var(--rosa);color:var(--tinta);border:var(--borde);border-right:0;border-radius:var(--r) 0 0 var(--r);box-shadow:-4px 4px 0 var(--tinta);font-weight:700;font-size:.92rem;
  text-decoration:none;transition:padding .25s var(--ease),background .25s var(--ease)}
.p-sidetab .ph-duotone{text-orientation:upright}
.p-sidetab:hover{padding-right:16px;background:var(--tinta);color:#fff}
.p-sidetab b{font-weight:800}
@media (max-width:900px){.p-sidetab{display:none}}
@media (prefers-reduced-motion:reduce){.p-promo-ic{animation:none}.p-sidetab{transition:none}}

/* Logos blancos sobre transparente (bin/logos_claros.php): recuadro oscuro para que se lean */
.p-card-logo.oscuro,.p-ficha-logo.oscuro{background:var(--tinta)}

/* El recuadro para psicólogos: en el lateral en escritorio; en móvil, después del listado (no delante de los resultados) */
.p-promo-movil{display:none;margin-top:26px}
@media (max-width:900px){.p-side .p-promo{display:none}.p-promo-movil{display:block}}

/* Rendimiento: en listados con cientos de tarjetas el navegador solo pinta las que están cerca de la vista */
.biz-grid > .p-card{content-visibility:auto;contain-intrinsic-size:auto 340px}
/* Hueco reservado para los iconos (su hoja carga sin bloquear): al aparecer no desplazan el contenido */
.ph-duotone{display:inline-block;width:1em;height:1em;line-height:1;white-space:nowrap;flex-shrink:0}
