:root{
  --primary: #55052d;
  --primary-600: #55052d;
  --accent: #ce8c1a;
  --bg: #f7f7fb;
  --bg-contrast: #ffffff;
  --text: #262626;
  --muted: #6b7280;
  --shadow: 0 10px 25px rgba(0,0,0,.08);
  --radius: 14px;
}

/* Dark mode */
html[data-theme="dark"]{
  --bg:#0f1115;
  --bg-contrast:#151923;
  --text:#e6e6e6;
  --muted:#9aa3b2;
  --shadow: 0 10px 25px rgba(0,0,0,.35);
  background: var(--bg);
  color: var(--text);
}

*{box-sizing:border-box}
body{margin:0; font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; background:var(--bg); color:var(--text)}
.container{width: min(1200px, 92%); margin-inline: auto}

/* Accesibilidad */
.skip-link{
  position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{
  left:1rem; top:1rem; width:auto; height:auto; padding:.5rem .75rem; background:#111; color:#fff; border-radius:8px; z-index:9999;
}

/* Topbar */
.topbar{background: linear-gradient(90deg, var(--primary) 0%, var(--primary-600) 100%); color:#fff; font-size:.9rem}
.topbar__inner{display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.35rem 0}
.topbar__item{display:inline-flex; align-items:center; gap:.4rem; opacity:.95}
.topbar svg{fill:#fff; width:16px; height:16px}
.topbar a{color:#fff; text-decoration:none}
.topbar__right{display:flex; align-items:center; gap:.5rem}
.btn-ghost.small{font-size:.85rem; padding:.25rem .5rem}
.dropdown{position:absolute; display:none; background:var(--bg-contrast); color:var(--text); border-radius:10px; box-shadow:var(--shadow); padding:.35rem; margin-top:.25rem}
.dropdown button{display:block; width:100%; background:none; border:0; text-align:left; padding:.5rem .75rem; border-radius:8px; cursor:pointer}
.dropdown button:hover{background:rgba(0,0,0,.06)}
.social svg{width:18px; height:18px}
.btn-ghost{background:transparent; border:1px solid rgba(255,255,255,.35); color:#fff; padding:.4rem .75rem; border-radius:999px; cursor:pointer}
.btn-ghost:hover{background:rgba(255,255,255,.12)}

/* Header principal */
.site-header{
  position: sticky; top:0; z-index:1000; background: rgba(255,255,255,.85);
  backdrop-filter: saturate(1.2) blur(8px);
  border-bottom: 1px solid rgba(0,0,0,.06);
}
html[data-theme="dark"] .site-header{
  background: rgba(21,25,35,.75); border-color: rgba(255,255,255,.06);
}

.header__inner{display:flex; align-items:center; justify-content:space-between; padding:.65rem 0}
.brand{display:flex; gap:.8rem; align-items:center; text-decoration:none; color:inherit}
.brand__logo{height:54px; width:auto}
.brand__text{line-height:1.1}
.brand__text strong{display:block; font-size:1rem}
.brand__text span{font-size:.85rem; color:var(--muted)}

/* Acciones */
.header__actions{display:flex; align-items:center; gap:.6rem}
.btn-primary{
  background: var(--accent); color:#111; border:0; padding:.55rem .9rem; border-radius:10px; cursor:pointer; text-decoration:none; font-weight:600;
  box-shadow: 0 6px 16px rgba(206,140,26,.25);
}
.btn-primary:hover{filter:brightness(.95)}
.btn-ghost{border:1px solid rgba(0,0,0,.15); color:inherit}
html[data-theme="dark"] .btn-ghost{border-color: rgba(255,255,255,.18)}
.block{display:block; text-align:center}

/* Hamburguesa */
.menu-toggle{display:none; flex-direction:column; gap:4px; background:transparent; border:0; cursor:pointer}
.menu-toggle span{width:24px; height:2px; background: currentColor; transition:.2s}

/* Nav desktop */
.main-nav{position:relative}
.menu{list-style:none; display:flex; gap:1rem; padding:0; margin:.25rem 0 1rem 0}
.menu__item{position:relative}
.menu__link{
  background:none; border:0; color:inherit; cursor:pointer; font:inherit; padding:.5rem .6rem; border-radius:10px;
  text-decoration:none; display:inline-flex; align-items:center; gap:.35rem; position:relative;
}
.menu__link::after{
  content:""; position:absolute; left:.6rem; right:.6rem; bottom:.2rem; height:2px; background:var(--primary);
  transform: scaleX(0); transform-origin:left; transition: transform .25s ease;
}
.menu__link:hover::after{transform:scaleX(1)}

/* Dropdowns */
.dropdown, .mega{
  display:none; position:absolute; top:100%; left:0; padding:1rem; background:var(--bg-contrast); color:var(--text);
  border-radius:14px; box-shadow: var(--shadow); min-width:240px;
}
.has-dropdown:hover > .dropdown,
.has-dropdown:focus-within > .dropdown,
.has-mega:hover > .mega,
.has-mega:focus-within > .mega{display:grid}

.dropdown a{display:block; padding:.5rem .6rem; border-radius:8px; color:inherit; text-decoration:none}
.dropdown a:hover{background:rgba(0,0,0,.06)}

.mega{grid-template-columns: repeat(3, minmax(180px, 1fr)); gap:1rem; width: min(900px, 96vw)}
.mega__col{display:flex; flex-direction:column; gap:.35rem}
.mega__title{font-weight:700; color:var(--primary); margin-bottom:.25rem}

/* Modal búsqueda */
.search-modal{position:fixed; inset:0; display:none}
.search-modal.show{display:block}
.search-modal__backdrop{position:absolute; inset:0; background:rgba(0,0,0,.5)}
.search-modal__content{
  position:relative; z-index:1; margin:10vh auto 0; width:min(800px, 92%);
  background:var(--bg-contrast); color:var(--text); border-radius:16px; box-shadow:var(--shadow); padding:1.25rem;
}
.search-modal__close{position:absolute; top:.5rem; right:.75rem; font-size:1.6rem; background:transparent; border:0; cursor:pointer}
.search-form{display:flex; gap:.5rem}
.search-form input{flex:1; padding:.8rem 1rem; border-radius:12px; border:1px solid rgba(0,0,0,.12); outline:none}

/* Offcanvas móvil */
.offcanvas{position:fixed; inset:0 0 0 auto; width:min(320px, 86%); background:var(--bg-contrast); color:var(--text); transform: translateX(100%); transition:.25s; z-index:1100; box-shadow:var(--shadow)}
.offcanvas.open{transform: translateX(0)}
.offcanvas__header{display:flex; align-items:center; justify-content:space-between; padding:1rem; border-bottom:1px solid rgba(0,0,0,.06)}
.offcanvas__close{background:transparent; border:0; font-size:1.6rem; cursor:pointer}
.offcanvas__nav{display:flex; flex-direction:column; gap:.35rem; padding:1rem}
.offcanvas__nav a{color:inherit; text-decoration:none; padding:.4rem .25rem; border-radius:8px}
.offcanvas__nav a:hover{background:rgba(0,0,0,.06)}
.offcanvas__nav details{padding:.3rem .25rem}
.offcanvas__nav summary{cursor:pointer; font-weight:600; padding:.4rem 0}

.overlay{position:fixed; inset:0; background:rgba(0,0,0,.4); opacity:0; visibility:hidden; transition:.25s; z-index:1000}
.overlay.show{opacity:1; visibility:visible}

/* Responsive */
@media (max-width: 1024px){
  .menu{display:none}
  .menu-toggle{display:flex}
}

/* Efecto shrink al scrollear */
.site-header.is-shrink .brand__logo{height:44px}
.site-header.is-shrink .header__inner{padding:.35rem 0}

/* Barra del header: 3 columnas en una fila */
.header__bar{
  display:grid;
  grid-template-columns: auto 1fr auto; /* marca | menú (flexible) | acciones */
  align-items:center;
  gap: 1rem;
  padding:.65rem 0;
}

/* Marca (izquierda) */
.brand{display:flex; gap:.8rem; align-items:center; text-decoration:none; color:inherit; min-width: 260px}
.brand__logo{height:56px; width:auto}
.site-header.is-shrink .brand__logo{height:44px}

/* Menú (centro) */
.main-nav{display:flex; justify-content:center}
.main-nav .menu{
  list-style:none; display:flex; gap:1rem; padding:0; margin:0;
  align-items:center; justify-content:center; flex-wrap:nowrap;
}
.menu__item{position:relative; white-space:nowrap}

/* Acciones (derecha) */
.header__actions{display:flex; align-items:center; gap:.6rem; justify-content:flex-end; min-width: 260px}
.btn-primary{ background: var(--accent); color:#111; border:0; padding:.55rem .9rem; border-radius:10px; text-decoration:none; font-weight:600; box-shadow:0 6px 16px rgba(206,140,26,.25)}
.btn-ghost{border:1px solid rgba(0,0,0,.15); background:transparent; padding:.45rem .8rem; border-radius:10px}

/* Dropdowns: aseguran que aparezcan sobre el contenido y pegados al ítem */
.dropdown, .mega{ z-index: 1200 }

/* Responsive: en tablets/móviles ocultamos menú centrado y mostramos hamburguesa */
@media (max-width: 1100px){
  .main-nav{ display:none }
  .menu-toggle{ display:flex; flex-direction:column; gap:4px; background:transparent; border:0; cursor:pointer }
  .menu-toggle span{ width:24px; height:2px; background: currentColor }
}

/* Evita salto de líneas incómodo si el viewport es muy estrecho en desktop */
@media (min-width: 1101px){
  .brand__text strong{font-size:1rem}
  .brand__text span{font-size:.85rem}
}

/* ===== Footer ===== */
.site-footer { background: var(--primary); color: #fff; margin-top: 2rem; font-size: 0.95rem; }

.footer__top{
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr 1.2fr; /* 4 columnas equilibradas */
  gap: 2rem;
  padding: 2.5rem 0;
  align-items: start;
}

.footer__col h4{
  margin-bottom: .8rem; font-size: 1.1rem;
  border-bottom: 2px solid rgba(255,255,255,.2); padding-bottom: .3rem;
}

.footer__brand{ display:flex; align-items:center; gap:.6rem; text-decoration:none; color:#fff; font-weight:600; }
.footer__logo{ height:50px; width:auto; }
.footer__desc{ margin:1rem 0; line-height:1.4; color:#f0f0f0; }
.footer__social{ display:flex; gap:.6rem; }
.footer__social a{ display:inline-block; background:rgba(255,255,255,.15); padding:.4rem .6rem; border-radius:6px; color:#fff; text-decoration:none; font-size:.9rem; }
.footer__social a:hover{ background:var(--accent); color:#111; }

.footer__col ul{ list-style:none; margin:0; padding:0; }
.footer__col li{ margin-bottom:.4rem; }
.footer__col a{ color:#fff; text-decoration:none; }
.footer__col a:hover{ text-decoration:underline; }
.footer__col p strong{ color:#fff; font-weight:700; }

/* Mapa: mantiene proporción y alinea con columnas */
.footer__map .map-wrap{
  width: 100%;
  aspect-ratio: 4 / 3;         /* altura proporcional */
  border-radius: 10px;
  overflow: hidden;
  box-shadow: var(--shadow);
  background: rgba(0,0,0,.08);
}
.footer__map iframe{ display:block; width:100%; height:100%; }

/* Franja inferior */
.footer__bottom{ background: var(--primary-600); padding:.8rem 0; font-size:.85rem; }
.footer__bottom .container{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.8rem; }
.footer__links{ list-style:none; display:flex; gap:1rem; margin:0; padding:0; }
.footer__links a{ color:#fff; text-decoration:none; font-size:.85rem; }
.footer__links a:hover{ text-decoration:underline; }

/* Responsive */
@media (max-width: 1100px){
  .footer__top{ grid-template-columns: 1fr 1fr; }
  .footer__map{ grid-column: span 2; } /* mapa ocupa ancho completo abajo */
  .footer__map .map-wrap{ aspect-ratio: 16 / 9; }
}
@media (max-width: 640px){
  .footer__top{ grid-template-columns: 1fr; }
  .footer__map{ grid-column: auto; }
  .footer__map .map-wrap{ aspect-ratio: 4 / 3; }
}

/* Contacto más compacto */
.contact-list{
  list-style:none;
  margin:0; padding:0;
  display:flex; flex-direction:column; 
  gap:.3rem;   /* antes .6rem */
}

.contact-list li{
  display:grid;
  grid-template-columns: 18px 1fr;  /* icono más pegado */
  align-items:start;
  gap:.4rem;   /* antes .6rem */
  padding:.2rem .3rem;  /* menos padding */
  border-radius:6px;
}

.contact-list .icon{ 
  line-height:1; 
  font-size:.95rem; /* más pequeño */
  opacity:.9; 
}

.contact-item .label{
  display:block;
  font-weight:700;
  margin-bottom:0;  /* eliminamos el margen extra */
  font-size:.9rem;
}

.contact-item .value{
  display:block;
  font-size:.88rem;  /* texto un poco más pequeño */
  opacity:.95;
}

/* Links en contacto */
.contact-item a.value{
  color:#fff;
  text-decoration:none;
}
.contact-item a.value:hover{ text-decoration:underline; }


/* ===== Hero / Slider ===== */
.hero-slider{
  position: relative;
  width: 100%;
  margin: 1rem 0 2rem;
  overflow: hidden;
  border-radius: 16px;
  box-shadow: var(--shadow);
}

.hero-track{
  position: relative;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 100%;
  transition: transform .5s ease;
}

.hero-slide{
  position: relative;
  height: clamp(280px, 48vw, 520px);
  display: flex;
  align-items: center;
  isolation: isolate;
}

.hero-bg{
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  z-index: -2;
}
.hero-overlay{
  position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.15) 60%);
}
.hero-content{
  color:#fff;
  max-width: 900px;
}
.hero-kicker{
  display:inline-block; margin-bottom:.35rem;
  padding:.18rem .5rem; border-radius:999px; background: rgba(255,255,255,.18);
  font-weight:600; font-size:.9rem;
}
.hero-title{
  font-size: clamp(1.6rem, 3.5vw, 2.6rem);
  margin: .2rem 0 .4rem;
  line-height:1.15;
}
.hero-desc{
  font-size: clamp(1rem, 1.2vw, 1.15rem);
  margin: 0 0 .9rem; opacity:.95;
}
.hero-actions{ display:flex; gap:.6rem; flex-wrap:wrap; }
.btn-ghost-light{
  background: transparent; border:1px solid rgba(255,255,255,.7);
  color:#fff; padding:.55rem .9rem; border-radius:10px; text-decoration:none; font-weight:600;
}
.btn-ghost-light:hover{ background: rgba(255,255,255,.15); }

/* Controles */
.hero-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  background: rgba(0,0,0,.45); color:#fff; border:0; width:40px; height:40px;
  border-radius:50%; cursor:pointer; display:grid; place-items:center;
}
.hero-nav:hover{ background: rgba(0,0,0,.6); }
.hero-nav.prev{ left:12px; }
.hero-nav.next{ right:12px; }

/* Dots */
.hero-dots{
  position:absolute; left:0; right:0; bottom:12px; display:flex; gap:.4rem; justify-content:center;
}
.hero-dots .dot{
  width:10px; height:10px; border-radius:999px; border:0; background: rgba(255,255,255,.5); cursor:pointer;
}
.hero-dots .dot.is-active{ background:#fff; }

/* Accesibilidad focus */
.hero-nav:focus-visible, .hero-dots .dot:focus-visible, .btn-ghost-light:focus-visible, .btn-primary:focus-visible{
  outline: 3px solid #fff; outline-offset: 2px;
}

/* Dark mode overlay leve distinto */
html[data-theme="dark"] .hero-overlay{
  background: linear-gradient(90deg, rgba(0,0,0,.65) 0%, rgba(0,0,0,.25) 60%);
}



/* ===== Popup Comunicado ===== */
.popup-overlay{
  position: fixed; inset: 0;
  background: rgba(0,0,0,.55);
  display: grid; place-items: center;
  padding: 1rem;
  z-index: 2000;
}
.popup{
  position: relative;
  background: var(--bg-contrast);
  border-radius: 16px;
  box-shadow: var(--shadow);
  width: min(640px, 96vw);
  overflow: hidden;
  animation: popup-in .18s ease-out;
}
@keyframes popup-in{ from { transform: scale(.96); opacity: 0 } to { transform: scale(1); opacity: 1 } }

.popup__img{ display: block; width: 100%; height: auto; }
.popup__imglink{ display:block; }

.popup__close{
  position: absolute; top: .35rem; right: .45rem;
  width: 36px; height: 36px; border: 0; border-radius: 50%;
  background: rgba(0,0,0,.55); color: #fff; font-size: 1.2rem; cursor: pointer;
}
.popup__close:hover{ background: rgba(0,0,0,.7); }

.popup__checkbox{
  display:flex; align-items:center; gap:.5rem;
  padding: .6rem .9rem .9rem;
  font-size: .92rem; color: var(--text);
}
.popup__checkbox input{ transform: translateY(1px); }

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
/* asegura que hidden oculte el overlay sí o sí */
.popup-overlay[hidden] { display: none !important; }



/* ===== Consulta de Colegiados: UI mejorada ===== */
.mod-consulta{ margin: 1.5rem 0 2.5rem; }
.mod-consulta__head h1{ margin:0 0 .25rem }
.mod-consulta__head p{ margin:0 0 1rem; color:var(--muted) }

.consulta-form{ background: var(--bg-contrast); border-radius: 14px; box-shadow: var(--shadow); padding: 1rem; }
.form-row{ display:grid; grid-template-columns: 1.1fr 1fr auto; gap: 1rem; align-items:end; }
.form-field label{ display:block; font-weight:700; margin-bottom:.25rem }
.form-field input[type="text"]{
  width:100%; padding:.65rem .8rem; border:1px solid rgba(0,0,0,.15); border-radius:10px; outline:0;
}
.hint{ display:block; color:var(--muted); margin-top:.25rem; font-size:.88rem }

.captcha-field .captcha-wrap{ display:flex; align-items:center; gap:.5rem; margin-bottom:.4rem }
.captcha-img{ display:block; border-radius:8px; background:#eee }
.btn-ghost.small{ font-size:.85rem; padding:.35rem .6rem; border:1px solid rgba(0,0,0,.2); background:transparent; border-radius:8px; cursor:pointer }
.btn-ghost.small:hover{ background:rgba(0,0,0,.06) }
.form-actions{ display:flex; align-items:center }
.form-errors{ margin-top:.6rem; color:#dc2626; font-weight:600 }

.hp-field{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden } /* honeypot */

.consulta-result{ margin-top: 1rem; }
.loading{ padding:1rem; background: var(--bg-contrast); border-radius:10px; box-shadow: var(--shadow); }
.alert{ padding:1rem; background:#fff3cd; color:#664d03; border:1px solid #ffec99; border-radius:10px }

/* Card de resultado (ya tenías estilos; reforzamos) */
.card{ background: var(--bg-contrast); border-radius: 14px; box-shadow: var(--shadow); overflow:hidden }
.card__header{ display:flex; gap:.5rem; align-items:center; justify-content:space-between; padding:.8rem 1rem; border-bottom:1px solid rgba(0,0,0,.06) }
.badge{ display:inline-block; padding:.25rem .6rem; border-radius:999px; font-weight:700; font-size:.85rem; color:#fff }
.badge.ok{ background:#16a34a }  /* verde */
.badge.bad{ background:#dc2626 } /* rojo */
.muted{ color: var(--muted); font-size:.9rem }

.card__body{ padding:1rem }
.card__body.grid{ display:grid; gap:.8rem; grid-template-columns: repeat(2, minmax(200px, 1fr)) }

@media (max-width: 900px){
  .form-row{ grid-template-columns: 1fr 1fr; }
  .form-actions{ grid-column: 1 / -1 }
}
@media (max-width: 640px){
  .form-row{ grid-template-columns: 1fr; }
  .card__body.grid{ grid-template-columns: 1fr }
}
/* Layout del resultado con foto */
.result-layout{
  display:grid;
  grid-template-columns: 140px 1fr;
  gap: 1rem;
  align-items:start;
}
.avatar{
  width: 120px; height: 120px;
  border-radius: 12px; object-fit: cover; background:#e5e7eb;
  box-shadow: var(--shadow);
}
.result-grid{
  display:grid; gap:.8rem;
  grid-template-columns: repeat(2, minmax(200px, 1fr));
}

/* Badges extra */
.badge.warn{ background:#d97706; }    /* ámbar */
.badge.info{ background:#2563eb; }    /* azul */
.badge.neutral{ background:#6b7280; } /* gris */
.badge.primary{ background:#7f164a; } /* institucional */

@media (max-width: 640px){
  .result-layout{ grid-template-columns: 1fr; }
  .result-grid{ grid-template-columns: 1fr; }
  .avatar{ width:100px; height:100px; }
}


/* ===== Sección Bienvenidos ===== */
.welcome{
  background: var(--bg);
  padding: clamp(2rem, 4vw, 3.5rem) 0;
}

.welcome__grid{
  display: grid;
  grid-template-columns: 1.05fr 1fr;  /* izq | der */
  gap: clamp(1.25rem, 3vw, 2.5rem);
  align-items: start;
}

.welcome__kicker{
  font-weight: 700;
  color: var(--primary);
  margin: 0 0 .4rem;
  letter-spacing: .3px;
}

.welcome__title{
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.1;
  margin: 0 0 1rem;
  font-weight: 800;
}
.welcome__title span{
  color: var(--primary);
}

.welcome__content p{
  margin: .5rem 0 0;
  color: var(--text);
  opacity: .95;
  max-width: 58ch;
}

.welcome__cta{
  display:inline-block;
  margin-top: 1rem;
}

/* Derecha */
.welcome__aside{ width: 100%; }
.welcome__tagline{
  display:flex; align-items:center; gap: .9rem;
  font-weight: 700;
  color: #5b6575;
  letter-spacing: .5px;
  text-transform: uppercase;
  margin: .25rem 0 1rem;
}
.welcome__tagline .bar{
  display:inline-block; width: 3px; height: 42px;
  background: var(--accent); border-radius: 3px;
}

.welcome__figure{
  margin: 0;
  background: var(--bg-contrast);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  box-shadow: var(--shadow);
  overflow: hidden;
}
.welcome__figure img{
  display:block; width:100%; height:auto;
}

/* Responsive */
@media (max-width: 992px){
  .welcome__grid{ grid-template-columns: 1fr; }
  .welcome__tagline{ margin-top: .5rem; }
}


/* ===== Nosotros refinado (solo 2 imágenes) ===== */
.nosotros-hero{ padding: 2.2rem 0 1.2rem; background: var(--bg); border-bottom:1px solid rgba(0,0,0,.06); }
.nosotros-hero h1{ margin:0 0 .25rem; font-size: clamp(2rem, 4vw, 2.6rem); }
.nosotros-hero .lead{ margin:0; color: var(--muted); }

.section{ padding: clamp(1.8rem, 4vw, 2.6rem) 0; }
.section.alt{ background: var(--bg); }
.section-title{ text-align:center; margin:0; font-size: clamp(1.6rem, 3vw, 2rem); }
.section-dots{ display:flex; gap:.36rem; justify-content:center; margin:.35rem 0 1rem; }
.section-dots span{ width:8px; height:8px; border-radius:999px; background:#5f748a; opacity:.7; }
.section-dots .mid{ width:10px; height:10px; background: var(--accent); opacity:1; }

/* Grillas de texto */
.text-grid{ display:grid; gap:1.2rem; grid-template-columns: 1fr 1fr; }
.text-grid.one{ grid-template-columns: 1fr; }
.text-grid p{ line-height:1.75; margin:.6rem 0; opacity:.95; }

/* Media con logo (única imagen permitida aquí) */
.media{ display:grid; grid-template-columns: 320px 1fr; gap: 1.25rem; align-items:center; }
.figure{ width:100%; aspect-ratio: 4 / 3; border-radius:16px; background:#fff; border:1px solid rgba(0,0,0,.08); box-shadow: var(--shadow); overflow:hidden; display:grid; place-items:center; }
.figure--logo img{ width:80%; height:80%; object-fit:contain; display:block; }

/* Ilustre con única imagen (Antonio) */
.ilustre{
  display:grid; grid-template-columns: 180px 1fr; gap: 1rem; align-items:center;
  background: var(--bg-contrast); border:1px solid rgba(0,0,0,.06); border-radius:16px; box-shadow: var(--shadow); padding:1rem;
}
.ilustre .avatar{ width:180px; height:180px; object-fit:cover; border-radius:50%; background:#e5e7eb; display:block; }
.ilustre__body h3{ margin:.2rem 0 .25rem; color: var(--primary); }
.ilustre__body p{ margin:0; line-height:1.7; opacity:.95; }

/* Responsive */
@media (max-width: 980px){
  .text-grid{ grid-template-columns: 1fr; }
  .media{ grid-template-columns: 1fr; }
  .figure{ aspect-ratio: 4/3; }
  .ilustre{ grid-template-columns: 1fr; text-align:center; }
  .ilustre .avatar{ margin-inline:auto; }
}

/* ===== Colegio: versión vertical simple ===== */
.section-colegio.simple .section-title{ text-align:center; }
.section-colegio.simple .section-dots{ justify-content:center; }

.section-colegio.simple .container.narrow{
  max-width: 900px;          /* ancho cómodo de lectura */
  margin-inline: auto;
}

.section-colegio.simple .colegio-logo{
  margin: .6rem auto 1rem;   /* centrado */
  width: clamp(140px, 18vw, 200px);   /* LOGO más pequeño */
  aspect-ratio: 1 / 1;
  background: transparent;   /* SIN fondo blanco */
  border: 0;
  box-shadow: none;
  padding: 0;
  display: grid; place-items: center;
}
.section-colegio.simple .colegio-logo img{
  width: 100%; height: 100%;
  object-fit: contain; display:block;
}

.section-colegio.simple .colegio-text{
  max-width: 72ch;           /* controla largo de línea */
  margin: 0 auto;
  text-align: justify;       /* justificado */
  text-justify: inter-word;
  hyphens: auto;
  line-height: 1.85;
}
.section-colegio.simple .colegio-text p{ margin:.6rem 0; }

@media (max-width: 600px){
  .section-colegio.simple .colegio-logo{ width: 150px; }
}



/* ===== Mes del Contador – Calendario ===== */
.month-calendar{ background: var(--bg); padding: clamp(1.8rem,4vw,2.6rem) 0; }
.mc-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; }
.mc-head h2{ margin:0; font-size: clamp(1.4rem,3vw,1.9rem); }
.mc-sub{ margin:.2rem 0 0; color: var(--muted); }

.mc-views{ display:flex; gap:.4rem; }
.mc-view{ border:1px solid rgba(0,0,0,.12); background:#fff; padding:.35rem .6rem; border-radius:999px; cursor:pointer; }
.mc-view.is-active{ background:var(--primary); border-color:var(--primary); color:#fff; }

.mc-bar{ display:flex; align-items:center; justify-content:center; gap:.75rem; margin:.8rem 0 .6rem; }
.mc-month{ font-weight:700; }
.mc-nav{ width:34px; height:34px; border-radius:50%; border:1px solid rgba(0,0,0,.12); background:#fff; cursor:pointer; }
.mc-nav:hover{ background:rgba(0,0,0,.04); }

.mc-body.is-grid .mc-grid, .mc-body .mc-grid{ display:block; }
.mc-body.is-list .mc-grid{ display:none; }

.mc-grid{ background: var(--bg-contrast); border:1px solid rgba(0,0,0,.08); border-radius:14px; box-shadow:var(--shadow); overflow:hidden; }
.mc-week{ display:grid; grid-template-columns: repeat(7, 1fr); }
.mc-dayname{ padding:.5rem; text-align:center; font-weight:700; background:rgba(0,0,0,.03); }
.mc-cell{ position:relative; min-height:88px; padding:.35rem; border:0; border-right:1px solid rgba(0,0,0,.06); border-bottom:1px solid rgba(0,0,0,.06); text-align:left; background:#fff; cursor:pointer; }
.mc-cell:is(.is-out){ background:#fafafa; cursor:default; }
.mc-daynum{ font-weight:700; font-size:.95rem; color:#111; }
.mc-pills{ margin-top:.25rem; display:flex; flex-wrap:wrap; gap:.25rem; }
.pill{ --c:#64748b; background: color-mix(in srgb, var(--c) 12%, transparent); color: var(--c); border:1px solid color-mix(in srgb, var(--c) 30%, transparent); border-radius:8px; padding:.1rem .35rem; font-size:.78rem; }
.pill.more{ --c:#374151; }

.mc-list{ background: var(--bg-contrast); border:1px solid rgba(0,0,0,.08); border-radius:14px; box-shadow:var(--shadow); padding:.6rem; }
.mc-item{ display:grid; grid-template-columns: 58px 1fr auto; gap:.6rem; align-items:center; border-bottom:1px dashed rgba(0,0,0,.08); padding:.45rem 0; }
.mc-item:last-child{ border-bottom:0; }
.mc-item-date{ text-align:center; }
.mc-item-day{ font-weight:800; font-size:1.15rem; line-height:1; }
.mc-item-mon{ text-transform:uppercase; font-size:.75rem; color:var(--muted); }
.mc-item-body h4{ margin:.1rem 0; font-size:1rem; }
.mc-meta{ margin:0; color:var(--muted); font-size:.9rem; }
.mc-speakers{ margin:.2rem 0 0; }
.mc-item-actions .btn-ghost{ border:1px solid rgba(0,0,0,.15); background:#fff; padding:.35rem .6rem; border-radius:8px; cursor:pointer; }
.mc-empty{ padding:1rem; text-align:center; color:var(--muted); }

.mc-legend{ display:flex; flex-wrap:wrap; gap:.6rem 1rem; margin-top:.6rem; color:var(--muted); }
.mc-legend .dot{ display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:.35rem; vertical-align:middle; }

/* Committee colors */
.auditoria   { --c:#2563eb; }
.investigacion{ --c:#9333ea; }
.tributacion { --c:#d97706; }
.peritos     { --c:#dc2626; }
.servicios   { --c:#0ea5e9; }
.contadmin   { --c:#16a34a; }
.filial      { --c:#f43f5e; }
.institucional{ --c:#7f164a; }

.mc-legend .auditoria{ background:#2563eb; }
.mc-legend .investigacion{ background:#9333ea; }
.mc-legend .tributacion{ background:#d97706; }
.mc-legend .peritos{ background:#dc2626; }
.mc-legend .servicios{ background:#0ea5e9; }
.mc-legend .contadmin{ background:#16a34a; }
.mc-legend .filial{ background:#f43f5e; }

/* Modal */
.mc-modal{ position:fixed; inset:0; display:block; }
.mc-modal[hidden]{ display:none !important; }
.mc-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.45); }
.mc-dialog{ position:relative; z-index:1; width:min(680px,92%); margin:8vh auto 0; background:#fff; border-radius:16px; box-shadow:var(--shadow); }
.mc-close{ position:absolute; top:.4rem; right:.6rem; border:0; background:transparent; font-size:1.6rem; cursor:pointer; }
.mc-dlg-head{ padding:1rem 1rem .4rem; }
.mc-dlg-head h3{ margin:.25rem 0 .2rem; }
.mc-dlg-sub{ margin:0; color:var(--muted); }
.mc-dlg-body{ padding:0 1rem 1rem; }
.mc-dlg-item{ padding:.5rem 0; border-bottom:1px dashed rgba(0,0,0,.08); }
.mc-dlg-item:last-child{ border-bottom:0; }
.mc-dlg-meta{ margin:.2rem 0; color:var(--muted); }
.mc-dlg-speakers{ margin:.2rem 0 0; }
.mc-dlg-actions{ padding:.6rem 1rem 1rem; display:flex; justify-content:flex-end; }
/* Navegación deshabilitada visualmente */
.mc-nav.is-disabled,
.mc-nav[disabled]{
  opacity:.45; pointer-events:none; cursor:default;
}

/* Chips de comité en celdas (compactos) */
.mc-evts{ margin-top:.25rem; display:flex; flex-direction:column; gap:.22rem; }
.mc-evt{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* Nuevo estilo de chip */
.mc-evt--chip{
  --c:#64748b;
  display:inline-block;
  font-size:.74rem;
  line-height:1.25;
  font-weight:600;
  padding:.14rem .5rem;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--c) 35%, transparent);
  background: color-mix(in srgb, var(--c) 12%, transparent);
  color:#111;
}

/* El “+N más” */
.mc-evt.more{
  --c:#6b7280;
  border-left:none;
  border:1px dashed color-mix(in srgb, var(--c) 35%, transparent);
  border-radius:999px;
  padding:.12rem .45rem;
  background: rgba(0,0,0,.04);
  color:#374151;
}

/* ===== Calendario: fijar altura y evitar deformaciones ===== */
.mc-week{ grid-template-columns: repeat(7, minmax(0, 1fr)); } /* que nada empuje columnas */
.mc-cell{
  height: 96px;                 /* altura fija por celda */
  min-height: 96px;
  overflow: hidden;             /* recorta exceso vertical */
}
.mc-evts{ max-height: 54px; overflow: hidden; } /* lista de chips recortada */
.mc-evt--chip{ max-width: 100%; }               /* jamás desbordar horizontalmente */


/* Colores por comité (reutilizamos los mismos tokens) */
.mc-evt--chip.auditoria     { --c:#2563eb; }
.mc-evt--chip.investigacion { --c:#9333ea; }
.mc-evt--chip.tributacion   { --c:#d97706; }
.mc-evt--chip.peritos       { --c:#dc2626; }
.mc-evt--chip.servicios     { --c:#0ea5e9; }
.mc-evt--chip.contadmin     { --c:#16a34a; }
.mc-evt--chip.filial        { --c:#f43f5e; }
.mc-evt--chip.institucional { --c:#7f164a; }



/* ===== Slider de cursos: grande para flyers cuadrados ===== */
.courses-section{padding:1.6rem 0;background:var(--bg)}
.courses-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}
.courses-actions .btn-ghost{border:1px solid rgba(0,0,0,.15);padding:.45rem .8rem;border-radius:10px;text-decoration:none;color:inherit}

.c-slider{position:relative}
.c-viewport{overflow:hidden}
.c-track{display:flex;transition:transform .45s ease;will-change:transform}

/* el ancho por slide lo define JS; aquí solo damos aire y look */
.c-slide{flex:0 0 auto;padding:.8rem}

.c-card{
  display:block;
  background:var(--bg-contrast);
  border:1px solid rgba(0,0,0,.08);
  border-radius:18px;
  overflow:hidden;
  box-shadow:var(--shadow);
  text-decoration:none; color:inherit;
}

/* Flyers CUADRADOS y grandes, SIN recorte */
.c-media{
  aspect-ratio: 1 / 1;             /* cuadrado */
  background:#fff;
  display:flex; align-items:center; justify-content:center;
  padding:.6rem;                    /* margen interno para que no “toque” bordes */
  border-bottom:1px solid rgba(0,0,0,.06);
}
.c-media img{
  width:100%; height:100%;
  object-fit: contain;              /* se ve COMPLETO, sin corte */
  display:block;
}

.c-title{
  font-size:1.12rem;
  margin:.75rem 1rem 1rem 1rem;
  line-height:1.28;
}

/* Botones */
.c-nav{
  position:absolute; top:45%; transform:translateY(-50%);
  background:#fff; border:1px solid rgba(0,0,0,.15);
  width:40px; height:40px; border-radius:50%; cursor:pointer;
  box-shadow:0 8px 18px rgba(0,0,0,.08);
}
.c-nav.prev{left:-.25rem}
.c-nav.next{right:-.25rem}






