/*
 * ICLEP — Estilos globales institucionales
 * Se cargan en todas las páginas del sitio WordPress.
 * Variables, flagstrip, header/topbar y footer.
 */

/* ===== VARIABLES INSTITUCIONALES ===== */
:root {
  --ink:         #0e2a52;
  --navy:        #123a73;
  --paper:       #ffffff;
  --paper-deep:  #eef3fa;
  --accent:      #c8102e;
  --accent-deep: #9c0c23;
  --blue:        #1d4e9c;
  --muted:       #5c6b82;
  --line:        rgba(14,42,82,.14);
  --display:     "Fraunces", Georgia, serif;
  --body:        "Newsreader", Georgia, serif;
}

/* ===== RESET BASE ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--body);
  font-size: 18px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* Paper grain sutil */
body::before {
  content: "";
  position: fixed; inset: 0;
  pointer-events: none; z-index: 1; opacity: .025;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ===== WRAPPER ===== */
.iclep-wrap {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 40px;
  position: relative;
  z-index: 2;
}

/* ===== FLAGSTRIP (banda tricolor) ===== */
.iclep-flagstrip {
  height: 4px;
  background: linear-gradient(90deg, var(--accent) 0 38%, #fff 38% 62%, var(--blue) 62% 100%);
}

/* ===== HEADER / TOPBAR ===== */
header.iclep-topbar {
  border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
}
.iclep-topbar .iclep-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100px;
}

/* Logo / brand */
.iclep-brand {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-family: var(--display);
  font-weight: 600;
  font-size: 1.4rem;
  letter-spacing: -.01em;
  text-decoration: none;
  color: var(--ink);
}
.iclep-brand .full {
  color: var(--muted);
  font-weight: 400;
  font-size: .72rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}

/* Navegación principal */
nav.iclep-nav ul {
  display: flex;
  gap: 4px;
  list-style: none;
  align-items: center;
}
nav.iclep-nav a {
  display: block;
  color: var(--ink);
  text-decoration: none;
  font-size: .78rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 10px 13px;
  border-radius: 4px;
  transition: color .2s;
  white-space: nowrap;
}
nav.iclep-nav a:hover { color: var(--accent); }
nav.iclep-nav li.active a { color: var(--accent); }

/* Menú hamburguesa (móvil) */
.iclep-menu-toggle {
  display: none;
  background: none;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px 10px;
  cursor: pointer;
  color: var(--ink);
}
@media (max-width: 1080px) {
  nav.iclep-nav { display: none; }
  .iclep-menu-toggle { display: flex; align-items: center; }
  nav.iclep-nav.open { display: block; position: absolute; top: 78px; left: 0; right: 0; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--line); padding: 12px 0; }
  nav.iclep-nav.open ul { flex-direction: column; gap: 0; }
  nav.iclep-nav.open a { padding: 14px 24px; font-size: .86rem; }
}

/* ===== FOOTER ===== */
footer.iclep-footer {
  background: var(--paper-deep);
  border-top: 1px solid var(--line);
  padding: 46px 0;
}
footer.iclep-footer .iclep-wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 18px;
}
footer.iclep-footer .iclep-brand { font-size: 1.1rem; }
.iclep-motto {
  font-family: var(--display);
  font-style: italic;
  color: var(--accent);
  font-size: 1rem;
}
footer.iclep-footer small {
  color: var(--muted);
  font-size: .8rem;
}

/* ===== FOOTER COMPLETO ===== */
footer.iclep-footer-full {
  background: var(--paper-deep);
  border-top: 1px solid var(--line);
  padding: 60px 0 40px;
}
.fgrid { display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; margin-bottom:40px; }
.fcol h5 { font-family:var(--display); font-weight:600; font-size:.95rem; margin-bottom:14px; letter-spacing:.02em; }
.fcol a { display:block; color:var(--muted); text-decoration:none; font-size:.9rem; padding:4px 0; transition:color .2s; }
.fcol a:hover { color:var(--accent); }
.fbrand { max-width:300px; }
.fbrand .iclep-brand { font-size:1.3rem; margin-bottom:10px; }
.fbrand .motto { font-family:var(--display); font-style:italic; color:var(--accent); font-size:1rem; margin-top:8px; }
.fbottom { border-top:1px solid var(--line); padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.fbottom small { color:var(--muted); font-size:.8rem; letter-spacing:.03em; }

/* ===== SUBMENÚS DROPDOWN ===== */
nav.main > ul { display:flex; gap:4px; list-style:none; align-items:center; }
nav.main > ul > li { position:relative; }
nav.main a { display:block; color:var(--ink); text-decoration:none; font-size:.80rem; letter-spacing:.04em; text-transform:uppercase; padding:8px 9px; border-radius:4px; transition:color .2s; white-space:nowrap; }
nav.main > ul > li > a:hover { color:var(--accent); }
nav.main > ul > li.active > a { color:var(--accent); }

.submenu { position:absolute; top:calc(100% + 10px); left:0; min-width:280px; background:#fff; border:1px solid var(--line); border-radius:8px; box-shadow:0 18px 48px -18px rgba(14,42,82,.45); padding:8px; list-style:none; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .22s ease,transform .22s ease,visibility .22s; z-index:100; }
.submenu::before { content:""; position:absolute; top:-10px; left:0; right:0; height:10px; }
.has-sub:hover .submenu, .has-sub:focus-within .submenu { opacity:1; visibility:visible; transform:translateY(0); }
.submenu li { border-radius:6px; overflow:hidden; }
.submenu a { display:flex; flex-direction:column; gap:2px; padding:12px 16px; text-transform:none; letter-spacing:0; font-size:.95rem; border-left:3px solid transparent; transition:all .18s; }
.submenu a:hover { background:var(--paper-deep); border-left-color:var(--accent); color:var(--ink); }
.submenu a .sm-label { font-family:var(--display); font-weight:500; font-size:1rem; }
.submenu a .sm-desc { font-size:.78rem; color:var(--muted); letter-spacing:.01em; }

/* ===== BURGER / MENÚ MÓVIL ===== */
.burger { display:none; background:none; border:1px solid var(--line); border-radius:6px; width:46px; height:42px; cursor:pointer; flex-direction:column; gap:5px; align-items:center; justify-content:center; }
.burger span { width:20px; height:2px; background:var(--ink); transition:.3s; }

@media (max-width:1080px) {
  .burger { display:flex; }
  nav.main { position:fixed; inset:82px 0 auto 0; background:#fff; border-bottom:1px solid var(--line); max-height:0; overflow:hidden; transition:max-height .4s ease; box-shadow:0 20px 40px -20px rgba(14,42,82,.4); }
  nav.main.open { max-height:80vh; overflow-y:auto; }
  nav.main > ul { flex-direction:column; align-items:stretch; gap:0; padding:12px 24px; }
  nav.main > ul > li { border-bottom:1px solid var(--line); }
  nav.main a { padding:15px 6px; font-size:.80rem; }
  .submenu { position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:none; padding:0 0 10px 14px; min-width:0; max-height:0; overflow:hidden; transition:max-height .3s; }
  .has-sub.exp .submenu { max-height:600px; }
  .has-sub > a::after { margin-left:auto; }
}

/* ===== LOGO ===== */
.iclep-logo-link { display:flex; align-items:center; text-decoration:none; }
.iclep-logo { height: 90px; width: auto; display:block; }
@media (max-width: 768px) { .iclep-logo { height: 38px; } }

/* ===== CORRECCIÓN ALINEACIÓN VERTICAL HEADER ===== */
.iclep-topbar .iclep-wrap {
  height: auto;
  min-height: 90px;
  padding-top: 12px;
  padding-bottom: 12px;
  align-items: center;
}
.iclep-logo { height: 90px; width: auto; display:block; }
nav.main a { line-height: 1; }

/* ===== RESET COMPLETO HEADER GENERATEPRESS ===== */
.iclep-topbar .iclep-wrap {
  height: auto !important;
  min-height: 100px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}
nav.main ul {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 4px !important;
}
nav.main > ul > li {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  float: none !important;
}
nav.main a {
  background: transparent !important;
  border: none !important;
  line-height: 1 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.iclep-logo { height: 90px !important; width: auto !important; }

/* ===== CORRECCIÓN SUBMENÚ ===== */
nav.main > ul > li > a {
  line-height: 1 !important;
}
.submenu a {
  line-height: 1.4 !important;
  display: flex !important;
  flex-direction: column !important;
}
.submenu ul, .submenu {
  flex-direction: column !important;
  display: block !important;
}
.submenu li {
  display: block !important;
  width: 100% !important;
}

/* ===== FIX DEFINITIVO SUBMENÚ ===== */
.iclep-topbar .submenu,
.iclep-topbar nav.main ul.submenu {
  display: block !important;
  flex-direction: unset !important;
  position: absolute !important;
  top: calc(100% + 10px) !important;
  left: 0 !important;
  min-width: 280px !important;
  background: #fff !important;
  border: 1px solid var(--line) !important;
  border-radius: 8px !important;
  box-shadow: 0 18px 48px -18px rgba(14,42,82,.45) !important;
  padding: 8px !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(8px) !important;
  transition: opacity .22s ease, transform .22s ease, visibility .22s !important;
  z-index: 100 !important;
}
.iclep-topbar .has-sub:hover .submenu,
.iclep-topbar .has-sub:focus-within .submenu {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
}
.iclep-topbar .submenu li {
  display: block !important;
  width: 100% !important;
  float: none !important;
}
.iclep-topbar .submenu a {
  display: flex !important;
  flex-direction: column !important;
  line-height: 1.4 !important;
  padding: 12px 16px !important;
  gap: 2px !important;
}

/* ===== CRÉDITOS FOOTER ===== */
.fcredits {
  background: var(--ink);
  text-align: center;
  padding: 14px 0;
}
.fcredits small {
  color: rgba(255,255,255,.55);
  font-size: .78rem;
  letter-spacing: .06em;
}

/* ===== CRÉDITOS FOOTER ===== */
.fcredits {
  background: var(--ink);
  text-align: center;
  padding: 14px 0;
}
.fcredits small {
  color: rgba(255,255,255,.55);
  font-size: .78rem;
  letter-spacing: .06em;
}

/* ===== CRÉDITOS FOOTER ACTUALIZADO ===== */
.fcredits {
  background: var(--paper-deep) !important;
  text-align: center !important;
  padding: 6px 0 10px !important;
  border-top: 1px solid var(--line) !important;
}
.fcredits small {
  color: var(--muted) !important;
  font-size: .78rem !important;
  letter-spacing: .06em !important;
}

/* ===== QUITAR BORDE CRÉDITOS ===== */
.fcredits {
  border-top: none !important;
}

/* ===== NEUTRALIZAR GENERATEPRESS EN PLANTILLAS ICLEP ===== */
.iclep-full-template .site-content,
.iclep-full-template .content-area,
.iclep-full-template .site-main,
.iclep-full-template article.post,
.iclep-full-template .inside-article,
.iclep-full-template .entry-content,
.iclep-full-template .inside-page-hero,
.iclep-full-template .page-hero-container {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
}
.iclep-full-template #page,
.iclep-full-template #content {
    padding: 0 !important;
    margin: 0 !important;
}
.iclep-full-template .generate-columns-container {
    max-width: 100% !important;
}


/* Motto siempre en rojo */
footer .motto, .fbrand .motto, p.motto { color: var(--accent) !important; font-family: var(--display) !important; font-style: italic !important; }

/* === HEADER UNIFICADO === */
header.iclep-topbar div.iclep-wrap a.iclep-logo-link img.iclep-logo { height: 81px !important; width: auto !important; max-width: none !important; }
header.iclep-topbar nav.main a { font-size: .80rem !important; letter-spacing: .04em !important; padding: 8px 9px !important; }

/* Neutralizar padding del body de GeneratePress en single posts */
.single.iclep-full-template body,
.iclep-full-template #page,
.iclep-full-template .site-content,
.iclep-full-template .content-area {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}
