/* Dra. María Montero y López Lena — hoja de estilos principal
   Paleta heredada del sitio original: azul #4353D1, tinta #1e1e1e, fondo #fef6ff, lavanda #9CA3DA */
@font-face{font-family:"Newsreader";src:url("../fonts/newsreader-latin-wght-normal.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url("../fonts/newsreader-latin-wght-italic.woff2") format("woff2");font-weight:200 800;font-style:italic;font-display:swap}
@font-face{font-family:"Figtree";src:url("../fonts/figtree-latin-wght-normal.woff2") format("woff2");font-weight:300 900;font-style:normal;font-display:swap}

:root{
  --azul:#4353D1; --azul-prof:#333C87; --tinta:#1e1e1e; --pizarra:#3E4156;
  --lavanda:#9CA3DA; --niebla:#E8E8FF; --fondo:#fef6ff; --papel:#f3faff; --gris:#797979;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --medida:72ch; --ancho:72rem; --radio:.5rem;
  --paso--1:clamp(.84rem,.82rem + .1vw,.92rem);
  --paso-0:clamp(1.06rem,1rem + .3vw,1.2rem);
  --paso-1:clamp(1.25rem,1.15rem + .5vw,1.5rem);
  --paso-3:clamp(2rem,1.5rem + 2.4vw,3.4rem);
  --alto-nav:4rem;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{font-size:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--alto-nav) + 1rem);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--fondo);color:var(--tinta);font-family:var(--serif);font-size:var(--paso-0);line-height:1.65;min-height:100vh;display:flex;flex-direction:column;text-rendering:optimizeLegibility}
main{flex:1}
img,svg,iframe{max-width:100%}
img{height:auto;display:block}
a{color:var(--azul-prof);text-decoration-thickness:.08em;text-underline-offset:.18em}
a:hover{color:var(--azul)}
:focus-visible{outline:3px solid var(--azul);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:1rem;top:-5rem;background:#fff;color:var(--tinta);padding:.7rem 1rem;z-index:100;border-radius:var(--radio);font-family:var(--sans);font-weight:600}
.skip:focus{top:.75rem}
.wrap{width:min(100% - 2.5rem,var(--ancho));margin-inline:auto}
h1,h2,h3{font-family:var(--serif);line-height:1.15;color:var(--pizarra);margin:0;text-wrap:balance}

/* ---------- Navegación ---------- */
.site-header{position:sticky;top:0;z-index:50;background:var(--tinta);border-top:4px solid var(--azul);color:#fff;font-family:var(--sans)}
.nav-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:calc(var(--alto-nav) - 4px)}
.brand{display:flex;align-items:center;gap:.7rem;color:#fff;text-decoration:none;font-weight:600;line-height:1.15;font-size:1rem}
.brand:hover{color:#fff}
.brand svg{flex:none;width:2.2rem;height:2.2rem;background:var(--azul);border-radius:50%;padding:.42rem;color:#fff}
.brand small{display:block;font-weight:400;color:var(--lavanda);font-size:.8rem}
.nav-toggle{display:none;background:none;border:1px solid var(--lavanda);color:#fff;font:inherit;font-weight:600;padding:.55rem .9rem;border-radius:var(--radio);cursor:pointer;align-items:center;gap:.5rem}
.nav-toggle .bars{width:1.1rem;height:.8rem;border-block:2px solid currentColor;position:relative}
.nav-toggle .bars::after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:currentColor;transform:translateY(-50%)}
.nav-panel{display:flex;align-items:center}
.menu{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:.15rem}
.menu>li{position:relative}
.menu a,.menu button.sub-btn{display:flex;align-items:center;gap:.4rem;padding:.8rem .85rem;color:#fff;text-decoration:none;font:inherit;font-size:.98rem;font-weight:600;background:none;border:0;cursor:pointer;border-radius:var(--radio);transition:background .2s}
.menu a:hover,.menu button.sub-btn:hover,.menu .open>button.sub-btn{background:#424242;color:#fff}
.menu a[aria-current="page"],.menu .has-sub.current>button.sub-btn{box-shadow:inset 0 -3px 0 var(--lavanda)}
.sub-btn::after{content:"";width:.45rem;height:.45rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.open>.sub-btn::after{transform:rotate(-135deg) translateY(-2px)}
.sub{list-style:none;margin:0;padding:.4rem;position:absolute;left:0;top:100%;min-width:15.5rem;background:#fff;border-radius:0 0 var(--radio) var(--radio);box-shadow:0 14px 30px rgb(0 0 0 / .25);display:none}
.open>.sub{display:block}
.sub a{color:#4f4f4f;font-weight:500;border-left:3px solid transparent;border-radius:2px;padding:.65rem .8rem}
.sub a:hover,.sub a[aria-current="page"]{background:#f0f0f0;color:var(--tinta);border-left-color:var(--lavanda)}
.sub a[aria-current="page"]{box-shadow:none;font-weight:700}
@media (hover:hover) and (min-width:61rem){.has-sub:hover>.sub{display:block}.has-sub:hover>.sub-btn{background:#424242}}
.tools{display:flex;gap:.3rem;margin-left:.4rem}
.tools button{width:2.3rem;height:2.3rem;border-radius:50%;border:1px solid #555;background:transparent;color:#fff;font:600 .85rem var(--sans);cursor:pointer}
.tools button:hover{background:#424242}

@media (max-width:60.99rem){
  .nav-toggle{display:inline-flex}
  .brand{font-size:.92rem}.brand small{display:none}
  .nav-panel{display:none;position:absolute;left:0;right:0;top:100%;background:var(--tinta);padding:.5rem 1.25rem 1.25rem;max-height:calc(100vh - var(--alto-nav));overflow:auto;border-top:1px solid #3a3a3a}
  .nav-panel.open{display:block}
  .menu{flex-direction:column;align-items:stretch;gap:0}
  .menu a,.menu button.sub-btn{width:100%;justify-content:space-between;padding:.95rem .6rem;border-radius:0;border-bottom:1px solid #333}
  .sub{position:static;display:none;box-shadow:none;background:#2a2a2a;padding:0;border-radius:0}
  .sub a{color:#e8e8ff;border-bottom:1px solid #333;padding-left:1.4rem}
  .sub a:hover,.sub a[aria-current="page"]{background:#333;color:#fff}
  .tools{margin:.9rem 0 0}
}

/* ---------- Portada ---------- */
.hero{position:relative;overflow:hidden;color:#fff;background:linear-gradient(160deg,var(--azul) 0%,var(--azul) 55%,var(--azul-prof) 100%)}
.hero .psi{position:absolute;right:max(2vw,-2rem);top:50%;height:135%;aspect-ratio:5/6;color:var(--lavanda);opacity:.22;transform:translateY(-50%);pointer-events:none}
.hero-in{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:clamp(1.5rem,4vw,3.5rem);padding-block:clamp(2.5rem,6vw,4.75rem)}
.hero-photo{width:clamp(8.5rem,20vw,15rem);aspect-ratio:1;border-radius:50%;object-fit:cover;border:5px solid rgb(255 255 255 / .9);box-shadow:0 18px 40px rgb(20 25 80 / .45)}
.hero h1{color:#fff;font-size:var(--paso-3);font-weight:500;letter-spacing:-.01em}
.hero .rol{font-size:var(--paso-1);font-style:italic;margin:.6rem 0 0;color:var(--niebla)}
.hero .lab{font-family:var(--sans);font-size:var(--paso--1);margin:1.1rem 0 0;color:var(--niebla);max-width:40ch}
.hero-in>*{animation:entra .8s cubic-bezier(.2,.7,.2,1) both}
.hero-in>div{animation-delay:.12s}
@keyframes entra{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (max-width:40rem){.hero-in{grid-template-columns:1fr;justify-items:center;text-align:center}.hero .lab{margin-inline:auto}.hero .psi{height:80%;right:-4rem}}

/* ---------- Carrusel ---------- */
.carousel{position:relative;margin-block:2.5rem 0}
.track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:var(--radio)}
.track::-webkit-scrollbar{display:none}
.track figure{flex:0 0 100%;margin:0;scroll-snap-align:center}
.track img{width:100%;aspect-ratio:900/380;object-fit:cover;border-radius:var(--radio);background:var(--niebla)}
.car-btn{position:absolute;top:50%;transform:translateY(-50%);width:2.9rem;height:2.9rem;border-radius:50%;border:0;background:rgb(30 30 30 / .75);color:#fff;font-size:1.4rem;cursor:pointer;display:grid;place-items:center;font-family:var(--sans)}
.car-btn:hover{background:var(--azul)}
.car-prev{left:.7rem}.car-next{right:.7rem}
@media (max-width:40rem){.car-btn{width:2.4rem;height:2.4rem}.track img{aspect-ratio:4/3}}

/* ---------- Biografía ---------- */
.bio{display:grid;grid-template-columns:minmax(0,16rem) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);padding-block:3rem 4rem;align-items:start}
.bio aside{position:sticky;top:calc(var(--alto-nav) + 1.5rem);font-family:var(--sans);font-size:.95rem}
.bio aside img{width:100%;max-width:14rem;border-radius:var(--radio);box-shadow:0 8px 24px rgb(62 65 86 / .2)}
.bio aside h2{font-family:var(--sans);font-size:1rem;margin:1.4rem 0 .5rem;color:var(--pizarra)}
.bio aside p{margin:.2rem 0;overflow-wrap:anywhere}
.lineas{margin:1.4rem 0 0;padding:0;list-style:none;border-left:3px solid var(--lavanda)}
.lineas li{padding:.3rem 0 .3rem .8rem;line-height:1.4}
.prose{max-width:var(--medida)}
.prose p{margin:0 0 1.2em;hyphens:auto}
.prose h2{font-size:var(--paso-1);margin:2rem 0 .8rem}
.proyectos-lista{margin:0 0 1.4em;padding:0;list-style:none;border-left:3px solid var(--azul)}
.proyectos-lista li{padding:.55rem 0 .55rem 1rem}
@media (max-width:52rem){.bio{grid-template-columns:1fr}.bio aside{position:static;display:grid;grid-template-columns:auto 1fr;gap:1rem 1.5rem;align-items:start}.bio aside img{grid-row:span 3;width:8.5rem}.lineas{grid-column:1/-1}}

/* ---------- Páginas interiores ---------- */
.page-head{position:relative;overflow:hidden;background:var(--azul);color:#fff;background:linear-gradient(160deg,var(--azul),var(--azul-prof))}
.page-head .psi{position:absolute;right:2%;top:50%;transform:translateY(-50%);height:190%;aspect-ratio:5/6;color:var(--lavanda);opacity:.2;pointer-events:none}
.page-head .wrap{position:relative;padding-block:clamp(1.8rem,4vw,3rem)}
.crumbs{font-family:var(--sans);font-size:var(--paso--1);color:var(--niebla);margin:0 0 .5rem}
.crumbs a{color:#fff}
.page-head h1{color:#fff;font-size:clamp(2rem,1.5rem + 2vw,3rem);font-weight:500}
.page-head p.lead{margin:.7rem 0 0;color:var(--niebla);max-width:60ch;font-family:var(--sans);font-size:1rem}
.content{padding-block:2.5rem 4.5rem}
.content .wrap{max-width:60rem}

.filtros{display:flex;flex-wrap:wrap;gap:.8rem 1rem;align-items:end;margin-bottom:1.6rem;padding:1rem 1.1rem;background:var(--papel);border:1px solid var(--lavanda);border-radius:var(--radio);font-family:var(--sans)}
.filtros label{display:grid;gap:.25rem;font-size:.85rem;font-weight:600;color:var(--pizarra)}
.filtros input,.filtros select{font:inherit;font-size:1rem;padding:.6rem .75rem;border:1px solid #8b92c9;border-radius:.35rem;background:#fff;color:var(--tinta);min-height:2.75rem}
.filtros .grow{flex:1 1 16rem}
.filtros .grow input{width:100%}
.contador{margin:0;font-size:.9rem;color:var(--pizarra);align-self:center;margin-left:auto}

.year-group{display:grid;grid-template-columns:5.2rem minmax(0,1fr);gap:0 1.5rem;margin-bottom:.4rem}
.year-group>h2{position:sticky;top:calc(var(--alto-nav) + 1rem);align-self:start;font-size:1.7rem;color:var(--azul);font-weight:600;font-variant-numeric:lining-nums;padding-top:1rem}
.entry{padding:1rem 0 1.15rem 1.1rem;border-left:3px solid var(--lavanda);margin-bottom:.55rem;font-family:var(--sans);font-size:1rem;line-height:1.55}
.entry:hover{border-left-color:var(--azul)}
.entry-title{font-family:var(--serif);font-size:1.2rem;line-height:1.3;margin:0 0 .35rem;font-weight:600;color:var(--pizarra)}
.entry p{margin:.15rem 0;overflow-wrap:anywhere;color:#2f3140}
.entry dl{margin:.2rem 0;display:grid;grid-template-columns:max-content 1fr;gap:.1rem .8rem}
.entry dt{font-weight:700;color:var(--pizarra)}.entry dd{margin:0;overflow-wrap:anywhere}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}
.chip{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;text-decoration:none;color:var(--azul-prof);background:var(--niebla);border:1px solid var(--lavanda);padding:.32rem .7rem;border-radius:2rem}
.chip:hover{background:var(--azul);border-color:var(--azul);color:#fff}
.chip.pdf::before{content:"";width:.8rem;height:1rem;border:2px solid currentColor;border-radius:2px;border-top-right-radius:6px}
.sin-resultados{display:none;padding:2rem 0;font-family:var(--sans);color:var(--pizarra)}
.sin-resultados.on{display:block}
.plain-list{list-style:none;margin:0;padding:0}
.bloque{margin-bottom:2rem}
.bloque>h2{font-size:var(--paso-1);margin-bottom:.8rem;padding-bottom:.5rem;border-bottom:2px solid var(--lavanda)}
.bloque ul{margin:0;padding:0;list-style:none;font-family:var(--sans)}
.bloque li{padding:.7rem 0 .7rem 1.1rem;border-left:3px solid var(--lavanda);margin-bottom:.4rem}
.vacio{max-width:var(--medida);padding:2rem;background:var(--papel);border:1px dashed var(--lavanda);border-radius:var(--radio);font-family:var(--sans)}
.vacio p{margin:.3rem 0}
@media (max-width:42rem){.year-group{grid-template-columns:1fr}.year-group>h2{position:static;padding:1rem 0 0;font-size:1.5rem}.contador{margin-left:0;width:100%}}

/* ---------- Galería ---------- */
.galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:1rem;list-style:none;margin:0;padding:0}
.galeria button{all:unset;display:block;width:100%;cursor:zoom-in;border-radius:var(--radio);overflow:hidden;background:var(--niebla);aspect-ratio:4/3}
.galeria button:focus-visible{outline:3px solid var(--azul);outline-offset:3px}
.galeria img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.galeria button:hover img{transform:scale(1.04)}
dialog.lightbox{border:0;padding:0;background:transparent;max-width:min(94vw,64rem);width:100%;overflow:visible}
dialog.lightbox::backdrop{background:rgb(15 17 40 / .88)}
dialog.lightbox img{width:100%;max-height:82vh;object-fit:contain;border-radius:var(--radio)}
.lb-bar{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem 0;font-family:var(--sans);color:#fff}
.lb-bar button{font:600 .95rem var(--sans);background:#fff;color:var(--tinta);border:0;border-radius:2rem;padding:.55rem 1.1rem;cursor:pointer}
.lb-bar button:hover{background:var(--lavanda)}

/* ---------- Contacto ---------- */
.contacto{display:grid;grid-template-columns:minmax(0,22rem) minmax(0,1fr);gap:2.5rem;align-items:start}
.ficha{font-family:var(--sans);border-left:3px solid var(--azul);padding-left:1.3rem}
.ficha h2{font-size:1.35rem;margin-bottom:.2rem}
.ficha .sub-t{margin:0 0 1.2rem;color:var(--pizarra);line-height:1.45}
.ficha address{font-style:normal;margin-bottom:1.2rem}
.ficha dl{margin:0 0 1.4rem}
.ficha dt{font-weight:700;color:var(--pizarra);font-size:.85rem;margin-top:.8rem}
.ficha dd{margin:0;overflow-wrap:anywhere}
.btn{display:inline-flex;align-items:center;font:600 1rem var(--sans);text-decoration:none;background:var(--azul);color:#fff;padding:.8rem 1.3rem;border-radius:2rem;border:2px solid var(--azul)}
.btn:hover{background:var(--azul-prof);border-color:var(--azul-prof);color:#fff}
.btn.sec{background:transparent;color:var(--azul-prof)}
.btn.sec:hover{background:var(--niebla);color:var(--azul-prof)}
.acciones{display:flex;flex-wrap:wrap;gap:.7rem}
.mapa{border-radius:var(--radio);overflow:hidden;border:1px solid var(--lavanda);background:var(--niebla)}
.mapa iframe{display:block;width:100%;height:min(30rem,70vw);min-height:20rem;border:0}
@media (max-width:52rem){.contacto{grid-template-columns:1fr}}

/* ---------- Pie ---------- */
.site-footer{background:var(--tinta);color:#fff;font-family:var(--sans);padding-block:2rem;border-bottom:4px solid var(--azul)}
.foot{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:center}
.foot ul{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;list-style:none;margin:0;padding:0}
.foot a{color:#fff;text-underline-offset:.2em}
.foot a:hover{color:var(--lavanda)}
.foot small{color:#c9c9c9;font-size:.85rem}
.to-top{position:fixed;right:1rem;bottom:1rem;width:3rem;height:3rem;border-radius:50%;border:0;background:var(--azul);color:#fff;font-size:1.3rem;cursor:pointer;box-shadow:0 6px 18px rgb(0 0 0 / .3);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;z-index:40}
.to-top.on{opacity:1;visibility:visible}
.to-top:hover{background:var(--azul-prof)}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.site-header,.site-footer,.to-top,.filtros,.carousel{display:none}body{background:#fff}.page-head,.hero{background:none;color:#000}.page-head h1,.hero h1{color:#000}.psi{display:none}}
