
/* Versão D: "capa de revista + passaporte". Bodoni é uma letra italiana; o verde vem do blazer
   da foto; os carimbos contam a trajetória (PT 2018, IT 2021, BR). Sem cartões, sem ícones. */
:root{
  --papel:#EEE8EA; --papel-2:#E4DBDE; --tinta:#2A1519; --vinho:#65323F; --vinho-escuro:#4A222D;
  --verde:#1D4A3E; --azul-carimbo:#27408B; --cinza:#5F4E53; --linha:#CBBCC1; --ouro-texto:#7A5C14;
  --display:"Bodoni Moda","Bodoni MT",Didot,serif; --texto:"Newsreader",Georgia,serif;
  --ui:"Instrument Sans",system-ui,sans-serif; --mao:"Mrs Saint Delafield",cursive;
}
*{box-sizing:border-box}
body{margin:0;color:var(--tinta);font:400 1.05rem/1.6 var(--ui);
  /* trama de papel de segurança, como página de passaporte */
  background:var(--papel)
    repeating-linear-gradient(115deg,rgba(101,50,63,.05) 0 1px,transparent 1px 7px),
    repeating-linear-gradient(65deg,rgba(101,50,63,.05) 0 1px,transparent 1px 7px)}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--verde);outline-offset:3px}
.wrap{max-width:1240px;margin:0 auto;padding:0 28px}
.ph{border-bottom:1px dashed var(--ouro-texto);color:var(--ouro-texto)}
.btn{display:inline-flex;align-items:center;min-height:48px;padding:0 24px;background:var(--verde);color:#fff;
  font:600 1rem var(--ui);text-decoration:none;border-radius:2px}
.btn:hover{background:#143429}
.btn.claro{background:#fff;color:var(--vinho-escuro)} .btn.claro:hover{background:var(--papel)}
.lnk{font-weight:600;text-underline-offset:5px;min-height:48px;display:inline-flex;align-items:center}

/* topo: papel timbrado */
header .wrap{display:flex;align-items:center;gap:26px;min-height:78px;border-bottom:1px solid var(--tinta)}
.nome{font:italic 500 1.5rem/1 var(--display);text-decoration:none;white-space:nowrap}
header nav{display:flex;gap:22px;margin-left:auto;font-size:.95rem}
header nav a{text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
header nav a:hover{text-decoration:underline;text-underline-offset:5px}
.idiomas{font-size:.85rem;color:var(--cinza);white-space:nowrap}
.idiomas a{padding:12px 5px;text-decoration:none} .idiomas a[aria-current]{color:var(--tinta);font-weight:600;text-decoration:underline}
@media (max-width:1020px){header nav{display:none}.idiomas{margin-left:auto}}
@media (max-width:560px){header .btn{display:none}.nome{font-size:1.3rem}}

/* capa */
.capa{position:relative;overflow:hidden}
.capa .wrap{position:relative;padding-top:34px}
.capa h1{margin:0;font:400 clamp(4.4rem,14.2vw,12.6rem)/.84 var(--display);letter-spacing:-.035em;color:var(--vinho);position:relative;z-index:1}
.capa h1 b{display:block;font-weight:500}
.capa h1 i{display:block;font:italic 400 clamp(1.15rem,2.2vw,1.9rem)/1.5 var(--display);letter-spacing:0;color:var(--tinta);padding-left:.25em}
.capa h1 b:nth-of-type(1){padding-left:.3em} /* degrau: quebra a simetria sem esconder "Portugal" atrás do retrato */
/* palco 3D: uma "página" vinho inclinada ao fundo e o retrato saindo dela, à frente.
   --rx/--ry são atualizados pelo movimento do mouse (script no fim). */
.capa .wrap{perspective:1500px}
.palco{position:absolute;right:0;bottom:0;width:45%;height:97%;z-index:2;transform-style:preserve-3d;
  transform:rotateY(var(--ry,-9deg)) rotateX(var(--rx,2deg));transition:transform .3s ease-out}
.pagina{position:absolute;left:12%;right:-8%;top:3%;bottom:9%;background:var(--vinho);transform:translateZ(-90px);
  box-shadow:-34px 30px 60px rgba(42,21,25,.35);
  background-image:repeating-linear-gradient(115deg,rgba(255,255,255,.06) 0 1px,transparent 1px 7px),repeating-linear-gradient(65deg,rgba(255,255,255,.06) 0 1px,transparent 1px 7px)}
.pagina{overflow:hidden}
.pagina::after{content:"";position:absolute;inset:14px;border:1px solid rgba(240,213,138,.7);z-index:3}
.pagina::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(74,34,45,.25),rgba(74,34,45,.6));z-index:2}
/* os três países passam atrás dela, em movimento lento (18 s o ciclo) */
.pagina img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:pais 18s var(--d) infinite}
.pagina span{position:absolute;left:28px;top:24px;z-index:4;color:#fff;font:italic 500 1.7rem var(--display);opacity:0;animation:rotulo 18s var(--d) infinite}
@keyframes pais{0%{opacity:0;transform:scale(1.04) translateX(3%)}6%{opacity:1}33%{opacity:1}40%{opacity:0;transform:scale(1.16) translateX(-3%)}100%{opacity:0}}
@keyframes rotulo{0%,3%{opacity:0}8%,31%{opacity:1}36%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.pagina img,.pagina span{animation:none}.pagina img:first-of-type,.pagina span:first-of-type{opacity:1}}
.retrato{position:absolute;left:54%;bottom:0;height:80%;width:auto;max-width:none;
  transform:translateX(calc(-50% + var(--px,0px))) translateY(var(--py,0px)) translateZ(90px);
  transform-origin:50% 100%;transition:transform .3s ease-out;filter:drop-shadow(-30px 34px 34px rgba(42,21,25,.42));
  /* entra subindo de dentro do quadro e depois fica num balanço lento, como quem respira */
  animation:entra 1.3s cubic-bezier(.2,.8,.2,1) both,respira 6.5s 1.3s ease-in-out infinite}
@keyframes entra{from{translate:0 70px;scale:.94}to{translate:0 0;scale:1}}
@keyframes respira{0%,100%{translate:0 0;scale:1;rotate:0deg}35%{translate:5px -9px;scale:1.016;rotate:.6deg}70%{translate:-4px -4px;scale:1.008;rotate:-.4deg}}
@media (prefers-reduced-motion:reduce){.retrato{animation:none;transition:none}}
.capa h1{transform:translate3d(var(--tx,0),var(--ty,0),0);transition:transform .3s ease-out}
@media (prefers-reduced-motion:reduce){.palco,.capa h1{transition:none}}
.entrada{position:relative;z-index:3;max-width:31rem;padding:34px 0 70px}
.entrada p{font:400 1.3rem/1.5 var(--texto);margin:0 0 26px}
.acoes{display:flex;flex-wrap:wrap;gap:8px 26px;align-items:center}
@media (max-width:900px){
  .capa h1{font-size:23.5vw}
  .palco{position:relative;width:min(80%,360px);height:auto;aspect-ratio:896/1500;margin:-3vw 0 0 auto}
  .pagina span{left:auto;right:24px;top:22px;font-size:1.3rem}
  .entrada{padding:26px 0 54px;max-width:none}
}

/* carimbos */
.carimbos{position:relative;z-index:4;display:flex;gap:10px 34px;flex-wrap:wrap;margin-top:-44px;padding-bottom:26px}
.carimbo{width:148px;height:148px;color:var(--c);transform:rotate(var(--r));mix-blend-mode:multiply;opacity:.84}
.carimbo text{font:600 12.5px var(--ui);letter-spacing:.2em;fill:currentColor}
.carimbo .meio{font:500 34px var(--display);letter-spacing:0}
@media (max-width:560px){.carimbo{width:104px;height:104px}.carimbos{gap:6px 12px;margin-top:-20px}}

section{padding:96px 0}
h2{font:500 clamp(2.2rem,4.6vw,3.9rem)/1.02 var(--display);letter-spacing:-.02em;margin:0 0 .55em;color:var(--vinho)}
h2 em{font-weight:400}

/* carta */
.carta{background:#fff;border-top:1px solid var(--tinta);border-bottom:1px solid var(--tinta)}
.carta .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,21rem);gap:72px;align-items:start}
.carta .corpo{max-width:39rem}
.carta .corpo p{font:400 1.24rem/1.62 var(--texto);margin:0 0 1.05em}
.carta .corpo p:first-of-type::first-letter{font:500 4.6rem/.8 var(--display);float:left;padding:.08em .1em 0 0;color:var(--vinho)}
.carta .corpo .frase{font:italic 400 clamp(1.9rem,3.6vw,3rem)/1.12 var(--display);color:var(--verde);margin:1.1em 0 .5em;max-width:16em}
.carta .corpo .assinatura{font:400 4rem/1 var(--mao);color:var(--vinho-escuro);margin:.1em 0 0;transform:rotate(-3deg);transform-origin:left}
.assinatura+small{display:block;color:var(--cinza);font-size:.92rem;margin-top:6px}
.lado{position:sticky;top:24px}
.foto-colada{background:#fff;padding:10px 10px 12px;box-shadow:0 10px 26px rgba(42,21,25,.22);transform:rotate(2.4deg);border:1px solid var(--papel-2)}
.foto-colada figcaption{font:italic 400 1rem var(--texto);color:var(--cinza);padding-top:9px}
.lado figure{margin:0}
.notas{list-style:none;margin:44px 0 0;padding:0;font-size:.95rem}
.notas li{display:grid;grid-template-columns:4.2rem 1fr;gap:10px;padding:12px 0;border-top:1px solid var(--linha)}
.notas b{font:500 1.35rem/1.1 var(--display);color:var(--vinho)}
@media (max-width:900px){.carta .wrap{grid-template-columns:1fr;gap:44px}.lado{position:static}.foto-colada{max-width:300px}}

/* agenda: livro de registros */
.registro{list-style:none;margin:40px 0 0;padding:0;border-top:2px solid var(--tinta)}
.registro li{display:grid;grid-template-columns:13.5rem minmax(0,1fr);gap:8px 32px;padding:22px 0;border-bottom:1px solid var(--linha);align-items:baseline}
.registro time,.registro .sem-data{font:500 1.75rem/1.05 var(--display);color:var(--vinho)}
.registro h3{font:600 1.1rem/1.3 var(--ui);margin:0 0 3px}
.registro p{margin:0;color:var(--cinza);max-width:46rem}
.breve{display:inline-block;margin-left:10px;padding:1px 8px;border:1.5px solid var(--azul-carimbo);color:var(--azul-carimbo);font:600 .72rem var(--ui);letter-spacing:.14em;transform:rotate(-4deg);vertical-align:middle}
@media (max-width:700px){.registro li{grid-template-columns:1fr}.registro time,.registro .sem-data{font-size:1.4rem}}

/* consulta: faixa vinho chapada */
.consulta{background:var(--vinho);color:#fff}
.consulta h2{color:#fff}
.consulta .intro{font:400 1.24rem/1.55 var(--texto);max-width:38rem;margin:0 0 40px}
.formatos{list-style:none;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.4)}
.formatos li{display:grid;grid-template-columns:15rem minmax(0,1fr) auto;gap:10px 34px;align-items:center;padding:24px 0;border-bottom:1px solid rgba(255,255,255,.4)}
.formatos h3{font:500 1.75rem/1.1 var(--display);margin:0}
.formatos h3 small{display:block;font:500 .9rem/1.6 var(--ui);opacity:.86}
.formatos p{margin:0;opacity:.93;max-width:36rem}
.consulta .ph{color:#F0D58A;border-color:#F0D58A}
.pagar{margin:30px 0 0;font-size:.98rem;opacity:.95}
@media (max-width:900px){.formatos li{grid-template-columns:1fr}}

/* áreas: texto corrido, sem grade */
.areas p{font:400 clamp(1.7rem,3.5vw,3rem)/1.24 var(--display);letter-spacing:-.012em;margin:0;max-width:22em}
.areas a{text-decoration:none;border-bottom:2px solid transparent}
.areas a:nth-child(even){font-style:italic;color:var(--verde)}
.areas a:hover{border-bottom-color:currentColor}
.areas small{display:block;margin-top:28px;color:var(--cinza);font:400 1rem/1.5 var(--ui)}

.parceiros{background:#fff;border-top:1px solid var(--tinta)}
.gente{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;margin-top:34px}
.gente img{width:92px;height:92px;border-radius:50%;object-fit:cover;filter:grayscale(1);margin-bottom:14px}
.gente .sem-foto{width:92px;height:92px;border-radius:50%;border:1px dashed var(--linha);display:grid;place-items:center;font:italic 500 1.7rem var(--display);color:var(--vinho);margin-bottom:14px}
.gente h3{font:500 1.4rem/1.15 var(--display);margin:0 0 4px}
.gente p{margin:0;color:var(--cinza);font-size:.98rem}
@media (max-width:800px){.gente{grid-template-columns:1fr}}

footer{background:var(--tinta);color:#fff;padding:60px 0 96px}
footer .wrap{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px}
footer .nome{font-size:2.2rem;color:#fff}
footer h3{font:600 .82rem var(--ui);letter-spacing:.14em;margin:0 0 10px;opacity:.75}
footer p{margin:0 0 8px;opacity:.94}
footer a{text-underline-offset:4px;display:inline-block;padding:6px 0}
.insta{display:inline-flex;align-items:center;gap:12px;text-decoration:none;margin:2px 0 10px;min-height:56px}
.insta img{width:56px;height:56px;border-radius:50%;border:2px solid var(--ouro-texto)}
.insta span{font-size:.95rem;line-height:1.35} .insta b{font:italic 500 1.1rem var(--display)}
.insta:hover b{text-decoration:underline;text-underline-offset:4px}
.agora{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.3);padding-top:18px;font-size:.95rem;opacity:.9}
.agora b{font:500 1.2rem var(--display);font-variant-numeric:tabular-nums}
@media (max-width:800px){footer .wrap{grid-template-columns:1fr}}
.whats{position:fixed;right:18px;bottom:18px;z-index:9;background:var(--verde);color:#fff;text-decoration:none;font-weight:600;
  min-height:48px;padding:0 20px;display:inline-flex;align-items:center;border-radius:2px;box-shadow:0 8px 22px rgba(0,0,0,.28)}

/* ---- páginas internas ---- */
.interna section{padding:52px 0}
.topo-pag{padding:64px 0 28px}
.topo-pag .sobre-titulo{font:italic 400 1.3rem var(--display);margin:0}
.topo-pag h1{font:500 clamp(2.8rem,7.4vw,6.2rem)/.95 var(--display);letter-spacing:-.03em;color:var(--vinho);margin:.08em 0 .28em}
.topo-pag p.abre{font:400 1.32rem/1.5 var(--texto);max-width:38rem;margin:0}
.prosa{max-width:42rem}
.prosa p,.prosa li{font:400 1.2rem/1.6 var(--texto)}
.prosa h2{font-size:clamp(1.8rem,3vw,2.5rem);margin-top:1.2em}
.prosa ul{padding-left:1.2em}
.faixa{background:var(--vinho);color:#fff}
.faixa h2{color:#fff}
.faixa p{font:400 1.2rem/1.55 var(--texto);max-width:36rem}
.aviso{background:#fff;border-left:4px solid var(--verde);padding:16px 20px;max-width:42rem}
.form{display:grid;gap:26px;max-width:42rem}
.form label{display:grid;gap:6px;font-weight:600;font-size:.96rem}
.form input,.form select,.form textarea{font:inherit;padding:12px 14px;border:1px solid #8A767C;border-radius:2px;background:#fff;min-height:48px;width:100%}
.form fieldset{border:0;border-top:1px solid var(--tinta);padding:22px 0 0;margin:0;display:grid;gap:16px;min-width:0}
.form legend{font:500 1.7rem var(--display);padding-right:14px;color:var(--vinho)}
.opcoes{display:flex;flex-wrap:wrap;gap:10px}
.form .opcoes label{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--tinta);padding:10px 16px;min-height:48px;cursor:pointer;font-weight:500;background:#fff}
.form .opcoes input{width:auto;min-height:0}
.form .opcoes label:has(input:checked){background:var(--verde);color:#fff;border-color:var(--verde)}
.mapa{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 22px;border-top:1px solid rgba(255,255,255,.3);padding-top:16px}
.so-movel{display:none}
@media (max-width:1020px){.so-movel{display:inline-flex}}
/* ---- agenda e painel da equipe ---- */
.dia{font:500 1.25rem var(--display);margin:16px 0 8px;color:var(--vinho)}
.item{border-top:1px solid var(--linha);padding:18px 0}
.selo{display:inline-block;padding:1px 8px;border:1px solid currentColor;font-size:.8rem;font-weight:600;margin-right:6px}
.selo.alerta{color:#9A1B1B} .selo.ok{color:var(--verde)}
.botoes{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.mini{font:600 .9rem var(--ui);min-height:42px;padding:0 12px;border:1px solid var(--tinta);background:#fff;color:var(--tinta);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.mini:hover{background:var(--papel)}
.acao{background:#fff;border:1px solid var(--linha);padding:14px;margin-top:10px;display:grid;gap:10px;max-width:42rem}
.acao input,.acao select,.acao textarea{font:inherit;padding:10px 12px;border:1px solid #8A767C;min-height:44px;width:100%}
.acao input[type=checkbox]{width:auto;min-height:0}
.linha-form{display:flex;flex-wrap:wrap;gap:14px;align-items:end;max-width:none}
.linha-form label{flex:1 1 150px}
#painel section{padding:28px 0}
/* ---- modo edição (só para quem fez login) ---- */
.ed-barra{position:fixed;left:18px;bottom:18px;z-index:20;display:flex;gap:8px;background:#fff;border:1px solid var(--tinta);padding:8px;box-shadow:0 8px 22px rgba(0,0,0,.25)}
.ed-barra button{font:600 .92rem var(--ui);min-height:44px;padding:0 14px;border:1px solid var(--tinta);background:#fff;cursor:pointer}
.ed-barra button.principal{background:var(--verde);color:#fff;border-color:var(--verde)}
.ed-ativo [data-ed]{outline:2px dashed var(--azul-carimbo);outline-offset:3px;cursor:text}
.ed-ativo img[data-ed]{cursor:pointer}
