/* ESTILOS. Colores en :root; el resto está ordenado de arriba hacia abajo según la pantalla. */
:root{--ink:#10213f;--navy:#17315f;--blue:#2f57c6;--green:#16a98a;--gold:#c9a24b;--mut:#5b6b7e;--bg:#f5f6fa;--line:#dbe3ee;--r:14px}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--bg)}
h1,h2,.logo{font-family:Fraunces,Georgia,serif;margin:0}
button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
a{color:var(--blue)}.sub{color:var(--mut);font-size:14px}.wrap{max-width:1080px;margin:auto}.pad{padding:24px 16px}.h1{font-size:30px;margin-bottom:6px}

/* Barra superior y menú */
header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.bar{max-width:1080px;margin:auto;padding:10px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.logo{margin-right:auto;cursor:pointer;display:flex;align-items:center;text-decoration:none}.logo img{height:40px;width:auto;display:block}
@media(max-width:560px){.logo img{height:34px}}
nav{display:flex;gap:4px;flex-wrap:wrap}nav button{background:none;border:0;padding:8px 12px;border-radius:8px;color:var(--mut)}
nav button:hover,nav button.on{background:var(--bg);color:var(--ink)}nav button.on{font-weight:600}

/* Botones */
.btn{background:var(--blue);color:#fff;border:0;padding:10px 18px;border-radius:10px;font-weight:600;text-decoration:none;display:inline-block}
.btn.g{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.s{padding:6px 12px;font-size:14px}
.btn.d{background:#c93b3b}.btn.wa{background:var(--green)}button:disabled{opacity:.5;cursor:not-allowed}
.ib{background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-size:14px}.ib.on{background:#fbf1d9;border-color:var(--gold)}
.row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}

/* Inicio: buscador, filtros y listado */
.f input,.f select,.f textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}
.chip{border:1px solid var(--line);background:#fff;padding:6px 14px;border-radius:99px;font-size:14px}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.tool{display:flex;justify-content:space-between;align-items:center;margin:8px 0 14px;color:var(--mut);flex-wrap:wrap;gap:8px}
.tool select{padding:6px;border-radius:8px;border:1px solid var(--line)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-right:12px}.seg button{border:0;background:#fff;padding:6px 14px}.seg button.on{background:var(--ink);color:#fff}
.map{height:460px;border-radius:var(--r);border:1px solid var(--line);z-index:0}

/* Fichas del listado */
.bdg{font-size:12px;padding:2px 9px;border-radius:99px;margin-left:8px;vertical-align:middle;background:#dff4ea;color:#1e7a50;font-family:system-ui,sans-serif}
.st{color:var(--gold);letter-spacing:2px}.dist{font-weight:600;color:var(--blue)}
.empty{text-align:center;padding:48px 16px;color:var(--mut);background:#fff;border:1px dashed var(--line);border-radius:var(--r)}

/* Materias */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:18px}
.mat{text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;border-top:3px solid var(--gold)}
.mat:hover{box-shadow:0 8px 24px #10213f1a}.mat h2{font-size:20px}.mat p{color:var(--mut);font-size:14px;margin:6px 0 10px}

/* Perfil */
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px;margin:16px 0}
.info{display:grid;gap:12px}.info b{display:block;color:var(--mut);font-size:13px;font-weight:600}

/* Panel privado (formulario y tabla) */
.f{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.f label{font-size:14px;color:var(--mut);display:block}.f .full{grid-column:1/-1}
.ck{display:flex;gap:6px 14px;flex-wrap:wrap}.ck label{color:var(--ink);display:flex;gap:6px;align-items:center}.ck input{width:auto}
table{width:100%;border-collapse:collapse;font-size:14px}td,th{padding:8px;border-bottom:1px solid var(--line);text-align:left}

/* Ventanas, barra de comparación y avisos */
.ov{position:fixed;inset:0;background:#10213f99;display:grid;place-items:center;padding:16px;z-index:9}
.modal{background:#fff;border-radius:16px;padding:22px;max-width:420px;width:100%}.modal.w{max-width:760px;max-height:90vh;overflow:auto}
.stars button{background:none;border:0;font-size:32px;color:#c9d2de;padding:0 2px}.stars button.on{color:var(--gold)}
.cmp{overflow-x:auto}.cmp td:first-child{color:var(--mut);white-space:nowrap}
.cbar{position:fixed;bottom:0;left:0;right:0;background:var(--ink);color:#fff;padding:12px 16px;gap:12px;align-items:center;justify-content:center;z-index:6;display:none}
#toast{position:fixed;bottom:70px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 18px;border-radius:10px;display:none;z-index:10}
footer{text-align:center;color:var(--mut);font-size:13px;padding:30px 16px 70px}

@media(max-width:720px){.f{grid-template-columns:1fr}}
@media(prefers-reduced-motion:no-preference){.ov{animation:f .15s}@keyframes f{from{opacity:0}}}

/* ===== Encabezado con lupa y menú (celular) ===== */
.bar{gap:6px}
.ic{width:42px;height:42px;border-radius:50%;border:0;background:none;display:grid;place-items:center;color:var(--ink);padding:0}.ic:hover{background:var(--bg)}.ic svg{width:24px;height:24px}
#nav,#usr{display:none}
header.open #nav{display:flex;flex-direction:column;flex-basis:100%;order:3;margin-top:4px}header.open nav button{text-align:left;font-size:16px}
header.open #usr{display:block;flex-basis:100%;order:4;padding:4px 0 6px}
@media(min-width:820px){.bar{gap:14px}#nav{display:flex}#usr{display:block}.ic{display:none}}

/* ===== Buscador en píldora y filtros ===== */
.sb{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 6px 6px 16px;box-shadow:0 4px 18px #10213f14}
.sb:focus-within{outline:3px solid var(--blue);outline-offset:2px}
.sb>svg{width:21px;height:21px;flex:none;color:var(--ink)}
.sb input{flex:1;min-width:0;border:0;outline:0;background:none;padding:10px 2px;font-size:15px}
.sb .btn{border-radius:999px;padding:11px 20px}.sb .n{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:9px;background:#fff;color:var(--blue);font-size:12px;margin-left:4px;padding:0 4px}
.fp label{font-size:13px;color:var(--mut);display:block;margin-bottom:4px}.fp select{width:100%;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.fp .bt{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.chips{display:flex;gap:8px;overflow-x:auto;margin:14px -16px 0;padding:0 16px 4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{white-space:nowrap;flex:none}
h1.hd,h2.hd{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:800;font-size:26px;letter-spacing:-.01em;margin:22px 0 2px}
.tool{margin:4px 0 14px}.seg{margin-right:0}

/* ===== Fichas ===== */
.cards{display:grid;gap:14px}.cards>.map,.cards>.empty{grid-column:1/-1}
@media(min-width:900px){.cards{grid-template-columns:1fr 1fr}}
.card{background:#fff;border:1px solid #edf0f6;border-radius:22px;padding:10px;display:grid;grid-template-columns:100px 1fr;gap:14px;box-shadow:0 6px 22px #10213f14;cursor:pointer;transition:box-shadow .15s}
.card:hover{box-shadow:0 10px 28px #10213f26}
.ph{width:84px;height:84px;border-radius:18px;object-fit:cover;background:linear-gradient(145deg,#dfe7fb,#d9f2ea);color:var(--navy);display:grid;place-items:center;font:700 26px Fraunces,serif}
.card .ph{width:100px;height:100%;min-height:112px;border-radius:16px;font-size:30px}
.cb{min-width:0;display:flex;flex-direction:column;gap:4px;padding:4px 4px 2px 0}
.ct{display:flex;gap:8px;align-items:flex-start}
.card h2{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:700;font-size:17px;line-height:1.25;flex:1;min-width:0}
.card h2 a{color:var(--ink);text-decoration:none}.card h2 a:hover{text-decoration:underline}
.ics{display:flex;gap:6px;flex:none}
.ic2{width:32px;height:32px;border-radius:50%;border:0;background:#eef0f5;color:var(--mut);display:grid;place-items:center;padding:0}.ic2 svg{width:17px;height:17px}
.ic2.on{background:#fbe3e3;color:#c93b3b}.ic2.on svg{fill:currentColor}.ic2.c.on{background:#dfe7fb;color:var(--blue)}.ic2.c.on svg{fill:none}
.ln{font-size:14px;color:var(--mut);display:flex;gap:6px;align-items:flex-start;line-height:1.35}.ln svg{width:15px;height:15px;flex:none;margin-top:2px}
.bdg{font-size:12px;padding:1px 8px;border-radius:99px;background:#dff4ea;color:#1e7a50;font-family:system-ui,sans-serif;margin-left:4px;white-space:nowrap}
.rw{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:8px;flex-wrap:wrap}
.rt{display:flex;align-items:center;gap:6px;font-weight:700}.rt small{font-weight:400;color:var(--mut)}
.st{color:var(--gold);letter-spacing:1px}.st i{font-style:normal;color:#d5dbe6}
.btn.wa{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:8px 16px}.btn.wa svg{width:17px;height:17px}
.card .btn.s{border-radius:999px;padding:8px 16px}
@media(max-width:430px){.sb{padding-left:12px;gap:6px}.sb input{font-size:13.5px}.sb .btn{padding:10px 14px;font-size:14px}.sb>svg{width:19px;height:19px}}

/* ===== Bloque azul del título ===== */
.hero{background:linear-gradient(160deg,var(--navy),#0e1d3b);color:#fff;padding:34px 16px 28px}
.hero h1{font-size:clamp(30px,5vw,48px);line-height:1.1;max-width:680px}.hero em{color:var(--gold);font-style:normal}
.hero p{color:#c7d3e6;max-width:520px;margin:12px 0 22px}
.hero .sb:focus-within{outline-color:#fff}
.fp .near{grid-column:1/-1;display:flex;justify-content:center;align-items:center;gap:8px;padding:12px}.fp .near svg{width:18px;height:18px}
@media(min-width:820px){.hero{padding:48px 16px 34px}}
.hero .fp{color:var(--ink)}.hero .sb input{color:var(--ink)}.fp select{color:var(--ink)}

/* ===== Ficha: foto cuadrada fija y nombre en una sola línea ===== */
.card{grid-template-columns:92px 1fr;gap:12px;align-items:start}
.card .ph{width:92px;height:92px;min-height:0;align-self:start;border-radius:16px;font-size:28px}
.ct{align-items:center}
.card h2{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card h2{font-size:15px}.card .ic2{width:30px;height:30px}.ct{gap:6px}

/* ===== Botón "Más cercanos", Lista/Mapa y mapa ===== */
.nearbtn{display:flex;align-items:center;gap:12px;width:100%;margin-top:12px;padding:12px 16px;border-radius:18px;border:1.5px solid #e8c978;background:linear-gradient(135deg,#c9a24a,#f0d894 55%,#d9b55f);color:#1a1405;text-align:left;box-shadow:0 8px 22px #c9a24a44}
.nearbtn .pinc{flex:none;width:40px;height:40px;border-radius:50%;background:#10213f;color:#f0cf7a;display:grid;place-items:center}.nearbtn .pinc svg{width:21px;height:21px}
.nearbtn .nt b{display:block;font-size:16px}.nearbtn .nt small{display:block;font-size:13px;opacity:.8}
.nearbtn.on{background:#fff;border-color:#fff;color:var(--navy);box-shadow:0 8px 22px #0004}.nearbtn.on .pinc{background:#16a98a;color:#fff}
.fp{margin-top:12px;color:var(--ink)}
.vw{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#e7ebf3;padding:4px;border-radius:16px;margin:10px 0 6px}
.vw button{display:flex;align-items:center;justify-content:center;gap:8px;border:0;background:none;padding:11px;border-radius:12px;font-weight:700;color:var(--mut);font-size:15px}.vw svg{width:20px;height:20px}
.vw button.on{background:#fff;color:var(--navy);box-shadow:0 2px 8px #10213f26}
.cnt{color:var(--mut);font-size:14px;margin:6px 2px 12px}
.map{height:min(62vh,520px);min-height:340px}
.lxpin i{display:block;width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--blue);border:3px solid #fff;box-shadow:0 4px 10px #0005;position:relative}.lxpin i::after{content:"";position:absolute;inset:7px;border-radius:50%;background:#fff}
.lxme i{display:block;width:20px;height:20px;border-radius:50%;background:#2f80ed;border:3px solid #fff;box-shadow:0 0 0 7px #2f80ed33}
.pp{font-size:14px;line-height:1.4}.pp b{font-size:15px}.ppb{display:flex;gap:14px;margin-top:8px}.ppb a{font-weight:700}

/* ===== Perfil ===== */
.pfh{position:relative;background:linear-gradient(170deg,#0d2149 0%,#173a73 55%,#26508f 100%);color:#fff;text-align:center;padding:14px 16px 60px;display:flex;flex-direction:column;align-items:center;gap:6px}
.back{align-self:flex-start;display:inline-flex;align-items:center;gap:2px;background:none;border:0;color:#dbe5f5;padding:8px 6px 8px 0;font-size:15px}.back svg{width:22px;height:22px}
.pfp{display:flex;align-items:center;width:100%;margin:6px 0 12px}
.pfp::before,.pfp::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}.pfp::after{transform:scaleX(-1)}
.ph.big{width:136px;height:136px;border-radius:50%;border:4px solid var(--gold);box-shadow:0 0 0 7px #ffffff1a,0 14px 34px #0007;margin:0 14px;font-size:42px;flex:none;object-fit:cover}
.pfh div.ph.big{background:linear-gradient(145deg,#2c4f8f,#1b3566);color:#fff}
.pfh h1{font-size:clamp(27px,6vw,36px);line-height:1.15}
.gold{color:#f0cf7a;font-weight:600}.sp{color:#dbe5f5;font-size:15px}
.pfr{display:flex;gap:6px;align-items:center;justify-content:center;flex-wrap:wrap;font-size:15px}.pfh .st{font-size:18px}.pfh .st i{color:#ffffff44}
.vbdg{display:inline-block;margin-top:6px;padding:4px 14px;border-radius:99px;background:linear-gradient(135deg,#c9a24a,#e8c978);color:#1a1405;font-size:13px;font-weight:700}
.pfb{padding:0 16px 40px;margin-top:-34px;position:relative}
.info2{padding:6px 8px}
.ir{display:flex;align-items:center;gap:14px;padding:12px 8px;color:var(--ink);text-decoration:none;border-bottom:1px solid #eef0f5}.ir:last-child{border-bottom:0}
a.ir:hover{background:#f7f8fb;border-radius:12px}
.ico{flex:none;width:42px;height:42px;border-radius:50%;background:#f3ecd9;color:#a47f26;display:grid;place-items:center}.ico svg{width:21px;height:21px}
.tx{flex:1;min-width:0}.tx b{display:block;font-size:16px}.tx small{display:block;color:var(--mut);font-size:13px;margin-top:2px}
.ch{color:#b7bfcc}.ch svg{width:20px;height:20px}
.acts{display:grid;gap:14px;margin:16px 0}
.btn.gold{display:flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(135deg,#c9a24a,#f0d894 55%,#d9b55f);color:#1a1405;font-weight:700;font-size:17px;border-radius:16px;padding:16px;box-shadow:0 10px 24px #c9a24a55;text-decoration:none}.btn.gold svg{width:22px;height:22px}
.soc{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:10px}
.so{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;background:#fff;border:1px solid #e6e9f0;border-radius:16px;color:var(--ink);text-decoration:none;font-size:13px;font-weight:600;box-shadow:0 4px 14px #10213f0f}
.so span{width:44px;height:44px;border-radius:50%;background:var(--navy);color:#f0cf7a;display:grid;place-items:center}.so svg{width:22px;height:22px}
.so:hover{box-shadow:0 8px 20px #10213f26}
.pf .sec{display:flex;gap:10px;flex-wrap:wrap}
.so{text-align:center;line-height:1.2}
.pf .sec{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pf .sec .btn,.pf .sec .ib{padding:12px 4px;text-align:center;font-size:14px;font-weight:600;line-height:1.2;display:flex;align-items:center;justify-content:center}

/* ===== Buscador con resultados visibles, filtros compactos y etiquetas ===== */
.hero{padding:22px 16px 20px}.hero h1{font-size:clamp(26px,7vw,44px)}.hero p{font-size:15px;margin:8px 0 16px}
@media(min-width:820px){.hero{padding:44px 16px 30px}.hero p{font-size:16px;margin:12px 0 22px}}
.vr{display:block;width:100%;margin-top:10px;padding:12px;border-radius:14px;border:1.5px solid #ffffff66;background:#ffffff26;color:#fff;font-weight:700;font-size:15px}
.fp{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:14px;margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fp .full{grid-column:1/-1}.fp .fg{min-width:0}.fp .lb{display:block;font-size:13px;color:var(--mut);margin-bottom:6px}
.fp select{font-size:14px;padding:10px 8px}
.pills{display:flex;flex-wrap:wrap;gap:6px}.pills button{padding:8px 12px;border-radius:99px;border:1px solid var(--line);background:#fff;font-size:14px;color:var(--ink)}
.pills button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.fp .bt{display:flex;gap:8px;justify-content:flex-end}.fp .bt .btn:last-child{flex:1}
#rh{scroll-margin-top:72px}
#af{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 6px}#af:empty{display:none}
.tag{display:inline-flex;gap:6px;align-items:center;padding:7px 12px;border-radius:99px;border:1px solid #c9d6f2;background:#eaf0ff;color:var(--blue);font-size:14px;font-weight:600}
.tag.clr{background:#fff;color:var(--mut);border-color:var(--line)}
.empty b{font-size:17px;color:var(--ink)}
/* acceso administrador */
.panel.lg{max-width:440px;margin:0 auto}
.lf label{display:block;font-size:14px;color:var(--mut);margin-top:12px}
.lf input{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;margin:4px 0 4px;font-size:16px;background:#fff;color:var(--ink)}
.err{color:#b3261e;font-size:14px;min-height:22px;margin:8px 0}
footer .adm{color:var(--mut);opacity:.75;font-size:12px}

/* ===== Panel interno: tarjetas por sección ===== */
.ap{max-width:860px;margin:0 auto}
.aph{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:14px}.aph h1{font-size:26px}.aph .sub{margin:2px 0 0}.aph-b{display:flex;gap:8px}
.ah2{font-size:22px;margin:4px 0 12px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 4px;text-align:center;color:var(--ink)}.stat b{display:block;font-size:22px;color:var(--navy)}.stat span{font-size:12px;color:var(--mut)}
.stat.on{border-color:var(--blue);box-shadow:0 0 0 2px #2f57c633}
.ac{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;margin-bottom:14px;box-shadow:0 4px 16px #10213f0d}
.ac h3{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:17px;margin:0 0 4px}.ac>.sub{margin:0 0 12px}
.alh{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 4px}.alh .cnt{margin:0}
.ar{display:grid;grid-template-columns:52px 1fr;gap:6px 12px;padding:14px 0;border-top:1px solid #eef0f5}.ar:first-child{border-top:0}
.av .ph{width:52px;height:52px;border-radius:50%;font-size:18px}
.ai b{display:block;font-size:16px}.ai small{display:block;color:var(--mut);font-size:13px;margin:2px 0 2px;word-break:break-word}
.st2{display:inline-block;font-size:12px;padding:2px 9px;border-radius:99px;background:#eef0f5;color:var(--mut);margin:4px 6px 0 0}.st2.ok{background:#dff4ea;color:#1e7a50}.st2.no{background:#fbe3e3;color:#a33}
.aa{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.sbar{position:sticky;bottom:0;z-index:4;display:flex;gap:10px;background:#fff;border-top:1px solid var(--line);padding:12px 16px;margin:0 -16px -24px}.sbar .btn{flex:1}
.ac .f{margin-top:6px}

/* ===== Subir foto desde la galería ===== */
.fup{display:flex;gap:14px;align-items:center}
.fbox{flex:none;width:96px;height:96px;border-radius:16px;overflow:hidden}
.fbox .ph,.fbox canvas{width:96px;height:96px;border-radius:16px;display:block;object-fit:cover;font-size:28px}
.fbt{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.fpick{position:relative;overflow:hidden;cursor:pointer}
.vh{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:0}
.fadj{margin-top:12px}.fadj input[type=range]{width:100%}
details summary{cursor:pointer;color:var(--blue);font-size:14px;margin-top:12px}
.ac label.fpick{display:inline-block;color:#fff;font-size:14px;margin:0;padding:8px 14px}

/* ===== Menú con enlaces, páginas de materia y contenido para buscadores ===== */
nav a{background:none;border:0;padding:8px 12px;border-radius:8px;color:var(--mut);text-decoration:none}
nav a:hover,nav a.on{background:var(--bg);color:var(--ink)}nav a.on{font-weight:600}
header.open nav a{text-align:left;font-size:16px}
a.mat{display:block;text-decoration:none;color:inherit}
.crumb{font-size:14px;color:var(--mut);margin-bottom:10px}.crumb a{color:var(--blue)}
.seo{max-width:760px;margin:0 auto;padding:24px 16px;line-height:1.6}.seo h1{font-size:28px;margin-bottom:8px}.seo h2{font-size:20px;margin:22px 0 6px}.seo ul{padding-left:20px}.seo a{color:var(--blue)}

/* ===== Cuentas, planes y estadísticas ===== */
.st2.w{background:#fff1d6;color:#9a6200}
hr.sep{border:0;border-top:1px solid #eef0f5;margin:16px 0 12px}
.tw{overflow-x:auto}.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th,.tbl td{padding:8px 6px;text-align:right;border-bottom:1px solid #eef0f5;white-space:nowrap}.tbl th:first-child,.tbl td:first-child{text-align:left}.tbl th{color:var(--mut);font-weight:600;font-size:13px}
.lst{margin:8px 0 0;padding-left:20px;line-height:1.6}
.tbl th,.tbl td{padding:8px 5px}.tbl th{font-size:12px}

/* ===== Menú interno del profesional (pestañas), turnos y horarios ===== */
.tabs{display:flex;overflow-x:auto;background:var(--navy);border-radius:14px;margin:0 0 14px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}
.tabs button{flex:1 0 auto;background:none;border:0;border-bottom:3px solid transparent;color:#cfd8ea;font:600 13px system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:14px 16px;white-space:nowrap;cursor:pointer}
.tabs button.on{color:#fff;border-bottom-color:var(--gold)}
.tn{border:1px solid var(--line);border-radius:14px;padding:12px;margin:0 0 10px;background:#fff}.tn textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:10px;font:inherit}
.tn-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}
.hz{display:grid;grid-template-columns:52px 1fr;gap:8px 12px;align-items:center;margin:10px 0}.hz label{font-weight:600}
.hz input,.modal .f input:not([type=checkbox]),#cuuntil{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}
.cal-h{display:flex;justify-content:space-between;align-items:center;margin:12px 0 6px}.cal-h button{background:none;border:0;font-size:26px;color:var(--navy);padding:0 12px;cursor:pointer}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.cal i{font-style:normal;font-size:12px;color:var(--mut)}
.cal button{min-height:42px;border:1px solid var(--line);background:#fff;border-radius:10px;color:var(--ink);font:inherit;cursor:pointer}
.cal button.on{background:var(--navy);color:#fff;border-color:var(--navy)}.cal button:disabled{opacity:.25;cursor:not-allowed}
.pills button:disabled{opacity:.35;text-decoration:line-through}

.more{text-align:center;margin:16px 0}
.imp-t{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0}.imp-t td,.imp-t th{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left}

/* Foco visible con teclado, páginas legales */
a:focus-visible,button:focus-visible,.card:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.legal{max-width:760px;margin:0 auto;line-height:1.65}.legal h1{margin:0 0 4px}.legal h2{margin:24px 0 6px;font-size:18px}.legal li{margin:4px 0}
.legal .draft{background:#fff7e0;border:1px solid #e7c96a;border-radius:10px;padding:10px 12px;margin:0 0 16px}

/* Panel del abogado: barra con menú de tres rayitas */
.cubar{display:flex;align-items:center;gap:12px;background:var(--navy);color:#fff;border-radius:14px;padding:8px 14px 8px 8px;margin:0 0 14px;position:relative}
.cubar .ham{background:none;border:0;color:#fff;padding:8px;display:flex;cursor:pointer;border-radius:10px}
.cubar .ham:hover,.cubar .ham:focus-visible{background:rgba(255,255,255,.14)}
.cubar b{font-size:17px;flex:1;min-width:0}
.cubar .cuwho{font-size:12px;color:#cfd8ea;max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cumenu{display:none;position:absolute;left:0;right:0;top:100%;margin-top:8px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 34px rgba(10,20,50,.2);padding:8px;z-index:6;color:var(--navy)}
.cumenu.open{display:block}
.cumenu .cumail{font-size:12px;color:#6b7690;padding:6px 12px 8px;overflow:hidden;text-overflow:ellipsis}
.cumenu button,.cumenu a{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;padding:14px 12px;border:0;background:none;font:600 15px system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--navy);border-radius:10px;text-align:left;text-decoration:none;cursor:pointer}
.cumenu button:hover,.cumenu a:hover{background:#f1f4fb}
.cumenu button.on{background:#e8eefc;color:#1d3fa8}
.cumenu small{font-size:11px;font-weight:700;background:var(--gold);color:var(--navy);border-radius:999px;padding:2px 8px}
.cumenu hr{border:0;border-top:1px solid var(--line);margin:6px 0}

.tbadge{color:var(--green);font-weight:600}.tbadge svg{stroke:var(--green)}
.sw{display:flex;align-items:center;gap:10px;font-weight:600;cursor:pointer}.sw input{width:20px;height:20px;accent-color:var(--blue)}
.ic2.on svg{fill:currentColor}

button.so{font:inherit;font-size:13px;font-weight:600;cursor:pointer}

.tit{margin:0;padding-left:20px}.tit li{margin:6px 0}

/* ===== Perfil compacto (menos desplazamiento): foto al costado, contacto arriba, acciones en una fila ===== */
.pfh{padding:8px 16px 48px;gap:4px;align-items:stretch;text-align:left}
.pfh .back{padding:4px 6px 4px 0;font-size:14px}
.pfm{display:flex;align-items:center;gap:16px}
.pfm .pfp{width:auto;margin:0;flex:none}.pfm .pfp::before,.pfm .pfp::after{display:none}
.pfm .ph.big{width:96px;height:96px;margin:0;font-size:30px;border-width:3px;box-shadow:0 0 0 5px #ffffff1a,0 10px 24px #0006}
.pft{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.pfh h1{font-size:clamp(22px,5.4vw,30px);line-height:1.12;overflow-wrap:anywhere}
.pft .gold{font-size:15px;line-height:1.25}
.pft .pfr{justify-content:flex-start;font-size:14px;gap:5px}.pfh .st{font-size:16px}
.pft .vbdg{margin-top:4px;padding:3px 11px;font-size:12px}
.pfh .sp{font-size:13.5px;line-height:1.35;margin-top:6px;color:#cfdcf2}
.pfb{margin-top:-30px}
.acts{gap:8px;margin:0 0 12px}
.acts .btn.gold{padding:13px;font-size:16px;border-radius:14px;box-shadow:0 8px 18px #c9a24a44}
.acts #agbtn:empty{display:none}.acts #agbtn .btn{width:100%;padding:12px;border-radius:14px}
.nota{margin:0;text-align:center;font-size:12.5px;color:var(--mut)}
.pf .panel{padding:14px 16px;margin:12px 0}.pf .panel h2{font-size:17px;margin:0 0 6px}
.pf .panel p{margin:0;font-size:15px;line-height:1.5}
.info2{padding:2px 6px}
.info2 .ir{gap:12px;padding:9px 6px}
.info2 .ico{width:34px;height:34px}.info2 .ico svg{width:18px;height:18px}
.info2 .tx b{font-size:15px;line-height:1.25}.info2 .tx small{font-size:12.5px;margin-top:1px}
.ig2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.ig2 .ir{border-bottom:1px solid #eef0f5}.ig2 .ir:last-child{border-bottom:0}
.soc{grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:8px;margin:12px 0}
.so{flex-direction:row;justify-content:center;gap:8px;padding:9px 8px;font-size:13px;border-radius:14px;box-shadow:0 2px 8px #10213f0d}
.so span{width:30px;height:30px;flex:none}.so svg{width:16px;height:16px}
.tools{display:flex;gap:8px;margin:0 0 4px}
.tools .btn,.tools .ib{flex:1 1 0;min-width:0;padding:11px 4px;font-size:14px;font-weight:600;text-align:center;display:flex;align-items:center;justify-content:center;line-height:1.2}
.tools .ib.sq{flex:0 0 44px;padding:0;height:auto}.tools .ib.sq svg{width:18px;height:18px}
@media(max-width:380px){.pfm .ph.big{width:80px;height:80px}.so{flex-direction:column;gap:4px;padding:8px 4px}}
@media(min-width:820px){.pfm .ph.big{width:124px;height:124px}.pfh{padding:16px 24px 56px}.pfh h1{font-size:34px}}

/* ===== Orientación documental (asistente) ===== */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lnk{background:none;border:0;color:var(--blue);text-decoration:underline;font-size:13.5px;padding:4px 0;cursor:pointer}
.orient{display:flex;align-items:center;gap:14px;margin:2px 0 14px;padding:14px 16px;border-radius:16px;text-decoration:none;color:#fff;background:linear-gradient(135deg,#0d2149,#1d457f);border:1px solid #c9a24a66;box-shadow:0 8px 20px #10213f26}
.orient .oi{flex:none;width:42px;height:42px;border-radius:50%;background:#ffffff1c;color:#f0cf7a;display:grid;place-items:center}.orient .oi svg{width:21px;height:21px}
.orient .ot{flex:1;min-width:0}.orient b{display:block;font-size:16px;color:#f0cf7a;font-family:Fraunces,serif}.orient small{display:block;font-size:13px;color:#dbe5f5;margin-top:2px;line-height:1.35}
.orient .ch{color:#f0cf7a}
.ai{max-width:720px;margin:0 auto}
.aidisc{margin:12px 0;padding:11px 14px;border-radius:12px;background:#fbf6e8;border:1px solid #ecdcae;border-left:4px solid #c9a24a;font-size:13.5px;line-height:1.45;color:#4a3d14}
.aichips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.ailog{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.aim{max-width:88%;padding:11px 14px;border-radius:16px;font-size:15px;line-height:1.5;overflow-wrap:anywhere}
.aim p{margin:0 0 6px}.aim p:last-child{margin:0}.aim ul{margin:4px 0 6px;padding-left:20px}.aim li{margin:2px 0}
.aim.u{align-self:flex-end;background:var(--navy,#10213f);color:#fff;border-bottom-right-radius:4px}
.aim.b{align-self:flex-start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px;box-shadow:0 2px 8px #10213f0d}
.aip{display:flex;gap:5px;padding:14px 16px}.aip span{width:7px;height:7px;border-radius:50%;background:#9aa6bb;animation:aip 1s infinite ease-in-out}.aip span:nth-child(2){animation-delay:.15s}.aip span:nth-child(3){animation-delay:.3s}
@keyframes aip{0%,80%,100%{opacity:.25}40%{opacity:1}}
.aicta{display:grid;gap:8px;padding:14px;border-radius:16px;background:#f3f6fb;border:1px solid var(--line)}
.aicta b{font-family:Fraunces,serif;font-size:16px}.aicta small{color:var(--mut);font-size:12.5px;margin-top:-4px}
.aicta .btn{display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none}
.aiform{display:flex;gap:8px;align-items:flex-end;position:sticky;bottom:0;padding:10px 0;background:linear-gradient(0deg,var(--bg,#f5f6fa) 78%,transparent)}
.aiform textarea{flex:1;min-width:0;resize:none;padding:11px 12px;border:1px solid var(--line);border-radius:14px;font:inherit;font-size:15px;background:#fff}
.aiform .btn{flex:none;padding:12px 18px}
.aif{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:12.5px;color:var(--mut)}

/* ===== PERFIL (diseño nuevo): azul marino y dorado, tarjetas con aire ===== */
.pf2{background:#f6f7fb;padding-bottom:40px}
.pf2 h1,.pf2 h2{font-family:Fraunces,Georgia,serif}
.p2h{background:linear-gradient(180deg,var(--navy) 0%,#0f2447 100%);color:#fff;padding:10px 16px 62px}
.p2m{display:flex;align-items:center;gap:16px;margin-top:4px}
.p2p{position:relative;flex:none}
.p2p .ph.big{width:88px;height:88px;margin:0;font-size:28px;border:3px solid var(--gold);box-shadow:0 0 0 6px #ffffff14,0 10px 24px #00000040}
.p2p div.ph.big{background:#2a4a8f;color:#f3dfa0}
.p2v{position:absolute;right:-2px;bottom:0;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--gold),#ecd48c);border:3px solid var(--navy);display:grid;place-items:center;box-shadow:0 4px 10px #0004}
.p2v svg{width:14px;height:14px}
.p2t{min-width:0}
.p2t h1{font-size:26px;line-height:1.15;margin:0;color:#fff;overflow-wrap:anywhere}
.p2t .gold{font-size:14px;margin:6px 0 4px}
.p2h .pfr{justify-content:flex-start;font-size:13px;color:#cfd9ee}.p2h .st{font-size:15px;color:#f0cf7a}.p2h .st i{color:#ffffff44}
.p2e{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.p2e span{background:#ffffff1a;color:#f0d98a;font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:99px}
.p2b{padding:0 16px}
.p2wa{margin-top:-30px;position:relative;display:flex;align-items:center;justify-content:center;gap:10px;padding:15px;border-radius:18px;background:linear-gradient(135deg,#d2ab50,#f0dc96 50%,#cda646);color:var(--navy);font-weight:700;font-size:16px;text-decoration:none;box-shadow:0 12px 24px #c9a24b55}
.p2wa svg{width:22px;height:22px}
.pcard{display:block;background:#fff;border-radius:22px;margin:16px 0;padding:18px 20px;box-shadow:0 8px 26px #10213f14,0 0 0 1px #edf0f6;color:var(--ink);text-decoration:none}
.pcard h2{font-size:18px;margin:0 0 12px;color:var(--navy)}
.pcard>.nota{margin:0}
.nxg{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.nb{border:0;background:#f3f5fa;border-radius:12px;padding:10px 6px;font:inherit;color:var(--navy);cursor:pointer;min-height:48px;display:flex;flex-direction:column;align-items:center;gap:1px;box-shadow:0 0 0 1px #e3e8f1}
.nb span{font-size:12px;color:var(--mut)}.nb b{font-size:15px}
.nb:hover{background:var(--navy);color:#fff}.nb:hover span{color:#cfd9ee}
.calb{width:100%;border:0;background:#fff;border-radius:14px;padding:12px;font:inherit;font-weight:700;font-size:15px;color:var(--navy);cursor:pointer;min-height:46px;box-shadow:0 0 0 1.5px var(--gold)}
.p2d{display:grid;grid-template-columns:1fr 1.25fr;gap:12px;margin:16px 0}
.p2d.one{grid-template-columns:1fr}
.p2d .pcard{margin:0}
.p2l{display:flex;flex-direction:column;justify-content:space-between;gap:10px;padding:16px;min-height:120px}
.p2l h2{margin:0;font-size:17px}
.p2a{display:flex;align-items:center;gap:10px}
.p2a .ico{width:38px;height:38px}.p2a .ico svg{width:19px;height:19px}
.p2a .tx{min-width:0}.p2a small{display:block;color:var(--mut);font-size:11.5px}.p2a b{display:block;font-size:14px;line-height:1.25;overflow-wrap:anywhere}
.p2g{display:inline-flex;align-items:center;gap:4px;color:var(--navy);font-weight:700;font-size:12.5px}.p2g svg{width:15px;height:15px}
.p2r{position:relative;padding:6px;min-height:120px;overflow:hidden}
.mini{position:absolute;inset:6px;border-radius:17px;overflow:hidden;background:#e8eef0}
.mini-a{position:absolute;inset:6px;border-radius:17px;z-index:500}
.mini .leaflet-control-attribution{font-size:9px}
.p2i{padding:6px 16px}.p2i .ir{padding:10px 0}.p2i .ico{width:36px;height:36px}.p2i .tx b{font-size:14px}
.p2s{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.so2{background:#fff;border-radius:18px;padding:12px;display:flex;align-items:center;gap:11px;font-weight:600;font-size:14px;color:var(--navy);text-decoration:none;box-shadow:0 6px 18px #10213f12,0 0 0 1px #edf0f6;min-height:56px}
.so2 svg{width:34px;height:34px;flex:none}
.pf2 .tools{margin:16px 0}
.pd{margin:0;line-height:1.65;color:#33415c;font-size:14px;white-space:pre-line;overflow-wrap:anywhere}
.pd.cl{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.vm{background:none;border:0;padding:10px 0 0;margin:0;font:inherit;font-weight:700;font-size:14px;color:var(--navy);cursor:pointer;min-height:40px}
.pl{list-style:none;margin:0;padding:0}
.pl li{position:relative;padding:9px 0 9px 22px;font-size:14px;color:#33415c;line-height:1.4;overflow-wrap:anywhere}
.pl li+li{border-top:1px solid #f0f2f7}
.pl li::before{content:"";position:absolute;left:3px;top:15px;width:8px;height:8px;border-radius:50%;background:var(--gold)}
.pl.cl li:nth-child(n+5){display:none}
.p2r2{text-align:center;margin:8px 0 0}
@media(min-width:760px){.p2b{max-width:720px;margin:0 auto}.p2h .wrap{max-width:720px}.p2t h1{font-size:32px}.p2p .ph.big{width:110px;height:110px}.p2s{grid-template-columns:repeat(4,1fr)}}
@media(max-width:360px){.p2d{grid-template-columns:1fr}.p2r{min-height:150px}}

/* Mapa principal: cada profesional con su foto (o iniciales) y ficha al tocar */
.lxpf{background:none;border:0}
.lxpf span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:3px solid var(--gold);background:var(--navy);color:#f3dfa0;font:700 13px Fraunces,Georgia,serif;overflow:hidden;box-shadow:0 4px 10px #0005}
.lxpf span img{width:100%;height:100%;object-fit:cover;display:block}
.lxpf::after{content:"";position:absolute;left:50%;top:38px;margin-left:-6px;border:6px solid transparent;border-top:9px solid var(--gold)}
.pp .ppt{display:flex;gap:10px;align-items:center}
.pp .ph{width:52px;height:52px;min-height:0;border-radius:50%;font-size:17px;flex:none;border:2px solid var(--gold)}
.pp .ppi{min-width:0}.pp .ppi b{display:block;font-size:14px;line-height:1.25}.pp .ppi span{display:block;font-size:12px;color:var(--mut);line-height:1.3}
.pp .ppr .st{display:inline;color:#c9a24b}
.pp .ppe{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0 0}.pp .ppe i{font-style:normal;font-size:11px;font-weight:600;background:#eef2fb;color:var(--navy);padding:3px 9px;border-radius:99px}

/* Grupos de marcadores del mapa: con los colores de la plataforma */
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:#17315f44}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background:var(--navy);color:#f3dfa0;font-weight:700;border:2px solid var(--gold)}

.pbar{height:10px;background:#e8ecf4;border-radius:99px;overflow:hidden;margin-top:8px}.pbar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),#ecd48c);border-radius:99px;transition:width .4s}
