/* Praponte — hoja de estilo común */

:root{
  --bg:#f5ece6;
  --bg-alt:#eaddd3;
  --bg-dark:#25304d;
  --ink:#241c19;
  --ink-2:#7d6c62;
  --ink-inv:#f5ece6;
  --accent:#2f3d63;
  --accent-2:#b05a3c;
  --accent-2-inv:#dd9a80;
  --line:rgba(47,61,99,.28);
  --line-inv:rgba(245,236,230,.28);
  --serif:Georgia,"Times New Roman",serif;
  --sans:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --gap:28px;
}

*{box-sizing:border-box}

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

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

img{max-width:100%}

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

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

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

h1{font-size:clamp(2rem,4.6vw,3.35rem);letter-spacing:-.01em}
h2{font-size:clamp(1.5rem,2.6vw,2.05rem);margin-bottom:.9em}
h3{font-size:1.2rem;margin:2.4em 0 .6em}

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

/* ---------- estructura ---------- */

.wrap{max-width:1180px;margin:0 auto;padding:0 28px}

.grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  column-gap:var(--gap);
}

section{padding:96px 0}
section.tight{padding:72px 0}

.band-alt{background:var(--bg-alt)}

.dark{background:var(--bg-dark);color:var(--ink-inv)}
.dark a{color:var(--ink-inv)}
.dark .num{color:var(--accent-2-inv)}
.dark .caption{color:rgba(245,236,230,.75)}
.dark .rule{border-top-color:var(--line-inv)}

.num{
  grid-column:1 / 3;
  font-family:var(--serif);
  font-size:14px;
  line-height:1.9;
  letter-spacing:.22em;
  color:var(--accent-2);
  padding-top:.35em;
}

.col-narrow{grid-column:3 / 9}
.col-wide{grid-column:3 / 11}
.col-full{grid-column:3 / 13}

.lead{font-size:1.08rem}

.caption{
  font-size:14px;
  line-height:1.6;
  color:var(--ink-2);
  font-style:italic;
  margin:14px 0 0;
}

.rule{
  border:0;
  border-top:1px solid var(--line);
  margin:0;
}

.rule-section{max-width:1180px;margin:0 auto;padding:0 28px}
.rule-section hr{border:0;border-top:1px solid var(--line);margin:0}

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

.skip{
  position:absolute;
  left:-9999px;
  top:0;
  background:var(--bg);
  padding:10px 16px;
  z-index:10;
}
.skip:focus{left:12px;top:12px}

.site-header{padding:28px 0 20px;border-bottom:1px solid var(--line)}
.site-header .wrap{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:14px 36px;
}

.brand{
  font-family:var(--serif);
  font-size:1.4rem;
  letter-spacing:.04em;
  color:var(--ink);
  text-decoration:none;
}
.brand:hover{text-decoration:underline;text-underline-offset:5px}

.site-nav ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:6px 26px;
  font-size:15px;
  line-height:1.6;
}
.site-nav a{text-decoration:none;color:var(--ink)}
.site-nav a:hover{text-decoration:underline;text-underline-offset:5px}

/* ---------- hero ---------- */

.hero{padding:88px 0 72px}
.hero .grid{row-gap:34px}

.hero h1{grid-column:1 / 9;grid-row:1}

.hero-intro{
  grid-column:1 / 5;
  grid-row:2;
  font-size:1.02rem;
}

.hero-kicker{
  grid-column:1 / 9;
  grid-row:auto;
  font-size:14px;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--accent-2);
  margin:0 0 22px;
}

.hero-fig{
  grid-column:9 / 13;
  grid-row:1 / span 2;
  align-self:start;
  margin:0;
  margin-top:152px;
  max-width:480px;
}
.hero-fig img{width:100%;height:auto;display:block}

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

.list-pair{
  grid-column:3 / 13;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:var(--gap);
  row-gap:34px;
  margin-top:12px;
}

.list-pair h3{margin-top:0}

ul.marked,ol.marked{
  margin:0;
  padding-left:1.15em;
  font-size:17px;
  line-height:1.8;
}
ul.marked li,ol.marked li{margin-bottom:.7em}
ul.marked li::marker{color:var(--accent)}
ol.marked li::marker{color:var(--accent);font-family:var(--serif)}

/* ---------- sección de contraste con imagen ---------- */

.detail-text{grid-column:7 / 13;grid-row:1 / span 2}
.detail-fig{
  grid-column:1 / 6;
  grid-row:2;
  margin:0;
  align-self:start;
  padding-top:14px;
}
.detail-fig img{width:100%;height:auto;display:block}
.dark .num{grid-row:1}

/* ---------- About ---------- */

.about-text{grid-column:6 / 13}
.about-marks{
  grid-column:1 / 5;
  list-style:none;
  margin:.5em 0 0;
  padding:0;
  font-size:14px;
  line-height:1.6;
  letter-spacing:.06em;
  color:var(--ink-2);
}
.about-marks li{
  border-top:1px solid var(--line);
  padding:14px 0;
}
.about-marks li:last-child{border-bottom:1px solid var(--line)}
.about-marks li span{color:var(--accent-2);display:block;font-family:var(--serif);letter-spacing:.2em;font-size:12px}

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

.site-footer{
  background:var(--bg-dark);
  color:var(--ink-inv);
  padding:78px 0 64px;
}
.footer-grid{
  display:grid;
  grid-template-columns:5fr 4fr 3fr;
  column-gap:var(--gap);
  row-gap:40px;
  align-items:start;
}
.footer-name{
  font-family:var(--serif);
  font-size:clamp(1.9rem,3.4vw,2.6rem);
  line-height:1.25;
  margin:0 0 14px;
}
.footer-note{font-size:14px;line-height:1.7;color:rgba(245,236,230,.75);margin:0;max-width:34ch}
.footer-nav ul{list-style:none;margin:0;padding:0;font-size:15px;line-height:2.1}
.footer-nav a,.footer-mail a{color:var(--ink-inv)}
.footer-mail{font-size:15px}
.footer-mail p{margin:0 0 .6em}
.footer-label{
  font-family:var(--serif);
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent-2-inv);
  margin:0 0 16px;
  padding-bottom:10px;
  border-bottom:1px solid var(--line-inv);
}

/* ---------- páginas de texto ---------- */

.page-head{padding:76px 0 12px}
.page-head h1{grid-column:1 / 10}
.page-head .page-sub{grid-column:1 / 7;color:var(--ink-2);margin-top:26px;font-size:1rem}

.doc{padding:60px 0 96px}
.doc .grid{row-gap:0}
.doc section{padding:48px 0 0}

.updated{font-size:14px;color:var(--ink-2);font-style:italic}

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

@media (max-width:1080px){
  .hero-fig{margin-top:118px}
  .col-narrow{grid-column:3 / 11}
}

@media (max-width:900px){
  body{font-size:17px;line-height:1.85}
  section{padding:56px 0}
  section.tight{padding:48px 0}
  .hero{padding:48px 0 40px}

  .grid{display:block}
  .num{
    display:block;
    padding-top:0;
    margin-bottom:10px;
  }
  .hero h1,.hero-intro,.hero-kicker,.hero-fig,
  .col-narrow,.col-wide,.col-full,
  .detail-text,.detail-fig,
  .about-text,.about-marks,
  .page-head h1,.page-head .page-sub{width:auto}

  .hero-intro{margin-top:28px}
  .hero-fig{margin:34px 0 0;max-width:420px}
  .detail-fig{margin:34px 0 0;padding-top:0;max-width:420px}
  .about-marks{margin:0 0 36px}
  .list-pair{grid-template-columns:1fr;margin-top:0}
  .page-head{padding:48px 0 8px}
  .page-head .page-sub{margin-top:20px}
  .doc{padding:36px 0 64px}
  .doc section{padding:36px 0 0}

  .footer-grid{grid-template-columns:1fr}
  .site-footer{padding:56px 0 48px}
}

@media (max-width:560px){
  .wrap,.rule-section{padding:0 20px}
  .site-nav ul{gap:4px 18px;font-size:14px}
}
