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

:root{
  --fondo:#f5f4f0;
  --fondo-alt:#e2ded4;
  --fondo-contraste:#14456b;
  --texto:#1c1e20;
  --texto-sec:#6a6d6e;
  --texto-claro:#f5f4f0;
  --acento:#c2522f;
  --acento2:#1d6b8f;
  --serif:Georgia,'Times New Roman',serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  --ritmo:80px;
}

*{box-sizing:border-box;}

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

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

.envoltura{
  width:100%;
  max-width:1180px;
  margin:0 auto;
  padding:0 24px;
}

.rejilla{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  column-gap:24px;
}

/* ---------- Encabezado y navegación ---------- */

.cabecera{
  border-bottom:1px dashed var(--acento);
}

.cabecera-interior{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:12px 32px;
  padding:22px 0 20px;
}

.marca{
  font-family:var(--serif);
  font-size:1.35rem;
  letter-spacing:.04em;
  text-decoration:none;
  color:var(--texto);
  border-bottom:2px solid var(--acento);
  padding-bottom:2px;
}

.marca span{
  display:block;
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--acento2);
  border:0;
  margin-top:4px;
}

.menu ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:6px 22px;
}

.menu a{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--texto);
  text-decoration:none;
  padding:4px 0;
  border-bottom:1px dashed transparent;
}

.menu a:hover,
.menu a[aria-current="page"]{
  color:var(--acento);
  border-bottom-color:var(--acento);
}

a{color:var(--acento);}
a:focus-visible,
.marca:focus-visible,
.menu a:focus-visible{
  outline:2px dashed var(--acento);
  outline-offset:3px;
}

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

h1{
  font-family:var(--serif);
  font-weight:normal;
  font-size:clamp(2.1rem,5vw,3.4rem);
  line-height:1.12;
  margin:0 0 18px;
  letter-spacing:-.01em;
}

h2{
  font-family:var(--serif);
  font-weight:normal;
  font-size:clamp(1.5rem,3vw,2.05rem);
  line-height:1.2;
  margin:0 0 18px;
}

h3{
  font-family:var(--serif);
  font-style:italic;
  font-weight:normal;
  font-size:1.2rem;
  margin:32px 0 10px;
}

p{margin:0 0 22px;}

.rotulo{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--acento2);
  margin:0 0 14px;
  display:block;
}

.entradilla{
  font-size:1.06rem;
  color:var(--texto);
}

.pie-foto{
  font-family:var(--sans);
  font-size:12px;
  line-height:1.5;
  color:var(--texto-sec);
  margin:10px 0 0;
  max-width:44ch;
}

/* ---------- Hero ---------- */

.hero{
  padding:var(--ritmo) 0 calc(var(--ritmo) - 16px);
}

.hero-caja{
  border:2px dashed var(--acento);
  padding:36px 28px 32px;
}

.hero-texto{
  align-items:start;
  row-gap:28px;
}

.hero-titulo{grid-column:1 / span 8;}

.hero-lateral{
  grid-column:9 / span 4;
  border-left:2px dashed var(--acento);
  padding-left:24px;
}

.hero-figura{
  grid-column:7 / span 6;
  margin:44px 0 0;
  justify-self:end;
}

.hero-figura .marco,
.figura-detalle .marco{
  border:1px dashed var(--acento);
  padding:12px;
  display:block;
}

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

/* ---------- Secciones ---------- */

.seccion{padding:var(--ritmo) 0;}

.seccion-alt{background:var(--fondo-alt);}

.seccion-contraste{
  background:var(--fondo-contraste);
  color:var(--texto-claro);
}

.seccion-contraste h2,
.seccion-contraste h3{color:var(--texto-claro);}

.seccion-contraste .rotulo{color:#9fc6dc;}

.seccion-contraste .pie-foto{color:#b9cddc;}

.seccion-contraste a{color:#f0b39c;}

.seccion-contraste .lista-marcada li::before{color:#f0b39c;}

.doble-linea{
  border:0;
  height:0;
  border-top:1px solid var(--acento2);
  position:relative;
  margin:0;
}

.doble-linea::after{
  content:"";
  display:block;
  border-top:1px dashed var(--acento2);
  margin-top:5px;
}

.regla{
  border:0;
  border-top:1px dashed var(--texto-sec);
  margin:34px 0;
}

/* Bloques de texto alternos: 7 y 5 columnas, sin centrar */

.bloque-7{
  grid-column:1 / span 7;
  border-right:1px dashed var(--acento2);
  padding-right:28px;
}

.bloque-5-der{
  grid-column:8 / span 5;
  border-left:1px dashed var(--acento2);
  padding-left:28px;
}

.bloque-7-der{
  grid-column:6 / span 7;
  border-left:1px dashed var(--acento2);
  padding-left:28px;
}

.bloque-5-izq{
  grid-column:1 / span 5;
  border-right:1px dashed var(--acento2);
  padding-right:28px;
}

.bloque-8{
  grid-column:1 / span 8;
  border-bottom:1px dashed var(--acento2);
  padding-bottom:26px;
}

.bloque-9{grid-column:1 / span 9;}

.fila{row-gap:40px;align-items:start;}

/* Listas */

.lista-marcada{
  list-style:none;
  margin:0 0 22px;
  padding:0;
}

.lista-marcada li{
  position:relative;
  padding-left:26px;
  margin-bottom:12px;
}

.lista-marcada li::before{
  content:"—";
  position:absolute;
  left:0;
  color:var(--acento);
}

.lista-num{
  margin:0 0 22px;
  padding-left:22px;
}

.lista-num li{margin-bottom:12px;}

.lista-num::marker,
.lista-num li::marker{color:var(--acento2);}

.definiciones{margin:0 0 22px;}

.definiciones dt{
  font-style:italic;
  margin-top:18px;
}

.definiciones dd{
  margin:4px 0 0;
  padding-left:0;
  border-left:1px dashed var(--acento);
  padding-left:16px;
}

/* Sección de contraste con imagen vertical */

.detalle-fila{
  row-gap:36px;
  align-items:start;
}

.figura-detalle{
  grid-column:1 / span 5;
  margin:0;
}

.figura-detalle .marco{border-color:#9fc6dc;}

.detalle-texto{grid-column:7 / span 6;}

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

.about-bloques{
  display:block;
  padding:var(--ritmo) 0;
}

.about-bloque{margin-bottom:64px;}

.about-bloque:last-child{margin-bottom:0;}

.ab-8{
  max-width:66%;
  border-left:1px dashed var(--acento);
  border-bottom:1px dashed var(--acento);
  padding:0 0 24px 24px;
}

.ab-6{
  max-width:50%;
  margin-left:auto;
  border-right:1px dashed var(--acento2);
  padding:0 24px 0 0;
  text-align:left;
}

.ab-7{
  max-width:58%;
  border-top:1px dashed var(--acento);
  border-right:1px dashed var(--acento);
  padding:24px 24px 0 0;
}

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

.pagina-texto{padding:var(--ritmo) 0;}

.columna-texto{
  grid-column:1 / span 8;
  border-right:1px dashed var(--acento2);
  padding-right:32px;
}

.columna-nota{
  grid-column:9 / span 4;
  padding-left:24px;
  border-left:1px dashed var(--acento);
  font-size:.95rem;
  color:var(--texto-sec);
}

.columna-nota p{margin-bottom:16px;}

/* ---------- Contacto ---------- */

.contacto-caja{
  border:1px dashed var(--acento);
  padding:28px;
  max-width:640px;
}

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

.pie{
  background:var(--fondo-alt);
  border-top:1px solid var(--acento2);
  padding:0 0 40px;
}

.pie-borde{
  border-top:1px dashed var(--acento2);
  margin-top:5px;
  padding-top:40px;
}

.pie-caja{
  border:1px dashed var(--texto-sec);
  padding:16px;
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:28px;
}

.pie-izq p{margin:0 0 10px;font-size:.95rem;}

.pie-marca{
  font-size:1.15rem;
  letter-spacing:.04em;
  margin:0 0 8px;
}

.pie-der ul{
  list-style:none;
  margin:0 0 12px;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:4px 20px;
}

.pie-der a{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--texto);
  border-bottom:1px dashed var(--acento);
}

.pie-der a:hover{color:var(--acento);}

.pie-correo{
  font-family:var(--sans);
  font-size:13px;
  color:var(--texto-sec);
  margin:0;
}

.pie-correo a{color:var(--acento);}

/* ---------- Adaptable ---------- */

@media (max-width:1000px){
  .hero-titulo{grid-column:1 / span 12;}
  .hero-lateral{
    grid-column:1 / span 12;
    border-left:0;
    border-top:2px dashed var(--acento);
    padding-left:0;
    padding-top:20px;
  }
  .hero-figura{grid-column:4 / span 9;}
  .bloque-7,.bloque-5-der,.bloque-7-der,.bloque-5-izq,.bloque-8,.bloque-9{
    grid-column:1 / span 12;
  }
  .figura-detalle{grid-column:1 / span 7;}
  .detalle-texto{grid-column:1 / span 12;}
  .columna-texto{grid-column:1 / span 12;border-right:0;padding-right:0;}
  .columna-nota{
    grid-column:1 / span 12;
    border-left:0;
    border-top:1px dashed var(--acento);
    padding-left:0;
    padding-top:20px;
    margin-top:32px;
  }
  .ab-8,.ab-6,.ab-7{max-width:100%;margin-left:0;}
}

@media (max-width:640px){
  :root{--ritmo:48px;}
  body{font-size:17px;}
  .envoltura{padding:0 18px;}
  .hero-caja{padding:22px 16px;}
  .cabecera-interior{flex-direction:column;align-items:flex-start;}
  .menu ul{gap:6px 16px;}
  .hero-figura{grid-column:1 / span 12;justify-self:stretch;margin-top:32px;}
  .figura-detalle{grid-column:1 / span 12;}
  .bloque-7,.bloque-5-izq{border-right:0;padding-right:0;}
  .bloque-5-der,.bloque-7-der{border-left:0;padding-left:0;}
  .bloque-7,.bloque-7-der{border-bottom:1px dashed var(--acento2);padding-bottom:24px;}
  .pie-caja{grid-template-columns:1fr;}
  .contacto-caja{padding:20px;}
  .ab-8{padding-left:16px;}
  .ab-6,.ab-7{padding-right:16px;}
}
