/* ==========================================================================
   Política Sin Rodeos — hoja de estilos principal
   Concepto: "registro/expediente" — los hechos quedan registrados.
   ========================================================================== */

:root{
  --ink:        #14171C;   /* texto principal / fondo oscuro */
  --ink-soft:   #3B4048;
  --paper:      #EEF1EC;   /* fondo general, papel frío */
  --paper-2:    #E3E7E0;   /* fondo alterno / tarjetas */
  --panel:      #0F1720;   /* barra superior oscura */
  --red:        #A31621;   /* rojo sello / acento primario */
  --red-dark:   #7C1119;
  --teal:       #1F5C58;   /* acento secundario / enlaces */
  --gold:       #B08D2B;   /* metadatos, tinta de sello */
  --line:       #C9CDC4;
  --line-dark:  #2A2F36;
  --white:      #FFFFFF;

  --font-display: "Fraunces", "Georgia", serif;
  --font-body:    "Public Sans", "Segoe UI", sans-serif;
  --font-mono:    "IBM Plex Mono", "Courier New", monospace;

  --radius: 2px;
  --container: 1180px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

a{ color:var(--teal); text-decoration:none; }
a:hover{ color:var(--red); }
img{ max-width:100%; display:block; }

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 20px;
}

.eyebrow{
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--red);
}

.expediente{
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.06em;
  color:var(--gold);
  text-transform:uppercase;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--ink);
  line-height:1.1;
  margin:0 0 .5rem;
  font-weight:600;
}

/* ---------- barra superior de utilidad ---------- */
.utility-bar{
  background:var(--panel);
  color:#B9C2C8;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.04em;
}
.utility-bar .container{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:6px;
  padding-bottom:6px;
  flex-wrap:wrap;
  gap:6px;
}
.utility-bar a{ color:#B9C2C8; }
.utility-bar a:hover{ color:var(--white); }
.utility-bar .social a{ margin-left:14px; }

/* ---------- masthead ---------- */
.masthead{
  background:var(--paper);
  border-bottom:4px double var(--ink);
  padding:26px 0 16px;
}
.masthead .container{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
}
.masthead-brand{ display:flex; align-items:center; gap:14px; }
.stamp-mark{
  width:56px;height:56px;flex:0 0 56px;
  border:2px solid var(--red);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  transform:rotate(-8deg);
  color:var(--red);
  font-family:var(--font-mono);
  font-size:.6rem;
  letter-spacing:.05em;
  text-align:center;
  line-height:1.1;
  padding:4px;
}
.masthead h1{
  font-size:2.5rem;
  letter-spacing:-.01em;
  margin:0;
}
.masthead .slogan{
  font-family:var(--font-mono);
  font-size:.82rem;
  color:var(--ink-soft);
  letter-spacing:.02em;
  margin-top:2px;
}
.masthead-date{
  font-family:var(--font-mono);
  font-size:.78rem;
  color:var(--ink-soft);
  text-align:right;
}

/* ---------- navegación ---------- */
.site-nav{
  background:var(--ink);
  border-bottom:1px solid var(--line-dark);
}
.site-nav .container{ padding-left:20px; padding-right:20px; }
.navbar-nav .nav-link{
  color:#D8DCD4 !important;
  font-family:var(--font-body);
  font-weight:600;
  font-size:.86rem;
  letter-spacing:.02em;
  padding:.7rem .85rem !important;
  text-transform:uppercase;
}
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active{
  color:var(--white) !important;
  background:var(--red);
}
.navbar-toggler{ border-color:var(--line-dark); }
.dropdown-menu{
  background:var(--panel);
  border:1px solid var(--line-dark);
  border-radius:0;
}
.dropdown-item{
  color:#D8DCD4;
  font-size:.85rem;
  font-family:var(--font-body);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.dropdown-item:hover,.dropdown-item:focus{
  background:var(--red);
  color:var(--white);
}

/* ---------- hero ---------- */
.hero{
  padding:34px 0 10px;
  border-bottom:1px solid var(--line);
}
.hero-grid{
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:34px;
}
@media (max-width:860px){ .hero-grid{ grid-template-columns:1fr; } }

.hero-lead{ position:relative; }
.hero-lead .stamp{
  position:absolute;
  top:12px; right:12px;
  width:96px;height:96px;
  border:3px solid var(--red);
  border-radius:50%;
  color:var(--red);
  display:flex;align-items:center;justify-content:center;
  transform:rotate(10deg);
  font-family:var(--font-mono);
  font-size:.68rem;
  text-align:center;
  line-height:1.15;
  letter-spacing:.05em;
  background:rgba(238,241,236,.86);
}
.hero-lead img{
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
  border:1px solid var(--line);
}
.hero-lead h2{
  font-size:2.1rem;
  margin-top:14px;
}
.hero-lead p{ color:var(--ink-soft); }

.hero-side{ display:flex; flex-direction:column; gap:0; }
.registry-item{
  display:grid;
  grid-template-columns:52px 1fr;
  gap:12px;
  padding:14px 0;
  border-top:1px solid var(--line);
}
.registry-item:first-child{ border-top:none; }
.registry-item .exp-num{
  font-family:var(--font-mono);
  font-size:.72rem;
  color:var(--gold);
  padding-top:2px;
}
.registry-item h3{ font-size:1.02rem; margin-bottom:2px; }
.registry-item .meta{
  font-family:var(--font-mono);
  font-size:.68rem;
  color:var(--ink-soft);
  text-transform:uppercase;
}

/* ---------- secciones / listados de tarjetas ---------- */
.section{ padding:38px 0; }
.section-alt{ background:var(--paper-2); }
.section-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  border-bottom:3px solid var(--ink);
  padding-bottom:8px;
  margin-bottom:22px;
}
.section-head h2{ font-size:1.5rem; margin:0; }
.section-head .see-all{
  font-family:var(--font-mono);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.card-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
}
@media (max-width:900px){ .card-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .card-grid{ grid-template-columns:1fr; } }

.news-card{ border-top:1px solid var(--line); padding-top:14px; }
.news-card img{
  width:100%; aspect-ratio:4/3; object-fit:cover;
  border:1px solid var(--line);
  margin-bottom:10px;
}
.news-card h3{ font-size:1.08rem; margin-bottom:6px; }
.news-card p{ color:var(--ink-soft); font-size:.92rem; margin:0 0 8px; }
.news-card .meta{
  font-family:var(--font-mono);
  font-size:.68rem;
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:.04em;
}

/* ---------- franja "Sin Rodeos" (destacado editorial) ---------- */
.band-editorial{
  background:var(--panel);
  color:#E7EAE4;
  padding:40px 0;
}
.band-editorial .eyebrow{ color:#E4A0A6; }
.band-editorial h2{ color:var(--white); font-size:1.9rem; }
.band-editorial p{ color:#B9C2C8; max-width:70ch; }
.band-editorial .btn-outline-registro{
  border:1px solid var(--red);
  color:var(--white);
  font-family:var(--font-mono);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  padding:.5rem 1rem;
  border-radius:0;
}
.band-editorial .btn-outline-registro:hover{ background:var(--red); color:var(--white); }

/* ---------- páginas internas (listado por sección) ---------- */
.page-header{
  padding:30px 0 18px;
  border-bottom:1px solid var(--line);
}
.page-header .expediente{ display:block; margin-bottom:6px; }
.page-header h1{ font-size:2.1rem; }
.page-header p{ color:var(--ink-soft); max-width:70ch; }

/* ---------- video ---------- */
.video-card .ratio{ border:1px solid var(--line); }

/* ---------- contacto ---------- */
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
}
@media (max-width:800px){ .contact-grid{ grid-template-columns:1fr; } }
.data-sheet{
  background:var(--white);
  border:1px solid var(--line);
  padding:24px;
}
.data-sheet dt{
  font-family:var(--font-mono);
  font-size:.68rem;
  text-transform:uppercase;
  color:var(--gold);
  letter-spacing:.05em;
  margin-top:14px;
}
.data-sheet dt:first-child{ margin-top:0; }
.data-sheet dd{ margin:2px 0 0; font-weight:600; }
.form-control{
  border-radius:0;
  border-color:var(--line);
}
.form-control:focus{
  border-color:var(--red);
  box-shadow:0 0 0 .15rem rgba(163,22,33,.18);
}
.btn-registrar{
  background:var(--red);
  border-color:var(--red);
  color:var(--white);
  border-radius:0;
  font-family:var(--font-mono);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.82rem;
  padding:.6rem 1.4rem;
}
.btn-registrar:hover{ background:var(--red-dark); border-color:var(--red-dark); color:var(--white); }

/* ---------- quiénes somos ---------- */
.about-block{ max-width:78ch; }
.about-block h2{ margin-top:1.6rem; font-size:1.4rem; }
.about-facts{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
  margin:26px 0;
}
@media (max-width:600px){ .about-facts{ grid-template-columns:1fr; } }
.about-facts .fact{
  border:1px solid var(--line);
  background:var(--white);
  padding:16px;
}
.about-facts dt{
  font-family:var(--font-mono);
  font-size:.68rem;
  text-transform:uppercase;
  color:var(--gold);
  letter-spacing:.05em;
}
.about-facts dd{ margin:4px 0 0; font-weight:600; }

/* ---------- footer ---------- */
footer.site-footer{
  background:var(--panel);
  color:#9AA3A9;
  padding:40px 0 20px;
  margin-top:20px;
  border-top:4px double var(--red);
}
footer.site-footer h4{
  color:var(--white);
  font-family:var(--font-mono);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:14px;
}
footer.site-footer a{ color:#9AA3A9; }
footer.site-footer a:hover{ color:var(--white); }
footer.site-footer .cols{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:26px;
}
@media (max-width:800px){ footer.site-footer .cols{ grid-template-columns:1fr 1fr; } }
footer.site-footer ul{ list-style:none; padding:0; margin:0; }
footer.site-footer li{ margin-bottom:8px; font-size:.86rem; }
footer.site-footer .legal{
  border-top:1px solid var(--line-dark);
  margin-top:30px;
  padding-top:16px;
  font-family:var(--font-mono);
  font-size:.7rem;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
}

/* focus visibility */
a:focus-visible,button:focus-visible,.nav-link:focus-visible{
  outline:2px solid var(--red);
  outline-offset:2px;
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
}
