/* =========================================================
   1) Variables y base
   ========================================================= */
:root{
  --bg:#0b1220;
  --primary:#0a4a7a;
  --muted:#64748b;
  --card:#ffffff;
  --line:#e5e7eb;
  --soft:#f8fafc;
  --shadow:0 10px 30px rgba(2,8,23,.08);
  --radius:18px;
}

*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;background:#f3f5f9;color:#0b1f33}
a{color:inherit}
img{max-width:100%;display:block}
.container{max-width:1100px;margin:0 auto;padding:0 14px}

.small{font-size:12px;color:var(--muted)}
.meta{font-size:12px;color:var(--muted)}

/* =========================================================
   2) Header / Topbar
   ========================================================= */
.topbar{background:var(--primary);color:#fff}
.topbargrid{
  display:flex;align-items:center;justify-content:space-between;
  gap:14px;padding:14px 0;flex-wrap:wrap
}
.brand-title{font-weight:900;letter-spacing:.2px}
.brand-sub{font-size:13px;opacity:.92}

.nav{display:flex;gap:10px;flex-wrap:wrap}
.nav a{color:#fff;text-decoration:none;font-weight:800;padding:8px 10px;border-radius:999px}
.nav a.active{background:rgba(255,255,255,.16)}

/* =========================================================
   3) Componentes: Cards, secciones, textos
   ========================================================= */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.hd{padding:16px 16px 0}
.hd h1{margin:0 0 6px;font-size:24px}
.hd p{margin:0 0 14px;color:var(--muted)}
.bd{padding:16px}

.section{margin-top:14px}
.section-title{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;margin:16px 0 8px
}
.section-title h2{margin:0;font-size:18px}

/* =========================================================
   4) Botones / Pills / Badges / Inputs
   ========================================================= */
.pill{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid var(--line);background:var(--soft);
  padding:10px 12px;border-radius:999px;
  text-decoration:none;font-weight:800
}
.pill:hover{filter:brightness(.98)}
.pill span{font-weight:900}

.badge{
  display:inline-flex;align-items:center;
  padding:6px 10px;border-radius:999px;font-size:12px;
  font-weight:900;background:#e0f2fe;color:#0b1f33;border:1px solid #bae6fd
}
.badge.comunicado{background:#fef9c3;border-color:#fde68a}
.badge.alerta{background:#fee2e2;border-color:#fecaca}

.input, select{
  width:auto;max-width:100%;
  padding:10px 12px;border-radius:14px;
  border:1px solid var(--line);background:#fff;font-weight:700
}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:9px 12px;border-radius:12px;
  background:var(--primary);color:#fff;text-decoration:none;font-weight:900
}
.btn:hover{filter:brightness(.98)}

/* =========================================================
   5) Filtros (listados)
   ========================================================= */
.filters{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  max-width:100%;
}

.filtersgrid{
  display:grid;
  grid-template-columns: 1fr;
  gap:16px;
  align-items:start;
}

/* =========================================================
   6) Grillas (Noticias / Docs)
   ========================================================= */
.newsgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}
@media(max-width:980px){.newsgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.newsgrid{grid-template-columns:1fr}}

.newsitem img{
  width:100%;height:160px;object-fit:cover;
  border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)
}
.ttl{font-weight:950;font-size:16px;line-height:1.2}
.ttl a{text-decoration:none}
.ttl a:hover{text-decoration:underline}

.docgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:10px}
@media(max-width:900px){.docgrid{grid-template-columns:1fr}}
.doccard{border:1px solid var(--line);border-radius:16px;padding:12px;background:var(--soft)}
.doccard .ttl{margin-top:6px}

/* =========================================================
   7) Tablas + vista móvil
   ========================================================= */
.tablewrap{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:auto;
  margin-top:12px
}
table{width:100%;border-collapse:collapse;min-width:760px}
th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}

.cardsmobile{display:none;margin-top:12px;gap:12px}
@media(max-width:820px){
  .tablewrap{display:none}
  .cardsmobile{display:grid}
}

/* Tabla: control de anchos */
.tablewrap table{table-layout: fixed;width: 100%;}

.tablewrap th.col-proc,
.tablewrap td.col-proc{width: 260px;}

.tablewrap th.col-desc,
.tablewrap td.col-desc{width: 360px;}

.tablewrap th.col-proc-conv,
.tablewrap td.col-proc-conv{width: 200px;}

.tablewrap th.col-desc-conv,
.tablewrap td.col-desc-conv{width: 260px;}

.desc-link{
  display:-webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow:hidden;
  font-size:12px;
  font-weight:500;
  line-height:1.25;
  text-decoration:none;
}
.desc-link:hover{text-decoration:underline}

/* =========================================================
   8) Home / Hero
   ========================================================= */
.heroimg{width:100%;max-height:420px;object-fit:cover;border-radius:14px}
.quicklinks{display:flex;gap:10px;flex-wrap:wrap}

/* =========================================================
   9) Breadcrumbs + contenido
   ========================================================= */
.content{line-height:1.55}
.content p{margin:0 0 10px}

.crumbs{
  font-size:12px;color:var(--muted);
  display:flex;gap:8px;align-items:center;flex-wrap:wrap
}
.crumbs a{text-decoration:none;color:var(--muted)}
.crumbs a:hover{text-decoration:underline}

/* =========================================================
   10) Footer
   ========================================================= */
footer{background:var(--bg);color:#e5e7eb;margin-top:24px;padding:22px 0}
footer a{color:#e5e7eb}
.footergrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.footergrid h4{margin:0 0 10px}
.footergrid ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.copy{border-top:1px solid rgba(255,255,255,.12);margin-top:14px;padding-top:10px;font-size:12px;opacity:.85}
@media(max-width:900px){.footergrid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.footergrid{grid-template-columns:1fr}}

/* =========================================================
   11) Infobox + variante Header (infobox--hd)
   ========================================================= */
.infobox{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:var(--soft);
  width:100%;
}

.infotext{
  margin:0;
  font-weight:600;
  font-size:12px;
  line-height:1.3;
  color:var(--muted);
}

.downloadword{
  margin-top:8px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  font-weight:800;
  font-size:12px;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid #cbd5e1;
  background:#e0f2fe;
  color:#0b1f33;
}
.downloadword:hover{filter:brightness(.98)}

.wordicon{
  width:26px;
  height:26px;
  border-radius:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:950;
  border:1px solid #cbd5e1;
  background:#fff;
}

.infobox--hd{
  max-width:550px;
  background:rgba(2,132,199,.08);
  border-color:rgba(2,132,199,.35);
  box-shadow:none;
}
.infobox--hd .infotext{
  font-size:13px;
  color:var(--primary);
}

.hdgrid{
  display:grid;
  grid-template-columns: 1fr auto;
  gap:18px;
  align-items:start;
}
.hdtext h1{font-size:26px;letter-spacing:.2px}
.hdtext p{max-width:680px}

@media (max-width: 900px){
  .hdgrid{grid-template-columns:1fr}
  .infobox--hd{max-width:none}
}
@media (max-width: 520px){
  .infobox--hd{padding:10px}
  .infobox--hd .downloadword{
    width:100%;
    justify-content:center;
  }
}

/* =========================================================
   12) Carrusel Home
   ========================================================= */
.carousel .hd{padding-bottom:0}
.carouselwrap{
  position:relative;
  margin-top:0px;
  border-radius:18px;
  overflow:hidden;
}

.cartrack{position:relative;height:360px;}
@media(max-width:900px){.cartrack{height:260px}}

.carslide{
  position:absolute;
  inset:0;
  opacity:0;
  transform:scale(1.01);
  transition:opacity .45s ease, transform .45s ease;
}
.carslide.is-active{opacity:1;transform:scale(1);z-index:2;}

.carlink{display:block;height:100%}
.carimg{width:100%;height:100%;object-fit:cover;display:block}

.caroverlay{
  position:absolute;
  left:14px;right:14px;bottom:14px;
  padding:14px 14px;
  border-radius:16px;
  background:rgba(0,0,0,.45);
  backdrop-filter: blur(8px);
  color:#fff;
}
.carttl{font-weight:950;font-size:18px;line-height:1.15;}
.cardsc{opacity:.95;margin-top:6px;line-height:1.25;}

.carbtn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  width:42px;height:42px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.55);
  background:rgba(0,0,0,.35);
  color:#fff;
  font-size:26px;
  font-weight:900;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
}
.carbtn:hover{background:rgba(0,0,0,.5)}
.carbtn.prev{left:12px}
.carbtn.next{right:12px}

.cardots{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:10px;
  display:flex;
  gap:7px;
  z-index:6;
}
.dot{
  width:10px;height:10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.7);
  background:rgba(255,255,255,.25);
  cursor:pointer;
}
.dot.is-active{background:#fff}

/* =========================================================
   13) Notificaciones (Inicio)
   ========================================================= */
.notifs{
  position: fixed;
  right: 16px;
  top: 90px;
  z-index: 50;
  display: grid;
  gap: 10px;
}

.notifbubble{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: 340px;
  padding: 10px 12px;
  text-decoration: none;
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(15, 23, 42, .12);
  box-shadow: 0 10px 30px rgba(2, 8, 23, .16);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.notifbubble:hover{
  filter: brightness(.98);
  transform: translateY(-1px);
  transition: transform .15s ease, filter .15s ease;
}

.notifdot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #22c55e;
  box-shadow: 0 0 0 4px rgba(34,197,94,.16);
  flex: 0 0 auto;
}

.notiftext{
  font-weight: 800;
  font-size: 13px;
  color: #0b1f33;
  line-height: 1.15;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.notifchev{
  font-weight: 900;
  font-size: 18px;
  opacity: .7;
  margin-left: 2px;
}

@media (max-width: 520px){
  .notifs{ left: 14px; right: 14px; }
  .notifbubble{ max-width: 100%; justify-content: space-between; }
}

/* =========================================================
   14) Sobre Nosotros (tipo B) - usado por sobre-nosotros.php
   ========================================================= */
.about-block{
  display:grid;
  grid-template-columns: 1fr 1.1fr;
  gap:16px;
  align-items:stretch;
  margin-top:12px;
}

.about-block.right{
  grid-template-columns: 1.1fr 1fr;
}

.about-img{
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  background:var(--soft);
  min-height:220px;
}

.about-img img{
  width:100%;
  height:100%;
  max-height:320px;
  object-fit:cover;
  display:block;
}

.about-text{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  padding:14px;
}

.about-text h2{
  margin:0 0 8px;
  font-size:18px;
}

.about-text p{
  margin:0 0 10px;
  line-height:1.6;
  color:#0b1f33;
}

.valores-lista{
  margin:8px 0 0;
  padding-left:18px;
  display:grid;
  gap:6px;
}

.valores-lista li{line-height:1.5;}

.funciones-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
  margin-top:10px;
}

.funcion-card{
  border:1px solid var(--line);
  background:#fff;
  border-radius:16px;
  padding:12px 14px;
  line-height:1.55;
  position:relative;
}

.funcion-card::before{
  content:"";
  position:absolute;
  left:0;
  top:12px;
  bottom:12px;
  width:4px;
  background:rgba(10, 74, 122, .25);
  border-radius:999px;
}

@media (max-width: 900px){
  .about-block,
  .about-block.right{
    grid-template-columns: 1fr;
  }

  .about-img{min-height:200px;}
  .about-img img{max-height:280px;}
  .funciones-grid{grid-template-columns:1fr;}
}
