/* ==========================================================================
   Menina do Livrinho.Wine — "Granito & Tawny"
   Sistema visual aprovado, herdado do site anterior. Ficheiro editado à MÃO:
   o build.py não escreve CSS.
   Paleta: cal, granito, vinho, tawny (decorativo), tawny-deep (texto pequeno,
   contraste AA sobre cal), vinha, pedra.
   ========================================================================== */

:root{
  --cream:#F7F2E9;
  --ink:#14100E;
  --wine:#5E1A24;
  --tawny:#B9762F;          /* só decorativo (linhas, ícones grandes) */
  --tawny-deep:#96601F;     /* texto pequeno sobre cal — WCAG AA 4.7:1 */
  --sage:#4F5B4A;
  --stone:#DED4C4;
  --muted:#6E655C;
  --paper:#FBF7F0;
  --font-display:'Boska','Iowan Old Style',Georgia,serif;
  --font-body:'Switzer','Inter',system-ui,sans-serif;
  --font-hand:'Homemade Apple',cursive;  /* SÓ wordmark e assinaturas */

  --container:1180px;
  --gutter:clamp(1.25rem,5vw,6rem);
  --section:clamp(3rem,7vw,6rem);
  --radius:2px;
  --header-h:76px;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body,h1,h2,h3,h4,p,figure,blockquote,dl,dd,ul,ol{margin:0}
ul[class],ol[class]{list-style:none;padding:0}
img,svg{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit;color:inherit}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* ---------- tipografia ---------- */
h1,h2,h3,.display{
  font-family:var(--font-display);
  font-weight:400;
  line-height:1.08;
  text-wrap:balance;
}
h1{font-size:clamp(2.2rem,4.8vw,3.9rem);letter-spacing:-0.02em}
h2{font-size:clamp(1.8rem,3.2vw,2.7rem);letter-spacing:-0.015em}
h3{font-size:clamp(1.3rem,1.8vw,1.65rem);letter-spacing:-0.01em}
p{text-wrap:pretty}
.lead{font-size:clamp(1.05rem,1.35vw,1.22rem);line-height:1.6;color:var(--muted)}
.prose{max-width:66ch}
.prose p+p{margin-top:1.15em}
.muted{color:var(--muted)}
.eyebrow{
  display:block;
  font-size:12px;line-height:1.4;
  text-transform:uppercase;letter-spacing:.2em;
  font-weight:600;color:var(--tawny-deep);
  margin-bottom:1rem;
}
a{color:inherit}
.link{
  color:var(--wine);font-weight:600;font-size:14px;
  text-transform:uppercase;letter-spacing:.1em;text-decoration:none;
  border-bottom:1px solid var(--stone);padding-bottom:2px;
  transition:border-color .25s ease;
}
.link:hover{border-color:var(--wine)}
a.plain{text-decoration:none;border-bottom:1px solid var(--stone)}
a.plain:hover{border-color:var(--wine)}

/* wordmark manuscrito — só no logótipo e nas assinaturas */
.signature{font-family:var(--font-hand);font-size:1.05em;letter-spacing:.01em}
/* O .Wine acompanha sempre o wordmark, mas num corpo mais discreto para não
   competir com o manuscrito. */
.signature__tld{font:inherit;color:inherit}

/* ---------- layout ---------- */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section)}
.section--tight{padding-block:calc(var(--section) * .62)}
.section--paper{background:var(--paper);border-block:1px solid var(--stone)}
.section--article{padding-top:clamp(1.5rem,3vw,2.5rem)}
.split{display:grid;gap:clamp(2rem,4vw,4rem);align-items:center}
@media (min-width:900px){
  .split{grid-template-columns:7fr 5fr}
  .split--narrow{grid-template-columns:5fr 7fr}
}
.section-head{max-width:60ch;margin-bottom:clamp(2rem,3.5vw,3rem)}
.section-head p{margin-top:1rem}

.skip{
  position:absolute;left:1rem;top:-4rem;z-index:200;
  background:var(--ink);color:var(--cream);
  padding:.7rem 1.1rem;text-decoration:none;font-size:13px;
  letter-spacing:.08em;text-transform:uppercase;transition:top .2s ease;
}
.skip:focus{top:1rem}
:focus-visible{outline:2px solid var(--wine);outline-offset:3px}

/* ---------- botões ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;
  padding:1rem 1.5rem;border-radius:var(--radius);
  text-decoration:none;border:1px solid transparent;cursor:pointer;
  transition:background-color .25s ease,color .25s ease,border-color .25s ease;
  text-align:center;
}
.btn--primary{background:var(--wine);color:#FBF7F0;border-color:var(--wine)}
.btn--primary:hover{background:#4A141C;border-color:#4A141C}
.btn--ink{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--ink:hover{background:var(--ink);color:var(--cream)}
.btn--sm{padding:.75rem 1.1rem}
.btn-row{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2rem}
.ghost-link{
  display:block;text-align:center;font-size:13px;font-weight:600;
  text-transform:uppercase;letter-spacing:.12em;color:var(--wine);text-decoration:none;
  padding:.9rem 1rem;border:1px solid var(--stone);border-radius:var(--radius);
  background:none;cursor:pointer;transition:border-color .25s ease;
}
.ghost-link:hover{border-color:var(--wine)}
.ghost-link--sm{padding:.55rem .9rem;font-size:11.5px;display:inline-block}

/* ---------- cabeçalho ---------- */
.header{
  position:sticky;top:0;z-index:90;background:var(--cream);
  border-bottom:1px solid var(--stone);
}
.header__inner{
  display:flex;align-items:center;justify-content:space-between;gap:1.25rem;
  min-height:var(--header-h);padding-block:.7rem;
}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:inherit;min-width:0}
.brand .mark{width:36px;height:36px;flex:none;color:var(--wine)}
.brand__text{display:block;min-width:0}
.brand__name{
  font-family:var(--font-hand);font-size:1.02rem;line-height:1.35;display:block;
  white-space:nowrap;color:var(--ink);
}
/* O .Wine faz parte do wordmark: mesma letra manuscrita, colado ao nome, só
   um pouco mais pequeno e em vinho para se ler como sufixo e não como palavra
   à parte. */
.brand__tld{font:inherit;color:inherit}
@media (max-width:420px){.brand__name{font-size:.9rem}.brand .mark{width:31px;height:31px}}

.nav{display:flex;align-items:center;gap:clamp(.85rem,1.6vw,1.6rem)}
.nav__link{
  font-size:13.5px;letter-spacing:.04em;color:var(--muted);text-decoration:none;
  padding-bottom:3px;border-bottom:1px solid transparent;
  transition:color .2s ease,border-color .2s ease;
}
.nav__link:hover{color:var(--ink);border-bottom-color:currentColor}
.nav__link[aria-current="page"]{color:var(--ink);border-bottom-color:var(--tawny)}
.lang{
  display:inline-flex;align-items:center;border:1px solid var(--stone);
  border-radius:var(--radius);overflow:hidden;color:var(--muted);flex:none;
}
.lang button{
  background:none;border:0;cursor:pointer;font-size:11px;font-weight:600;
  letter-spacing:.12em;padding:.42rem .55rem;color:inherit;
}
.lang button[aria-pressed="true"]{background:var(--wine);color:#FBF7F0}

.burger{
  display:none;width:44px;height:44px;border:1px solid var(--ink);background:none;
  border-radius:var(--radius);cursor:pointer;padding:0;
  align-items:center;justify-content:center;flex-direction:column;gap:5px;flex:none;
}
.burger__bar{display:block;width:18px;height:1.5px;background:var(--ink)}

.menu{
  position:fixed;inset:0;z-index:120;background:var(--ink);color:var(--cream);
  display:none;flex-direction:column;padding:1.1rem var(--gutter) 2rem;overflow-y:auto;
}
.menu[data-open="true"]{display:flex}
.menu__top{display:flex;align-items:center;justify-content:space-between;min-height:var(--header-h)}
.menu .brand__name,.menu .brand{color:var(--cream)}
.menu .brand .mark{color:var(--cream)}

.menu__close{
  width:44px;height:44px;background:none;border:1px solid rgba(247,242,233,.4);
  color:inherit;cursor:pointer;border-radius:var(--radius);font-size:20px;line-height:1;flex:none;
}
.menu__list{margin-block:auto;display:flex;flex-direction:column;gap:.2rem;padding-block:1.5rem}
.menu__list a{
  font-family:var(--font-display);font-size:clamp(1.6rem,7vw,2.3rem);
  text-decoration:none;padding-block:.28rem;color:inherit;
}
.menu__list a[aria-current="page"]{color:#DDA35F}
.menu__foot{display:flex;flex-direction:column;gap:1rem;border-top:1px solid rgba(247,242,233,.18);padding-top:1.25rem}
.menu .lang{border-color:rgba(247,242,233,.4);color:rgba(247,242,233,.85);align-self:flex-start}
.menu .ghost-link{border-color:rgba(247,242,233,.35);color:#EFE3D2}

@media (max-width:1060px){
  .nav{display:none}
  .burger{display:flex}
}

/* ---------- hero da página inicial ---------- */
.hero--home{
  border-bottom:1px solid var(--stone);background:var(--paper);
  padding-block:clamp(2.5rem,6vw,5rem);
}
.hero--home .container{display:grid;gap:clamp(2rem,4vw,3.5rem);align-items:center}
@media (min-width:860px){.hero--home .container{grid-template-columns:1.35fr .65fr}}
.hero__inner{max-width:44rem}
.hero__inner h1{margin-top:.2rem}
.hero__inner .lead{margin-top:1.25rem;max-width:44ch}
.hero__sig{margin-top:1.75rem;color:var(--wine);font-size:1.25rem}
.hero__art img{
  width:100%;max-width:340px;border-radius:var(--radius);
  border:1px solid var(--stone);margin-inline:auto;
}

/* ---------- cabeçalho de página interior ---------- */
.pagehead{
  padding-block:clamp(2rem,4vw,3.25rem) clamp(1.25rem,2.5vw,2rem);
  border-bottom:1px solid var(--stone);background:var(--paper);
}
.pagehead h1{margin-top:.1rem}
.pagehead .lead{margin-top:1rem;max-width:56ch}
/* o fundo do cabeçalho do /admin usa o mesmo papel das outras páginas:
   um tom mais escuro fazia o texto pequeno tawny cair abaixo de 4.5:1 */
.pagehead--admin{background:var(--paper);border-bottom-color:#CDBFA6}

/* ---------- barra de números ---------- */
.numbers{border-bottom:1px solid var(--stone);background:var(--cream)}
/* três números: coluna única no telemóvel, três colunas a partir dos 760 */
.numbers__grid{display:grid;grid-template-columns:1fr}
@media (min-width:760px){.numbers__grid{grid-template-columns:repeat(3,1fr)}}
.numbers__grid>div{
  padding:1.35rem clamp(.75rem,2vw,1.5rem);text-align:center;
  border-bottom:1px solid var(--stone);
}
@media (min-width:760px){
  .numbers__grid>div{border-bottom:0}
  .numbers__grid>div+div{border-left:1px solid var(--stone)}
}
@media (max-width:759px){
  .numbers__grid>div:last-child{border-bottom:0}
}
.stat__num{font-family:var(--font-display);font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.05;display:block}
.stat__label{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-top:.4rem;display:block}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:1.75rem;border-top:1px solid var(--stone);padding-top:1.4rem}

/* ---------- cartões de secção (home) ---------- */
.seccards{display:grid;gap:clamp(1.5rem,2.5vw,2rem);grid-template-columns:1fr}
@media (min-width:640px){.seccards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1080px){.seccards{grid-template-columns:repeat(4,1fr)}}
.seccard{
  display:flex;flex-direction:column;text-decoration:none;color:inherit;
  border:1px solid var(--stone);border-radius:var(--radius);overflow:hidden;
  background:var(--paper);transition:border-color .3s ease;
}
.seccard:hover{border-color:#C6B79F}
/* secção ainda sem textos: em vez de uma capa, o mark da marca sobre pedra */
.seccard__media--soon{
  aspect-ratio:16/10;display:grid;place-items:center;background:var(--stone);
  color:var(--wine);
}
.seccard__media--soon .mark{width:46px;height:46px;opacity:.55}

/* ---------- estado "ainda a escrever" (secção vazia) ---------- */
.soon{
  max-width:34rem;margin-inline:auto;text-align:center;
  border:1px solid var(--stone);border-radius:var(--radius);
  background:var(--paper);padding:clamp(2.2rem,5vw,3.4rem) clamp(1.4rem,4vw,2.6rem);
}
.soon__mark{color:var(--wine);opacity:.6;display:flex;justify-content:center}
.soon__mark .mark{width:52px;height:52px}
.soon__title{margin-top:1.1rem}
.soon__text{margin-top:.85rem;color:var(--muted);font-size:16px;line-height:1.65}
.btn-row--center{justify-content:center}
.sabias-hero{max-width:778px;margin:0 auto clamp(2rem,4vw,3rem)}
.sabias-hero img{width:100%;height:auto}
.sabias-intro{max-width:52rem;margin:0 auto clamp(2.5rem,5vw,4rem)}
.seccard__media{aspect-ratio:16/10;overflow:hidden;background:var(--stone)}
.seccard__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.seccard:hover .seccard__media img{transform:scale(1.03)}
.seccard__body{padding:1.35rem 1.35rem 1.5rem;display:flex;flex-direction:column;flex:1}
.seccard__body p{font-size:15.5px;color:var(--muted);margin-top:.55rem;line-height:1.6}
.seccard .card__more{margin-top:auto;padding-top:1.1rem}

/* ---------- cartões de artigo ---------- */
.cards{display:grid;gap:clamp(1.5rem,2.6vw,2.25rem);grid-template-columns:1fr}
@media (min-width:640px){.cards--3,.cards--2{grid-template-columns:repeat(2,1fr)}}
@media (min-width:980px){.cards--3{grid-template-columns:repeat(3,1fr)}}

.card{
  display:flex;flex-direction:column;height:100%;background:transparent;
  text-decoration:none;color:inherit;border:1px solid var(--stone);
  border-radius:var(--radius);transition:border-color .3s ease;
}
.card:hover{border-color:#C6B79F}
.card__media{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--stone)}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.card:hover .card__media img{transform:scale(1.03)}
.chip{
  position:absolute;top:.7rem;left:.7rem;max-width:calc(100% - 1.4rem);
  font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;
  padding:.35rem .55rem;border-radius:var(--radius);color:#FBF7F0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.chip--tawny{background:var(--tawny-deep)}
.card__body{display:flex;flex-direction:column;flex:1;padding:1.25rem 1.25rem 1.35rem}
.card__title{font-size:1.28rem;margin-top:.55rem}
.card__desc{font-size:15px;line-height:1.6;color:var(--muted);margin-top:.7rem}
.card__meta{margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--stone)}
.card__foot{margin-top:auto}
.card__more{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--wine)}
.card__stats{display:flex;gap:.9rem;margin-top:.7rem;font-size:13px;color:var(--muted)}
.stat-pill{display:inline-flex;align-items:center;gap:.3rem}
.meta-line{font-size:11.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.meta-line a{color:var(--tawny-deep);text-decoration:none;border-bottom:1px solid var(--stone)}

/* etiquetas */
.tags,.taglist{display:flex;flex-wrap:wrap;gap:.4rem}
.taglist{margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--stone)}
.tag{
  display:inline-block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);border:1px solid var(--stone);border-radius:var(--radius);
  padding:.28rem .5rem;background:var(--paper);
}
.tag--grape{color:var(--tawny-deep);border-color:#E4D3B8}

/* ---------- filtros (JS puro sobre os cartões já renderizados) ---------- */
.filters{
  display:flex;flex-wrap:wrap;gap:1rem 1.25rem;align-items:end;
  padding:1.1rem 1.25rem;margin-bottom:clamp(1.75rem,3vw,2.5rem);
  border:1px solid var(--stone);border-radius:var(--radius);background:var(--paper);
}
.field--inline{min-width:min(13rem,100%);flex:1 1 13rem}
.filters__count{font-size:13px;color:var(--muted);margin-left:auto;white-space:nowrap}
.filters__count strong{font-family:var(--font-display);font-size:1.2rem;color:var(--ink)}
.empty{
  border:1px dashed var(--stone);border-radius:var(--radius);
  padding:2.5rem 1.5rem;text-align:center;color:var(--muted);font-size:15.5px;
}
.card[hidden],.arch__row[hidden]{display:none !important}

/* ---------- artigo ---------- */
.article{max-width:40rem;margin-inline:auto}
.article--wide{max-width:52rem;margin-block:clamp(1.75rem,3.5vw,2.75rem)}
.article p{font-size:17.5px;line-height:1.72}
.article .prose{max-width:none}
.article h2{font-size:clamp(1.45rem,2.1vw,1.85rem);margin-top:2.5rem;margin-bottom:1rem}
.article__meta{margin-top:1.25rem;display:flex;flex-wrap:wrap;gap:.5rem}
.article__cover{margin:0}
.article__cover .media-frame{aspect-ratio:16/10}
.article__sig{margin-top:1.75rem;color:var(--wine);font-size:1.2rem}
.article-block{margin-top:clamp(2.25rem,4vw,3.25rem)}
.article-block h2{margin-top:0;font-size:clamp(1.35rem,2vw,1.7rem)}
.article-block h3{margin-bottom:1rem}
.dropcap::first-letter{
  font-family:var(--font-display);float:left;font-size:3.8rem;line-height:.82;
  padding-right:.5rem;padding-top:.3rem;color:var(--wine);
}
.media-frame{overflow:hidden;border-radius:var(--radius);background:var(--stone)}
.media-frame img{width:100%;height:100%;object-fit:cover}
.figcap{font-size:13px;color:var(--muted);margin-top:.6rem;line-height:1.5}
.breadcrumb{font-size:11.5px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);margin-bottom:1.25rem}
.breadcrumb a{text-decoration:none;color:inherit;border-bottom:1px solid var(--stone)}

/* tradução ausente / avisos */
.notice{border:1px solid var(--stone);border-left-width:3px;border-radius:var(--radius);padding:1.1rem 1.25rem;background:var(--paper)}
.notice p{font-size:15px;color:var(--muted)}
.notice h3{font-size:1.2rem;margin-bottom:.4rem}
.notice--info{border-left-color:var(--tawny-deep);margin-bottom:1.5rem}
.notice--pending{border-left-color:var(--sage)}

/* corpo bilingue: o artigo troca de língua sem recarregar */
html[lang="pt-PT"] [data-body="en"]{display:none}
html[lang="en"] [data-body="pt"]{display:none}

/* gostos e visitas */
.interact{
  display:flex;flex-wrap:wrap;align-items:center;gap:1rem;
  margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--stone);
}
.likebtn{
  display:inline-flex;align-items:center;gap:.5rem;background:none;cursor:pointer;
  border:1px solid var(--stone);border-radius:var(--radius);padding:.55rem .9rem;
  font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;
  color:var(--wine);transition:border-color .2s ease,background-color .2s ease;
}
.likebtn:hover{border-color:var(--wine)}
.likebtn__heart{font-size:15px;line-height:1}
.likebtn__count{font-family:var(--font-display);font-size:1.05rem;letter-spacing:0}
.likebtn[aria-pressed="true"]{background:var(--wine);color:#FBF7F0;border-color:var(--wine)}
.interact__visits{font-size:12.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.interact__visits strong{font-family:var(--font-display);font-size:1.05rem;color:var(--ink);letter-spacing:0}

/* ---------- galeria + lightbox ---------- */
.gallery{display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr)}
@media (min-width:700px){.gallery--flow{grid-template-columns:repeat(3,1fr)}}
.gallery button{
  padding:0;border:0;background:var(--stone);cursor:pointer;overflow:hidden;
  border-radius:var(--radius);display:block;width:100%;
}
.gallery img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;transition:transform .6s ease}
.gallery button:hover img{transform:scale(1.04)}
.lightbox{
  position:fixed;inset:0;z-index:150;background:rgba(20,16,14,.95);
  display:none;align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem);
}
.lightbox[data-open="true"]{display:flex}
.lightbox img{max-width:100%;max-height:78vh;object-fit:contain;margin-inline:auto}
.lightbox__figure{margin:0;text-align:center;color:#CFC5B8;max-width:100%}
.lightbox__caption{font-size:13px;letter-spacing:.05em;margin-top:1rem}
.lightbox__btn{
  position:absolute;background:none;border:1px solid rgba(247,242,233,.4);
  color:var(--cream);width:46px;height:46px;cursor:pointer;border-radius:var(--radius);
  font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;
}
.lightbox__close{top:1rem;right:1rem}
.lightbox__prev{left:.75rem;top:50%;transform:translateY(-50%)}
.lightbox__next{right:.75rem;top:50%;transform:translateY(-50%)}

/* ---------- comentários ---------- */
.comments{border-top:1px solid var(--stone);margin-top:1.25rem}
.comment{padding:1.15rem 0;border-bottom:1px solid var(--stone)}
.comment__head{font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.comment__head strong{color:var(--ink);font-size:15px;font-weight:600}
.comment__date{font-size:12px;text-transform:uppercase;letter-spacing:.1em}
.comment__body p{font-size:16px;margin-top:.4rem;line-height:1.6}
.badge{
  font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:600;
  border:1px solid var(--stone);border-radius:var(--radius);padding:.15rem .4rem;
  color:var(--tawny-deep);background:var(--paper);
}
.form--comment{margin-top:.5rem}

/* ---------- navegação de série ---------- */
.serienav{
  margin-top:clamp(2.25rem,4vw,3rem);padding:1.35rem;
  border:1px solid var(--stone);border-radius:var(--radius);background:var(--paper);
}
.serienav__title{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;font-family:var(--font-display);font-size:1.2rem}
.serienav__title .eyebrow{margin-bottom:0}
.serienav__pos{font-size:12px;font-family:var(--font-body);color:var(--muted);letter-spacing:.1em}
.serienav__links{display:grid;gap:.9rem;margin-top:1rem}
@media (min-width:620px){.serienav__links{grid-template-columns:repeat(2,1fr)}}
.serienav__link{
  display:block;text-decoration:none;border:1px solid var(--stone);
  border-radius:var(--radius);padding:.85rem 1rem;background:var(--cream);
  transition:border-color .2s ease;
}
.serienav__link:hover{border-color:var(--wine)}
.serienav__link span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--tawny-deep)}
.serienav__link strong{display:block;font-family:var(--font-display);font-weight:400;font-size:1.1rem;margin-top:.3rem;line-height:1.25}
.serienav__link--next{text-align:right}

.minilist{margin-top:1rem;border-top:1px solid var(--stone)}
.minilist li{border-bottom:1px solid var(--stone)}
.minilist a{display:block;padding:.6rem 0;font-size:15.5px;text-decoration:none;color:var(--muted)}
.minilist a:hover{color:var(--wine)}

/* ---------- arquivo ---------- */
.arch__year+.arch__year{margin-top:clamp(2rem,3.5vw,3rem)}
.arch__year h2{font-size:clamp(1.6rem,2.4vw,2.1rem);color:var(--wine)}
.arch{border-top:1px solid var(--stone);margin-top:1rem}
.arch__row{border-bottom:1px solid var(--stone)}
.arch__row a{
  display:grid;gap:.2rem .9rem;padding:.85rem 0;text-decoration:none;align-items:baseline;
}
@media (min-width:760px){.arch__row a{grid-template-columns:11rem 1fr 11rem}}
.arch__date{font-size:11.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.arch__title{font-family:var(--font-display);font-size:1.2rem;line-height:1.25}
.arch__row a:hover .arch__title{color:var(--wine)}
.arch__sec{font-size:11.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--tawny-deep)}
@media (min-width:760px){.arch__sec{text-align:right}}

/* ---------- CTA ---------- */
.cta--flat{background:var(--ink);color:var(--cream);text-align:center}
.cta__inner{padding-block:clamp(3rem,7vw,5.5rem);max-width:42rem;margin-inline:auto}
.cta h2{color:#FDFAF4}
.cta .btn-row{justify-content:center}
.cta .btn--ink{color:var(--cream);border-color:rgba(247,242,233,.55)}
.cta .btn--ink:hover{background:rgba(247,242,233,.12);color:var(--cream)}

/* ---------- rodapé ---------- */
.footer{background:var(--ink);color:#D8CFC3;padding-block:clamp(2.5rem,5vw,4rem) 2rem;font-size:15px}
.footer a{color:inherit;text-decoration:none}
.footer a:hover{color:var(--cream);text-decoration:underline;text-underline-offset:3px}
.footer__grid{display:grid;gap:2.25rem;grid-template-columns:1fr}
@media (min-width:760px){.footer__grid{grid-template-columns:1.5fr 1fr 1fr 1.2fr}}
.footer .brand,.footer .brand__name{color:var(--cream)}
.footer .brand .mark{color:#C79B62}

.footer__pitch{margin-top:1.1rem;max-width:34ch;color:#B5ABA0;font-size:15px;line-height:1.6}
.footer__visits{margin-top:1rem;font-size:11.5px;text-transform:uppercase;letter-spacing:.12em;color:#9E948A}
.footer__visits strong{font-family:var(--font-display);font-size:1.1rem;color:var(--cream);letter-spacing:0}
.footer h3{font-family:var(--font-body);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:#9E948A;margin-bottom:.9rem}
.footer__list li+li{margin-top:.55rem}
.socials{display:flex;gap:.7rem;margin-top:1.25rem}
.socials a{
  width:40px;height:40px;border:1px solid rgba(247,242,233,.25);border-radius:var(--radius);
  display:flex;align-items:center;justify-content:center;
}
.socials a:hover{border-color:var(--cream)}
.socials svg{width:18px;height:18px}
.footer__bottom{
  margin-top:clamp(2rem,4vw,3rem);padding-top:1.25rem;border-top:1px solid rgba(247,242,233,.16);
  display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:space-between;align-items:center;
  font-size:12.5px;letter-spacing:.04em;color:#9E948A;
}
.footer__bottom .signature{font-size:1.15rem;color:#D8CFC3}
.footer .lang{border-color:rgba(247,242,233,.28);color:#B5ABA0}

/* ---------- formulários ---------- */
.form{display:grid;gap:1.15rem}
.field{display:grid;gap:.45rem}
.field label{font-size:11.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:600;color:var(--muted)}
.field input,.field select,.field textarea{
  background:#FFFDF9;border:1px solid var(--stone);border-radius:var(--radius);
  padding:.8rem .85rem;font-size:16px;width:100%;max-width:100%;
}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--wine);outline:none;box-shadow:0 0 0 2px rgba(94,26,36,.15);
}
.field textarea{min-height:7.5rem;resize:vertical}
.field--row{display:grid;gap:1.15rem}
@media (min-width:560px){.field--row{grid-template-columns:1fr 1fr}}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:14px;color:var(--muted);line-height:1.5}
.consent input{width:18px;height:18px;margin-top:.15rem;flex:none;accent-color:var(--wine)}
.error{color:var(--wine);font-size:13px}
[hidden]{display:none !important}

.tour-layout{display:grid;gap:clamp(2rem,4vw,3.5rem);grid-template-columns:1fr;align-items:start}
@media (min-width:960px){.tour-layout{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}
.sidecard{border:1px solid var(--stone);border-radius:var(--radius);padding:1.5rem;background:var(--paper)}
@media (min-width:960px){.sidecard--sticky{position:sticky;top:calc(var(--header-h) + 1.5rem)}}
.sidecard h3{font-size:1.25rem;margin-bottom:.5rem}
.sidecard p{font-size:15px;color:var(--muted);margin-bottom:1.1rem}
.contact-list{border-top:1px solid var(--stone)}
.contact-list div{padding:1rem 0;border-bottom:1px solid var(--stone)}
.contact-list dt{font-size:11.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.contact-list dd{margin:.3rem 0 0;font-size:16px;overflow-wrap:anywhere}

.panel{border:1px solid var(--stone);border-radius:var(--radius);padding:1.4rem;background:var(--paper)}
.two-col{display:grid;gap:1.5rem;grid-template-columns:1fr}
@media (min-width:760px){.two-col{grid-template-columns:repeat(2,1fr)}}
@media (min-width:960px){.two-col--admin{grid-template-columns:1.15fr 1fr;gap:clamp(2rem,4vw,3rem)}}

/* ---------- área /admin (demonstração) ---------- */
.demo-banner{
  display:flex;flex-wrap:wrap;gap:.4rem;align-items:baseline;
  border:1px solid var(--wine);border-left-width:3px;border-radius:var(--radius);
  background:#FBEFEF;color:#4A141C;padding:.75rem 1rem;font-size:14px;
  margin-bottom:1.5rem;
}
.demo-banner strong{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase}
.form--login{max-width:26rem}
.adminpanel__head{
  display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:start;
  margin-bottom:clamp(1.75rem,3vw,2.5rem);
}
.modlist{border-top:1px solid var(--stone)}
.modlist li{padding:1.1rem 0;border-bottom:1px solid var(--stone)}
.modlist .comment__head{margin-bottom:.35rem}
.modlist p{font-size:15.5px;line-height:1.6}
.modlist__post{font-size:11.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--tawny-deep);margin-bottom:.35rem}
.modlist__actions{display:flex;gap:.6rem;margin-top:.85rem;flex-wrap:wrap}
.modlist__actions button{
  font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;
  padding:.45rem .8rem;border-radius:var(--radius);cursor:pointer;border:1px solid var(--stone);background:none;
}
.modlist__actions .is-approve{border-color:var(--sage);color:var(--sage)}
.modlist__actions .is-approve:hover{background:var(--sage);color:#FBF7F0}
.modlist__actions .is-reject{border-color:var(--wine);color:var(--wine)}
.modlist__actions .is-reject:hover{background:var(--wine);color:#FBF7F0}
.modlist__done{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--sage);margin-top:.6rem}
.modlist__done--rejected{color:var(--muted)}

/* ---------- animação de entrada ---------- */
.reveal{opacity:0;transform:translateY(8px);transition:opacity .5s ease-out,transform .5s ease-out}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .card__media img,.gallery img,.seccard__media img{transition:none}
}

/* ---------- newsletter ---------- */
/* Só para leitores de ecrã: a etiqueta existe, mas não se vê. */
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.news{background:var(--paper);border-block:1px solid var(--stone);padding-block:var(--section)}
.news--compacta{padding-block:clamp(2.25rem,4.5vw,3.25rem)}
.news__inner{max-width:44rem;text-align:center}
.news__title{
  font-family:var(--font-display);font-weight:400;line-height:1.15;
  font-size:clamp(1.6rem,3.2vw,2.35rem);margin-top:.6rem;
}
.news--compacta .news__title{font-size:clamp(1.4rem,2.6vw,1.9rem)}
.news__text{margin-top:.85rem;color:var(--muted);line-height:1.6}
.news__form{
  display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;
  margin-top:1.6rem;
}
.news__form input{
  flex:1 1 18rem;max-width:24rem;
  padding:.85rem 1rem;border:1px solid var(--stone);border-radius:var(--radius);
  background:#fff;color:var(--ink);
}
.news__form input:focus{outline:2px solid var(--wine);outline-offset:2px;border-color:var(--wine)}
/* A armadilha para robôs tem de existir no formulário, mas não pode ser vista
   por ninguém. A regra .sr-only sozinha não chega: a regra de cima é mais
   específica e devolve-lhe a moldura, o fundo branco e o espaçamento, ficando
   uma segunda caixa branca à espera de que o clip antigo a tape. Aqui é tirada
   do caminho de vez, sem depender do clip. */
.news__form input[name="email_address_check"]{
  position:absolute;left:-9999px;top:auto;
  width:1px;height:1px;flex:0 0 1px;
  padding:0;border:0;background:transparent;
  opacity:0;pointer-events:none;
}
.news__form .btn{flex:0 0 auto}
.news__estado{
  margin-top:1rem;font-size:14.5px;line-height:1.55;font-weight:500;
  color:var(--wine);
}
.news__estado--erro{color:#8A3324}
.news__estado[hidden]{display:none}
.news__nota{margin-top:1rem;font-size:12.5px;color:var(--muted);line-height:1.55}

/* ---------- rodapé: aviso de direitos de autor ---------- */
.footer__copy{color:#B5ABA0}
