/* Tuk4Two v2 — fundo branco, letra impactante. Outfit 800 nos títulos, Inter no corpo. O azul do tuk tuk só em formas e fundos;
   o texto azul usa as variantes escuras (contrastes medidos: ver o relatório). */
:root{
  --tinta:#0E1116;--fundo:#FAFAF9;--azul:#66B4FC;--azul-titulo:#1F7FD9;--azul-escuro:#1C6FC0;--azul-claro:#EAF4FE;
  --cinza:#5B6470;--linha:#E3E6EA;--linha-forte:#7B8697;--rodape:#F2F4F6;
  --titulo:'Outfit',system-ui,sans-serif;--texto:'Inter',system-ui,sans-serif;
  --margem:clamp(16px,4vw,48px);--max:1360px;--raio:18px;--topo:76px;--ease:cubic-bezier(.16,1,.3,1);
  --cap-bg:var(--fundo);--cap-linha:var(--linha);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px;overflow-x:clip}
body{margin:0;font:400 1.0625rem/1.6 var(--texto);color:var(--tinta);background:var(--fundo);overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%}
picture{display:block}
figure{margin:0}
h1,h2,h3,p,ul,ol,dl,dd,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
button,input,select{font:inherit;color:inherit}
::selection{background:var(--azul);color:var(--tinta)}
:focus-visible{outline:3px solid var(--azul-escuro);outline-offset:3px;border-radius:4px}
.contacto :focus-visible{outline-color:var(--tinta)}
.saltar{position:absolute;left:12px;top:-64px;z-index:100;background:var(--tinta);color:#fff;padding:14px 20px;border-radius:999px;font-weight:600;text-decoration:none;transition:top .2s var(--ease)}
.saltar:focus{top:12px}
.envolve{width:100%;max-width:calc(var(--max) + 2 * var(--margem));margin-inline:auto;padding-inline:var(--margem)}
.nw{white-space:nowrap}

/* tipo */
.etiqueta{font:600 .75rem/1.3 var(--texto);letter-spacing:.14em;text-transform:uppercase;color:var(--azul-escuro)}
h2{font:800 clamp(2.6rem,6.4vw,6rem)/.95 var(--titulo);letter-spacing:-.035em}
h2{text-wrap:balance}
h2 .palavra{display:inline-block}
.mascara{display:inline-block;overflow:hidden;vertical-align:top;padding:.2em .06em .12em;margin:-.2em -.06em -.12em}

/* botões */
.botao{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border-radius:999px;border:1.5px solid transparent;font:600 15px/1 var(--texto);text-decoration:none;cursor:pointer;transition:transform .2s var(--ease),background-color .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}
.botao:hover{transform:translateY(-1px)}
.botao:active{transform:scale(.98)}
.botao svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.botao-azul{background:var(--azul-escuro);color:#fff}
.botao-azul:hover{background:#175C9F}
.botao-linha{border-color:var(--tinta);color:var(--tinta);background:transparent}
.botao-linha:hover{background:var(--tinta);color:#fff}
.botao-tinta{background:var(--tinta);color:#fff}
.botao-tinta:hover{background:#232B36}
.botao-whatsapp{background:#0F8045;color:#fff}
.botao-whatsapp:hover{background:#0E703B}
.botao-whatsapp:focus-visible{outline:3px solid #0B5E32;outline-offset:4px}
.botao-peq{min-height:44px;padding:0 20px}

/* cabeçalho */
.topo{position:fixed;inset:0 0 auto 0;z-index:60;background:rgba(250,250,249,.88);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid transparent;transition:border-color .3s var(--ease)}
.topo.rolou{border-bottom-color:var(--linha)}
.topo .envolve{display:flex;align-items:center;gap:20px;min-height:var(--topo)}
.marca{display:inline-flex;flex:none;border-radius:6px}
.marca img{display:block;height:44px;width:auto}
.menu{margin-left:auto;display:flex;align-items:center;gap:2px}
.menu a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;font:500 15px/1 var(--texto);text-decoration:none;transition:background-color .2s var(--ease)}
.menu a:hover{background:var(--azul-claro)}
.topo-acoes{display:flex;align-items:center;gap:8px}
.lingua{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 12px;border:1.5px solid var(--linha-forte);border-radius:999px;font:600 13px/1 var(--texto);letter-spacing:.06em;text-decoration:none;transition:background-color .2s var(--ease),border-color .2s var(--ease)}
.lingua:hover{background:var(--azul-claro);border-color:var(--azul-escuro)}
.burger{display:none;position:relative;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--azul-claro);cursor:pointer}
.burger span{position:absolute;left:13px;right:13px;height:2px;border-radius:2px;background:var(--tinta);transition:transform .3s var(--ease),opacity .2s}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:21px}.burger span:nth-child(3){top:26px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

/* abertura: o logótipo sozinho no branco, uma vez por sessão (só com JS e movimento) */
.intro{display:none}
.anima:not(.sem-intro) .intro{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:var(--fundo)}
.intro-logo{display:flex;flex-direction:column;align-items:center;gap:clamp(12px,1.8vw,20px);width:clamp(200px,26vw,340px)}
.intro-logo img{display:block;height:auto}
.il-tuk{width:72%}
.il-palavra{width:100%}

/* herói: fundo branco, título enorme à esquerda, a fotografia alta à direita já no primeiro ecrã */
.heroi{padding:calc(var(--topo) + clamp(24px,5svh,64px)) 0 clamp(40px,7svh,88px);background:var(--fundo)}
.heroi-grelha{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(32px,5vw,88px);align-items:center;min-height:calc(100svh - var(--topo) - clamp(64px,12svh,152px))}
.heroi h1{margin-top:clamp(14px,2.2svh,24px);font:800 clamp(3rem,min(8.4vw,15.5svh),9rem)/.9 var(--titulo);letter-spacing:-.04em}
.heroi h1 .l1,.heroi h1 .l2{display:block}
.heroi h1 .l1{color:var(--tinta)}
.heroi h1 .l2{color:var(--azul-titulo)}
.heroi-p{margin-top:clamp(18px,3svh,28px);max-width:31rem;font-size:clamp(1.0625rem,1.25vw,1.1875rem);line-height:1.6;color:#2B313A}
.heroi-botoes{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(20px,3.4svh,32px)}
.factos{display:flex;flex-wrap:wrap;gap:6px 22px;max-width:36rem;margin-top:clamp(20px,3.4svh,32px);padding-top:clamp(14px,2.4svh,20px);border-top:1px solid var(--linha);font:500 .875rem/1.5 var(--texto);color:var(--tinta)}
.factos li{display:inline-flex;align-items:flex-start;gap:.6em}
.factos li::before{content:"";flex:none;width:4px;height:4px;margin-top:.62em;border-radius:50%;background:var(--azul)}
.heroi-foto{position:relative;justify-self:end;width:100%;max-width:560px;aspect-ratio:4/5;max-height:calc(100svh - var(--topo) - 64px);margin:0}
.heroi-moldura{position:absolute;inset:0;overflow:hidden;border-radius:28px;background:#dfe6ef;isolation:isolate}
.heroi-moldura picture{display:block;width:100%;height:100%}
.heroi-moldura img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 62%}
.heroi-cartao{position:absolute;left:clamp(-40px,-2.6vw,-16px);bottom:clamp(20px,4svh,40px);display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 20px 10px 10px;border-radius:18px;background:#fff;color:var(--tinta);text-decoration:none;box-shadow:0 18px 40px -12px rgba(14,17,22,.28),0 2px 6px rgba(14,17,22,.06)}
.heroi-cartao > img{flex:none;width:52px;height:52px;border-radius:50%;object-fit:cover}
.heroi-cartao strong{display:block;font:700 .9375rem/1.25 var(--titulo);letter-spacing:-.01em}
.heroi-cartao .estrelas{margin-top:3px}
.heroi-cartao .estrelas svg{width:14px;height:14px}
.heroi-cartao small{display:block;margin-top:2px;font:500 .8125rem/1.35 var(--texto);color:var(--cinza)}
.heroi-cartao:hover small{color:var(--tinta);text-decoration:underline}

/* faixa de bairros */
.faixa{overflow:hidden;border-block:1px solid var(--linha);padding-block:clamp(12px,1.8vw,24px);--g:clamp(24px,3.6vw,52px)}
.faixa-trilho{display:flex;width:max-content;animation:correr 52s linear infinite}
.faixa ul{display:flex;flex:none;gap:var(--g);padding-right:var(--g);font:800 clamp(2rem,5vw,4.25rem)/1.1 var(--titulo);letter-spacing:-.025em;white-space:nowrap;color:var(--azul-titulo)}
.faixa li{display:flex;align-items:center;gap:var(--g)}
.faixa li::after{content:"";width:.2em;height:.2em;border-radius:50%;background:var(--azul)}
.faixa:hover .faixa-trilho{animation-play-state:paused}
@keyframes correr{to{transform:translateX(-50%)}}

/* passeios: cabeça, índice tipográfico e capítulos */
.passeios{padding-top:clamp(72px,10vw,144px)}
.passeios-cab{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(24px,4vw,64px);align-items:end;margin-bottom:clamp(32px,5vw,64px)}
.passeios h2{margin-top:12px;font-size:clamp(3.3rem,10vw,9rem);line-height:.9}
.passeios-texto{max-width:26rem;padding-bottom:.6rem;font-size:1.125rem;color:var(--cinza)}
.indice ol{border-top:2px solid var(--tinta)}
.indice a{display:grid;grid-template-columns:4rem minmax(0,1fr) auto 2rem;align-items:center;column-gap:20px;min-height:44px;padding:clamp(16px,2vw,28px) 0;border-bottom:1px solid var(--linha);text-decoration:none}
.ind-n{font:600 .875rem/1 var(--texto);letter-spacing:.1em;color:var(--azul-escuro)}
.ind-nome{font:700 clamp(1.5rem,3.4vw,3rem)/1.05 var(--titulo);letter-spacing:-.03em;transition:color .25s var(--ease)}
.ind-meta{font:500 1rem/1.3 var(--texto);color:var(--cinza);text-align:right}
.indice svg{width:24px;height:24px;fill:none;stroke:var(--tinta);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s var(--ease),stroke .25s var(--ease)}
.indice a:hover .ind-nome{color:var(--azul-titulo)}
.indice a:hover svg{transform:translateX(6px);stroke:var(--azul-titulo)}

.tour{padding-block:clamp(56px,8vw,112px);scroll-margin-top:56px}
.passeios .indice + .tour,.passeios > .envolve + .tour{margin-top:clamp(24px,4vw,56px)}
.tour-meio{background:var(--azul-claro);--cap-bg:var(--azul-claro);--cap-linha:rgba(14,17,22,.16)}
.tour-grade{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(24px,4vw,64px);align-items:start;padding-left:max(var(--margem),calc((100% - var(--max)) / 2))}
.tour-texto{align-self:start}
@media (min-width:900px) and (min-height:780px){.tour-texto{position:sticky;top:92px}}
.tour-car{min-width:0}
.num{font:800 clamp(4.5rem,7.5vw,7rem)/.8 var(--titulo);letter-spacing:-.05em;color:var(--cap-bg);-webkit-text-stroke:2px var(--azul);paint-order:stroke fill;margin-bottom:.14em}
.tour h3{font:800 clamp(2rem,3.6vw,3.25rem)/1 var(--titulo);letter-spacing:-.035em}
.preco{margin-top:16px;font:700 clamp(1.5rem,2.2vw,2rem)/1.1 var(--titulo);letter-spacing:-.02em}
.por-tuk{margin-top:4px;font-size:.875rem;color:var(--cinza)}
.frase{margin-top:16px;max-width:30rem;font:500 1.125rem/1.5 var(--texto)}
.mini{margin:24px 0 8px;font:600 .75rem/1 var(--texto);letter-spacing:.14em;text-transform:uppercase;color:var(--cinza)}
.paragens{display:grid;grid-auto-flow:column;grid-template-rows:repeat(var(--n),auto);grid-template-columns:1fr 1fr;column-gap:24px;border-top:1px solid var(--cap-linha)}
.paragens li{padding:8px 0;border-bottom:1px solid var(--cap-linha);font-size:.9rem;line-height:1.35}
.tour-botoes{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}

/* carrossel (componente único) */
.carrossel{--pad-s:var(--margem);--pad-e:var(--margem);--alt:clamp(360px,60svh,540px);position:relative;min-width:0}
.pista{position:relative;display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad-s) var(--pad-e);padding-inline:var(--pad-s) var(--pad-e);overscroll-behavior-x:contain;scrollbar-width:none;cursor:grab}
.pista::-webkit-scrollbar{display:none}
.pista.arrasta{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.pista:focus-visible{outline-offset:-3px}
.slide{position:relative;flex:0 0 auto;height:var(--alt);aspect-ratio:var(--ar);max-width:min(86vw,100%);scroll-snap-align:start}
.slide-paisagem{height:auto;width:min(86vw,calc(var(--alt) * var(--r)));align-self:center}
.slide figure{position:relative;width:100%;height:100%;border-radius:var(--raio);overflow:hidden;background:#dfe6ef}
.slide picture{width:100%;height:100%}
.slide img,.slide video{display:block;width:100%;height:100%;object-fit:cover;-webkit-user-drag:none;user-select:none}
.slide figcaption{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);display:flex;flex-direction:column;padding:6px 12px;border-radius:12px;background:rgba(255,255,255,.92)}
.leg{font:600 13px/1.35 var(--texto);color:var(--tinta)}
.slide-cit figcaption{top:12px;bottom:auto}
.citacao{position:absolute;inset:auto 0 0 0;padding:72px 20px 20px;background:linear-gradient(0deg,rgba(14,17,22,.94) 0,rgba(14,17,22,.9) 60%,rgba(14,17,22,0) 100%);color:#fff}
.citacao .estrelas svg{width:16px;height:16px;fill:#fff}
.citacao blockquote{margin-top:8px}
.citacao p{font:500 1rem/1.45 var(--texto)}
.citacao .cit-autor{margin-top:8px;font-size:.8125rem;color:rgba(255,255,255,.86)}
.estrelas{display:inline-flex;gap:2px}
.estrelas svg{width:20px;height:20px;fill:var(--azul-escuro)}
.selo-video{position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:rgba(14,17,22,.82);color:#fff;font:600 12px/1.2 var(--texto)}
.selo-video svg{width:12px;height:12px;fill:currentColor}
.video-btn{display:none;position:absolute;right:12px;bottom:12px;width:44px;height:44px;padding:0;border:0;border-radius:50%;place-items:center;background:rgba(255,255,255,.94);color:var(--tinta);cursor:pointer;transition:transform .2s var(--ease)}
.js .video-btn{display:grid}
.video-btn:hover{transform:scale(1.06)}
.video-btn svg{width:20px;height:20px;fill:currentColor}
.video-btn .i-play{display:none}
.video-btn[aria-pressed="true"] .i-pausa{display:none}
.video-btn[aria-pressed="true"] .i-play{display:block}
.carrossel-controlo{display:flex;align-items:center;gap:16px;margin-top:20px;padding-inline:var(--pad-s) var(--pad-e)}
.seta{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:1.5px solid var(--tinta);border-radius:50%;background:transparent;cursor:pointer;transition:background-color .2s var(--ease),color .2s var(--ease),opacity .2s}
.seta svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.seta:hover:not(:disabled){background:var(--tinta);color:#fff}
.seta:disabled{opacity:.3;cursor:default}
.contador{flex:none;min-width:5.4ch;font:600 .9375rem/1 var(--titulo);letter-spacing:.04em;font-variant-numeric:tabular-nums}
.progresso{flex:1;max-width:320px;height:2px;background:var(--cap-linha);overflow:hidden}
.progresso span{display:block;height:100%;background:var(--tinta);transform-origin:left center;transform:scaleX(.1)}
.js-sem-controlo .carrossel-controlo{display:none}

/* excursões: o momento grande */
.excursoes{background:var(--azul-claro);padding-block:clamp(72px,10vw,144px) clamp(56px,7vw,96px);scroll-margin-top:56px;--cap-linha:rgba(14,17,22,.16)}
.excursoes h2{margin-top:16px;max-width:12.5em;font-size:clamp(3rem,8.6vw,8.25rem);line-height:.92}
.ex-grelha{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(24px,4vw,64px);align-items:end;margin-block:clamp(28px,4vw,56px) clamp(40px,5vw,72px)}
.ex-texto p:first-child{max-width:40rem;font-size:clamp(1.0625rem,1.5vw,1.3rem);line-height:1.55}
.ex-paragens{margin-top:16px;font:600 .9375rem/1.5 var(--texto)}
.ex-acao .preco{margin-top:0;font-size:clamp(1.75rem,3vw,2.5rem)}
.ex-acao .tour-botoes{margin-top:16px}
.car-grande{--alt:clamp(360px,60svh,540px)}

/* outras experiências */
.outras{padding-block:clamp(72px,10vw,144px)}
.outras-grelha{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(24px,4vw,64px);align-items:start}
.outras h2{margin-top:12px;font-size:clamp(2.6rem,5.4vw,5rem)}
.outras-lista{border-top:2px solid var(--tinta)}
.outra{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:32px;row-gap:4px;padding:28px 0;border-bottom:1px solid var(--linha)}
.outra-cab h3{font:700 clamp(1.5rem,2.4vw,2rem)/1.1 var(--titulo);letter-spacing:-.025em}
.outra-meta{margin-top:6px;font:600 .75rem/1.3 var(--texto);letter-spacing:.14em;text-transform:uppercase;color:var(--cinza)}
.outra-texto{color:#2A313B}
.outra-link{grid-column:2;display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;color:#0F8045;text-decoration:none}
.outra-link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s var(--ease)}
.outra-link:hover span{text-decoration:underline;text-underline-offset:4px}
.outra-link:hover svg{transform:translateX(4px)}

/* Lisboa: fotografia larga com a placa a sobrepor o canto */
.lisboa{position:relative;isolation:isolate}
.lisboa-foto{position:relative;height:min(80vh,820px);min-height:440px;overflow:hidden;background:#dfe6ef}
.lisboa-foto picture{width:100%;height:100%}
.lisboa-foto img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.placa{position:relative;z-index:1;width:min(100%,calc(46rem + var(--margem)));margin-top:calc(-1 * clamp(88px,15vw,208px));padding:clamp(28px,3.6vw,56px) clamp(24px,4vw,64px) clamp(56px,7vw,112px) var(--margem);background:var(--fundo);border-top-right-radius:22px}
.placa h2{font-size:clamp(2.6rem,5.2vw,4.75rem);line-height:.95}
.placa h2 em{font-style:normal;color:var(--azul-titulo)}
.placa p{margin-top:clamp(16px,2vw,24px);max-width:34rem;font-size:1.125rem;line-height:1.6;color:#2A313B}

/* avaliações */
.avaliacoes{padding-bottom:clamp(72px,10vw,144px)}
.ava-cab{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(24px,4vw,64px);align-items:end;margin-bottom:clamp(32px,4vw,56px)}
.ava-cab h2{margin-top:12px;font-size:clamp(2.6rem,5.4vw,5rem)}
.ava-nota{display:flex;align-items:center;justify-self:end;gap:clamp(16px,2vw,28px)}
.nota-grande{font:800 clamp(4rem,8vw,6.5rem)/.85 var(--titulo);letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.ava-nota .estrelas{margin-bottom:8px}
.ta-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;font-size:.9375rem;color:var(--azul-escuro);text-underline-offset:4px}
.ta-link svg,.ava-pe svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.car-ava{--pad-s:0px;--pad-e:0px}
.car-ava .pista{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(32px,5vw,80px);overflow:visible;scroll-snap-type:none;cursor:auto}
.car-ava .slide{height:auto;aspect-ratio:auto;max-width:none;padding:28px 0 40px;border-top:2px solid var(--tinta)}
.car-ava .carrossel-controlo{display:none}
.aspas{display:block;height:2.6rem;margin-bottom:12px;font:800 5.5rem/1 var(--titulo);color:var(--azul)}
.slide-ava blockquote .ava-tit{font:700 1.375rem/1.25 var(--titulo);letter-spacing:-.015em}
.slide-ava blockquote p + p{margin-top:12px;color:#2A313B}
.ava-autor{margin-top:20px;font:600 .875rem/1.4 var(--texto);color:var(--cinza)}
.ava-pe{display:flex;flex-wrap:wrap;align-items:center;gap:4px 20px;margin-top:8px;font-size:.9375rem;color:var(--cinza)}
.ava-pe a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:600;color:var(--azul-escuro);text-underline-offset:4px}

/* sobre */
.sobre{padding-block:clamp(72px,10vw,144px);background:var(--fundo)}
.sobre-grelha{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:clamp(32px,7vw,110px);align-items:center}
.sobre-fotos{position:relative;padding-bottom:clamp(32px,7vw,96px)}
.sobre-foto{aspect-ratio:3 / 4;overflow:hidden;border-radius:var(--raio);background:#dfe6ef}
.sobre-foto picture,.sobre-foto2 picture{width:100%;height:100%}
.sobre-foto img,.sobre-foto2 img{display:block;width:100%;height:100%;object-fit:cover}
.sobre-foto img{object-position:50% 25%}
.sobre-foto2{position:absolute;right:calc(-1 * clamp(12px,5vw,72px));bottom:0;width:56%;aspect-ratio:16 / 10;overflow:hidden;border:6px solid var(--fundo);border-radius:calc(var(--raio) + 6px);background:#dfe6ef;box-shadow:0 28px 60px -30px rgba(14,17,22,.5)}
.sobre-texto h2{margin-top:12px;font-size:clamp(2.6rem,5.4vw,5rem)}
.corpo{display:grid;gap:1.1em;max-width:36rem;margin-top:clamp(20px,3vw,32px);color:#2A313B}
.praticos{display:grid;grid-template-columns:1fr 1fr;column-gap:32px;margin-top:clamp(28px,4vw,48px);border-top:2px solid var(--tinta)}
.praticos li{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--linha)}
.praticos svg{flex:none;width:28px;height:28px;margin-top:2px;fill:none;stroke:var(--azul-escuro);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.praticos h3{font:700 1.0625rem/1.25 var(--titulo);letter-spacing:-.01em}
.praticos p{margin-top:2px;font-size:.9375rem;line-height:1.45;color:var(--cinza)}
.rnat-linha{margin-top:24px;font:600 .75rem/1.3 var(--texto);letter-spacing:.14em;text-transform:uppercase;color:var(--azul-escuro)}

/* reservar: calendário */
.reservar{padding-block:clamp(72px,10vw,144px);background:var(--azul-claro);scroll-margin-top:56px}
.reservar-grelha{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:clamp(32px,7vw,110px);align-items:start}
.reservar-texto{position:sticky;top:112px}
.reservar h2{margin-top:12px;font-size:clamp(2.8rem,6vw,5.5rem)}
.reservar-p{margin-top:clamp(16px,2.4vw,24px);max-width:26rem;font-size:1.125rem;color:#2A313B}
.resumo{margin-top:clamp(24px,3vw,40px);padding-top:16px;border-top:2px solid var(--tinta);font:700 clamp(1.25rem,2vw,1.75rem)/1.25 var(--titulo);letter-spacing:-.02em;min-height:3.4em}
.painel{--pp:clamp(16px,3vw,40px);display:grid;grid-template-columns:1fr 1fr;gap:24px 20px;padding:var(--pp);border:1px solid var(--linha);border-radius:22px;background:#fff;box-shadow:0 34px 80px -44px rgba(14,17,22,.4)}
.campo{display:flex;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;border:0}
.campo-passeio,.campo-dia,.campo-hora,.campo-recolha,.painel-fim{grid-column:1 / -1}
.campo label,.campo legend{padding:0;font:600 .875rem/1.3 var(--texto)}
.campo legend{margin-bottom:8px}
.campo input,.campo select{width:100%;min-height:52px;padding:0 16px;border:1.5px solid var(--linha-forte);border-radius:12px;background:#fff;font-size:16px;line-height:1.2;appearance:none;-webkit-appearance:none;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.campo input:hover,.campo select:hover{border-color:var(--tinta)}
.campo input:focus-visible,.campo select:focus-visible{border-color:var(--azul-escuro);outline-offset:2px}
.campo .passo input:focus-visible{outline-offset:-4px}
.campo input:user-invalid,.campo select:user-invalid{border-color:#B3261E}
.sel{position:relative}
.sel select{padding-right:48px;cursor:pointer}
.sel svg{position:absolute;right:16px;top:50%;width:20px;height:20px;margin-top:-10px;fill:none;stroke:var(--tinta);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.erro-dia{min-height:0;font:600 .875rem/1.4 var(--texto);color:#B3261E}
.horas{display:flex;flex-wrap:wrap;gap:8px}
.pastilha{position:relative;display:inline-flex}
.pastilha input{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;opacity:0;cursor:pointer}
.pastilha span{display:inline-flex;align-items:center;justify-content:center;min-width:64px;min-height:44px;padding:0 16px;border:1.5px solid var(--linha-forte);border-radius:999px;font:600 .9375rem/1 var(--texto);transition:background-color .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}
.pastilha:hover span{border-color:var(--tinta)}
.pastilha input:checked + span{background:var(--tinta);border-color:var(--tinta);color:#fff}
.pastilha input:focus-visible + span{outline:3px solid var(--azul-escuro);outline-offset:2px}
.passo{display:inline-flex;align-items:center;align-self:flex-start;border:1.5px solid var(--linha-forte);border-radius:999px;overflow:hidden}
.campo .passo input{width:56px;min-height:44px;padding:0;border:0;border-radius:0;box-shadow:none;text-align:center;font-weight:600;-moz-appearance:textfield;appearance:textfield}
.passo input::-webkit-outer-spin-button,.passo input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.passo-btn{display:none;place-items:center;width:48px;height:44px;padding:0;border:0;background:transparent;cursor:pointer;transition:background-color .2s var(--ease)}
.js .passo-btn{display:grid}
.passo-btn:hover:not(:disabled){background:var(--azul-claro)}
.passo-btn:disabled{opacity:.3;cursor:default}
.passo-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.painel-fim{display:flex;flex-direction:column;gap:14px;margin-top:4px}
.painel-fim .botao{width:100%}
.nota{font-size:.875rem;line-height:1.5;color:var(--cinza)}
/* calendário em linha (substitui o input date quando há JS) */
.cal{padding:12px;border:1.5px solid var(--linha);border-radius:16px}
.cal-cab{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.cal-nav{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1.5px solid var(--linha-forte);border-radius:50%;background:transparent;cursor:pointer;transition:background-color .2s var(--ease)}
.cal-nav:hover:not(:disabled){background:var(--azul-claro)}
.cal-nav:disabled{opacity:.3;cursor:default}
.cal-nav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cal-mes{font:700 1.125rem/1.2 var(--titulo);letter-spacing:-.01em;text-align:center}
.cal-sem,.cal-grade{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-sem span{padding:6px 0;font:600 .75rem/1 var(--texto);letter-spacing:.06em;text-transform:uppercase;text-align:center;color:var(--cinza)}
.dia{position:relative;min-height:44px;padding:0;border:0;border-radius:12px;background:transparent;font:500 1rem/1 var(--texto);cursor:pointer;transition:background-color .15s var(--ease),color .15s var(--ease)}
.dia:hover:not(:disabled){background:var(--azul-claro)}
.dia:disabled{color:#A9B0BA;cursor:default}
.dia[aria-pressed="true"]{background:var(--azul-escuro);color:#fff;font-weight:700}
.dia.hoje::after{content:"";position:absolute;left:50%;bottom:6px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:currentColor}
.dia:focus-visible{outline:3px solid var(--tinta);outline-offset:-3px}

/* contacto */
.contacto{padding-block:clamp(72px,10vw,144px);background:var(--azul);color:var(--tinta)}
.contacto h2{max-width:9em;font-size:clamp(3.2rem,12vw,11rem);line-height:.88;letter-spacing:-.045em}
.contacto-grelha{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:clamp(32px,7vw,110px);align-items:start;margin-top:clamp(32px,5vw,64px)}
.contacto-cabeca p:first-child{max-width:24rem;font:500 clamp(1.15rem,1.7vw,1.4rem)/1.45 var(--texto)}
.contacto-acoes{margin-top:clamp(22px,3vw,34px)}
.contacto-lista{border-top:2px solid var(--tinta)}
.contacto-lista > div{display:grid;grid-template-columns:7.5rem 1fr;gap:6px 20px;align-items:center;padding:14px 0;border-bottom:1px solid rgba(14,17,22,.28)}
.contacto-lista dt{font:600 .75rem/1.3 var(--texto);letter-spacing:.14em;text-transform:uppercase}
.contacto-lista dd{display:flex;flex-direction:column;align-items:flex-start;min-width:0;font-weight:600}
.contacto-lista a{display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere;text-decoration-thickness:1.5px;text-underline-offset:4px}
.contacto-lista a:hover{text-decoration-thickness:3px}
.contacto-lista .tel{font:800 clamp(1.6rem,3.2vw,2.5rem)/1.1 var(--titulo);letter-spacing:-.03em;text-decoration:none}
.contacto-lista .custo{margin-bottom:4px;font-size:.875rem;font-weight:500}
.contacto-lista address{font-style:normal;font-weight:600}

/* rodapé */
.rodape{padding-block:clamp(48px,6vw,88px) 32px;background:var(--rodape)}
.rodape-selos{display:flex;flex-wrap:wrap;align-items:center;gap:24px clamp(24px,5vw,64px)}
.rodape-marca{display:flex;align-items:center;gap:16px;font:600 .875rem/1.3 var(--texto);letter-spacing:.04em}
.rodape-marca img{display:block;height:56px;width:auto}
.selos{width:min(100%,420px)}
.selos img,.selo-kayak img{display:block;width:100%;height:auto}
.selo-kayak{display:block;width:140px;min-height:44px}
.rodape-externas{margin-top:20px;color:var(--cinza)}
.rodape-legal{display:flex;flex-wrap:wrap;gap:0 28px;margin-top:28px;padding-top:12px;border-top:1px solid var(--linha-forte)}
.rodape-legal a{display:inline-flex;align-items:center;min-height:44px;font-size:.9375rem;text-underline-offset:4px}
.rodape-legal a:hover,.rodape-credito a:hover{text-decoration:underline}
.rodape-copy{margin-top:12px;font-size:.875rem;color:var(--cinza)}
.rodape-credito{font-size:.875rem}
.rodape-credito a{display:inline-flex;align-items:center;min-height:44px;color:var(--cinza);text-underline-offset:4px}
.rodape-fotos{margin-top:4px;font-size:.8125rem;color:var(--cinza)}
.rodape-fotos summary{display:flex;align-items:center;min-height:44px;cursor:pointer}
.rodape-fotos ul{display:grid;gap:6px;padding:4px 0 8px}
.rodape-fotos a{text-underline-offset:3px}

/* pé fixo (telemóvel) */
.pe-fixo{display:none}

/* 404 */
.pagina-404{background:var(--fundo)}
.erro{display:grid;align-items:center;min-height:100svh;padding-block:48px}
.erro-n{margin-top:32px;font:800 clamp(7rem,28vw,20rem)/.8 var(--titulo);letter-spacing:-.06em;color:var(--fundo);-webkit-text-stroke:3px var(--azul);paint-order:stroke fill}
.erro h1{margin-top:24px;font:800 clamp(2.2rem,5vw,3.6rem)/1 var(--titulo);letter-spacing:-.035em}
.erro-en{margin-top:8px;color:var(--cinza)}
.erro-acoes{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}

/* movimento: o repouso é o visível; com JS e movimento permitido o herói espera o GSAP */
.anima:not(.pronto) .entra,.anima:not(.pronto) .heroi h1 .palavra,.anima:not(.pronto) .heroi-cartao{visibility:hidden}

@media (min-width:900px){
  .lisboa-foto img.px{position:absolute;left:0;top:-10%;height:120%}
}

@media (max-width:899px){
  :root{--topo:64px;--raio:14px}
  .burger{display:block}
  .topo .envolve{gap:12px}
  .topo-acoes{margin-left:auto}
  .js .menu{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:6px var(--margem) 22px;background:var(--fundo);border-bottom:1px solid var(--linha)}
  .js .menu.aberto{display:flex}
  .js .menu a{min-height:56px;padding:0 4px;border-radius:0;border-bottom:1px solid var(--linha);font:700 1.6rem/1 var(--titulo);letter-spacing:-.02em}
  html:not(.js) .topo .envolve{flex-wrap:wrap;padding-bottom:8px}
  .heroi{padding-top:calc(var(--topo) + 20px);padding-bottom:40px}
  .heroi-grelha{display:flex;flex-direction:column;align-items:stretch;min-height:0}
  .heroi-texto{display:contents}
  .heroi-foto{order:3;margin-top:24px;max-height:58svh}
  .heroi-p{order:4;margin-top:24px}
  .heroi-botoes{order:5}
  .factos{order:6}
  .heroi-botoes .botao{flex:1 1 100%}
  .factos{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;max-width:none;font-size:.8125rem}
  .heroi-foto{align-self:stretch;max-width:none}
  .heroi-cartao{left:12px;bottom:12px}
  .passeios-cab,.outras-grelha,.ava-cab,.sobre-grelha,.reservar-grelha,.contacto-grelha,.ex-grelha{grid-template-columns:1fr}
  .passeios-cab{row-gap:16px}
  .passeios-texto{padding-bottom:0}
  .indice a{grid-template-columns:2.5rem minmax(0,1fr) 1.5rem;row-gap:4px;column-gap:12px}
  .ind-meta{grid-column:2;grid-row:2;text-align:left;font-size:.9375rem}
  .indice svg{grid-column:3;grid-row:1}
  .tour-grade{display:flex;flex-direction:column;align-items:stretch;padding-left:0}
  .tour-texto{display:contents}
  .tour-cab{order:1;padding-inline:var(--margem)}
  .tour-car{order:2;margin-top:24px}
  .tour-corpo{order:3;padding-inline:var(--margem)}
  .num{font-size:4.5rem}
  .ex-grelha{row-gap:20px}
  .outra{grid-template-columns:1fr}
  .outra-link{grid-column:1}
  .placa{margin-top:-56px;width:100%;padding:28px var(--margem) 56px}
  .lisboa-foto{height:56svh;min-height:340px}
  .ava-nota{display:grid;grid-template-columns:auto 1fr;align-items:center;justify-self:start;gap:4px 16px;margin-top:20px}
  .ava-nota > div{display:contents}
  .ava-nota .estrelas{align-self:end;margin:0}
  .ta-link{grid-column:1 / -1}
  .contacto-grelha{row-gap:32px}
  .sobre-fotos{max-width:520px;margin-bottom:16px;padding-right:0}
  .sobre-foto{aspect-ratio:4 / 5}
  .sobre-foto2{right:-8px;width:58%}
  .sobre-texto{margin-top:24px}
  .reservar-texto{position:static}
  .contacto h2{max-width:none}
}

@media (max-width:639px){
  .car-ava{--pad-s:var(--margem);--pad-e:var(--margem);margin-inline:calc(-1 * var(--margem))}
  .car-ava .pista{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;cursor:grab}
  .car-ava .slide{flex:0 0 86vw;padding:24px 4px 32px 0;scroll-snap-align:start}
  .car-ava .carrossel-controlo{display:flex}
}

@media (max-width:599px){
  .heroi h1{font-size:clamp(3.3rem,15.6vw,4.2rem)}
  .heroi-foto{aspect-ratio:1/1}
}

@media (max-width:760px){
  .tour-botoes .botao,.painel-fim .botao,.contacto-acoes .botao{flex:1 1 100%}
  .contacto-acoes .botao{width:100%}
  .contacto-lista > div{grid-template-columns:1fr}
  .painel{grid-template-columns:1fr;--pp:16px}
  .campo-pessoas,.campo-lingua{grid-column:1 / -1}
  .cal{margin-inline:calc(-1 * var(--pp));padding-inline:0;border-width:1.5px 0;border-radius:0}
  .cal-cab{padding-inline:12px}
  .praticos{grid-template-columns:1fr}
  .pe-fixo{position:fixed;left:0;right:0;bottom:0;z-index:50;display:block;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:rgba(250,250,249,.96);border-top:1px solid var(--linha)}
  .pe-fixo .botao{width:100%}
  .js .pe-fixo{transform:translateY(calc(100% + 2px));visibility:hidden;transition:transform .35s var(--ease),visibility 0s .35s}
  .js .pe-fixo.mostra{transform:none;visibility:visible;transition:transform .35s var(--ease)}
  :root.pe-visivel{--aviso-cookies-acima:68px}
  .rodape{padding-bottom:calc(32px + 68px)}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .faixa-trilho{animation:none;flex-wrap:wrap;width:auto}
  .faixa ul[aria-hidden]{display:none}
  .faixa ul{flex-wrap:wrap;white-space:normal}
  .botao,.botao:hover,.botao:active{transition:none;transform:none}
  .js .pe-fixo,.js .pe-fixo.mostra{transition:none}
}
@media print{.topo,.pe-fixo{display:none}}

.ex-historia{margin-top:20px}
.ex-historia h3{font:600 1.125rem/1.3 var(--titulo);margin-bottom:6px}
.contacto-acoes{display:flex;flex-wrap:wrap;gap:12px}

:root{--i-zap:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 3a9 9 0 0 0-7.8 13.5L3 21l4.6-1.2A9 9 0 1 0 12 3z%22/%3E%3Cpath d=%22M8.6 8.4c.2-.5.5-.5.8-.5h.6c.2 0 .4.1.5.4l.8 1.9c.1.3 0 .5-.1.7l-.5.6c.6 1.1 1.5 2 2.6 2.6l.6-.5c.2-.2.5-.2.7-.1l1.9.8c.3.1.4.3.4.5v.6c0 .3 0 .6-.5.8-.6.3-1.9.5-3.8-.6-2-1.1-3.4-3-3.9-4.4-.4-1.2-.3-2.4.1-2.8z%22/%3E%3C/svg%3E");--i-seta:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14%22/%3E%3Cpath d=%22m12 5 7 7-7 7%22/%3E%3C/svg%3E");--i-ext:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 17 17 7%22/%3E%3Cpath d=%22M8 7h9v9%22/%3E%3C/svg%3E");--i-map-pin:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0%22/%3E%3Ccircle cx=%2212%22 cy=%2210%22 r=%223%22/%3E%3C/svg%3E");--i-users:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2%22/%3E%3Cpath d=%22M16 3.128a4 4 0 0 1 0 7.744%22/%3E%3Cpath d=%22M22 21v-2a4 4 0 0 0-3-3.87%22/%3E%3Ccircle cx=%229%22 cy=%227%22 r=%224%22/%3E%3C/svg%3E");--i-languages:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m5 8 6 6%22/%3E%3Cpath d=%22m4 14 6-6 2-3%22/%3E%3Cpath d=%22M2 5h12%22/%3E%3Cpath d=%22M7 2h1%22/%3E%3Cpath d=%22m22 22-5-10-5 10%22/%3E%3Cpath d=%22M14 18h6%22/%3E%3C/svg%3E");--i-clock:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M12 6v6l4 2%22/%3E%3C/svg%3E");--i-estrelas:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 108 20%22 fill=%22%23000%22%3E%3Cg transform=%22translate%280 0%29%22%3E%3Cpath transform=%22scale%28.8333%29%22 d=%22m12 2.8 2.8 5.9 6.4.8-4.7 4.4 1.2 6.4L12 17.2l-5.7 3.1 1.2-6.4-4.7-4.4 6.4-.8z%22/%3E%3C/g%3E%3Cg transform=%22translate%2822 0%29%22%3E%3Cpath transform=%22scale%28.8333%29%22 d=%22m12 2.8 2.8 5.9 6.4.8-4.7 4.4 1.2 6.4L12 17.2l-5.7 3.1 1.2-6.4-4.7-4.4 6.4-.8z%22/%3E%3C/g%3E%3Cg transform=%22translate%2844 0%29%22%3E%3Cpath transform=%22scale%28.8333%29%22 d=%22m12 2.8 2.8 5.9 6.4.8-4.7 4.4 1.2 6.4L12 17.2l-5.7 3.1 1.2-6.4-4.7-4.4 6.4-.8z%22/%3E%3C/g%3E%3Cg transform=%22translate%2866 0%29%22%3E%3Cpath transform=%22scale%28.8333%29%22 d=%22m12 2.8 2.8 5.9 6.4.8-4.7 4.4 1.2 6.4L12 17.2l-5.7 3.1 1.2-6.4-4.7-4.4 6.4-.8z%22/%3E%3C/g%3E%3Cg transform=%22translate%2888 0%29%22%3E%3Cpath transform=%22scale%28.8333%29%22 d=%22m12 2.8 2.8 5.9 6.4.8-4.7 4.4 1.2 6.4L12 17.2l-5.7 3.1 1.2-6.4-4.7-4.4 6.4-.8z%22/%3E%3C/g%3E%3C/svg%3E")}
/* ================================================================================================================
   WordPress — o mesmo desenho do site estático sobre a marcação dos blocos (grupo, imagem, botões, lista, citação…).
   O CSS acima é o do site estático (public/css/site.css); aqui ficam só as diferenças. Classes iguais às do estático
   sempre que possível. Os ícones (--i-*) e a máscara das estrelas vêm gerados antes deste bloco.
   ================================================================================================================ */
.wp-site-blocks{padding:0}
.wp-site-blocks > *{margin-block:0}
:where(.wp-block-group) > *{margin-block:0}
:where(.wp-block-image){margin:0}
.wp-block-image img{height:auto}
:where(.wp-block-template-part){margin:0}
:where(.wp-block-buttons,.wp-block-list,.wp-block-quote){margin:0}
:where(.wp-block-list){padding:0;list-style:none}
:where(.wp-block-quote){padding:0;border:0}
/* o WordPress zera a margem do 1.º filho de cada grupo («:root :where(.is-layout-flow) > :first-child», 0,2,0) */
.tour .tour-corpo > .mini{margin-top:24px}

/* ---------- ícones por máscara (herdam a cor) ---------- */
.wp-block-button__link[href*="wa.me"]::before{content:"";width:20px;height:20px;flex:none;background:currentColor;-webkit-mask:var(--i-zap) center / contain no-repeat;mask:var(--i-zap) center / contain no-repeat}
.is-style-linha-ext .wp-block-button__link::after{content:"";width:20px;height:20px;flex:none;background:currentColor;-webkit-mask:var(--i-ext) center / contain no-repeat;mask:var(--i-ext) center / contain no-repeat}
.outra-link a::after,.ta-link a::after,.ava-pe a::after{content:"";display:inline-block;flex:none;width:18px;height:18px;margin-left:8px;vertical-align:-3px;background:currentColor;-webkit-mask:var(--i-seta) center / contain no-repeat;mask:var(--i-seta) center / contain no-repeat;transition:transform .3s var(--ease)}
.ta-link a::after,.ava-pe a::after{-webkit-mask-image:var(--i-ext);mask-image:var(--i-ext);width:16px;height:16px}
.outra-link a:hover::after{transform:translateX(4px)}

/* ---------- estrelas (o texto «5/5» fica para os leitores de ecrã; a máscara desenha as cinco) ---------- */
p.estrelas{display:block;--es:20px;width:calc(var(--es) * 5.4);height:var(--es);font-size:0;line-height:0;color:transparent;background:var(--azul-escuro);-webkit-mask:var(--i-estrelas) left center / 100% 100% no-repeat;mask:var(--i-estrelas) left center / 100% 100% no-repeat;overflow:hidden}
.citacao p.estrelas{--es:16px;background:#fff}
.heroi-cartao p.estrelas{--es:14px;margin-top:3px}
.ava-nota p.estrelas{margin-bottom:8px}

/* ---------- botões (core/button) ---------- */
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:12px}
.wp-block-button .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border-radius:999px;border:1.5px solid transparent;font:600 15px/1 var(--texto);text-decoration:none;white-space:nowrap;cursor:pointer;background:var(--azul-escuro);color:#fff;transition:transform .2s var(--ease),background-color .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}
.wp-block-button .wp-block-button__link:hover{transform:translateY(-1px)}
.wp-block-button .wp-block-button__link:active{transform:scale(.98)}
.wp-block-button.is-style-azul .wp-block-button__link{background:var(--azul-escuro);color:#fff}
.wp-block-button.is-style-azul .wp-block-button__link:hover{background:#175C9F}
.wp-block-button.is-style-whatsapp .wp-block-button__link{background:#0F8045;color:#fff}
.wp-block-button.is-style-whatsapp .wp-block-button__link:hover{background:#0E703B}
.wp-block-button.is-style-whatsapp .wp-block-button__link:focus-visible{outline:3px solid #0B5E32;outline-offset:4px}
.wp-block-button.is-style-linha .wp-block-button__link,.wp-block-button.is-style-linha-ext .wp-block-button__link{background:transparent;border-color:var(--tinta);color:var(--tinta)}
.wp-block-button.is-style-linha .wp-block-button__link:hover,.wp-block-button.is-style-linha-ext .wp-block-button__link:hover{background:var(--tinta);color:#fff}
.botao-pequeno .wp-block-button__link{min-height:44px;padding:0 20px}

/* ---------- cabeçalho ---------- */
.topo .marca{display:inline-flex;flex:none;margin:0}
.topo .marca img{display:block;height:44px;width:auto}
.t4t-menu{margin-left:auto;gap:2px;font:500 15px/1 var(--texto)}
.t4t-menu .wp-block-navigation-item__content{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;text-decoration:none;transition:background-color .2s var(--ease)}
.t4t-menu .wp-block-navigation-item__content:hover{background:var(--azul-claro)}
.t4t-menu .wp-block-navigation__container{gap:2px}
.topo-acoes{display:flex;align-items:center;gap:8px}
.topo-acoes > .wp-block-buttons{margin:0}
p.lingua{margin:0;display:block;min-width:0;min-height:0;padding:0;border:0;border-radius:0;letter-spacing:0;background:none}
p.lingua a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 12px;border:1.5px solid var(--linha-forte);border-radius:999px;font:600 13px/1 var(--texto);letter-spacing:.06em;text-decoration:none;transition:background-color .2s var(--ease),border-color .2s var(--ease)}
p.lingua a:hover{background:var(--azul-claro);border-color:var(--azul-escuro)}
.t4t-menu .wp-block-navigation__responsive-container-open,.t4t-menu .wp-block-navigation__responsive-container-close{min-width:44px;min-height:44px;align-items:center;justify-content:center;border-radius:50%;color:var(--tinta)}
.t4t-menu .wp-block-navigation__responsive-container-open{background:var(--azul-claro)}
.t4t-menu .wp-block-navigation__responsive-container.is-menu-open{background:var(--fundo) !important;color:var(--tinta) !important;padding:calc(var(--topo) + 8px) var(--margem) 32px}
.t4t-menu .is-menu-open .wp-block-navigation__container{align-items:stretch;gap:0;width:100%}
.t4t-menu .is-menu-open .wp-block-navigation-item__content{min-height:56px;padding:0 4px;border-radius:0;border-bottom:1px solid var(--linha);font:700 1.6rem/1 var(--titulo);letter-spacing:-.02em;width:100%}
.t4t-menu .is-menu-open .wp-block-navigation__responsive-dialog{padding:0}
.admin-bar .topo{top:var(--wp-admin--admin-bar--height,32px)}
/* o menu do WordPress passa a «hambúrguer» aos 600 px; o desenho quer-no até aos 899 px */
@media (min-width:600px) and (max-width:899px){
  .t4t-menu .wp-block-navigation__responsive-container-open:not(.always-shown){display:flex}
  .t4t-menu .wp-block-navigation__responsive-container:not(.is-menu-open){display:none}
}

/* ---------- herói ---------- */
.heroi h1 em{font-style:normal;color:var(--azul-titulo)}
.heroi-moldura .wp-block-image{width:100%;height:100%;margin:0}
.heroi-moldura .wp-block-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 62%}
.heroi-cartao{text-decoration:none}
.heroi-cartao > .wp-block-image{flex:none;margin:0}
.heroi-cartao > .wp-block-image img{width:52px;height:52px;border-radius:50%;object-fit:cover}
.heroi-cartao .cartao-nome{display:block;font:700 .9375rem/1.25 var(--titulo);letter-spacing:-.01em}
.heroi-cartao .cartao-nome a{text-decoration:none}
.heroi-cartao .cartao-nome a::after{content:"";position:absolute;inset:0;border-radius:18px}
.heroi-cartao .cartao-nota{margin-top:2px;font:500 .8125rem/1.35 var(--texto);color:var(--cinza)}
.heroi-cartao:hover .cartao-nota{color:var(--tinta);text-decoration:underline}
/* o título só esconde enquanto o JS o parte em palavras */
.anima:not(.pronto) .heroi h1{visibility:hidden}

/* ---------- faixa de bairros ---------- */

/* ---------- passeios ---------- */
.indice-lista{counter-reset:ind;border-top:2px solid var(--tinta)}
.indice-lista li{counter-increment:ind;border-bottom:1px solid var(--linha)}
.indice-lista a{display:flex;align-items:center;column-gap:20px;min-height:44px;padding:clamp(16px,2vw,28px) 0;text-decoration:none;font:500 1rem/1.3 var(--texto);color:var(--cinza)}
.indice-lista a::before{content:counter(ind,decimal-leading-zero);order:-3;flex:none;width:4rem;font:600 .875rem/1 var(--texto);letter-spacing:.1em;color:var(--azul-escuro)}
.indice-lista a strong{order:-2;flex:1;font:700 clamp(1.5rem,3.4vw,3rem)/1.05 var(--titulo);letter-spacing:-.03em;color:var(--tinta);transition:color .25s var(--ease)}
.indice-lista a::after{content:"";order:1;flex:none;width:24px;height:24px;margin-left:8px;background:var(--tinta);-webkit-mask:var(--i-seta) center / contain no-repeat;mask:var(--i-seta) center / contain no-repeat;transition:transform .3s var(--ease),background-color .25s var(--ease)}
.indice-lista a:hover strong{color:var(--azul-titulo)}
.indice-lista a:hover::after{transform:translateX(6px);background:var(--azul-titulo)}
.passeios .indice{margin:0}
.tour .tour-cab > .num{margin-bottom:.14em}
.tour .preco{margin-top:16px}
.tour .por-tuk{margin-top:4px}
.tour .frase{margin-top:16px}
.tour .paragens.wp-block-list{display:grid;border-top:1px solid var(--cap-linha)}
.slide .wp-block-image{width:100%;height:100%;margin:0}
.tour-car .carrossel,.excursoes .carrossel{margin:0}

/* ---------- carrossel ---------- */
.slide .wp-block-image img,.slide .wp-block-video video{display:block;width:100%;height:100%;object-fit:cover}
.slide .wp-block-image figcaption{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);margin:0;padding:6px 12px;border-radius:12px;background:rgba(255,255,255,.92);font:600 13px/1.35 var(--texto);color:var(--tinta);text-align:left}
.slide .wp-block-video{margin:0}
.slide-video{--ar:9 / 16;--r:.5625}
.slide-cit{overflow:hidden;border-radius:var(--raio)}
.slide-cit .wp-block-image figcaption{top:12px;bottom:auto}
.citacao cite{display:block;margin-top:8px;font:normal .8125rem/1.4 var(--texto);color:rgba(255,255,255,.86)}
.citacao .wp-block-quote{margin-top:8px}
.carrossel > .carrossel-controlo{margin-top:20px}

/* ---------- excursões, outras, Lisboa ---------- */
.excursoes .ex-historia h3{font:600 1.125rem/1.3 var(--titulo);margin-bottom:6px}
.excursoes .ex-historia{margin-top:20px}
.excursoes .ex-texto > p:first-child{max-width:40rem;font-size:clamp(1.0625rem,1.5vw,1.3rem);line-height:1.55}
.excursoes .ex-acao .tour-botoes{margin-top:16px}
.excursoes .envolve > .etiqueta{margin:0}
.excursoes .envolve > .ex-grelha{margin-bottom:clamp(40px,5vw,72px)}
.outras-lista{border-top:2px solid var(--tinta)}
.outra-link{grid-column:2;margin:0}
.outra-link a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:#0F8045;text-decoration:none}
.outra-link a:hover{text-decoration:underline;text-underline-offset:4px}
.lisboa-foto .wp-block-image{width:100%;height:100%;margin:0}
.lisboa-foto .wp-block-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
@media (min-width:900px){
  .lisboa-foto .wp-block-image img{position:absolute;left:0;top:-10%;height:120%}
}

/* ---------- avaliações ---------- */
.ta-link{margin:0}
.ta-link a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;font-size:.9375rem;color:var(--azul-escuro);text-underline-offset:4px}
.ava-pe a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--azul-escuro);text-underline-offset:4px}
.car-ava .slide .wp-block-quote{margin:0}
.slide-ava::before{content:"\201C";display:block;height:2.6rem;margin-bottom:12px;font:800 5.5rem/1 var(--titulo);color:var(--azul)}
.slide-ava .ava-tit{font:700 1.375rem/1.25 var(--titulo);letter-spacing:-.015em}
.slide-ava .wp-block-quote p + p{margin-top:12px;color:#2A313B}
.slide-ava cite{display:block;margin-top:20px;font:normal 600 .875rem/1.4 var(--texto);color:var(--cinza)}

/* ---------- sobre ---------- */
.sobre-fotos .wp-block-image.sobre-foto{margin:0}
.wp-block-image.sobre-foto img,.wp-block-image.sobre-foto2 img{display:block;width:100%;height:100%;object-fit:cover}
.wp-block-image.sobre-foto img{object-position:50% 25%}
.praticos .pratico{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--linha)}
.pratico::before{content:"";flex:none;width:28px;height:28px;margin-top:2px;background:var(--azul-escuro);-webkit-mask:var(--ic) center / contain no-repeat;mask:var(--ic) center / contain no-repeat}
.ic-map-pin{--ic:var(--i-map-pin)}.ic-users{--ic:var(--i-users)}.ic-languages{--ic:var(--i-languages)}.ic-clock{--ic:var(--i-clock)}

/* ---------- contacto ---------- */
.contacto-lista .dt{margin:0;font:600 .75rem/1.3 var(--texto);letter-spacing:.14em;text-transform:uppercase}
.contacto-lista .dd{display:flex;flex-direction:column;align-items:flex-start;min-width:0;font-weight:600}
.contacto-lista .dd p{font-weight:600}
.contacto-lista p.tel,.contacto-lista p.tel a{font:800 clamp(1.6rem,3.2vw,2.5rem)/1.1 var(--titulo);letter-spacing:-.03em;text-decoration:none}
.contacto-lista p.custo{margin-bottom:4px;font-size:.875rem;font-weight:500}
.contacto-lista .linha{display:grid;grid-template-columns:7.5rem 1fr;gap:6px 20px;align-items:center;padding:14px 0;border-bottom:1px solid rgba(14,17,22,.28)}
.contacto-lista a{display:inline-flex;align-items:center;min-height:44px}
.contacto-lista > div > .dd > p:not(.tel):not(.custo) a{text-decoration-thickness:1.5px}
.contacto-acoes.wp-block-buttons{margin-top:clamp(22px,3vw,34px)}
.contacto .wp-block-button.is-style-linha-ext .wp-block-button__link{border-color:var(--tinta)}

/* ---------- rodapé ---------- */
.rodape .wp-block-image{margin:0}
.rodape-marca .wp-block-image img{display:block;height:56px;width:auto}
.rodape-marca p{margin:0}
.rodape .selos img,.rodape .selo-kayak img{display:block;width:100%;height:auto}
.rodape-legal{margin-top:28px}
.rodape-fotos .wp-block-list{display:grid;gap:6px;padding:4px 0 8px}
.rodape-fotos.wp-block-details{margin-top:4px}

/* ---------- formulário (HTML) ---------- */
.reservar-form{min-width:0}

/* ---------- páginas (políticas) ---------- */
.wp-block-group.pagina{padding-top:calc(var(--topo) + clamp(2rem,6vw,4.5rem));padding-bottom:clamp(48px,8vw,96px)}
.pagina{max-width:calc(52rem + 2 * var(--margem))}
.pagina-titulo,.pagina h1{margin:0 0 .4em;font:800 clamp(1.9rem,5vw,2.75rem)/1.1 var(--titulo);letter-spacing:-.03em}
.entrada-texto h2,.pagina h2{margin:2.2em 0 .6em;font:700 1.375rem/1.2 var(--titulo);letter-spacing:-.01em;color:var(--azul-escuro)}
.entrada-texto h3,.pagina h3{margin:1.5em 0 .5em;font:700 1.125rem/1.25 var(--titulo)}
.entrada-texto > p,.pagina > p{margin:0 0 .9em}
.pagina .data{margin:.6em 0 2em;color:var(--cinza);font-size:.9375rem}
.entrada-texto a,.pagina a{color:var(--azul-escuro);text-underline-offset:3px}
.politica-lista{padding-left:1.25em;list-style:disc;margin:0 0 .9em}
.politica-lista li{margin-bottom:.5em}
.pagina table{width:100%;border-collapse:collapse;margin:.5em 0 1em;font-size:.9375rem}
.pagina th,.pagina td{text-align:left;padding:.625rem .5rem;border-bottom:1px solid var(--linha);vertical-align:top}
.pagina code{font-size:.9em;background:#f3f3f3;padding:2px 6px;border-radius:4px}
.pagina .etiqueta{margin-bottom:.5rem}
/* páginas antigas (Elementor): o Elementor manda; o tema só pôs o cabeçalho e o rodapé */
.t4t-alheia .wp-block-group.pagina{max-width:none;padding:var(--topo) 0 0}
.t4t-alheia .pagina-titulo{display:none}

/* editor de blocos: as secções ocupam a largura toda, como no site */
.is-root-container > .wp-block-group{max-width:none !important;margin-inline:0 !important}
.editor-styles-wrapper .topo{position:static}

@media (max-width:899px){
  .t4t-menu{margin-left:0;order:3}
  .topo-acoes{order:2}
  .heroi-botoes .wp-block-button,.heroi-botoes .wp-block-button__link{flex:1 1 100%;width:100%}
  .indice-lista a{flex-wrap:wrap;position:relative;padding-left:calc(2.5rem + 12px);padding-right:0;column-gap:12px}
  .indice-lista a::before{position:absolute;left:0;top:clamp(22px,2.4vw,34px);width:2.5rem}
  .indice-lista a strong{flex:1 0 calc(100% - 1.5rem - 20px)}
  .indice-lista a::after{order:-1;width:20px;height:20px;margin-left:0}
  .indice-lista a{font-size:.9375rem}
  .outra-link{grid-column:1}
  .ava-nota > .ava-nota-texto{display:contents}
  .sobre-fotos{max-width:520px}
  .pratico{padding:16px 0}
}
@media (max-width:760px){
  .tour-botoes .wp-block-button,.tour-botoes .wp-block-button__link,.contacto-acoes .wp-block-button,.contacto-acoes .wp-block-button__link{flex:1 1 100%;width:100%}
  .contacto-lista .linha{grid-template-columns:1fr}
  .wp-block-button .wp-block-button__link{white-space:normal;text-align:center;line-height:1.25;padding-block:.7rem}
}
.botao-pequeno .wp-block-button__link::before{display:none}
.rodape .selo-kayak a,.rodape .marca a{display:block}
/* o cabeçalho tem backdrop-filter, que prende o «position:fixed» do menu do WordPress ao próprio cabeçalho: com o menu aberto tira-se */
html.has-modal-open .topo{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--fundo)}
.t4t-menu .is-menu-open .wp-block-navigation__responsive-container-content{--navigation-layout-justification-setting:flex-start;align-items:stretch}
.t4t-menu .is-menu-open .wp-block-navigation-item{width:100%;justify-content:flex-start}
.t4t-menu .is-menu-open .wp-block-navigation-item__content{justify-content:flex-start}

/* proporção de cada fotografia dos carrosséis (gerado) */
.ar-512-512{--ar:512 / 512;--r:1.0000}.ar-719-1080{--ar:719 / 1080;--r:0.6657}.ar-720-1080{--ar:720 / 1080;--r:0.6667}.ar-788-1400{--ar:788 / 1400;--r:0.5629}.ar-811-1080{--ar:811 / 1080;--r:0.7509}.ar-876-1400{--ar:876 / 1400;--r:0.6257}.ar-932-1400{--ar:932 / 1400;--r:0.6657}.ar-953-608{--ar:953 / 608;--r:1.5674}.ar-961-1400{--ar:961 / 1400;--r:0.6864}.ar-1026-536{--ar:1026 / 536;--r:1.9142}.ar-1049-1400{--ar:1049 / 1400;--r:0.7493}.ar-1050-1400{--ar:1050 / 1400;--r:0.7500}.ar-1051-1400{--ar:1051 / 1400;--r:0.7507}.ar-1054-1400{--ar:1054 / 1400;--r:0.7529}.ar-1055-1400{--ar:1055 / 1400;--r:0.7536}.ar-1063-1400{--ar:1063 / 1400;--r:0.7593}.ar-1069-1400{--ar:1069 / 1400;--r:0.7636}.ar-1119-1400{--ar:1119 / 1400;--r:0.7993}.ar-1149-1400{--ar:1149 / 1400;--r:0.8207}.ar-1167-1400{--ar:1167 / 1400;--r:0.8336}.ar-1168-1400{--ar:1168 / 1400;--r:0.8343}.ar-1180-1400{--ar:1180 / 1400;--r:0.8429}.ar-1189-1400{--ar:1189 / 1400;--r:0.8493}.ar-1200-1273{--ar:1200 / 1273;--r:0.9427}.ar-1202-1400{--ar:1202 / 1400;--r:0.8586}.ar-1400-1400{--ar:1400 / 1400;--r:1.0000}.ar-1424-1014{--ar:1424 / 1014;--r:1.4043}.ar-1440-1173{--ar:1440 / 1173;--r:1.2276}.ar-1440-1343{--ar:1440 / 1343;--r:1.0722}.ar-1571-1400{--ar:1571 / 1400;--r:1.1221}.ar-1600-900{--ar:1600 / 900;--r:1.7778}.ar-1600-941{--ar:1600 / 941;--r:1.7003}.ar-1600-1069{--ar:1600 / 1069;--r:1.4967}
.pos-alfama-miradouro img{object-position:50% 40%}.pos-alfama-tuk-mural img{object-position:50% 50%}.pos-chiado-brasileira img{object-position:50% 50%}.pos-chiado-bica img{object-position:50% 50%}.pos-cascais-baia img{object-position:50% 50%}.pos-sintra-cafe img{object-position:50% 45%}.pos-belem-pasteis img{object-position:50% 45%}.pos-alfama-mural img{object-position:50% 40%}.pos-alfama-panteao img{object-position:50% 40%}.pos-chiado-santa-justa img{object-position:50% 50%}
.paragens.n-4{--n:4}.paragens.n-5{--n:5}.paragens.n-6{--n:6}
