/* ============================================================
   Reglamento Barrio Maestranza Ukamau 2 — estilos
   Paleta Ukamau: rojo vino, rojo vivo, negro, blanco
   Mobile First
   ============================================================ */
:root{
  --rojo-vivo:#E8192C;
  --rojo-vino:#8B1A1A;
  --rojo-vino-2:#701212;
  --negro:#111111;
  --tinta:#1c1c1e;
  --gris:#5c5c60;
  --gris-suave:#8a8a90;
  --linea:#e7e3e0;
  --papel:#faf8f6;
  --papel-2:#f2eeea;
  --blanco:#ffffff;
  --sombra:0 1px 2px rgba(17,17,17,.06), 0 8px 24px rgba(17,17,17,.06);
  --sombra-fuerte:0 12px 40px rgba(17,17,17,.16);
  --radio:16px;
  --radio-s:11px;
  --f-display:"Barlow Condensed",system-ui,sans-serif;
  --f-body:"Source Sans 3",system-ui,sans-serif;
  --f-mono:"Space Mono",ui-monospace,monospace;
  --sidebar-w:300px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--f-body);
  color:var(--tinta);
  background:var(--papel);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.star{color:var(--rojo-vivo);line-height:1}
::selection{background:var(--rojo-vivo);color:#fff}

/* ===== Topbar (móvil) ===== */
.topbar{
  position:sticky;top:0;z-index:40;
  display:flex;align-items:center;gap:14px;
  padding:12px 16px;
  padding-top:calc(12px + env(safe-area-inset-top));
  background:var(--rojo-vino);
  color:#fff;
  box-shadow:0 2px 12px rgba(0,0,0,.18);
}
.topbar-brand{display:flex;align-items:center;gap:10px;min-width:0}
.topbar-brand .star{font-size:1.4rem;color:#fff}
.topbar-brand-txt{display:flex;flex-direction:column;line-height:1.05;min-width:0}
.topbar-brand-txt strong{font-family:var(--f-display);font-weight:900;font-size:1.05rem;letter-spacing:.02em;white-space:nowrap}
.topbar-brand-txt small{font-size:.68rem;opacity:.82;font-weight:400}
.icon-btn{
  width:42px;height:42px;flex:0 0 42px;
  display:flex;flex-direction:column;justify-content:center;gap:5px;
  background:rgba(255,255,255,.12);border:none;border-radius:10px;cursor:pointer;
  padding:0 11px;
}
.icon-btn span{height:2.5px;background:#fff;border-radius:2px;transition:.25s}
.icon-btn.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.icon-btn.open span:nth-child(2){opacity:0}
.icon-btn.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ===== Layout ===== */
.layout{display:flex;min-height:100vh}

/* ===== Sidebar ===== */
.sidebar{
  position:fixed;top:0;left:0;bottom:0;z-index:60;
  width:min(86vw,320px);
  background:var(--negro);color:#efece9;
  transform:translateX(-100%);transition:transform .28s ease;
  display:flex;flex-direction:column;
  padding:22px 20px calc(20px + env(safe-area-inset-bottom));
  overflow-y:auto;
}
.sidebar.open{transform:translateX(0)}
.sidebar-head{display:flex;align-items:center;gap:12px}
.sidebar-head .star{font-size:2rem}
.sidebar-head strong{display:block;font-family:var(--f-display);font-weight:900;font-size:1.5rem;letter-spacing:.02em;line-height:.9}
.sidebar-head span{font-family:var(--f-display);font-weight:700;font-size:1rem;color:var(--rojo-vivo);letter-spacing:.06em}
.sidebar-sub{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gris-suave);margin:14px 0 6px}
.toc{display:flex;flex-direction:column;gap:2px;margin-top:8px;flex:1}
.toc a{
  display:block;padding:10px 12px;border-radius:9px;
  color:#d8d4d0;text-decoration:none;font-size:.92rem;font-weight:400;
  border-left:2px solid transparent;transition:.15s;
}
.toc a:hover,.toc a:focus-visible{background:rgba(255,255,255,.06);color:#fff}
.toc a.active{background:rgba(232,25,44,.14);border-left-color:var(--rojo-vivo);color:#fff;font-weight:600}
.sidebar-foot{margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}
.sidebar-foot p{font-size:.72rem;color:var(--gris-suave);line-height:1.5}
.sidebar-foot .ver{margin-top:6px;font-family:var(--f-mono);font-size:.64rem;color:var(--rojo-vivo)}
.backdrop{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.5);backdrop-filter:blur(2px)}

/* ===== Main ===== */
.main{flex:1;width:100%;max-width:100%;min-width:0}
.section-title{
  font-family:var(--f-display);font-weight:800;font-size:1.4rem;
  letter-spacing:.01em;color:var(--negro);margin-bottom:14px;
  display:flex;align-items:center;gap:10px;
}
.section-title::before{content:"";width:22px;height:3px;background:var(--rojo-vivo);border-radius:2px}

/* ===== Hero ===== */
.hero{
  position:relative;
  background:
    radial-gradient(120% 90% at 90% -10%, rgba(232,25,44,.20), transparent 55%),
    linear-gradient(160deg,#8B1A1A 0%, #701212 55%, #4d0d0d 100%);
  color:#fff;
  padding:34px 20px 30px;
  padding-top:calc(34px);
  overflow:hidden;
}
.hero::after{
  content:"★";position:absolute;right:-18px;top:-30px;
  font-size:11rem;color:rgba(255,255,255,.05);pointer-events:none;
}
.kicker{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.72);margin-bottom:12px}
.hero h1{font-family:var(--f-display);font-weight:900;font-size:clamp(2.3rem,10vw,3.4rem);line-height:.94;letter-spacing:.005em;margin-bottom:14px}
.hero-lead{font-size:.96rem;color:rgba(255,255,255,.86);max-width:44ch;margin-bottom:22px;font-weight:300}

/* Buscador */
.search-wrap{position:relative;display:flex;align-items:center}
.search-ico{position:absolute;left:16px;width:20px;height:20px;color:var(--gris);pointer-events:none}
#search{
  width:100%;border:none;border-radius:14px;
  padding:15px 46px 15px 46px;
  font-family:var(--f-body);font-size:1rem;color:var(--tinta);
  background:#fff;box-shadow:var(--sombra-fuerte);
}
#search:focus{outline:3px solid rgba(232,25,44,.5);outline-offset:1px}
.clear-btn{
  position:absolute;right:10px;width:30px;height:30px;border:none;border-radius:50%;
  background:var(--papel-2);color:var(--gris);font-size:.9rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.clear-btn[hidden]{display:none}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chip{
  font-family:var(--f-mono);font-size:.72rem;letter-spacing:.03em;
  background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.22);
  padding:6px 12px;border-radius:100px;cursor:pointer;transition:.15s;
}
.chip:hover,.chip:focus-visible{background:#fff;color:var(--rojo-vino);border-color:#fff}

/* ===== Secciones de contenido ===== */
.quick,.facts,.results,.article-view{padding:26px 20px}
.facts{background:var(--papel-2);border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}

/* Cards accesos directos */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.card{
  display:flex;flex-direction:column;gap:6px;text-align:left;
  background:#fff;border:1px solid var(--linea);border-radius:var(--radio);
  padding:16px 15px;cursor:pointer;transition:.18s;box-shadow:var(--sombra);
  position:relative;overflow:hidden;
}
.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--rojo-vivo);transform:scaleY(0);transform-origin:top;transition:.2s}
.card:hover,.card:focus-visible{transform:translateY(-3px);box-shadow:var(--sombra-fuerte);border-color:#e0c9c9}
.card:hover::before,.card:focus-visible::before{transform:scaleY(1)}
.card .ico{font-size:1.7rem;line-height:1}
.card .c-title{font-family:var(--f-display);font-weight:700;font-size:1.12rem;color:var(--negro);letter-spacing:.01em}
.card .c-desc{font-size:.8rem;color:var(--gris);line-height:1.35}

/* Datos clave */
.facts-grid{display:flex;flex-direction:column;gap:10px}
.fact{
  background:#fff;border:1px solid var(--linea);border-radius:var(--radio-s);
  padding:13px 15px;border-left:3px solid var(--rojo-vino);
}
.fact dt{font-family:var(--f-mono);font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gris-suave);margin-bottom:3px}
.fact dd{font-size:.95rem;color:var(--tinta);font-weight:600;line-height:1.4}

/* ===== Resultados de búsqueda ===== */
.results-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.link-btn{background:none;border:none;color:var(--rojo-vino);font-family:var(--f-body);font-weight:700;font-size:.9rem;cursor:pointer;padding:6px 0}
.link-btn:hover{color:var(--rojo-vivo);text-decoration:underline}
.result-item{
  display:block;width:100%;text-align:left;
  background:#fff;border:1px solid var(--linea);border-radius:var(--radio-s);
  padding:15px 16px;margin-bottom:11px;cursor:pointer;transition:.15s;box-shadow:var(--sombra);
}
.result-item:hover,.result-item:focus-visible{border-color:#e0c9c9;transform:translateX(3px)}
.result-item .r-tag{font-family:var(--f-mono);font-size:.63rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rojo-vino);display:block;margin-bottom:4px}
.result-item .r-title{font-family:var(--f-display);font-weight:700;font-size:1.15rem;color:var(--negro);margin-bottom:5px;line-height:1.1}
.result-item .r-snippet{font-size:.86rem;color:var(--gris);line-height:1.5}
.result-item mark{background:#ffe08a;color:var(--negro);padding:0 2px;border-radius:3px}
.no-results{text-align:center;padding:40px 20px;color:var(--gris)}
.no-results .big{font-size:2.4rem;margin-bottom:10px}

/* ===== Vista de artículo ===== */
.article-view #articleContent{margin-top:8px}
.art-title-block{border-bottom:2px solid var(--linea);padding-bottom:16px;margin-bottom:20px}
.art-title-block .a-num{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rojo-vino);display:block;margin-bottom:6px}
.art-title-block h2{font-family:var(--f-display);font-weight:900;font-size:clamp(1.7rem,6vw,2.4rem);color:var(--negro);line-height:1.02}
.art-title-block .a-ctx{font-family:var(--f-mono);font-size:.66rem;color:var(--gris-suave);margin-top:8px;letter-spacing:.04em}
.article{margin-bottom:30px}
.article + .article{border-top:1px solid var(--linea);padding-top:24px}
.article h3{font-family:var(--f-display);font-weight:800;font-size:1.35rem;color:var(--negro);margin-bottom:4px;line-height:1.1}
.article h3 .a-num{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rojo-vino);font-weight:400;display:block;margin-bottom:4px}
.article p{margin:10px 0;color:var(--tinta);font-size:1rem}
.article .subsec{margin-top:18px;background:var(--papel-2);border-radius:var(--radio-s);padding:15px 16px;border-left:3px solid var(--rojo-vivo)}
.article .subsec h4{font-family:var(--f-display);font-weight:700;font-size:1.08rem;color:var(--negro);margin-bottom:10px}
.article .subsec ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.article .subsec li{position:relative;padding-left:18px;font-size:.92rem;color:var(--tinta);line-height:1.55}
.article .subsec li::before{content:"›";position:absolute;left:2px;top:-1px;color:var(--rojo-vivo);font-weight:700}
.badge-highlight{display:inline-block;font-family:var(--f-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;background:var(--rojo-vivo);color:#fff;padding:3px 8px;border-radius:6px;margin-left:8px;vertical-align:middle}

/* ===== Footer ===== */
.page-foot{padding:30px 20px calc(40px + env(safe-area-inset-bottom));text-align:center;background:var(--negro);color:#cfc9c5}
.page-foot .star{font-size:1.6rem;display:block;margin-bottom:10px}
.page-foot p{font-size:.82rem;max-width:52ch;margin:0 auto 6px;line-height:1.5}
.page-foot .fine{font-size:.7rem;color:var(--gris-suave)}

/* ===== Escritorio ===== */
@media (min-width:900px){
  :root{--sidebar-w:300px}
  .topbar{display:none}
  .sidebar{position:sticky;transform:none;width:var(--sidebar-w);height:100vh;flex:0 0 var(--sidebar-w)}
  .backdrop{display:none!important}
  .main{max-width:calc(100% - var(--sidebar-w))}
  .hero{padding:56px 56px 46px}
  .hero h1{font-size:clamp(3rem,4.4vw,4.6rem)}
  .quick,.facts,.results,.article-view{padding:40px 56px}
  .cards{grid-template-columns:repeat(4,1fr);gap:16px}
  .facts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
  .section-title{font-size:1.6rem}
  .search-wrap{max-width:640px}
  .article-view #articleContent,.results #resultsList{max-width:820px}
  .page-foot{padding:40px 56px 50px}
}
@media (min-width:1300px){
  .cards{grid-template-columns:repeat(4,1fr)}
  .facts-grid{grid-template-columns:repeat(4,1fr)}
}

/* Reduce motion */
@media (prefers-reduced-motion:reduce){
  *{transition:none!important}
}
