/* Flinderdu — hoja de estilo común
   Sistema modular en mosaico: rejilla de 12 columnas, juntas de 4 px */

:root{
  --bg:#efeae1;
  --bg-alt:#e3dbce;
  --bg-dark:#2c3a5c;
  --tx:#2b2822;
  --tx-2:#6f6759;
  --tx-inv:#efeae1;
  --acc:#a83b2c;
  --acc-2:#6e7a47;
  --seam:4px;
  --sans:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --serif:Georgia,"Times New Roman",serif;
}

*,*::before,*::after{box-sizing:border-box}

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

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

.wrap{max-width:1200px;margin:0 auto;padding:0 16px}

/* ---------- Tipografía ---------- */

h1,h2,h3,.label,.num,nav a,.sitename{font-family:var(--sans)}

h1{
  font-size:clamp(2.3rem,6vw,4.3rem);
  line-height:.98;
  letter-spacing:-.035em;
  font-weight:800;
  margin:0;
}

h2{
  font-size:clamp(1.5rem,3vw,2.15rem);
  line-height:1.05;
  letter-spacing:-.025em;
  font-weight:800;
  margin:0 0 18px;
}

h3{
  font-size:1.06rem;
  line-height:1.3;
  letter-spacing:-.01em;
  font-weight:700;
  text-transform:uppercase;
  margin:32px 0 10px;
}

figure{margin:0}
p{margin:0 0 20px}
p:last-child{margin-bottom:0}

.lead{font-size:1.12rem}

.num{
  display:block;
  font-size:1.35rem;
  font-weight:800;
  letter-spacing:.02em;
  color:var(--acc-2);
  margin:0 0 10px;
}

.label{
  display:block;
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--acc-2);
  margin:0 0 12px;
}

.caption{
  font-family:var(--sans);
  font-size:.87rem;
  line-height:1.45;
  color:var(--tx-2);
  margin:0;
}

a{color:var(--acc);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}
a:hover{background:var(--acc);color:var(--bg);text-decoration-color:var(--acc)}

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

.mod--dark a,.band--dark a{color:#f0b7ac}
.mod--dark a:hover,.band--dark a:hover{background:var(--tx-inv);color:var(--bg-dark)}
.mod--dark .num,.mod--dark .label,.band--dark .num,.band--dark .label{color:#b9c48d}
.mod--dark .caption,.band--dark .caption{color:#c6cbdd}

/* ---------- Rejilla modular ---------- */

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

.c2{grid-column:span 2}
.c3{grid-column:span 3}
.c4{grid-column:span 4}
.c5{grid-column:span 5}
.c6{grid-column:span 6}
.c7{grid-column:span 7}
.c8{grid-column:span 8}
.c12{grid-column:span 12}

.mod{padding:34px}
.mod--paper{background:var(--bg-alt)}
.mod--light{background:var(--bg)}
.mod--dark{background:var(--bg-dark);color:var(--tx-inv)}
.mod--maroon{background:var(--acc)}
.mod--olive{background:var(--acc-2)}
.mod--flat{padding:0}

/* Tira vertical de teselas */
.strip{
  min-height:120px;
  background-image:repeating-linear-gradient(
    180deg,
    var(--acc) 0 24px,
    var(--bg-alt) 24px 48px,
    var(--acc-2) 48px 72px,
    var(--bg) 72px 96px);
}

/* Separador: hilera de teselas de 24 px */
.sep{
  height:24px;
  margin:0;
  border:0;
  background-image:repeating-linear-gradient(
    90deg,
    var(--acc) 0 24px,
    var(--bg-alt) 24px 48px,
    var(--acc-2) 48px 72px,
    var(--bg) 72px 96px);
}
.sep--dark{
  background-image:repeating-linear-gradient(
    90deg,
    var(--acc) 0 24px,
    var(--bg-dark) 24px 48px,
    var(--acc-2) 48px 72px,
    var(--bg-alt) 72px 96px);
}

/* ---------- Cabecera ---------- */

.site-header{padding:24px 0 0}

.header-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:16px 24px;
  padding-bottom:24px;
}

.sitename{
  font-size:1.45rem;
  font-weight:800;
  letter-spacing:-.03em;
  color:var(--tx);
  text-decoration:none;
}
.sitename:hover{background:none;color:var(--acc)}

.site-nav ul{
  display:flex;
  flex-wrap:wrap;
  gap:8px 24px;
  list-style:none;
  margin:0;
  padding:0;
}
.site-nav a{
  font-size:.95rem;
  font-weight:700;
  letter-spacing:-.01em;
  color:var(--tx);
  text-decoration:none;
  border-bottom:3px solid transparent;
  padding-bottom:2px;
}
.site-nav a:hover{background:none;color:var(--acc);border-bottom-color:var(--acc)}
.site-nav a[aria-current="page"]{border-bottom-color:var(--acc-2)}

/* ---------- Mosaico de portada ---------- */

.hero{padding:24px 0 0}

.hero-grid{grid-auto-rows:minmax(72px,auto)}

.hero-title{grid-column:1 / 9;grid-row:1 / 3;display:flex;align-items:center}
.hero-fill-a{grid-column:9 / 11;grid-row:1 / 2}
.hero-fill-b{grid-column:11 / 13;grid-row:1 / 2}
.hero-fill-c{grid-column:9 / 13;grid-row:2 / 3}
.hero-kicker{padding:20px 24px;display:flex;align-items:flex-end}

.hero-band{margin-top:var(--seam);align-items:stretch}
.hero-strip{grid-column:1 / 3}
.hero-image{grid-column:3 / 9;line-height:0}
.hero-intro{grid-column:9 / 13;display:flex;flex-direction:column;justify-content:center}

.hero-image img{display:block;width:100%;height:auto}

.figcap{margin-top:var(--seam);padding:16px 20px;background:var(--bg-alt)}

/* ---------- Bandas y secciones ---------- */

.band{padding:96px 0}
.band--alt{background:var(--bg-alt)}
.band--dark{background:var(--bg-dark);color:var(--tx-inv);padding:96px 0}
.band--tight{padding:72px 0}

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

.band-head{max-width:46rem;margin:0 0 40px}

/* Sección de contraste con imagen de detalle */
.detail-grid{align-items:start}
.detail-figure{grid-column:1 / 6;margin:0}
.detail-figure img{display:block;width:100%;height:auto}
.detail-text{grid-column:7 / 13;padding:0 0 0 24px}

/* ---------- Listas ---------- */

ul.check,ul.plain{list-style:none;margin:0 0 20px;padding:0}
ul.check li,ul.plain li{position:relative;padding-left:26px;margin-bottom:12px}
ul.check li::before{
  content:"";
  position:absolute;
  left:0;top:.62em;
  width:10px;height:10px;
  background:var(--acc);
}
ul.plain li::before{
  content:"";
  position:absolute;
  left:0;top:.62em;
  width:10px;height:10px;
  background:var(--acc-2);
}
.mod--dark ul.check li::before,.band--dark ul.check li::before{background:#d9705f}
ol{padding-left:22px;margin:0 0 20px}
ol li{margin-bottom:12px}
ol li::marker{font-family:var(--sans);font-weight:800;color:var(--acc)}

/* ---------- Composición de About ---------- */

.about-grid{align-items:start}
.about-intro{grid-column:1 / 9}
.about-fill{grid-column:9 / 13;min-height:160px}
.about-a{grid-column:1 / 7}
.about-b{grid-column:7 / 12}
.about-tile{grid-column:12 / 13;min-height:120px}
.about-contact{grid-column:1 / 5}
.about-wide{grid-column:5 / 13}

/* ---------- Páginas de texto legal ---------- */

.doc-grid{align-items:start}
.doc-main{grid-column:1 / 9}
.doc-side{grid-column:9 / 13}
.doc-side .mod{margin-bottom:var(--seam)}

/* ---------- Pie ---------- */

.site-footer{margin-top:0;padding-bottom:48px}
.footer-grid{margin-top:var(--seam)}
.footer-grid > *{grid-column:span 3;padding:28px;background:var(--bg-alt)}
.footer-grid h2{font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:var(--acc-2);margin:0 0 12px;font-weight:700}
.footer-grid ul{list-style:none;margin:0;padding:0}
.footer-grid li{margin-bottom:8px}
.footer-grid a{color:var(--acc);font-family:var(--sans);font-size:.95rem;text-decoration:none;border-bottom:2px solid var(--acc)}
.footer-grid a:hover{background:var(--acc);color:var(--bg)}
.footer-name{font-family:var(--sans);font-weight:800;font-size:1.2rem;letter-spacing:-.03em;margin:0 0 8px}
.footer-note{font-size:.92rem;line-height:1.55;color:var(--tx-2)}

/* ---------- Responsive ---------- */

@media (max-width:1000px){
  .mod{padding:28px}
  .hero-title{grid-column:1 / 10}
  .hero-fill-a{grid-column:10 / 13}
  .hero-fill-b{display:none}
  .hero-fill-c{grid-column:10 / 13}
  .hero-strip{grid-column:1 / 2}
  .hero-image{grid-column:2 / 9}
  .hero-intro{grid-column:9 / 13}
  .detail-figure{grid-column:1 / 6}
  .detail-text{grid-column:6 / 13}
  .about-intro,.doc-main{grid-column:1 / 10}
  .about-fill{grid-column:10 / 13}
  .about-a{grid-column:1 / 8}
  .about-b{grid-column:8 / 13}
  .about-tile{display:none}
  .about-contact{grid-column:1 / 6}
  .about-wide{grid-column:6 / 13}
  .doc-side{grid-column:10 / 13}
  .footer-grid > *{grid-column:span 6}
}

@media (max-width:760px){
  body{font-size:17px}
  .band,.band--dark{padding:48px 0}
  .band--tight{padding:48px 0}
  .mod{padding:24px}
  .hero{padding:8px 0 0}
  .grid{gap:var(--seam)}
  .hero-grid > *,
  .hero-band > *,
  .detail-grid > *,
  .about-grid > *,
  .doc-grid > *,
  .footer-grid > *{
    grid-column:1 / -1 !important;
    grid-row:auto !important;
  }
  .hero-title{min-height:auto}
  .hero-fill-a,.hero-fill-c,.about-fill{min-height:48px}
  .hero-fill-b{display:none}
  .hero-strip{min-height:48px;background-image:repeating-linear-gradient(90deg,var(--acc) 0 24px,var(--bg-alt) 24px 48px,var(--acc-2) 48px 72px,var(--bg) 72px 96px)}
  .hero-kicker{padding:16px 20px}
  .detail-text{padding:24px 0 0}
  .band-head{margin-bottom:28px}
  h3{margin-top:26px}
}
