/* Bubrutrose — hoja de estilos común */

:root{
  --bg:#131c17;
  --bg-slab:#1a2620;
  --contrast:#eaeee7;
  --text:#e4eae2;
  --muted:#8b9a8e;
  --ink:#131c17;
  --gold:#c2a24d;
  --sage:#7fa88a;
  --slab-pad:52px;
  --gap:88px;
  --serif:Georgia,'Times New Roman',serif;
  --sans:system-ui,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.8;
  overflow-x:hidden;
}

img{max-width:100%;height:auto;display:block}

a{color:var(--gold);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}

a:focus-visible,
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.wrap{max-width:1140px;margin:0 auto;padding:0 24px}

/* ---------- cabecera ---------- */

.site-head{padding:26px 0 22px}

.head-inner{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:14px 28px;
}

.brand{
  font-family:var(--serif);
  font-size:1.32rem;
  letter-spacing:.06em;
  color:var(--text);
  text-decoration:none;
}
.brand:hover{color:var(--gold)}

.site-head nav ul,
.site-foot nav ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:6px 22px;
}

.site-head nav a,
.site-foot nav a{
  font-size:14px;
  color:var(--muted);
  text-decoration:none;
  padding-bottom:2px;
  border-bottom:1px solid transparent;
}
.site-head nav a:hover,
.site-foot nav a:hover{color:var(--text);border-bottom-color:var(--gold)}
.site-head nav a[aria-current="page"]{color:var(--text);border-bottom-color:var(--gold)}

/* ---------- podložka / slab ---------- */

.slab{
  background:var(--bg-slab);
  border:1px solid rgba(194,162,77,.5);
  padding:var(--slab-pad);
}

.flow > * + *{margin-top:var(--gap)}
.flow > .rule,
.flow > .rule-table{margin-top:calc(var(--gap) / 2)}
.flow > .rule + *,
.flow > .rule-table + *{margin-top:calc(var(--gap) / 2)}

/* ---------- rejilla de 12 columnas ---------- */

.g{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:0 28px;
  align-items:start;
}

.col-h1{grid-column:1 / 9}
.col-card{grid-column:9 / 13}
.col-fig{grid-column:1 / 6}
.col-figcap{grid-column:7 / 11}
.col-text{grid-column:1 / 8}
.col-side{grid-column:9 / 13}
.col-detail{grid-column:8 / 13}
.col-detail-text{grid-column:1 / 7}

/* ---------- tipografía ---------- */

h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0}

h1{
  font-size:clamp(2.15rem,5vw,3.5rem);
  line-height:1.1;
  letter-spacing:-.012em;
  max-width:15ch;
}

h2{
  font-size:clamp(1.35rem,2.3vw,1.78rem);
  line-height:1.25;
  margin-bottom:14px;
}

h3{
  font-size:1.02rem;
  line-height:1.35;
  margin-bottom:8px;
}

p{margin:0 0 1.15em}
p:last-child{margin-bottom:0}

.lead{font-size:1.06rem;color:var(--text)}

.num{
  display:block;
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.18em;
  color:var(--sage);
  margin-bottom:10px;
}

.cap{
  font-size:12px;
  line-height:1.6;
  color:var(--muted);
  margin:0;
}

/* ---------- portada ---------- */

.hero .col-h1{padding-bottom:6px}

.hero-card{
  border:1px solid rgba(127,168,138,.45);
  padding:20px 20px 18px;
}
.hero-card dl{margin:0;font-size:13px;line-height:1.65}
.hero-card dt{color:var(--sage);letter-spacing:.08em;font-size:11.5px}
.hero-card dd{margin:2px 0 13px;color:var(--text)}
.hero-card dd:last-child{margin-bottom:0}

.hero-intro{margin-top:34px;max-width:68ch}
.hero-intro p{color:var(--text)}

/* ---------- imágenes ---------- */

figure{margin:0}

.figframe{border:1px solid rgba(194,162,77,.5);padding:8px;background:#0f1713}

.col-figcap{align-self:end;padding-bottom:6px}
.col-figcap .cap + .cap{margin-top:10px}

/* ---------- separadores ---------- */

.rule{
  position:relative;
  height:1px;
  background:rgba(127,168,138,.32);
  border:0;
  margin:0;
  width:100%;
}
.rule::before,
.rule::after{
  content:"";
  position:absolute;
  top:-5px;
  width:1px;
  height:11px;
  background:var(--gold);
}
.rule::before{left:0}
.rule::after{right:0}

/* tabla que sustituye al separador, desplazada al margen derecho */
.rule-table{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 28px}
.rule-table > div{grid-column:8 / 13}

.side-box{
  border:1px solid rgba(127,168,138,.4);
  padding:18px 18px 16px;
}
.side-box h3{font-size:.95rem;margin-bottom:10px}
.side-box dl{margin:0;font-size:13.5px;line-height:1.6}
.side-box dt{color:var(--sage);font-size:12px;letter-spacing:.05em}
.side-box dd{margin:2px 0 12px}
.side-box dd:last-child{margin-bottom:0}
.side-box p{font-size:13.5px;line-height:1.7;color:var(--muted)}

/* ---------- listas ---------- */

.prose ul,
.prose ol{margin:0 0 1.15em;padding-left:1.15em}
.prose li{margin-bottom:.5em}
.prose li::marker{color:var(--gold)}
.prose ul:last-child,
.prose ol:last-child{margin-bottom:0}

.checklist{list-style:none;padding-left:0}
.checklist li{
  position:relative;
  padding-left:26px;
  margin-bottom:.62em;
}
.checklist li::before{
  content:"";
  position:absolute;
  left:0;
  top:.72em;
  width:11px;
  height:1px;
  background:var(--gold);
}

/* ---------- sección contrastada ---------- */

.light{
  background:var(--contrast);
  color:var(--ink);
  margin-left:calc(-1 * var(--slab-pad));
  margin-right:calc(-1 * var(--slab-pad));
  padding:64px var(--slab-pad);
}
.light h2,
.light h3,
.light p,
.light li{color:var(--ink)}
.light .num{color:#4d6b57}
.light .cap{color:#55635a}
.light .figframe{border-color:rgba(19,28,23,.35);background:transparent}
.light .checklist li::before{background:#8a6f21}
.light .prose li::marker{color:#8a6f21}
.light a{color:#7a5f14}

.light figcaption{margin-top:12px}

/* ---------- pie ---------- */

.site-foot{
  margin-top:76px;
  padding:0 0 54px;
  color:var(--muted);
}

.foot-top{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:8px 24px;
  padding-bottom:16px;
}
.foot-name{font-family:var(--serif);font-size:1.15rem;color:var(--text);letter-spacing:.05em}

.foot-line{height:1px;background:rgba(127,168,138,.3)}

.foot-bottom{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:18px 40px;
  padding-top:18px;
  align-items:start;
}
.foot-note{font-size:12.5px;line-height:1.75;margin:0;max-width:52ch}

/* ---------- página About: pila de fichas ---------- */

.side-stack > * + *{margin-top:22px}

/* ---------- documentos legales ---------- */

.doc .prose h2{margin-top:0}
.doc-list{max-width:70ch}

/* ---------- adaptación ---------- */

@media (max-width:1000px){
  :root{--slab-pad:36px;--gap:68px}
  .col-h1{grid-column:1 / 8}
  .col-card{grid-column:8 / 13}
  .col-fig{grid-column:1 / 7}
  .col-figcap{grid-column:8 / 13}
  .col-text{grid-column:1 / 9}
  .col-side{grid-column:9 / 13}
  .col-detail{grid-column:7 / 13}
  .col-detail-text{grid-column:1 / 7}
  .rule-table > div{grid-column:7 / 13}
}

@media (max-width:760px){
  :root{--slab-pad:20px;--gap:52px}
  body{font-size:16.5px;line-height:1.75}
  .g{grid-template-columns:minmax(0,1fr);gap:26px 0}
  .col-h1,.col-card,.col-fig,.col-figcap,
  .col-text,.col-side,.col-detail,.col-detail-text{grid-column:1 / -1}
  h1{max-width:none}
  .light{padding:40px var(--slab-pad)}
  .rule-table{grid-template-columns:minmax(0,1fr)}
  .rule-table > div{grid-column:1 / -1}
  .col-figcap{align-self:start;padding-bottom:0}
  .foot-bottom{grid-template-columns:minmax(0,1fr)}
  .site-head nav ul{gap:6px 16px}
  .hero-intro{margin-top:26px}
  .site-foot{margin-top:52px;padding-bottom:40px}
}

@media (max-width:420px){
  .wrap{padding:0 16px}
  .site-head nav a,.site-foot nav a{font-size:13.5px}
}
