:root{
  --azul:#354590; --azul-osc:#2a3870; --azul-claro:#4a5aad;
  --amarillo:#f4c020; --rosa:#e6385b;
  --gris:#f4f6f9; --gris-borde:#e2e8f0; --texto:#2b2b2b; --suave:#6b7280;
  --max:1200px;
}
*{box-sizing:border-box}
body{margin:0;font-family:'Raleway',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--texto);background:#fff;line-height:1.55}
a{color:var(--azul);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto;display:block}
.container{max-width:var(--max);margin:0 auto;padding:0 1rem}

/* Cinta de vista previa (solo admins) */
.preview-ribbon{position:sticky;top:0;z-index:200;display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;background:var(--amarillo);color:#3a2e00;font-size:.85rem;font-weight:600;padding:.45rem 1rem;text-align:center;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.preview-ribbon a{color:#3a2e00;text-decoration:underline;font-weight:700}

/* ===== Top bar ===== */
.topbar{background:var(--azul);color:#fff;font-size:.82rem}
.topbar .container{display:flex;justify-content:space-between;align-items:center;min-height:40px;gap:1rem;flex-wrap:wrap}
.topbar-addr{color:#fff;font-weight:500}
.topbar-addr:hover{color:#fff;text-decoration:underline}
.topbar-right{display:flex;align-items:center;gap:.9rem}

/* Buscador en la top bar */
.topbar .site-search{display:flex}
.topbar .site-search input{border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.14);color:#fff;border-radius:4px 0 0 4px;padding:.32rem .6rem;font-size:.82rem;width:160px;font-family:inherit}
.topbar .site-search input::placeholder{color:rgba(255,255,255,.8)}
.topbar .site-search button{border:0;background:rgba(255,255,255,.22);color:#fff;border-radius:0 4px 4px 0;padding:0 .55rem;cursor:pointer;display:flex;align-items:center}
.topbar .site-search svg{width:16px;height:16px}

/* Buscador en la barra de menú (derecha, más grande) */
.mainnav .nav-search{display:flex;margin-left:auto;align-self:center}
.mainnav .nav-search input{border:1px solid var(--gris-borde);border-right:0;border-radius:6px 0 0 6px;padding:.5rem .85rem;font-size:.95rem;min-width:250px;font-family:inherit;color:var(--texto)}
.mainnav .nav-search input::placeholder{color:var(--suave)}
.mainnav .nav-search button{border:0;background:var(--azul);color:#fff;border-radius:0 6px 6px 0;padding:0 .95rem;cursor:pointer;display:flex;align-items:center}
.mainnav .nav-search button:hover{background:var(--azul-osc)}
.mainnav .nav-search svg{width:18px;height:18px}

/* Íconos de redes */
.social-icons{display:inline-flex;align-items:center;gap:.5rem}
.social-icons a{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;color:#fff;border-radius:50%}
.social-icons svg{width:18px;height:18px;fill:currentColor}
.social-icons a:hover{background:rgba(255,255,255,.18)}

/* ===== Header (banner ancho) ===== */
.site-header{background:#fff;border-bottom:1px solid var(--gris-borde)}
.site-header .container{padding:.6rem 1rem;display:flex;justify-content:center}
.brand{display:block;width:100%;max-width:1100px}
.brand:hover{text-decoration:none}
.brand-logo{display:block;width:100%;height:auto;max-height:150px;object-fit:contain}

/* ===== Nav (barra blanca, texto oscuro, Raleway) ===== */
.mainnav{background:#fff;border-top:1px solid var(--gris-borde);border-bottom:3px solid var(--azul);position:sticky;top:0;z-index:50;box-shadow:0 2px 10px rgba(0,0,0,.05)}
.mainnav .container{display:flex;flex-wrap:wrap;align-items:center}
.mainnav ul{list-style:none;display:flex;flex-wrap:wrap;margin:0;padding:0}
.mainnav li{position:relative}
.mainnav a{color:#393030;display:block;padding:1rem 1rem;font-weight:600;font-size:.95rem;text-transform:uppercase;letter-spacing:.2px}
.mainnav a:hover{color:var(--azul);text-decoration:none}
.mainnav>.container>ul>li:hover>a,.mainnav>.container>ul>li.current>a{color:var(--azul)}
.mainnav .has-children>a::after{content:"▾";font-size:.7rem;margin-left:.3rem;opacity:.7}
.mainnav .submenu{display:none;position:absolute;top:100%;left:0;background:#fff;min-width:250px;box-shadow:0 12px 30px rgba(0,0,0,.18);z-index:60;border:1px solid var(--gris-borde);border-top:3px solid var(--azul)}
.mainnav li:hover>.submenu{display:block}
.mainnav .submenu li{width:100%}
.mainnav .submenu a{color:var(--texto);padding:.7rem 1rem;font-weight:500;font-size:.86rem;text-transform:none;letter-spacing:0;border-bottom:1px solid var(--gris-borde)}
.mainnav .submenu a:hover{background:var(--gris);color:var(--azul)}
.nav-toggle{display:none;background:var(--azul);color:#fff;border:0;padding:.7rem 1rem;font-weight:700;font-family:inherit;cursor:pointer;width:100%;text-align:left;font-size:1rem}

/* ===== Layout ===== */
.layout{display:grid;grid-template-columns:1fr 300px;gap:2rem;padding:2rem 0;align-items:start}
.section-title{color:var(--azul);font-size:1.5rem;margin:0 0 1.1rem;padding-bottom:.45rem;border-bottom:3px solid var(--gris-borde);position:relative;font-weight:800}
.section-title::after{content:"";position:absolute;left:0;bottom:-3px;width:70px;height:3px;background:var(--azul)}
.btn-all{display:inline-block;font-weight:700;color:var(--azul)}

/* ===== Noticias (lista: imagen + título + descripción) ===== */
.news-list{display:flex;flex-direction:column;gap:1.2rem}
.news-item{display:grid;grid-template-columns:240px 1fr;gap:1.2rem;border-bottom:1px solid var(--gris-borde);padding-bottom:1.2rem}
.news-item:last-child{border-bottom:0}
.news-thumb{display:block;aspect-ratio:16/10;border-radius:8px;overflow:hidden;background:var(--gris)}
.news-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.news-thumb:hover img{transform:scale(1.05)}
.news-body h3{margin:.1rem 0 .35rem;font-size:1.15rem;line-height:1.3;font-weight:700}
.news-body h3 a{color:var(--texto)}
.news-body h3 a:hover{color:var(--azul)}
.news-body .meta{color:var(--suave);font-size:.78rem;margin-bottom:.45rem}
.news-body .excerpt{color:#4b5563;font-size:.92rem;margin:.2rem 0 .55rem}
.news-more{font-weight:700;font-size:.85rem}

/* Grilla de noticias (para /noticias) */
.news-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.3rem}
.card{border:1px solid var(--gris-borde);border-radius:10px;overflow:hidden;background:#fff;transition:box-shadow .2s,transform .2s}
.card:hover{box-shadow:0 10px 28px rgba(0,0,0,.12);transform:translateY(-2px)}
.card .thumb{aspect-ratio:16/9;background:var(--gris);overflow:hidden;display:block}
.card .thumb img{width:100%;height:100%;object-fit:cover}
.card .body{padding:.9rem 1rem 1.1rem}
.card h3{margin:.2rem 0 .4rem;font-size:1.02rem;line-height:1.3}
.card h3 a{color:var(--texto)}
.card h3 a:hover{color:var(--azul)}
.card .meta{color:var(--suave);font-size:.78rem}
.card .excerpt{color:#4b5563;font-size:.88rem;margin:.5rem 0 0}

/* ===== Sidebar de botones (3 tipos) ===== */
.sidebar{min-width:0}
.side-buttons{display:flex;flex-direction:column;gap:.7rem}
/* Separador apenas visible entre grupos de botones */
.side-rule{border:0;border-top:1px solid var(--gris-borde);margin:.45rem .25rem;opacity:.8}

/* Tipo 1: imagen diseñada (sin texto) */
.side-banner{display:block;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.12);transition:transform .15s,box-shadow .15s;line-height:0}
.side-banner:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.2);text-decoration:none}
.side-banner img{width:100%;height:auto;display:block}

/* Tipos 2 y 3: ícono + texto */
.side-btn{display:flex;align-items:center;gap:.7rem;border-radius:8px;padding:.55rem .7rem;font-weight:700;transition:background .15s,color .15s,transform .15s,border-color .15s,box-shadow .15s}
.side-btn-img{flex:0 0 40px;width:40px;height:40px;display:flex;align-items:center;justify-content:center}
.side-btn-img img{max-width:36px;max-height:36px;object-fit:contain}
.side-btn-text{font-size:.85rem;line-height:1.2}
.side-btn-text small{display:block;font-weight:400;font-size:.74rem;opacity:.85}

/* Tipo 2a: claro (íconos de color) */
.side-btn--light{background:#fff;border:1px solid var(--gris-borde);border-left:4px solid var(--azul);color:var(--azul);box-shadow:0 1px 3px rgba(0,0,0,.06)}
.side-btn--light:hover{background:#eef1f9;text-decoration:none;transform:translateX(2px);border-left-color:var(--amarillo);box-shadow:0 4px 12px rgba(0,0,0,.1)}

/* Destacado: rojo (Sesión en vivo / YouTube) — banner prominente del grupo 1 */
.side-btn--red{background:#d92332;color:#fff;border:0;border-radius:8px;flex-direction:column;align-items:center;text-align:center;gap:.45rem;padding:1.1rem 1rem;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.side-btn--red .side-btn-img{width:54px;height:54px}
.side-btn--red .side-btn-img img{max-width:50px;max-height:50px}
.side-btn--red .side-btn-text{font-size:1.05rem;font-weight:800;text-transform:uppercase;letter-spacing:.3px}
.side-btn--red:hover{background:#bd1c2a;color:#fff;text-decoration:none;transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.22)}

/* Tipo 3: azul oscuro (íconos blancos) — mismo alto que el tipo claro */
.side-btn--blue{background:var(--azul-osc);color:#fff;border:1px solid transparent;border-left:4px solid var(--azul-claro);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.side-btn--blue:hover{background:var(--azul);color:#fff;text-decoration:none;transform:translateX(2px)}

/* ===== Concejales: carrusel "coverflow" 3D del home =====
   Foto central protagonista + la anterior/siguiente asomando a los costados,
   atenuadas y con leve giro (estilo Alt-Tab). Clic en una foto lateral la trae
   al centro; clic en la central va a la ficha del concejal. */
.councillors{padding:2.2rem 0;background:var(--gris);border-top:1px solid var(--gris-borde)}
.cc-slider{position:relative}
.cc-slides{position:relative;height:clamp(250px,36vw,440px);perspective:1200px;overflow:hidden}
.cc-slide{position:absolute;top:50%;left:50%;height:84%;aspect-ratio:4/3;transform:translate(-50%,-50%) scale(.55);opacity:0;transition:transform .5s ease,opacity .5s ease,filter .5s ease;border-radius:12px;overflow:hidden;box-shadow:0 12px 30px rgba(10,22,51,.3);background:#0a1633;pointer-events:none}
.cc-slide img{width:100%;height:100%;object-fit:cover;object-position:center 25%}
.cc-slide.is-center{transform:translate(-50%,-50%) scale(1);opacity:1;z-index:3;pointer-events:auto}
.cc-slide.is-prev,.cc-slide.is-next{opacity:.55;filter:brightness(.7);z-index:2;pointer-events:auto}
.cc-slide.is-prev{transform:translate(-50%,-50%) translateX(-66%) scale(.76) rotateY(16deg)}
.cc-slide.is-next{transform:translate(-50%,-50%) translateX(66%) scale(.76) rotateY(-16deg)}
.cc-slide.is-prev:hover,.cc-slide.is-next:hover{opacity:.8;filter:brightness(.85)}
.cc-name{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(10,22,51,.88));color:#fff;padding:1.7rem .9rem .65rem;font-weight:700;font-size:1.05rem;text-align:center;opacity:0;transition:opacity .4s ease}
.cc-slide.is-center .cc-name{opacity:1}
.cc-slider .slider-dots{bottom:2px}
.cc-slider .slider-dots .dot{background:rgba(42,56,112,.3)}
.cc-slider .slider-dots .dot.is-active{background:var(--azul)}
@media(max-width:600px){
  .cc-slides{height:clamp(220px,58vw,300px)}
  .cc-slide.is-prev{transform:translate(-50%,-50%) translateX(-58%) scale(.7) rotateY(16deg)}
  .cc-slide.is-next{transform:translate(-50%,-50%) translateX(58%) scale(.7) rotateY(-16deg)}
  .cc-name{font-size:.9rem;padding:1.2rem .6rem .5rem}
}

/* ===== Concejales: grilla de 2 columnas (/nuestros-concejales) ===== */
.concejal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem}
.concejal-card{display:block;border:1px solid var(--gris-borde);border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.06);transition:box-shadow .2s,transform .2s}
.concejal-card:hover{box-shadow:0 12px 28px rgba(0,0,0,.14);transform:translateY(-3px);text-decoration:none}
.concejal-photo{aspect-ratio:3/2;background:var(--gris);overflow:hidden}
.concejal-photo img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.concejal-bar{padding:.85rem 1.1rem;display:flex;flex-direction:column;gap:.12rem;border-top:4px solid var(--azul)}
.concejal-name{font-weight:800;color:var(--azul);font-size:1.12rem}
.concejal-pos{font-weight:600;color:var(--texto);font-size:.9rem}
.concejal-bloc{color:var(--suave);font-size:.82rem}
.concejal-mandate{color:var(--suave);font-size:.78rem;margin-top:.15rem}

/* ===== Article / page ===== */
.article{padding:2rem 0;max-width:820px}
.layout .main-col .article{padding-top:0}
.article h1{color:var(--azul);font-size:1.9rem;line-height:1.2;margin:.2rem 0 .6rem}
.article .meta{color:var(--suave);font-size:.85rem;margin-bottom:1.2rem}
.article .content{font-size:1.02rem}
.article .content img{border-radius:8px;margin:1rem 0}
.article .content p{margin:0 0 1rem}
.article .content h2,.article .content h3{color:var(--azul);margin:1.4rem 0 .6rem}
.cover{width:100%;max-height:420px;object-fit:cover;border-radius:10px;margin-bottom:1.4rem}
.wp-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem;margin:1.2rem 0}
.wp-gallery a{display:block;aspect-ratio:1;overflow:hidden;border-radius:6px;background:var(--gris)}
.wp-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .2s}
.wp-gallery a:hover img{transform:scale(1.05)}

/* Columnas y elementos heredados de Meks (ahora HTML/CSS propios) */
.mks-col{display:inline-block;vertical-align:top;margin:0 1.4% 1rem 0}
.mks-1-2{width:48%}.mks-1-3{width:31%}.mks-2-3{width:64%}
.mks-1-4{width:22.5%}.mks-3-4{width:73%}
.mks-1-5{width:17%}.mks-2-5{width:37%}.mks-3-5{width:57%}.mks-4-5{width:77%}
.mks-1-6{width:14%}.mks-5-6{width:81%}
.mks-button{display:inline-block;background:var(--azul);color:#fff !important;padding:.6rem 1.2rem;border-radius:6px;font-weight:600;margin:.3rem 0}
.mks-button:hover{background:var(--azul-osc);text-decoration:none}
.mks-dropcap{float:left;font-size:3rem;line-height:.9;font-weight:800;color:var(--azul);margin:.15rem .5rem 0 0}
.mks-pull{border-left:4px solid var(--azul);background:var(--gris);padding:.8rem 1.2rem;margin:1rem 0;font-style:italic}
.mks-sep{border:0;border-top:2px solid var(--gris-borde);margin:1.6rem 0}
@media(max-width:600px){.mks-col{display:block;width:100% !important;margin-right:0}}

/* Concejal (detalle) y Agenda */
.bloc-title{color:var(--azul);font-size:1.15rem;margin:1.6rem 0 .8rem;padding-bottom:.3rem;border-bottom:2px solid var(--gris-borde)}
.concejal-detalle{display:flex;gap:1.5rem;align-items:flex-start;margin:1rem 0 1.5rem;flex-wrap:wrap}
.concejal-foto{width:200px;height:200px;object-fit:cover;border-radius:10px;background:var(--gris)}
.event-item{display:flex;gap:1rem;border:1px solid var(--gris-borde);border-radius:10px;padding:1rem;margin-bottom:.8rem;background:#fff}
.event-date{flex:0 0 70px;text-align:center;background:var(--azul);color:#fff;border-radius:8px;padding:.6rem .2rem;align-self:flex-start}
.event-date .d{display:block;font-size:1.6rem;font-weight:800;line-height:1}
.event-date .m{display:block;font-size:.72rem;opacity:.9}
.event-body h3{margin:.1rem 0 .3rem;font-size:1.05rem;color:var(--azul)}
.event-loc{color:var(--suave);font-size:.85rem;margin-bottom:.3rem}
.event-body p{margin:.3rem 0 0;font-size:.9rem;color:#4b5563}

/* Sesiones */
.session-list{display:flex;flex-direction:column;gap:.9rem}
.session-item{display:flex;gap:1rem;border:1px solid var(--gris-borde);border-radius:10px;padding:1rem;background:#fff;transition:box-shadow .2s,transform .2s}
.session-item:hover{box-shadow:0 8px 22px rgba(0,0,0,.1);transform:translateY(-2px)}
.session-date{flex:0 0 70px;text-align:center;background:var(--azul);color:#fff;border-radius:8px;padding:.6rem .2rem;align-self:flex-start}
.session-date .d{display:block;font-size:1.6rem;font-weight:800;line-height:1}
.session-date .m{display:block;font-size:.72rem;opacity:.9}
.session-type{display:inline-block;font-size:.72rem;text-transform:uppercase;letter-spacing:.4px;color:var(--azul);font-weight:700}
.session-body h3{margin:.15rem 0 .3rem;font-size:1.08rem}
.session-body h3 a{color:var(--texto)}
.session-body h3 a:hover{color:var(--azul)}
.session-body p{margin:.2rem 0 .4rem;font-size:.9rem;color:#4b5563}
.session-tags{display:flex;gap:.5rem;flex-wrap:wrap}
.session-tags .tag{font-size:.74rem;background:var(--gris);border:1px solid var(--gris-borde);border-radius:20px;padding:.15rem .6rem;color:var(--suave)}
.doc-list{list-style:none;margin:.6rem 0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.doc-list a{display:flex;align-items:center;gap:.6rem;border:1px solid var(--gris-borde);border-left:4px solid var(--azul);border-radius:8px;padding:.6rem .8rem;background:#fff;color:var(--azul);font-weight:600}
.doc-list a:hover{background:var(--gris);text-decoration:none}
.doc-name{flex:1}
.doc-ext{font-size:.7rem;background:var(--azul);color:#fff;border-radius:4px;padding:.1rem .4rem}

/* Agenda: grilla de flyers estilo "polaroid" + modal.
   El flyer se ve ENTERO (sin recorte) con fecha/título DEBAJO. Las tarjetas
   están levemente inclinadas (alternando el lado) y al pasar el mouse se
   enderezan y agrandan un poco. */
.agenda-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.5rem;margin:1.2rem 0 2.2rem;align-items:start}
.agenda-card{--rot:-1.7deg;display:block;background:#fff;border:1px solid var(--gris-borde);border-radius:10px;padding:.6rem .6rem .75rem;box-shadow:0 4px 14px rgba(10,22,51,.12);cursor:pointer;transform:rotate(var(--rot));transition:transform .25s ease,box-shadow .25s ease;position:relative}
.agenda-grid .agenda-card:nth-child(even){--rot:1.7deg}
.agenda-card:hover,.agenda-card:focus-visible{transform:rotate(0) scale(1.05);box-shadow:0 16px 36px rgba(10,22,51,.24);text-decoration:none;z-index:2}
.agenda-frame{display:flex;align-items:center;justify-content:center;aspect-ratio:4/5;background:var(--gris);border-radius:6px;overflow:hidden}
.agenda-img{width:100%;height:100%;object-fit:contain}
.agenda-ph{font-size:3rem}
.agenda-info{display:block;padding:.6rem .25rem 0;text-align:center}
.agenda-date{display:block;color:var(--suave);font-size:.76rem;margin-bottom:.15rem}
.agenda-title{display:-webkit-box;font-weight:700;font-size:.92rem;line-height:1.25;color:var(--texto);-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:600px){
  .agenda-grid{grid-template-columns:repeat(2,1fr);gap:1rem}
  .agenda-card{--rot:-1.2deg}
  .agenda-grid .agenda-card:nth-child(even){--rot:1.2deg}
}

/* Modal de evento */
.ev-modal{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;padding:1rem}
.ev-modal.is-open{display:flex}
.ev-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.78)}
.ev-modal-box{position:relative;background:#fff;border-radius:12px;max-width:880px;width:100%;max-height:92vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.45)}
.ev-modal-img{width:100%;max-height:70vh;object-fit:contain;background:#0a1633;display:block}
.ev-modal-body{padding:1.1rem 1.4rem 1.4rem}
.ev-modal-meta{color:var(--suave);font-size:.85rem}
.ev-modal-body h3{margin:.2rem 0 .55rem;color:var(--azul);font-size:1.3rem}
.ev-modal-body p{color:#4b5563;margin:0 0 1rem}
.ev-modal-close{position:absolute;top:.5rem;right:.6rem;z-index:2;background:rgba(0,0,0,.55);color:#fff;border:0;width:38px;height:38px;border-radius:50%;font-size:1.6rem;line-height:1;cursor:pointer}
.ev-modal-close:hover{background:rgba(0,0,0,.85)}

/* Buscador página */
.search-page-form{display:flex;gap:.5rem;margin:1rem 0 1.5rem;max-width:560px}
.search-page-form input{flex:1;border:1px solid var(--gris-borde);border-radius:8px;padding:.7rem .9rem;font-size:1rem}
.search-page-form button{background:var(--azul);color:#fff;border:0;border-radius:8px;padding:.7rem 1.4rem;font-weight:600;cursor:pointer}

/* ===== Hero slider (banners) — ancho completo ===== */
.hero-slider{position:relative;width:100%;margin:0;overflow:hidden;background:#000}
.hero-slider .slides{position:relative;height:clamp(220px,30vw,440px)}
.hero-slider .slide{position:absolute;inset:0;opacity:0;transition:opacity .6s ease}
.hero-slider .slide.is-active{opacity:1}
.hero-slider .slide img{width:100%;height:100%;object-fit:cover;display:block}
.hero-slider .slide a{display:block;height:100%}
.slide-caption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff;padding:2rem 1.5rem 1.1rem}
.slide-caption h2{margin:0;font-size:1.4rem}
.slide-caption p{margin:.3rem 0 0;opacity:.9}
.slider-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.4);color:#fff;border:0;width:44px;height:44px;border-radius:50%;font-size:1.6rem;cursor:pointer;line-height:1;z-index:5}
.slider-nav:hover{background:rgba(0,0,0,.7)}
.slider-nav.prev{left:12px}.slider-nav.next{right:12px}
.slider-dots{position:absolute;bottom:12px;left:0;right:0;display:flex;gap:.4rem;justify-content:center;flex-wrap:wrap;padding:0 1rem;z-index:5}
.slider-dots .dot{width:11px;height:11px;border-radius:50%;border:0;background:rgba(255,255,255,.5);cursor:pointer;padding:0}
.slider-dots .dot.is-active{background:#fff}

/* ===== Imagen institucional configurable (debajo del slider, ancho completo) ===== */
.home-banner{display:block;width:100%;line-height:0}
.home-banner,.home-banner a{display:block;line-height:0}
.home-banner img{width:100%;height:auto;display:block}
.home-banner a{transition:opacity .15s}
.home-banner a:hover{opacity:.95}

/* ===== Contacto ===== */
.contact-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:2rem;align-items:start}
.contact-info{background:var(--gris);border-radius:10px;padding:1.4rem}
.contact-info h3{color:var(--azul);margin-top:0}
.contact-form{display:flex;flex-direction:column;gap:.8rem}
.contact-form label{display:flex;flex-direction:column;font-weight:600;font-size:.88rem;gap:.3rem}
.contact-form input,.contact-form textarea{border:1px solid var(--gris-borde);border-radius:8px;padding:.6rem .8rem;font-size:1rem;font-family:inherit}
.contact-form button{align-self:flex-start;background:var(--azul);color:#fff;border:0;border-radius:8px;padding:.7rem 1.6rem;font-weight:600;cursor:pointer}
.contact-form button:hover{background:var(--azul-osc)}
.alert-ok{background:#dcfce7;color:#166534;border:1px solid #bbf7d0;padding:.8rem 1rem;border-radius:8px;margin-bottom:1rem}
.alert-err{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca;padding:.6rem 1rem;border-radius:8px;margin-bottom:1rem}
.alert-err ul{margin:.2rem 0;padding-left:1.2rem}

/* ===== Pagination ===== */
.pager{display:flex;gap:.4rem;justify-content:center;padding:1.5rem 0;flex-wrap:wrap}
.pager a,.pager span{padding:.5rem .8rem;border:1px solid var(--gris-borde);border-radius:6px}
.pager .current{background:var(--azul);color:#fff;border-color:var(--azul)}

/* ===== Footer ===== */
.site-footer{background:var(--azul-osc);color:#cdd9ea;margin-top:2rem;padding:2rem 0 1rem}
.site-footer .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.site-footer h4{color:#fff;margin:0 0 .6rem;font-size:1rem}
.site-footer a{color:#cdd9ea}
.site-footer .social-icons a{color:#fff}
.site-footer .copy{border-top:1px solid rgba(255,255,255,.15);margin-top:1.5rem;padding-top:1rem;font-size:.8rem;text-align:center}
.site-footer .copy .credit{color:var(--amarillo);font-weight:700}

/* ===== Responsive ===== */
@media(max-width:860px){
  .layout{grid-template-columns:1fr}
  .news-grid{grid-template-columns:1fr}
  .concejal-grid{grid-template-columns:1fr}
  .site-footer .cols{grid-template-columns:1fr}
  .mainnav .container{display:block}
  .nav-toggle{display:block}
  .mainnav ul{display:none;flex-direction:column;width:100%}
  .mainnav ul.open{display:flex}
  .mainnav .submenu{position:static;box-shadow:none;border:0;border-top:0}
  .mainnav a{border-bottom:1px solid var(--gris-borde)}
  .mainnav .nav-search{margin:.6rem 0;width:100%}
  .mainnav .nav-search input{flex:1;min-width:0}
  .topbar .container{justify-content:center}
  .slide-caption h2{font-size:1.1rem}
}
@media(max-width:600px){
  .news-item{grid-template-columns:1fr}
  .cc-slides{aspect-ratio:4/3}
  .brand-logo{max-height:90px}
  .topbar-right{flex-wrap:wrap;justify-content:center}
}

/* ===== Páginas de error (404 / 500) ===== */
.error-page{padding:3.5rem 0;display:flex;justify-content:center}
.error-box{max-width:620px;width:100%;text-align:center;background:#fff;border:1px solid #e6e8f0;border-radius:14px;padding:2.6rem 2rem;box-shadow:0 6px 26px rgba(53,69,144,.08)}
.error-code{display:inline-block;font-family:Raleway,'Segoe UI',sans-serif;font-weight:800;font-size:4.6rem;line-height:1;color:var(--azul);letter-spacing:-2px}
.error-box h1{margin:.4rem 0 .6rem;color:var(--azul-osc);font-size:1.6rem}
.error-box p{color:#555;margin:0 auto 1.5rem;max-width:48ch;line-height:1.55}
.error-actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.3rem}
.mks-button--ghost{background:transparent;border:2px solid var(--azul);color:var(--azul)}
.error-search{display:flex;max-width:400px;margin:0 auto;gap:.4rem}
.error-search input{flex:1;padding:.6rem .85rem;border:1px solid #cdd3e6;border-radius:8px;font:inherit}
.error-search button{padding:.6rem 1.1rem;background:var(--azul);color:#fff;border:0;border-radius:8px;cursor:pointer;font-weight:600}
.error-search button:hover{background:var(--azul-osc)}

/* ===== Galería de contenido (noticias / páginas) ===== */
.content-gallery{margin:1.5rem 0}
/* Grilla */
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.7rem}
.gal-grid .gal-item{margin:0}
.gal-grid .gal-item img{width:100%;height:170px;object-fit:cover;border-radius:8px;display:block;transition:transform .25s ease;cursor:zoom-in}
.gal-grid .gal-item img:hover{transform:scale(1.03)}
.gal-grid figcaption{font-size:.8rem;color:#666;margin-top:.25rem;text-align:center}
/* Carrusel */
.gal-carousel{position:relative;background:#000;border-radius:10px;overflow:hidden}
.gal-track{position:relative;height:clamp(240px,40vw,460px)}
.gal-slide{position:absolute;inset:0;opacity:0;transition:opacity .5s ease;margin:0}
.gal-slide.is-active{opacity:1}
.gal-slide img{width:100%;height:100%;object-fit:contain;display:block}
.gal-slide figcaption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;padding:1.5rem .9rem .7rem;font-size:.9rem;text-align:center}
.gal-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.85);border:0;width:40px;height:40px;border-radius:50%;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--azul-osc)}
.gal-nav:hover{background:#fff}
.gal-prev{left:.6rem}.gal-next{right:.6rem}
.gal-dots{position:absolute;left:0;right:0;bottom:.5rem;display:flex;gap:.4rem;justify-content:center}
.gal-dot{width:10px;height:10px;border-radius:50%;border:0;background:rgba(255,255,255,.5);cursor:pointer;padding:0}
.gal-dot.is-active{background:#fff}
@media(max-width:600px){.gal-grid .gal-item img{height:130px}}

/* ===== Migas de pan (breadcrumbs) ===== */
.breadcrumbs{font-size:.82rem;margin:.2rem 0 .9rem}
.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.15rem;margin:0;padding:0}
.breadcrumbs li{display:flex;align-items:center;color:var(--suave)}
.breadcrumbs li+li::before{content:"›";margin:0 .45rem;color:var(--gris-borde);font-weight:700}
.breadcrumbs a{color:var(--suave)}
.breadcrumbs a:hover{color:var(--azul)}
.breadcrumbs [aria-current="page"]{color:var(--texto);font-weight:600}

/* ===== Compartir ===== */
.share-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin:1.4rem 0 .4rem;padding-top:1rem;border-top:1px solid var(--gris-borde)}
.share-label{font-size:.85rem;font-weight:700;color:var(--suave);margin-right:.2rem}
.share-btn{display:inline-flex;align-items:center;gap:.4rem;font-size:.83rem;font-weight:600;padding:.4rem .8rem;border:1px solid var(--gris-borde);border-radius:999px;color:var(--texto);background:#fff;line-height:1}
.share-btn svg{width:15px;height:15px}
.share-btn:hover{text-decoration:none;border-color:currentColor}
.share-wa:hover{color:#1da851}
.share-fb:hover{color:#1877f2}
.share-x:hover{color:#000}
.share-cal{color:var(--azul);border-color:#cdd3e6}
.share-cal:hover{background:var(--gris)}

/* ===== Acciones de calendario en ficha de evento ===== */
.cal-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.7rem 0 1rem}

/* ===== Vista calendario de la agenda ===== */
.cal-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.7rem;margin-bottom:1rem}
.cal-nav{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem}
.cal-nav .mks-button{font-size:.8rem;padding:.4rem .7rem}
.cal-list-link{font-weight:700;font-size:.88rem}
.cal-grid{width:100%;border-collapse:collapse;table-layout:fixed;background:#fff}
.cal-grid th{background:var(--azul);color:#fff;font-size:.8rem;padding:.45rem .3rem;border:1px solid var(--azul-osc)}
.cal-grid td{border:1px solid var(--gris-borde);vertical-align:top;height:92px;padding:.3rem;font-size:.8rem}
.cal-daynum{display:block;font-weight:700;color:var(--suave);font-size:.78rem;margin-bottom:.2rem}
.cal-out{background:var(--gris)}
.cal-out .cal-daynum{color:#c3c8d4}
.cal-today{outline:2px solid var(--amarillo);outline-offset:-2px}
.cal-today .cal-daynum{color:var(--azul)}
.cal-event{display:block;background:var(--azul);color:#fff;border-radius:5px;padding:.2rem .35rem;margin:.15rem 0;font-size:.72rem;line-height:1.25;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cal-event:hover{background:var(--azul-claro);text-decoration:none}
.cal-event strong{font-weight:700}
.cal-dow-short{display:none}
@media (max-width:720px){
  .cal-dow-full{display:none}
  .cal-dow-short{display:inline}
  .cal-grid td{height:64px;padding:.15rem;font-size:.7rem}
  .cal-event{font-size:.62rem;padding:.12rem .25rem}
}

/* ===== Boletín digital ===== */
.newsletter-box{max-width:640px;background:#fff;border:1px solid var(--gris-borde);border-radius:12px;padding:1.6rem;margin-bottom:2rem}
.newsletter-form .nl-row{margin-bottom:.9rem}
.newsletter-form label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.25rem}
.newsletter-form label .req{color:var(--rosa)}
.newsletter-form input{width:100%;padding:.55rem .7rem;border:1px solid #cdd3e6;border-radius:8px;font:inherit}
.newsletter-form input:focus{outline:2px solid var(--azul-claro);border-color:var(--azul)}
.nl-cols{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
@media (max-width:600px){.nl-cols{grid-template-columns:1fr}}
.nl-submit{background:var(--azul);color:#fff;border:0;border-radius:8px;padding:.65rem 1.6rem;font-weight:700;font-size:1rem;cursor:pointer}
.nl-submit:hover{background:var(--azul-osc)}
.nl-ok h3{color:#1b7a43;margin-top:0}
.nl-error{background:#fff5f7;color:#e6385b;border:1px solid #f3c1ce;border-radius:8px;padding:.6rem .8rem}
.hp-field{position:absolute;left:-9999px;top:-9999px}

/* ===== Accesibilidad (Ley 26.653 / WCAG 2 AA) ===== */
/* Saltar al contenido: invisible hasta recibir foco de teclado */
.skip-link{position:absolute;left:-9999px;top:0;z-index:500;background:var(--azul);color:#fff;font-weight:700;padding:.7rem 1.2rem;border-radius:0 0 8px 0}
.skip-link:focus{left:0;text-decoration:none;outline:3px solid var(--amarillo)}

/* Foco de teclado SIEMPRE visible */
:focus-visible{outline:3px solid var(--amarillo);outline-offset:2px;border-radius:2px}
.mainnav a:focus-visible,.topbar a:focus-visible{outline-offset:-3px}

/* Submenús accesibles por teclado (además del hover) */
.mainnav li:focus-within>.submenu{display:block}

/* Barra de herramientas de accesibilidad (topbar) */
.a11y-tools{display:inline-flex;align-items:center;gap:.3rem;margin-right:.4rem}
.a11y-tools button{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:5px;font-size:.78rem;font-weight:700;padding:.18rem .5rem;cursor:pointer;line-height:1.2;font-family:inherit}
.a11y-tools button:hover{background:rgba(255,255,255,.3)}

/* Niveles de tamaño de texto (todo el sitio usa rem -> escala parejo) */
html.a11y-font-lg{font-size:112.5%}
html.a11y-font-xl{font-size:125%}

/* Modo alto contraste: texto más oscuro + enlaces siempre subrayados */
html.a11y-contrast{--texto:#000;--suave:#1f2937;--azul:#1a2a6e;--azul-osc:#101c4d;--gris-borde:#6b7280}
html.a11y-contrast main a{text-decoration:underline}
html.a11y-contrast .news-body .excerpt,html.a11y-contrast .card .excerpt,html.a11y-contrast .event-body p,html.a11y-contrast .session-body p{color:#111}

/* Días de otros meses en el calendario: contraste suficiente */
.cal-out .cal-daynum{color:#6b7280}

/* Respetar la preferencia de movimiento reducido del usuario */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important;scroll-behavior:auto !important}
}

/* ===== El Concejo en números ===== */
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:1.4rem}
.stat-card{background:#fff;border:1px solid var(--gris-borde);border-top:4px solid var(--azul);border-radius:10px;padding:1.4rem 1.2rem;display:flex;flex-direction:column;gap:.15rem;box-shadow:0 1px 4px rgba(0,0,0,.05)}
.stat-icon{font-size:1.5rem}
.stat-value{font-size:2.3rem;font-weight:800;color:var(--azul);line-height:1.1}
.stat-label{font-weight:700;color:var(--texto)}
.stat-sub{color:var(--suave);font-size:.84rem}
@media(max-width:860px){.stats-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.stats-grid{grid-template-columns:1fr}}

/* Flyer en la ficha de evento: imagen entera, sin recorte */
.cover--flyer{object-fit:contain;background:var(--gris);max-height:560px}
