/* AFM Inmobiliaria · estilos compartidos adicionales (accesibilidad, imágenes reales, contenido de WordPress) */
.screen-reader-text,.visually-hidden{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:1000;background:var(--brand,#12355b);color:#fff;padding:10px 16px;border-radius:8px}
.skip-link:focus{left:8px}
.afm-hp{position:absolute!important;left:-9999px!important}
/* fotos reales dentro de tarjetas y galerías */
.ph{position:relative;overflow:hidden}
.ph img,.ph .ph-link,.stage img,.thumbs img,.slide>img{width:100%;height:100%;object-fit:cover;display:block}
.ph .ph-link{position:absolute;inset:0}
.ph svg.art{position:absolute;inset:0;margin:auto}
.slide.has-img{position:relative}
.slide.has-img>img{position:absolute;inset:0;z-index:0}
.slide.has-img::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(10,22,38,.78),rgba(10,22,38,.15))}
.slide.has-img .slide-in,.slide.has-img .off{position:relative;z-index:2}
.fav[aria-pressed=true]{color:#d6336c}
.fav[aria-pressed=true] svg{fill:currentColor}
/* logo horizontal */
.logo-img img,.custom-logo{height:48px;width:auto;max-width:260px;display:block;object-fit:contain}
@media(max-width:700px){.logo-img img,.custom-logo{height:40px;max-width:190px}}
/* mensajes de formularios */
.fok{border-radius:10px;padding:10px 14px;margin:0 0 12px;font-size:15px}
.fok.is-ok{background:#e6f6ec;color:#0e5a2b;border:1px solid #9bd5b1}
.fok.is-err{background:#fdecec;color:#8a1c1c;border:1px solid #f0b0b0}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .fok.is-ok{background:#12301f;color:#bfe9cf;border-color:#2c6b46}:root:not([data-theme=light]) .fok.is-err{background:#3a1717;color:#f5c6c6;border-color:#7a2f2f}}
:root[data-theme=dark] .fok.is-ok{background:#12301f;color:#bfe9cf;border-color:#2c6b46}
:root[data-theme=dark] .fok.is-err{background:#3a1717;color:#f5c6c6;border-color:#7a2f2f}
.chk{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.4}
.chk input{margin-top:3px;width:auto}
/* videos */
.afm-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.afm-vidlink{position:absolute;inset:auto 12px 12px;background:rgba(0,0,0,.6);color:#fff;border-radius:8px;padding:8px 12px;text-align:center}
/* paginación */
.pager{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:32px 0}
.pager .pn,.pager .is-current{min-width:42px;min-height:42px;display:inline-grid;place-items:center;border-radius:10px;border:1.5px solid var(--line,#dfe4ea);padding:0 12px;text-decoration:none;color:inherit}
.pager .is-current{background:var(--brand,#12355b);color:#fff;border-color:transparent}
.crumbs{font-size:14px;margin:16px 0}
.crumbs a{text-decoration:underline}
/* contenido del editor de WordPress */
.prose{max-width:760px;margin:0 auto;font-size:18px;line-height:1.7}
.prose h2,.prose h3{margin:1.6em 0 .5em;line-height:1.2}
.prose img,.prose video{max-width:100%;height:auto;border-radius:12px}
.prose a{text-decoration:underline}
.prose ul,.prose ol{padding-left:1.4em}
.prose blockquote{border-left:4px solid var(--accent,#f0a400);margin:1.4em 0;padding:.2em 1em}
.prose .alignwide{max-width:1000px}
.wp-caption,.wp-caption-text{font-size:14px}
.alignleft{float:left;margin:0 1em 1em 0}.alignright{float:right;margin:0 0 1em 1em}.aligncenter{display:block;margin:0 auto}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* categorías del blog como enlaces */
.cats a{display:inline-block;border:1.5px solid var(--line,#dfe4ea);border-radius:999px;padding:7px 16px;text-decoration:none;font-weight:600;font-size:14px;min-height:40px;line-height:24px}
.cats a[aria-current=page]{background:var(--brand,#12355b);color:#fff;border-color:transparent}
.pop a{text-decoration:none}.pop a:hover{text-decoration:underline}
/* cabecera: el menú se pliega antes para dar sitio al teléfono grande */
@media(min-width:981px) and (max-width:1500px){
  .menu-btn{display:block;margin-left:0!important}
  header.site .wrap{position:relative}
  nav.main{display:none;position:absolute;left:0;right:0;top:100%;background:var(--surface);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:12px 16px;margin:0}
  nav.main.open{display:flex}
  .hphone{margin-left:auto}
}
@media(max-width:560px){
  header.site .wrap{gap:10px}
  .logo{font-size:17px;gap:7px;min-width:0}
  .logo span small{display:none}
  .logo i{width:30px;height:30px;font-size:13px}
  .hphone{padding:2px 4px;gap:0}.hphone svg{display:none}.hphone b{font-size:15px}
  .menu-btn{padding:8px 10px}
  .logo-img img,.custom-logo{max-width:120px;height:34px}
}
.deals{margin-inline:0!important}
/* mapa gratuito (Leaflet) */
#gmap{z-index:0}
.leaflet-container{font-family:var(--f-body);border-radius:inherit}
.leaflet-container a{color:var(--brand)}
.map .maplabel,.map .mlbl{z-index:600;top:auto!important;bottom:28px!important;left:10px!important;right:auto!important}
/* imagen destacada de la página de contacto */
.cimg{margin:18px 0 0;border-radius:16px;overflow:hidden;border:1px solid var(--line)}
.cimg img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.logo-footer img{height:56px;max-width:280px}
/* videos incrustados (TikTok / YouTube): el reproductor ocupa todo el cuadro y la leyenda no lo tapa */
.reel:has(.afm-embed) .cap{display:none}
.reel .afm-vidlink{inset:14px 14px auto;z-index:2}
/* logo del menú: vertical al inicio, horizontal al bajar, con transición suave (se funden y se redimensionan) */
.logo.has-v{display:grid;align-items:center;justify-items:start}
.logo.has-v img{grid-area:1/1;display:block;width:auto;object-fit:contain;transition:height .4s cubic-bezier(.4,0,.2,1),opacity .3s ease,max-width .4s cubic-bezier(.4,0,.2,1)}
.logo.has-v .logo-v{height:92px;max-width:150px;opacity:1}
.logo.has-v .logo-h{height:0;max-width:0;opacity:0}
header.site.is-scrolled .logo.has-v .logo-v{height:0;max-width:0;opacity:0}
header.site.is-scrolled .logo.has-v .logo-h{height:48px;max-width:260px;opacity:1;transition-delay:.08s}
@media(max-width:700px){
  .logo.has-v .logo-v{height:64px;max-width:110px}
  header.site.is-scrolled .logo.has-v .logo-h{height:40px;max-width:190px}
}
/* mapa de la sede con marcador */
#sedemap{height:380px;width:100%;z-index:0}
.afm-pin span{display:block;width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--brand,#12355b);border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.4)}
@media(max-width:700px){#sedemap{height:300px}}
/* logo vertical en el pie: más alto para que se lea */
.logo-footer.is-portrait img{height:96px;max-width:200px}
