:root{
  --bg:#f4efe5;
  --paper:#faf7f0;
  --ink:#171410;
  --muted:#746c62;
  --line:#d8cdbc;
  --wine:#7b3027;
  --wine-dark:#653028;
  --gold:#a67638;
  --dark:#151310;
  --max:1280px;
  --radius:2px;
  --serif:Georgia,"Times New Roman",serif;
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.55;
}

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

a{
  color:inherit;
  text-decoration:none;
}

.container{
  width:min(calc(100% - 40px),var(--max));
  margin-inline:auto;
}

.eyebrow{
  font-size:.7rem;
  letter-spacing:.22em;
  font-weight:800;
  color:var(--wine);
}

.eyebrow.light{
  color:#f0d8c2;
}


/* =========================================================
   BOTONES
========================================================= */

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.8rem 1.1rem;
  border:1px solid var(--ink);
  background:var(--ink);
  color:#fff;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  cursor:pointer;
}

.button-light{
  background:#f8f3e8;
  color:var(--ink);
  border-color:#f8f3e8;
}

.button-ghost-light{
  background:transparent;
  color:#fff;
  border-color:rgba(255,255,255,.55);
}


/* =========================================================
   HEADER
========================================================= */

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(250,247,240,.96);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(10px);
}

.header-inner{
  height:82px;
  display:flex;
  align-items:center;
}

.brand{
  display:flex;
  align-items:center;
  flex:0 0 auto;
}

.brand img{
  width:225px;
  height:auto;
}

.main-nav{
  display:flex;
  align-items:center;
  gap:20px;
  margin-left:54px;
}

.main-nav a{
  position:relative;
  font-size:.80rem;
  font-weight:500;
  color:#3d3730;
  white-space:nowrap;
}

.main-nav a:hover{
  color:var(--wine);
}

.social-nav{
  display:flex;
  align-items:center;
  gap:7px;
  margin-left:auto;
}

.social-link{
  width:32px;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--wine-dark);
  border:1px solid rgba(101,48,40,.20);
  border-radius:50%;
  transition:
    background .2s ease,
    color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.social-link svg{
  width:15px;
  height:15px;
  display:block;
  fill:currentColor;
}

.social-link:hover{
  color:#fff;
  background:var(--wine);
  border-color:var(--wine);
  transform:translateY(-1px);
}

.nav-toggle{
  display:none;
  margin-left:10px;
  border:1px solid var(--line);
  background:transparent;
  color:var(--ink);
  padding:.6rem .8rem;
  cursor:pointer;
}


/* =========================================================
   HERO HOME
========================================================= */

.home-hero{
  position:relative;
  min-height:560px;
  display:grid;
  align-items:center;
  overflow:hidden;
  background:var(--dark);
}

.hero-picture,
.hero-picture img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.hero-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(
      90deg,
      rgba(14,12,10,.08) 0%,
      rgba(14,12,10,.15) 40%,
      rgba(14,12,10,.83) 75%,
      rgba(14,12,10,.92) 100%
    );
}

.hero-content{
  position:relative;
  z-index:2;
  color:#fff;
  padding-block:80px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  margin-left:auto;
  width:min(54%,780px);
  margin-right:max(20px,calc((100vw - var(--max))/2));
}

.hero-content h1{
  font-family:var(--serif);
  font-size:clamp(3rem,5.3vw,5.8rem);
  line-height:.92;
  font-weight:400;
  letter-spacing:-.045em;
  margin:.4rem 0 1rem;
  max-width:16ch;
}

.hero-content p{
  max-width:64ch;
  color:#eadfd3;
}

.hero-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:16px;
}


/* =========================================================
   SECCIONES HOME
========================================================= */

.home-section{
  padding:78px 0;
}

.section-heading h2,
.simple-hero h1{
  font-family:var(--serif);
  font-weight:400;
  letter-spacing:-.04em;
}

.split-heading{
  display:grid;
  grid-template-columns:1.6fr 1fr;
  align-items:end;
  gap:40px;
  padding-bottom:22px;
  border-bottom:1px solid var(--line);
  margin-bottom:34px;
}

.split-heading h2{
  font-size:clamp(2.8rem,5vw,5rem);
  line-height:.92;
  margin:.25rem 0 0;
}

.split-heading p{
  color:var(--muted);
  max-width:42ch;
  margin:0;
}


/* =========================================================
   TARJETAS / ÚLTIMAS PUBLICACIONES
========================================================= */

.latest-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
}

.latest-card-featured{
  grid-column:span 2;
}

.card-image{
  display:block;
  overflow:hidden;
  background:#ddd4c5;
}

.card-image img{
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
  transition:transform .4s ease;
}

.content-card:hover .card-image img,
.latest-card:hover .card-image img{
  transform:scale(1.015);
}

.card-meta{
  font-size:.68rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--wine);
  font-weight:800;
  margin-top:14px;
}

.latest-card h3,
.content-card h2{
  font-family:var(--serif);
  font-weight:400;
  line-height:1.02;
  letter-spacing:-.025em;
}

.latest-card h3{
  font-size:2rem;
  margin:.4rem 0;
}

.latest-card-featured h3{
  font-size:clamp(2.5rem,4vw,4rem);
}

.latest-card p,
.content-card p{
  color:var(--muted);
  font-size:.92rem;
}


/* =========================================================
   FRASE DEL MAESTRO
========================================================= */

.quote-section{
  background:var(--dark);
  color:#fff;
  padding:72px 0;
}

.quote-inner{
  max-width:850px;
  position:relative;
}

.quote-mark{
  font-family:var(--serif);
  font-size:5rem;
  color:var(--gold);
  position:absolute;
  left:-55px;
  top:-24px;
}

.quote-inner blockquote{
  font-family:var(--serif);
  font-size:clamp(2.1rem,4.2vw,4rem);
  line-height:.98;
  letter-spacing:-.03em;
  margin:0;
}

.quote-inner small{
  display:block;
  margin-top:18px;
  color:#b9ada0;
  letter-spacing:.13em;
}


/* =========================================================
   COLUMNAS EDITORIALES
========================================================= */

.four-columns{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:34px;
}

.editorial-column{
  border-top:2px solid var(--ink);
  padding-top:16px;
}

.editorial-column h3{
  font-family:var(--serif);
  font-size:1.8rem;
  font-weight:400;
  margin:0 0 14px;
}

.editorial-column ol{
  list-style:none;
  margin:0;
  padding:0;
}

.editorial-column li{
  padding:11px 0;
  border-top:1px solid var(--line);
  font-size:.9rem;
}

.editorial-column li:first-child{
  border-top:0;
}

.editorial-column small,
.muted{
  color:var(--muted);
}


/* =========================================================
   SOBRE EL MAESTRO
========================================================= */

.about-section{
  padding:90px 0;
  background:#efe7d9;
}

.about-grid{
  display:grid;
  grid-template-columns:1fr 420px;
  gap:80px;
  align-items:center;
}

.about-copy h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(3rem,5vw,5.5rem);
  line-height:.92;
  letter-spacing:-.045em;
  max-width:10ch;
  margin:.5rem 0 1.2rem;
}

.about-lead{
  font-family:var(--serif);
  font-size:1.55rem;
  line-height:1.2;
  max-width:34ch;
}

.about-copy p:last-child{
  max-width:56ch;
  color:var(--muted);
}

.about-image img{
  width:100%;
  max-height:620px;
  object-fit:cover;
}


/* =========================================================
   PREGÚNTALE AL MAESTRO
========================================================= */

.chat-section{
  padding:84px 0;
  background:#7e342b;
  color:#fff;
}

.chat-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:60px;
  align-items:stretch;
}

.chat-image{
  width:100%;
  height:100%;
  min-height:100%;
  overflow:hidden;
}

.chat-image picture{
  display:block;
  width:100%;
  height:100%;
}

.chat-image img{
  width:100%;
  height:100%;
  min-height:100%;
  max-height:none;
  object-fit:cover;
  object-position:center;
}

.chat-box h2{
  font-family:var(--serif);
  font-size:clamp(3rem,5vw,5rem);
  font-weight:400;
  line-height:.92;
  margin:.4rem 0 1rem;
}

.chat-box .eyebrow{
  color:#efd1c8;
}

.maestro-chat-form textarea{
  width:100%;
  resize:vertical;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.08);
  color:#fff;
  padding:14px;
  font:inherit;
}

.maestro-chat-form textarea::placeholder{
  color:#e6cfc9;
}

.maestro-chat-form .button{
  margin-top:10px;
  background:#fff;
  color:var(--wine);
  border-color:#fff;
}

.chat-response{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.28);
  min-height:24px;
}

.chat-response:empty{
  padding-top:0;
  min-height:0;
}


/* =========================================================
   PUBLICIDAD
========================================================= */

.ad-section{
  width:100%;
  padding:20px 0;
}

.ad-section .container{
  display:flex;
  justify-content:center;
  align-items:center;
}


/* Anuncio real */

.ad-unit{
  display:flex;
  justify-content:center;
  align-items:center;
  width:fit-content;
  max-width:100%;
  margin-inline:auto;
  text-decoration:none;
}

.ad-unit img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  object-fit:contain;
  margin-inline:auto;
}

.ad-unit-html{
  width:fit-content;
  max-width:100%;
  margin-inline:auto;
  text-align:center;
}


/* Placeholders */

.ad-placeholder{
  min-height:110px;
  border:1px dashed #b7aa98;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  color:#918374;
  background:#f7f2e9;
  margin-inline:auto;
  text-align:center;
}

.ad-placeholder span{
  font-size:.65rem;
  letter-spacing:.18em;
  font-weight:800;
}

.ad-placeholder small{
  font-size:.65rem;
}


/* Columnas publicitarias */

.ad-columns-section{
  padding-top:25px;
}

.ad-columns{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.ad-columns > div{
  display:flex;
  justify-content:center;
  align-items:center;
  min-width:0;
}

.ad-square{
  min-height:230px;
}


/* =========================================================
   PÁGINAS DE SECCIÓN / TAG / BÚSQUEDA
========================================================= */

.simple-hero{
  padding:90px 0 52px;
  border-bottom:1px solid var(--line);
  background:var(--bg);
}

.simple-hero h1{
  font-size:clamp(4rem,8vw,8rem);
  line-height:.88;
  margin:.4rem 0 1rem;
}

.simple-hero p{
  max-width:60ch;
  color:var(--muted);
  font-size:1.05rem;
}

.section-content{
  padding:55px 0 90px;
}

.cards-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:34px;
}

.content-card h2{
  font-size:2rem;
  margin:.5rem 0;
}

.compact-card{
  border-top:1px solid var(--line);
  padding-top:15px;
}

.compact-card .card-meta{
  margin-top:0;
}


/* =========================================================
   CONTENIDO INDIVIDUAL
========================================================= */

.breadcrumb{
  font-size:.78rem;
  color:var(--muted);
  display:flex;
  gap:8px;
  padding-top:30px;
}

.content-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(350px,390px);
  gap:70px;
  padding-top:40px;
  padding-bottom:70px;
}

.article-head h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(3.8rem,6vw,6.8rem);
  line-height:.92;
  letter-spacing:-.05em;
  margin:.6rem 0 1rem;
}

.article-lead{
  font-family:var(--serif);
  font-size:1.55rem;
  line-height:1.3;
  color:#4e473f;
  max-width:52ch;
}

.article-meta{
  display:flex;
  gap:18px;
  padding:15px 0;
  border-top:1px solid var(--line);
  font-size:.76rem;
  color:var(--muted);
}

.article-image{
  margin:30px 0;
}

.article-image img{
  width:100%;
  max-height:720px;
  object-fit:cover;
}

.article-body{
  font-family:var(--serif);
  font-size:1.26rem;
  line-height:1.72;
  max-width:760px;
}

.article-body p{
  margin:0 0 1.35em;
}

.article-body h2,
.article-body h3{
  font-weight:400;
  line-height:1.05;
}

.article-body a{
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}

.article-quote{
  font-family:var(--serif);
  font-size:2.1rem;
  line-height:1.1;
  border-left:4px solid var(--wine);
  padding-left:24px;
  margin:50px 0;
}

.tag-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:42px;
}

.tag-list a{
  border:1px solid var(--line);
  padding:7px 10px;
  font-size:.76rem;
}


/* =========================================================
   SIDEBAR
========================================================= */

.sidebar{
  min-width:350px;
}

.sidebar-module{
  border-top:2px solid var(--ink);
  padding-top:16px;
  margin-bottom:38px;
}

.sidebar-module h3{
  font-family:var(--serif);
  font-size:1.7rem;
  font-weight:400;
  margin:.35rem 0 1rem;
}

.sidebar-list{
  list-style:none;
  padding:0;
  margin:0;
}

.sidebar-list li{
  border-top:1px solid var(--line);
  padding:10px 0;
  font-size:.9rem;
}

.sidebar-nav{
  display:flex;
  flex-direction:column;
}

.sidebar-nav a{
  padding:9px 0;
  border-top:1px solid var(--line);
}

.sidebar-tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.sidebar-tags a{
  font-size:.73rem;
  border:1px solid var(--line);
  padding:6px 8px;
}


/* =========================================================
   BÚSQUEDA / ESTADOS VACÍOS
========================================================= */

.search-form{
  display:flex;
  max-width:720px;
  margin-top:30px;
}

.search-form input{
  flex:1;
  padding:14px;
  border:1px solid var(--line);
  font:inherit;
}

.search-form button{
  padding:0 22px;
  border:0;
  background:var(--ink);
  color:#fff;
  font-weight:700;
}

.empty-state{
  border:1px solid var(--line);
  padding:30px;
  color:var(--muted);
  background:#f8f4ec;
}


/* =========================================================
   FOOTER
========================================================= */

.site-footer{
  background:#12110f;
  color:#f0ebe2;
  padding:65px 0 25px;
}

.footer-grid{
  display:grid;
  grid-template-columns:1.35fr repeat(3,1fr);
  gap:45px;
}

.footer-logo{
  width:240px;
  margin-bottom:14px;
}

.footer-grid h3{
  font-family:var(--serif);
  font-size:1.25rem;
  font-weight:400;
  margin:0 0 12px;
}

.footer-grid a,
.footer-grid span{
  display:block;
  color:#bfb5aa;
  font-size:.84rem;
  padding:4px 0;
}

.footer-bottom{
  margin-top:45px;
  padding-top:18px;
  border-top:1px solid #302c27;
  color:#82786d;
  font-size:.74rem;
}


/* =========================================================
   MÓDULOS
========================================================= */

.vm-module-shell{
  display:block;
}

.three-editorial-columns{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:34px;
}


/* =========================================================
   RESPONSIVE — DESKTOP COMPACTO
========================================================= */

@media(max-width:1180px){

  .brand img{
    width:190px;
  }

  .main-nav{
    gap:14px;
    margin-left:32px;
  }

  .main-nav a{
    font-size:.76rem;
  }

  .social-nav{
    gap:5px;
  }

  .social-link{
    width:30px;
    height:30px;
  }

}


/* =========================================================
   RESPONSIVE — TABLET
========================================================= */

@media(max-width:980px){

  .main-nav{
    display:none;
    position:absolute;
    top:82px;
    left:0;
    right:0;
    margin-left:0;
    background:var(--paper);
    padding:20px;
    flex-direction:column;
    align-items:flex-start;
    border-bottom:1px solid var(--line);
  }

  .main-nav.is-open{
    display:flex;
  }

  .nav-toggle{
    display:block;
  }

  .hero-content{
    width:min(58%,680px);
    margin-right:30px;
  }

  .hero-content h1{
    max-width:14ch;
  }

  .latest-grid,
  .cards-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .latest-card-featured{
    grid-column:span 2;
  }

  .four-columns{
    grid-template-columns:repeat(2,1fr);
  }

  .about-grid{
    grid-template-columns:1fr 330px;
    gap:45px;
  }

  .chat-grid{
    grid-template-columns:1fr;
    gap:32px;
  }

  .chat-image{
    height:auto;
    min-height:0;
    aspect-ratio:8/5;
  }

  .chat-image picture,
  .chat-image img{
    height:100%;
    min-height:0;
  }

  .ad-columns{
    grid-template-columns:repeat(2,1fr);
  }

  .content-layout{
    grid-template-columns:1fr;
  }

  .sidebar{
    min-width:0;
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:30px;
  }

  .footer-grid{
    grid-template-columns:repeat(2,1fr);
  }

}


/* =========================================================
   RESPONSIVE — MOBILE
========================================================= */

@media(max-width:700px){

  .container{
    width:min(calc(100% - 28px),var(--max));
  }

  .header-inner{
    height:68px;
  }

  .brand{
    min-width:0;
  }

  .brand img{
    width:150px;
    height:auto;
    object-fit:contain;
  }

  .main-nav{
    top:68px;
  }

  .social-nav{
    gap:4px;
  }

  .social-link{
    width:27px;
    height:27px;
  }

  .social-link svg{
    width:13px;
    height:13px;
  }

  .nav-toggle{
    padding:.48rem .62rem;
    font-size:.72rem;
  }

  .home-hero{
    min-height:640px;
  }

  .hero-overlay{
    background:
      linear-gradient(
        180deg,
        rgba(10,9,8,.05) 10%,
        rgba(10,9,8,.2) 45%,
        rgba(10,9,8,.94) 80%
      );
  }

  .hero-content{
    width:auto;
    margin:0;
    align-self:end;
    padding:34px 20px 42px;
  }

  .hero-content h1{
    font-size:3.45rem;
    max-width:10ch;
  }

  .split-heading{
    grid-template-columns:1fr;
    gap:14px;
  }

  .split-heading h2{
    font-size:3.25rem;
  }

  .latest-grid,
  .cards-grid,
  .four-columns,
  .ad-columns,
  .about-grid,
  .footer-grid{
    grid-template-columns:1fr;
  }

  .latest-card-featured{
    grid-column:auto;
  }

  .latest-card-featured h3{
    font-size:2.5rem;
  }

  .home-section{
    padding:55px 0;
  }

  .quote-section{
    padding:58px 0;
  }

  .quote-mark{
    position:static;
    display:block;
    height:45px;
  }

  .about-section{
    padding:60px 0;
  }

  .about-grid{
    gap:30px;
  }

  .about-copy h2{
    font-size:3.4rem;
  }

  .about-image{
    order:-1;
  }

  .chat-section{
    padding:60px 0;
  }

  .chat-box h2{
    font-size:3.5rem;
  }

  .chat-image{
    aspect-ratio:4/5;
  }

  .ad-unit,
  .ad-unit-html{
    max-width:100%;
  }

  .ad-unit img{
    max-width:100%;
    height:auto;
  }

  .simple-hero{
    padding:65px 0 40px;
  }

  .simple-hero h1{
    font-size:4.5rem;
  }

  .content-layout{
    gap:30px;
  }

  .article-head h1{
    font-size:3.5rem;
  }

  .article-lead{
    font-size:1.25rem;
  }

  .article-body{
    font-size:1.12rem;
  }

  .sidebar{
    display:block;
  }

  .footer-grid{
    gap:30px;
  }

  .three-editorial-columns{
    grid-template-columns:1fr;
  }

}


/* =========================================================
   RESPONSIVE — MOBILE PEQUEÑO
========================================================= */

@media(max-width:480px){

  .brand img{
    width:125px;
  }

  .social-link{
    width:25px;
    height:25px;
  }

  .social-link svg{
    width:12px;
    height:12px;
  }

  .social-nav{
    gap:3px;
  }

  .nav-toggle{
    margin-left:6px;
    padding:.42rem .5rem;
  }

}


/* =========================================================
   VISIBILIDAD DE MÓDULOS POR DISPOSITIVO
========================================================= */

@media(min-width:981px){
  .vm-hide-desktop{
    display:none!important;
  }
}

@media(min-width:701px) and (max-width:980px){
  .vm-hide-tablet{
    display:none!important;
  }
}

@media(max-width:700px){
  .vm-hide-mobile{
    display:none!important;
  }
}

/* =========================================================
   SIDEBAR · TEMAS
========================================================= */

.sidebar-topics .sidebar-tags{
  margin-top:14px;

  display:flex;
  flex-wrap:wrap;
  align-content:flex-start;

  gap:7px;

  max-height:245px;
  overflow:hidden;
}

.sidebar-topics .sidebar-tags a{
  display:inline-flex;

  padding:5px 8px;

  border:1px solid var(--line);

  font-size:.69rem;
  line-height:1.15;

  color:#514941;

  background:transparent;
}

.sidebar-topics .sidebar-tags a:hover{
  border-color:var(--wine);
  color:var(--wine);
}

/* =========================================================
   FRASE DEL MAESTRO · SLIDER MANUAL
   Agregar al FINAL de /public/assets/css/site.css
========================================================= */

.quote-slider{
  position:relative;
  overflow:hidden;
}

.quote-slider-inner{
  position:relative;
}

.quote-track{
  position:relative;
  min-height:390px;
  display:flex;
  align-items:center;
}

.quote-slide{
  display:none;
  position:relative;
  width:min(100%,900px);
  margin-inline:auto;
}

.quote-slide.is-active{
  display:block;
}

.quote-slide .quote-mark{
  font-family:var(--serif);
  font-size:5rem;
  line-height:1;
  color:var(--gold);
  position:absolute;
  left:-55px;
  top:-24px;
}

.quote-slide blockquote{
  font-family:var(--serif);
  font-size:clamp(2.1rem,4.2vw,4rem);
  line-height:.98;
  letter-spacing:-.03em;
  margin:0;
}

.quote-slide small{
  display:block;
  margin-top:18px;
  color:#b9ada0;
  letter-spacing:.13em;
}

.quote-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:5;

  width:64px;
  height:92px;

  display:flex;
  align-items:center;
  justify-content:center;

  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.03);
  color:#d6c8b8;

  font-family:Georgia,"Times New Roman",serif;
  font-size:4rem;
  font-weight:400;
  line-height:1;

  cursor:pointer;

  transition:
    background .2s ease,
    color .2s ease,
    border-color .2s ease;
}

.quote-arrow:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.34);
  color:#fff;
}

.quote-arrow:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}

.quote-arrow-prev{
  left:max(22px,calc((100vw - var(--max))/2 - 85px));
}

.quote-arrow-next{
  right:max(22px,calc((100vw - var(--max))/2 - 85px));
}

.quote-arrow[hidden]{
  display:none;
}

@media(max-width:1180px){

  .quote-arrow-prev{
    left:18px;
  }

  .quote-arrow-next{
    right:18px;
  }

  .quote-slide{
    width:min(100% - 130px,850px);
  }

}

@media(max-width:700px){

  .quote-slider{
    padding:52px 0;
  }

  .quote-track{
    min-height:330px;
  }

  .quote-slide{
    width:min(100% - 70px,100%);
  }

  .quote-slide .quote-mark{
    position:static;
    display:block;
    height:42px;
    font-size:4.1rem;
  }

  .quote-slide blockquote{
    font-size:clamp(2rem,9.5vw,3.25rem);
    line-height:1;
  }

  .quote-arrow{
    width:42px;
    height:68px;
    font-size:3rem;
    border-color:rgba(255,255,255,.12);
  }

  .quote-arrow-prev{
    left:7px;
  }

  .quote-arrow-next{
    right:7px;
  }

}

.footer-brand{
  width:240px;
  max-width:100%;
}

.footer-tagline{
  max-width:240px;
  margin:0;
}


/* =========================================================
   FOOTER · IDENTIDAD
   Agregar al FINAL de /public/assets/css/site.css
========================================================= */

.footer-brand{
  width:240px;
  max-width:100%;
}

.footer-brand .footer-logo{
  display:block;
  width:240px;
  max-width:100%;
}

.footer-brand .footer-tagline{
  width:100%;
  max-width:240px;
  margin-right:0;
}

/* =========================================================
   ARCHIVOS POR TIPO · PAGINACIÓN
========================================================= */

.archive-pagination{
  margin-top:48px;
  padding-top:20px;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:20px;
  font-size:.8rem;
  letter-spacing:.06em;
}

.archive-pagination a{
  color:var(--wine);
  font-weight:700;
}

.archive-pagination a:last-child{
  text-align:right;
}

.archive-pagination-status{
  color:var(--muted);
  text-align:center;
}

@media(max-width:700px){
  .archive-pagination{
    grid-template-columns:1fr 1fr;
  }

  .archive-pagination-status{
    grid-column:1 / -1;
    grid-row:1;
  }
}

/* =========================================================
   HOME · AJUSTES EDITORIALES
   Agregar al FINAL de /public/assets/css/site.css
========================================================= */

/* Últimas publicaciones:
   título + bajada en una sola columna */
.latest-section .latest-heading{
  display:block;
}

.latest-section .latest-heading-copy{
  max-width:620px;
  margin:14px 0 0;
  color:var(--muted);
}

/* Los 6 artículos tienen exactamente el mismo tratamiento.
   Desktop: 3 columnas x 2 filas. */
.latest-section .latest-grid{
  grid-template-columns:repeat(3,1fr);
}

.latest-section .latest-card{
  min-width:0;
}

/* Enlaces hacia los archivos editoriales */
.home-archive-link-wrap{
  margin-top:34px;
}

.home-archive-link,
.editorial-archive-link{
  display:inline-block;
  color:var(--wine);
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.03em;
}

.home-archive-link:hover,
.editorial-archive-link:hover{
  text-decoration:underline;
}

.editorial-archive-link-wrap{
  margin-top:22px;
  padding-top:2px;
}

/* Mantener responsive ya existente */
@media(max-width:980px){
  .latest-section .latest-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

@media(max-width:700px){
  .latest-section .latest-grid{
    grid-template-columns:1fr;
  }

  .latest-section .latest-heading-copy{
    max-width:none;
  }
}

/* =========================================================
   HOME · AJUSTES EDITORIALES V2
   Agregar al FINAL de /public/assets/css/site.css
========================================================= */

/* ---------------------------------------------------------
   Últimas publicaciones
--------------------------------------------------------- */

.latest-section .latest-heading{
  display:block;
}

/* Bajada debajo del título, con más aire y en una sola línea */
.latest-section .latest-heading-copy{
  max-width:none;
  margin:24px 0 0;
  color:var(--muted);
  white-space:nowrap;
}

/* Los artículos mantienen el grid 3 x 2 en desktop */
.latest-section .latest-grid{
  grid-template-columns:repeat(3,1fr);
}

.latest-section .latest-card{
  min-width:0;
}

/* Línea + espacio antes de "Ver todos los artículos" */
.home-archive-link-wrap{
  margin-top:38px;
  padding-top:22px;
  border-top:1px solid var(--line);
}

.home-archive-link{
  display:inline-block;
  color:var(--wine);
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.03em;
}

.home-archive-link:hover{
  text-decoration:underline;
}


/* ---------------------------------------------------------
   Reflexiones · Historias · Listas
--------------------------------------------------------- */

/* Línea horizontal y aire antes del enlace final */
.editorial-archive-link-wrap{
  margin-top:24px;
  padding-top:16px;
  border-top:1px solid var(--line);
}

.editorial-archive-link{
  display:inline-block;
  color:var(--wine);
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.03em;
}

.editorial-archive-link:hover{
  text-decoration:underline;
}


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

@media(max-width:980px){

  .latest-section .latest-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .latest-section .latest-heading-copy{
    white-space:normal;
  }

}

@media(max-width:700px){

  .latest-section .latest-grid{
    grid-template-columns:1fr;
  }

  .latest-section .latest-heading-copy{
    margin-top:18px;
    max-width:none;
    white-space:normal;
  }

  .home-archive-link-wrap{
    margin-top:30px;
    padding-top:18px;
  }

  .editorial-archive-link-wrap{
    margin-top:20px;
    padding-top:14px;
  }

}

/* =========================================================
   HEADER · BUSCADOR
   Agregar al FINAL de /public/assets/css/site.css
========================================================= */

/* La lupa ocupa el margen automático que antes usaban
   directamente los iconos sociales. */
.header-search-toggle{
  width:32px;
  height:32px;
  flex:0 0 32px;
  margin-left:auto;

  display:flex;
  align-items:center;
  justify-content:center;

  padding:0;
  border:1px solid rgba(101,48,40,.20);
  border-radius:50%;

  background:transparent;
  color:var(--wine-dark);
  cursor:pointer;

  transition:
    background .2s ease,
    color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.header-search-toggle svg{
  width:15px;
  height:15px;
  display:block;
  fill:currentColor;
}

.header-search-toggle:hover,
.header-search-toggle[aria-expanded="true"]{
  color:#fff;
  background:var(--wine);
  border-color:var(--wine);
  transform:translateY(-1px);
}

/* El auto-margin pasa de social-nav a la lupa. */
.header-search-toggle + .social-nav{
  margin-left:7px;
}


/* ---------------------------------------------------------
   PANEL
--------------------------------------------------------- */

.header-search-panel{
  background:var(--paper);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.header-search-panel[hidden]{
  display:none;
}

.header-search-inner{
  min-height:118px;
  display:flex;
  align-items:center;
  gap:24px;
}

.header-search-form{
  flex:1;
  min-width:0;
}

.header-search-label{
  display:block;
  margin-bottom:9px;

  color:var(--wine);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.header-search-field{
  width:min(100%,820px);
  display:flex;
  align-items:stretch;
}

.header-search-field input{
  flex:1;
  min-width:0;
  height:46px;

  padding:0 15px;
  border:1px solid var(--line);
  border-right:0;

  background:#fff;
  color:var(--ink);

  font:inherit;
  font-size:.92rem;

  outline:none;
}

.header-search-field input:focus{
  border-color:var(--wine);
}

.header-search-field input::placeholder{
  color:#968c80;
}

.header-search-submit{
  height:46px;
  padding:0 22px;

  border:1px solid var(--wine);
  background:var(--wine);
  color:#fff;

  font-size:.7rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;

  cursor:pointer;
}

.header-search-submit:hover{
  background:var(--wine-dark);
  border-color:var(--wine-dark);
}

.header-search-close{
  width:38px;
  height:38px;
  flex:0 0 38px;

  display:flex;
  align-items:center;
  justify-content:center;

  padding:0;
  border:0;
  background:transparent;
  color:var(--muted);

  font-family:Georgia,"Times New Roman",serif;
  font-size:1.8rem;
  line-height:1;

  cursor:pointer;
}

.header-search-close:hover{
  color:var(--wine);
}


/* ---------------------------------------------------------
   RESPONSIVE
--------------------------------------------------------- */

@media(max-width:1180px){

  .header-search-toggle{
    width:30px;
    height:30px;
    flex-basis:30px;
  }

  .header-search-toggle svg{
    width:14px;
    height:14px;
  }

  .header-search-toggle + .social-nav{
    margin-left:5px;
  }

}

@media(max-width:700px){

  .header-search-toggle{
    width:27px;
    height:27px;
    flex-basis:27px;
  }

  .header-search-toggle svg{
    width:13px;
    height:13px;
  }

  .header-search-toggle + .social-nav{
    margin-left:4px;
  }

  .header-search-inner{
    min-height:126px;
    align-items:flex-start;
    gap:10px;
    padding-top:18px;
    padding-bottom:18px;
  }

  .header-search-field{
    width:100%;
  }

  .header-search-field input{
    height:44px;
    padding-inline:12px;
    font-size:.86rem;
  }

  .header-search-submit{
    height:44px;
    padding-inline:14px;
  }

  .header-search-close{
    width:30px;
    height:30px;
    flex-basis:30px;
    margin-top:20px;
  }

}

@media(max-width:480px){

  .header-search-toggle{
    width:25px;
    height:25px;
    flex-basis:25px;
  }

  .header-search-toggle svg{
    width:12px;
    height:12px;
  }

  .header-search-toggle + .social-nav{
    margin-left:3px;
  }

  .header-search-label{
    font-size:.64rem;
  }

  .header-search-submit{
    padding-inline:11px;
    font-size:.64rem;
  }

}

/* =========================================================
   SECCIONES · PAGINACIÓN
   Agregar al FINAL de /public/assets/css/site.css
========================================================= */

.section-pagination{
  margin-top:48px;
  padding-top:28px;
  border-top:1px solid var(--line);

  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}

.pagination-pages{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
}

.pagination-page,
.pagination-nav,
.pagination-ellipsis{
  min-width:42px;
  height:42px;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  padding:0 13px;

  border:1px solid var(--line);
  background:transparent;
  color:var(--ink);

  font-size:.82rem;
  line-height:1;
  text-decoration:none;
}

.pagination-nav{
  min-width:auto;
  padding-inline:16px;
}

.pagination-page:hover,
.pagination-nav:hover{
  border-color:var(--wine);
  color:var(--wine);
}

.pagination-page.is-current{
  border-color:var(--wine);
  background:var(--wine);
  color:#fff;
  font-weight:700;
}

.pagination-ellipsis{
  min-width:28px;
  padding:0;
  border-color:transparent;
}

.pagination-nav.is-disabled{
  opacity:.38;
  cursor:default;
  pointer-events:none;
}

@media(max-width:700px){

  .section-pagination{
    margin-top:36px;
    padding-top:22px;
    gap:7px;
  }

  .pagination-pages{
    gap:6px;
    width:100%;
    order:2;
  }

  .pagination-nav{
    flex:1;
    max-width:150px;
  }

  .pagination-page,
  .pagination-nav,
  .pagination-ellipsis{
    height:39px;
    min-width:39px;
    font-size:.77rem;
  }

}


/* =========================================================
   CONTENIDO INDIVIDUAL · ANTERIOR / SIGUIENTE
   Agregar al FINAL de /public/assets/css/site.css
========================================================= */

.content-neighbors{
  margin-top:34px;
  padding-top:24px;
  border-top:1px solid var(--line);

  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:34px;
}

.content-neighbor{
  min-width:0;
}

.content-neighbor a{
  display:block;
  color:var(--ink);
  text-decoration:none;
}

.content-neighbor-next{
  text-align:right;
}

.content-neighbor-label{
  display:block;
  margin-bottom:9px;

  color:var(--wine);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.content-neighbor strong{
  display:block;
  max-width:390px;

  font-family:var(--serif);
  font-size:1.14rem;
  font-weight:600;
  line-height:1.25;
}

.content-neighbor-next strong{
  margin-left:auto;
}

.content-neighbor a:hover .content-neighbor-label{
  text-decoration:underline;
}

.content-neighbor a:hover strong{
  color:var(--wine);
}


@media(max-width:700px){

  .content-neighbors{
    margin-top:28px;
    padding-top:20px;
    grid-template-columns:1fr;
    gap:24px;
  }

  .content-neighbor-next{
    text-align:left;
  }

  .content-neighbor-next strong{
    margin-left:0;
  }

}
