/* ═══════════════════════════════════════════════════════════
   QUINTA VINHA DOURADA · Peso da Régua · Douro
   Folha de estilos original — sem frameworks
   ═══════════════════════════════════════════════════════════ */

:root{
  --verde:      #1c2a20;   /* verde escuro, base */
  --verde-2:    #24352a;
  --bordeaux:   #571f27;
  --bordeaux-2: #401820;
  --ouro:       #c2a165;
  --ouro-claro: #d8bd8a;
  --creme:      #f1ead9;
  --creme-2:    #e8dfc9;
  --madeira:    #6b4f3a;
  --pedra:      #8c8880;
  --tinta:      #241f1a;   /* texto sobre creme */

  --serif: "Cormorant Garamond", "Palatino Linotype", Georgia, serif;
  --sans:  "Karla", "Segoe UI", Arial, sans-serif;

  --larg: min(1200px, 92vw);
  --transicao: cubic-bezier(.22,.61,.2,1);
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  background: var(--creme);
  color: var(--tinta);
  font-family: var(--sans);
  font-weight: 300;
  font-size: 17px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; }
h1,h2,h3{ font-family: var(--serif); font-weight:400; }
h2{ font-size: clamp(2.4rem, 5vw, 3.8rem); line-height:1.05; letter-spacing:.01em; }
h2 em{ font-style: italic; font-weight:300; color: var(--bordeaux); }
:focus-visible{ outline: 2px solid var(--ouro); outline-offset: 3px; }

/* saltar para o conteúdo */
.saltar{
  position:fixed; top:-100%; left:1rem; z-index:300;
  background: var(--ouro); color: var(--verde);
  padding:.7rem 1.2rem; text-decoration:none;
  font-size:.8rem; letter-spacing:.14em; text-transform:uppercase;
  transition: top .3s;
}
.saltar:focus-visible{ top:1rem; }

/* rótulos-antena */
.rotulo{
  font-family: var(--sans);
  font-size: .72rem;
  letter-spacing: .38em;
  text-transform: uppercase;
  color: var(--madeira);
  margin-bottom: 1.1rem;
}
.rotulo::before{
  content:""; display:inline-block; width:2.4rem; height:1px;
  background: currentColor; vertical-align: middle; margin-right:.8rem; opacity:.6;
}
.rotulo-claro{ color: var(--ouro-claro); }
.rotulo-ouro{ color: var(--ouro); }

/* revelação ao rolar */
.rev{ opacity:0; transform: translateY(26px); transition: opacity .9s var(--transicao), transform .9s var(--transicao); }
.rev.visto{ opacity:1; transform:none; }

/* ─────────────── CORTINA DE ENTRADA ─────────────── */
.cortina{
  position: fixed; inset:0; z-index: 200;
  background: var(--verde);
  display:flex; align-items:center; justify-content:center;
  transition: opacity .8s ease .1s, visibility .8s ease .1s;
}
.cortina.aberta{ opacity:0; visibility:hidden; }
.cortina-miolo{ text-align:center; color: var(--ouro); }
.cortina-mono{ width:96px; height:96px; }
.cortina-mono circle{ stroke-dasharray: 327; stroke-dashoffset: 327; animation: tracar 1.6s var(--transicao) forwards .2s; }
.cortina-letras{ font-family: var(--serif); font-size: 34px; fill: var(--ouro); letter-spacing: 2px; }
.cortina-frase{ margin-top:1rem; font-size:.7rem; letter-spacing:.4em; text-transform:uppercase; color: var(--creme-2); opacity:.7; }
.cortina-nivel{ width:120px; height:1px; background: rgba(194,161,101,.25); margin: 1.4rem auto 0; overflow:hidden; }
.cortina-nivel span{ display:block; height:100%; width:0; background: var(--ouro); animation: encher 1.8s var(--transicao) forwards .3s; }
@keyframes tracar{ to{ stroke-dashoffset:0; } }
@keyframes encher{ to{ width:100%; } }

/* ─────────────── CURSOR ─────────────── */
.cursor-ponto,.cursor-aro{ display:none; }
@media (pointer:fine){
  .cursor-ponto{
    display:block; position:fixed; z-index:190; pointer-events:none;
    width:6px; height:6px; border-radius:50%;
    background: var(--ouro); transform: translate(-50%,-50%);
  }
  .cursor-aro{
    display:block; position:fixed; z-index:189; pointer-events:none;
    width:34px; height:34px; border-radius:50%;
    border:1px solid rgba(194,161,101,.55);
    transform: translate(-50%,-50%);
    transition: width .3s var(--transicao), height .3s var(--transicao), border-color .3s;
  }
  .cursor-aro.grande{ width:58px; height:58px; border-color: var(--ouro); }
}

/* ─────────────── TOPO ─────────────── */
.topo{
  position: fixed; top:0; left:0; right:0; z-index:120;
  display:flex; align-items:center; justify-content:space-between;
  padding: 1.1rem clamp(1.2rem, 4vw, 3rem);
  transition: background .5s ease, box-shadow .5s ease, padding .5s ease;
}
.topo.compacto{
  background: rgba(28,42,32,.92);
  backdrop-filter: blur(8px);
  padding-top:.7rem; padding-bottom:.7rem;
  box-shadow: 0 1px 0 rgba(194,161,101,.18);
}
.topo-marca{ text-decoration:none; color: var(--creme); line-height:1.1; }
.topo-marca-linha{ display:block; font-size:.62rem; letter-spacing:.5em; text-transform:uppercase; color: var(--ouro); }
.topo-marca-nome{ font-family: var(--serif); font-size:1.35rem; letter-spacing:.06em; }
.topo-nav{ display:flex; align-items:center; gap: clamp(1rem, 2.4vw, 2.2rem); }
.topo-nav a{
  color: var(--creme); text-decoration:none; font-size:.8rem;
  letter-spacing:.16em; text-transform:uppercase; position:relative; padding:.3rem 0;
}
.topo-nav a:not(.topo-nav-cta)::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background: var(--ouro); transform: scaleX(0); transform-origin:right;
  transition: transform .45s var(--transicao);
}
.topo-nav a:not(.topo-nav-cta):hover::after,
.topo-nav a:not(.topo-nav-cta):focus-visible::after{ transform: scaleX(1); transform-origin:left; }
.topo-nav-cta{
  border:1px solid var(--ouro); color: var(--ouro-claro)!important;
  padding:.55rem 1.2rem!important; transition: background .4s, color .4s;
}
.topo-nav-cta:hover,.topo-nav-cta:focus-visible{ background: var(--ouro); color: var(--verde)!important; }
.topo-menu{ display:none; }

/* ─────────────── HERO ─────────────── */
.cena{
  min-height:100svh; background: var(--verde); color: var(--creme);
  display:flex; flex-direction:column; justify-content:flex-end;
  position:relative; overflow:hidden;
}
.cena::before{ /* veio de luz */
  content:""; position:absolute; top:-20%; right:-10%;
  width:60vw; height:60vw; border-radius:50%;
  background: radial-gradient(circle, rgba(194,161,101,.10), transparent 65%);
  pointer-events:none;
}
.cena-vertical{
  position:absolute; top:50%; left: clamp(.8rem, 2.5vw, 2.2rem);
  transform: translateY(-50%) rotate(180deg);
  writing-mode: vertical-rl;
  font-size:.68rem; letter-spacing:.5em; text-transform:uppercase;
  color: var(--pedra);
}
.cena-titulos{
  width: var(--larg); margin: 0 auto;
  padding: clamp(7rem,14vh,10rem) 0 3rem;
}
.cena-antetitulo{
  font-family: var(--serif); font-style:italic; font-size: clamp(1.4rem,2.6vw,2rem);
  color: var(--ouro-claro); margin-bottom:.4rem;
}
.cena-titulo{
  font-size: clamp(3.4rem, 11vw, 8.6rem);
  font-weight:300; line-height:.95; letter-spacing:.015em;
  text-transform:uppercase;
}
.cena-titulo span{ display:block; }
.cena-titulo-ouro{
  color: var(--ouro);
  margin-left: clamp(1.5rem, 8vw, 7rem); /* degrau assimétrico */
}
.cena-mote{
  margin-top:1.6rem; max-width:34rem;
  font-size: clamp(.95rem, 1.4vw, 1.1rem); color: var(--creme-2);
}
.cena-panorama{ margin-top: 3rem; border-top:1px solid rgba(194,161,101,.3); border-bottom:1px solid rgba(194,161,101,.3); }
.cena-panorama img{ width:100%; object-fit:cover; }
.cena-seta{
  position:absolute; right: clamp(1.2rem,4vw,3rem); bottom: 18vh;
  display:block; width:1px; height:70px;
}
.cena-seta-fio{
  position:absolute; inset:0; background: var(--ouro);
  animation: pinga 2.2s var(--transicao) infinite;
  transform-origin: top;
}
@keyframes pinga{ 0%{ transform:scaleY(0); transform-origin:top; } 45%{ transform:scaleY(1); transform-origin:top; } 55%{ transform:scaleY(1); transform-origin:bottom; } 100%{ transform:scaleY(0); transform-origin:bottom; } }

/* ─────────────── MEMÓRIA (HISTÓRIA) ─────────────── */
.memoria{ padding: clamp(5rem,10vw,8.5rem) 0; }
.memoria-grelha{
  width: var(--larg); margin:0 auto;
  display:grid; grid-template-columns: minmax(240px, 4fr) 7fr;
  gap: clamp(2.5rem, 6vw, 6rem);
}
.memoria-datas ol{ list-style:none; border-left:1px solid var(--madeira); }
.memoria-datas li{ padding: 0 0 2.2rem 1.6rem; position:relative; }
.memoria-datas li::before{
  content:""; position:absolute; left:-4px; top:.55em;
  width:7px; height:7px; border-radius:50%;
  background: var(--creme); border:1px solid var(--madeira);
}
.memoria-datas time{
  font-family: var(--serif); font-size:1.7rem; color: var(--bordeaux);
  display:block; line-height:1;
}
.memoria-datas p{ font-size:.86rem; line-height:1.6; color:#4c443b; margin-top:.35rem; }
.memoria-texto h2{ margin-bottom:1.8rem; }
.memoria-texto p+p{ margin-top:1.1rem; }
.memoria-capitular::first-letter{
  font-family: var(--serif); font-size:3.4em; float:left;
  line-height:.8; padding: .06em .12em 0 0; color: var(--bordeaux);
}
.memoria-assinatura{
  font-family: var(--serif); font-style:italic; font-size:1.15rem;
  color: var(--madeira); margin-top:1.6rem!important;
}

/* ─────────────── FAIXAS PANORÂMICAS ─────────────── */
.faixa{ position:relative; overflow:hidden; }
.faixa img{ width:100%; object-fit:cover; will-change: transform; }
.faixa-legenda{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family: var(--serif); font-style:italic;
  font-size: clamp(1.3rem, 3vw, 2.2rem); color: var(--creme);
  text-shadow: 0 2px 18px rgba(0,0,0,.55);
  padding:1rem; text-align:center;
}

/* ─────────────── PARCELAS (VINHAS) ─────────────── */
.parcelas{ background: var(--verde); color: var(--creme); padding: clamp(5rem,10vw,8.5rem) 0; }
.parcelas-cab{ width: var(--larg); margin:0 auto 3.5rem; max-width:100%; }
.parcelas-cab h2 em{ color: var(--ouro); }
.parcelas-intro{ max-width:38rem; margin-top:1.4rem; color: var(--creme-2); }
.parcelas-lista{ width: var(--larg); margin:0 auto; }
.parcela{
  display:grid; grid-template-columns: minmax(200px,1fr) 3fr;
  gap:1.5rem; padding:2.2rem 0;
  border-top:1px solid rgba(194,161,101,.25);
  transition: background .4s, padding-left .4s var(--transicao);
}
.parcela:last-child{ border-bottom:1px solid rgba(194,161,101,.25); }
.parcela:hover{ background: rgba(194,161,101,.05); padding-left:1rem; }
.parcela h3{ font-size:1.7rem; color: var(--ouro-claro); font-weight:400; }
.parcela dl{ display:grid; grid-template-columns:repeat(2, 1fr); gap:1rem 2.5rem; }
.parcela dt{ font-size:.68rem; letter-spacing:.3em; text-transform:uppercase; color: var(--pedra); margin-bottom:.25rem; }
.parcela dd{ font-size:.95rem; color: var(--creme-2); }
.parcela dl div:last-child{ grid-column:1/-1; }

/* ─────────────── VINDIMA ─────────────── */
.vindima{ padding: clamp(5rem,10vw,8.5rem) 0; background: var(--creme-2); }
.vindima-cab{ width: var(--larg); margin:0 auto 3.5rem; }
.vindima-fio{
  width: var(--larg); margin:0 auto; list-style:none;
  display:grid; grid-template-columns: repeat(5, 1fr);
  gap: clamp(1.2rem, 2.5vw, 2.4rem);
  position:relative;
}
.vindima-fio::before{ /* fio dourado que liga as etapas */
  content:""; position:absolute; top:1.35rem; left:2%; right:2%;
  height:1px; background: linear-gradient(90deg, transparent, var(--ouro), var(--ouro), transparent);
}
.vindima-fio li{ position:relative; padding-top:3.4rem; }
.vindima-num{
  position:absolute; top:0; left:0;
  width:2.7rem; height:2.7rem; border-radius:50%;
  border:1px solid var(--ouro); background: var(--creme-2);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--serif); font-size:1.05rem; color: var(--bordeaux);
}
.vindima-fio h3{ font-size:1.35rem; margin-bottom:.5rem; }
.vindima-fio p{ font-size:.88rem; line-height:1.6; color:#4c443b; }

/* ─────────────── ADEGA ─────────────── */
.adega{ background: var(--bordeaux-2); color: var(--creme); padding: clamp(5rem,10vw,8.5rem) 0; }
.adega-texto{ width: var(--larg); margin:0 auto 3.5rem; max-width:min(46rem, 92vw); }
.adega-texto h2 em{ color: var(--ouro); }
.adega-texto p{ color: var(--creme-2); }
.adega-texto p+p{ margin-top:1rem; }
.adega-texto h2{ margin-bottom:1.6rem; }
.adega-triptico{
  width: var(--larg); margin:0 auto;
  display:grid; grid-template-columns:repeat(3,1fr); gap:2px;
}
.adega-triptico figure{ position:relative; overflow:hidden; }
.adega-triptico img{
  width:100%; height:100%; object-fit:cover; filter: saturate(.92);
  transition: transform 1.2s var(--transicao), filter .8s;
}
.adega-triptico figure:hover img{ transform: scale(1.05); filter:saturate(1.05); }
.adega-triptico figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:.7rem 1rem; font-size:.68rem; letter-spacing:.3em; text-transform:uppercase;
  color: var(--ouro-claro);
  background: linear-gradient(transparent, rgba(0,0,0,.65));
}

/* ─────────────── CARTA (COLEÇÃO) ─────────────── */
.carta{ padding: clamp(5rem,10vw,8.5rem) 0; }
.carta-cab{ width: var(--larg); margin:0 auto 3rem; }
.carta-lista{ width: var(--larg); margin:0 auto; }
.garrafa{
  display:grid; grid-template-columns: 5fr 6fr auto;
  gap: clamp(1rem, 3vw, 3rem); align-items:baseline;
  padding: 1.8rem 0; border-bottom:1px dotted var(--pedra);
  transition: background .35s;
}
.garrafa:first-child{ border-top:1px dotted var(--pedra); }
.garrafa:hover{ background: rgba(107,79,58,.05); }
.garrafa-nome h3{ font-size:1.5rem; line-height:1.15; }
.garrafa-nome p{ font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color: var(--madeira); margin-top:.4rem; }
.garrafa-nota{ font-size:.92rem; color:#4c443b; }
.garrafa-preco span{
  font-family: var(--serif); font-size:1.5rem; color: var(--bordeaux); white-space:nowrap;
}
.carta-nota{ width: var(--larg); margin:2.6rem auto 0; font-size:.9rem; color:#4c443b; }
.carta-nota a{ color: var(--bordeaux); text-decoration-color: var(--ouro); text-underline-offset:3px; }

/* ─────────────── VISITAS (ENOTURISMO) ─────────────── */
.visitas{
  background: var(--verde-2); color: var(--creme);
  padding: clamp(5rem,10vw,8.5rem) 0;
}
.visitas{ display:grid; grid-template-columns: 5fr 7fr; gap: clamp(2.5rem,6vw,6rem);
  padding-left: max(calc((100vw - var(--larg)) / 2), 4vw);
  padding-right: max(calc((100vw - var(--larg)) / 2), 4vw);
}
.visitas-intro h2 em{ color: var(--ouro); }
.visitas-intro p{ color: var(--creme-2); margin-top:1.3rem; max-width:28rem; }
.botao-fio{
  display:inline-block; margin-top:2rem;
  border:1px solid var(--ouro); color: var(--ouro-claro);
  text-decoration:none; font-size:.78rem; letter-spacing:.24em; text-transform:uppercase;
  padding:.85rem 1.8rem; position:relative; overflow:hidden; z-index:1;
  transition: color .45s;
}
.botao-fio::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background: var(--ouro); transform: translateY(101%);
  transition: transform .45s var(--transicao);
}
.botao-fio:hover,.botao-fio:focus-visible{ color: var(--verde); }
.botao-fio:hover::before,.botao-fio:focus-visible::before{ transform: translateY(0); }
.visitas-lista{ display:grid; grid-template-columns:1fr 1fr; }
.visita{
  padding:1.8rem 1.6rem;
  border-left:1px solid rgba(194,161,101,.25);
  border-top:1px solid rgba(194,161,101,.25);
  transition: background .4s;
}
.visita:hover{ background: rgba(194,161,101,.06); }
.visita h3{ font-size:1.35rem; color: var(--ouro-claro); margin-bottom:.6rem; }
.visita p{ font-size:.88rem; color: var(--creme-2); line-height:1.6; }
.visita-detalhe{ margin-top:.9rem; font-size:.7rem!important; letter-spacing:.26em; text-transform:uppercase; color: var(--pedra)!important; }

/* ─────────────── GALERIA ─────────────── */
.galeria{ padding: clamp(5rem,10vw,8.5rem) 0; }
.galeria > .rotulo, .galeria > h2{ width: var(--larg); margin-left:auto; margin-right:auto; }
.galeria > h2{ margin-bottom:2.6rem; }
.galeria-grelha{
  width: var(--larg); margin:0 auto;
  display:grid; grid-template-columns:repeat(3, 1fr); gap:10px;
}
.galeria-grelha figure{ position:relative; overflow:hidden; }
.galeria-grelha .g-larga{ grid-column: 1 / -1; }
.galeria-grelha img{
  width:100%; height:100%; object-fit:cover;
  transition: transform 1.1s var(--transicao);
}
.galeria-grelha figure:hover img{ transform: scale(1.04); }
.galeria-grelha figcaption{
  position:absolute; left:0; bottom:0; right:0;
  padding:.6rem .9rem; font-size:.68rem; letter-spacing:.28em; text-transform:uppercase;
  color: var(--creme); background: linear-gradient(transparent, rgba(20,16,12,.6));
  opacity:0; transition: opacity .5s;
}
.galeria-grelha figure:hover figcaption,
.galeria-grelha figure:focus-within figcaption{ opacity:1; }

/* ─────────────── TERRA (SUSTENTABILIDADE) ─────────────── */
.terra{ background: var(--creme-2); padding: clamp(5rem,10vw,8.5rem) 0; }
.terra-cab{ width: var(--larg); margin:0 auto 3.2rem; }
.terra-intro{ max-width:36rem; margin-top:1.3rem; color:#4c443b; }
.terra-colunas{
  width: var(--larg); margin:0 auto;
  columns: 2; column-gap: clamp(2rem,5vw,4.5rem); column-rule: 1px solid var(--pedra);
}
.terra-colunas > div{ break-inside:avoid; padding-bottom:2rem; }
.terra-colunas h3{
  font-size:1.4rem; margin-bottom:.5rem; color: var(--bordeaux);
}
.terra-colunas p{ font-size:.92rem; color:#4c443b; }

/* ─────────────── DÚVIDAS (FAQ) ─────────────── */
.duvidas{ padding: clamp(5rem,10vw,8.5rem) 0; }
.duvidas > .rotulo, .duvidas > h2, .duvidas-lista{ width: min(52rem, 92vw); margin-left:auto; margin-right:auto; }
.duvidas > h2{ margin-bottom:2.4rem; }
.duvidas details{ border-bottom:1px solid var(--pedra); }
.duvidas details:first-of-type{ border-top:1px solid var(--pedra); }
.duvidas summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1.3rem .2rem;
  font-family: var(--serif); font-size:1.25rem;
  transition: color .3s;
}
.duvidas summary::-webkit-details-marker{ display:none; }
.duvidas summary:hover{ color: var(--bordeaux); }
.duvida-mais{ position:relative; width:14px; height:14px; flex:none; }
.duvida-mais::before,.duvida-mais::after{
  content:""; position:absolute; background: var(--madeira); transition: transform .4s var(--transicao);
}
.duvida-mais::before{ left:0; right:0; top:6px; height:1px; }
.duvida-mais::after{ top:0; bottom:0; left:6px; width:1px; }
.duvidas details[open] .duvida-mais::after{ transform: scaleY(0); }
.duvidas details p{ padding:0 .2rem 1.5rem; font-size:.95rem; color:#4c443b; max-width:44rem; }

/* ─────────────── CONTACTO ─────────────── */
.contacto{
  background: var(--verde); color: var(--creme);
  padding: clamp(5rem,10vw,8.5rem) max(calc((100vw - var(--larg)) / 2), 4vw);
  display:grid; grid-template-columns: 5fr 6fr; gap: clamp(2.5rem,6vw,6rem);
}
.contacto h2 em{ color: var(--ouro); }
.contacto address{ font-style:normal; margin-top:2rem; }
.contacto address p{ margin-bottom:1.4rem; color: var(--creme-2); line-height:1.6; }
.contacto address span{
  display:block; font-size:.66rem; letter-spacing:.34em; text-transform:uppercase;
  color: var(--pedra); margin-bottom:.3rem;
}
.contacto address a{ color: var(--ouro-claro); text-decoration:none; border-bottom:1px solid rgba(194,161,101,.4); }
.contacto address a:hover{ border-bottom-color: var(--ouro); }

.contacto-form .campo{ margin-bottom:1.4rem; }
.contacto-form label{
  display:block; font-size:.66rem; letter-spacing:.34em; text-transform:uppercase;
  color: var(--pedra); margin-bottom:.45rem;
}
.contacto-form input,
.contacto-form select,
.contacto-form textarea{
  width:100%; background: transparent; color: var(--creme);
  border:0; border-bottom:1px solid rgba(194,161,101,.35);
  padding:.55rem 0; font: 300 1rem var(--sans);
  transition: border-color .35s;
  border-radius:0;
}
.contacto-form select{ appearance:none; }
.contacto-form select option{ color: var(--tinta); }
.contacto-form textarea{ resize:vertical; }
.contacto-form input:focus,
.contacto-form select:focus,
.contacto-form textarea:focus{ outline:none; border-bottom-color: var(--ouro); }
.campo-erro{ display:block; min-height:1em; font-size:.72rem; color:#e0a48a; margin-top:.3rem; }
.botao-cheio{
  margin-top:.4rem; cursor:pointer;
  background: var(--ouro); color: var(--verde); border:1px solid var(--ouro);
  font: 500 .78rem var(--sans); letter-spacing:.26em; text-transform:uppercase;
  padding:.95rem 2.2rem;
  transition: background .4s, color .4s;
}
.botao-cheio:hover,.botao-cheio:focus-visible{ background:transparent; color: var(--ouro-claro); }
.contacto-feito{ margin-top:1.2rem; font-family: var(--serif); font-style:italic; font-size:1.05rem; color: var(--ouro-claro); }

/* ─────────────── RODAPÉ ─────────────── */
.rodape{ background:#141f18; color: var(--creme-2); }
.rodape-cimo{
  width: var(--larg); margin:0 auto;
  display:grid; grid-template-columns: 2fr 1fr 1fr;
  gap:2.5rem; padding:3.5rem 0 2.5rem;
  border-bottom:1px solid rgba(194,161,101,.16);
}
.rodape-nome{ font-family: var(--serif); font-size:1.5rem; color: var(--creme); }
.rodape-lema{ font-size:.85rem; color: var(--pedra); margin-top:.4rem; }
.rodape-nav, .rodape-sociais{ display:flex; flex-direction:column; gap:.55rem; }
.rodape-nav a, .rodape-sociais a{
  color: var(--creme-2); text-decoration:none; font-size:.82rem; letter-spacing:.1em;
  width:max-content; border-bottom:1px solid transparent; transition: color .3s, border-color .3s;
}
.rodape-nav a:hover, .rodape-sociais a:hover{ color: var(--ouro-claro); border-bottom-color: rgba(194,161,101,.5); }
.rodape-fundo{
  width: var(--larg); margin:0 auto; padding:1.4rem 0 2rem;
  display:flex; flex-wrap:wrap; gap:.8rem 2rem; align-items:center; justify-content:space-between;
  font-size:.76rem; color: var(--pedra);
}
.rodape-legal{ display:flex; gap:1.5rem; }
.rodape-legal a{ color: var(--pedra); text-decoration:none; border-bottom:1px solid rgba(140,136,128,.4); }
.rodape-legal a:hover{ color: var(--creme-2); }
.rodape-aviso{ letter-spacing:.14em; text-transform:uppercase; font-size:.64rem; }

/* ─────────────── PÁGINAS LEGAIS ─────────────── */
.legal{ width:min(46rem, 92vw); margin:0 auto; padding: 9rem 0 5rem; }
.legal h1{ font-size: clamp(2.2rem,5vw,3.2rem); margin-bottom:.6rem; }
.legal .legal-data{ font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; color: var(--madeira); margin-bottom:2.5rem; }
.legal h2{ font-size:1.6rem; margin:2.4rem 0 .8rem; }
.legal p, .legal li{ font-size:.95rem; color:#4c443b; }
.legal ul{ padding-left:1.2rem; margin-top:.6rem; }
.legal a{ color: var(--bordeaux); }
.legal-voltar{
  display:inline-block; margin-top:3rem; text-decoration:none;
  font-size:.75rem; letter-spacing:.26em; text-transform:uppercase;
  color: var(--verde); border-bottom:1px solid var(--ouro);
  padding-bottom:.2rem;
}

/* ─────────────── RESPONSIVO ─────────────── */
@media (max-width: 1080px){
  .vindima-fio{ grid-template-columns:repeat(3,1fr); row-gap:2.6rem; }
  .vindima-fio::before{ display:none; }
}
@media (max-width: 900px){
  .memoria-grelha{ grid-template-columns:1fr; }
  .memoria-datas{ order:2; }
  .visitas{ grid-template-columns:1fr; }
  .contacto{ grid-template-columns:1fr; }
  .garrafa{ grid-template-columns:1fr; gap:.5rem; }
  .garrafa-preco{ justify-self:start; }
  .rodape-cimo{ grid-template-columns:1fr; gap:2rem; }
  .adega-triptico{ grid-template-columns:1fr; }
  .adega-triptico img{ aspect-ratio: 21/9; }
}
@media (max-width: 760px){
  .topo-nav{
    position:fixed; inset:0; z-index:-1;
    flex-direction:column; justify-content:center; gap:2rem;
    background: rgba(20,31,24,.98);
    opacity:0; visibility:hidden; transition: opacity .5s, visibility .5s;
  }
  .topo-nav a{ font-size:1.05rem; }
  .topo.aberto .topo-nav{ opacity:1; visibility:visible; z-index:110; }
  .topo-menu{
    display:flex; flex-direction:column; gap:6px;
    background:none; border:0; cursor:pointer; padding:.6rem; z-index:130;
  }
  .topo-menu span{ display:block; width:26px; height:1px; background: var(--ouro); transition: transform .4s var(--transicao); }
  .topo.aberto .topo-menu span:first-child{ transform: translateY(3.5px) rotate(45deg); }
  .topo.aberto .topo-menu span:last-child{ transform: translateY(-3.5px) rotate(-45deg); }
  .cena-vertical{ display:none; }
  .parcela{ grid-template-columns:1fr; }
  .parcela dl{ grid-template-columns:1fr; }
  .vindima-fio{ grid-template-columns:1fr; }
  .galeria-grelha{ grid-template-columns:1fr; }
  .galeria-grelha .g-larga{ grid-column:auto; }
  .visitas-lista{ grid-template-columns:1fr; }
  .terra-colunas{ columns:1; }
}

/* movimento reduzido */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms!important; transition-duration:.01ms!important; }
  .rev{ opacity:1; transform:none; }
  .cursor-ponto,.cursor-aro{ display:none!important; }
}
