@font-face{font-family:"Fraunces";src:url(fonts/fraunces.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url(fonts/fraunces-italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Manrope";src:url(fonts/manrope.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}

:root{
  --creme:#f6f1e9;--creme-2:#ece4d7;--branco:#fffdf9;
  --tinta:#1f2421;--tinta-2:#5a605b;--linha:#ddd4c6;
  --mar:#1e4d5a;--mar-2:#dbe7e9;--mar-claro:#b9d6dc;
  --oliva:#5f6b43;--areia:#d9b98f;
  --s:"Fraunces",Georgia,serif;--f:"Manrope",system-ui,sans-serif;
  --lado:clamp(1.25rem,5vw,5rem);--wrap:1360px;--tap:44px;--ease:cubic-bezier(.16,1,.3,1);
  --sombra:0 30px 60px -32px rgb(31 36 33 / .45),0 0 0 1px var(--creme-2);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}
body{background:var(--creme);color:var(--tinta);font:400 1.0625rem/1.6 var(--f);-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
ul{list-style:none}
::selection{background:var(--mar);color:#fff}
:focus-visible{outline:2.5px solid var(--mar);outline-offset:3px;border-radius:6px}
h1,h2,h3{font-family:var(--s);font-weight:300;letter-spacing:-.02em;text-wrap:balance}
h1 em,h2 em,h3 em{font-style:italic;font-weight:400;color:var(--mar)}
.num{font-variant-numeric:tabular-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.saltar{position:absolute;left:-999px;top:0;z-index:100;background:var(--tinta);color:#fff;padding:.7rem 1rem;border-radius:999px}
.saltar:focus{left:1rem;top:1rem}
.maquete{background:var(--tinta);color:#fff;font:600 .8125rem/1 var(--f);letter-spacing:.06em;text-align:center;padding:.55rem var(--lado)}

/* ---------- cabeçalho ---------- */
.topo{position:sticky;top:0;z-index:40;background:rgb(246 241 233 / .94);backdrop-filter:blur(10px)}
.topo-in{max-width:var(--wrap);margin:0 auto;padding:1.1rem var(--lado);display:flex;align-items:center;gap:2rem}
.marca{display:flex;align-items:center;gap:.7rem;margin-right:auto;line-height:1}
.marca-sinal{display:flex;width:2.1rem;height:2.1rem;border-radius:50% 50% 8px 8px;overflow:hidden;flex:none}
.marca-sinal i{flex:1}
.marca-sinal i:nth-child(1){background:var(--oliva)}
.marca-sinal i:nth-child(2){background:var(--mar)}
.marca-sinal i:nth-child(3){background:var(--areia)}
.marca-txt{display:flex;flex-direction:column}
.marca b{font:italic 400 1.75rem/1 var(--s);letter-spacing:-.01em;white-space:nowrap}
.marca small{margin-top:.35rem;font:700 .6875rem/1 var(--f);letter-spacing:.22em;text-transform:uppercase;color:var(--tinta-2);white-space:nowrap}
.nav{display:flex;gap:1.75rem;font:500 .9375rem/1 var(--f)}
.nav a{display:inline-flex;align-items:center;min-height:var(--tap);background:linear-gradient(currentColor,currentColor) left 75%/0 1.5px no-repeat;transition:background-size .4s var(--ease)}
.nav a:hover,.nav a[aria-current="page"]{background-size:100% 1.5px}
.langs{display:inline-flex;gap:2px;padding:3px;border-radius:999px;box-shadow:0 0 0 1.5px var(--linha)}
.langs a{min-width:2.6rem;min-height:2.1rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font:700 .8125rem/1 var(--f)}
.langs a[aria-current="true"]{background:var(--tinta);color:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.1rem;padding:0 1.5rem;border-radius:999px;border:0;font:600 .9375rem/1 var(--f);background:var(--mar);color:#fff;cursor:pointer;transition:background .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease)}
.btn:hover{background:#163c47}
.btn:active{transform:scale(.97)}
.btn svg{width:1.1em;height:1.1em;flex:none}
.btn--linha{background:transparent;color:var(--tinta);box-shadow:0 0 0 1.5px var(--tinta)}
.btn--linha:hover{background:var(--tinta);color:#fff}
.btn--claro{background:var(--branco);color:var(--mar)}
.btn--claro:hover{background:#fff}
.menu-btn{display:none;width:var(--tap);height:var(--tap);border-radius:50%;border:0;background:transparent;box-shadow:0 0 0 1.5px var(--tinta);cursor:pointer;place-items:center}
.menu-btn svg{width:1.1rem;height:1.1rem}
.menu{position:fixed;inset:0;z-index:70;background:var(--creme);padding:1.1rem var(--lado) 2rem;display:flex;flex-direction:column}
.menu[hidden]{display:none}
.menu-topo{display:flex;justify-content:space-between;align-items:center}
.menu nav{display:flex;flex-direction:column;margin-top:2.5rem}
.menu nav a{font:300 2.4rem/1.2 var(--s);padding:.55rem 0;border-bottom:1px solid var(--linha)}
.menu .langs{align-self:flex-start;margin-top:2rem}

/* ---------- textos de secção ---------- */
.selo{display:inline-flex;align-items:center;gap:.7rem;font:700 .75rem/1 var(--f);letter-spacing:.2em;text-transform:uppercase;color:var(--mar)}
.selo::before{content:"";width:2.1rem;height:1.5px;background:currentColor}
.sec{max-width:var(--wrap);margin:0 auto;padding:clamp(4.5rem,3rem + 5vw,7.5rem) var(--lado)}
.sec-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.25rem 2.5rem;margin-bottom:clamp(2rem,1.5rem + 2vw,3.25rem)}
.sec h2{font-size:clamp(2.3rem,1.4rem + 3.2vw,3.9rem);line-height:1.02;max-width:13em}
.sec-top p{max-width:28em;color:var(--tinta-2)}

/* ---------- abertura ---------- */
.heroi{max-width:var(--wrap);margin:0 auto;padding:clamp(1rem,2vw,2.25rem) var(--lado) 0;display:grid;grid-template-columns:1.02fr 1fr;gap:clamp(2rem,4vw,4.5rem);align-items:start}
.heroi-txt{padding-top:clamp(.5rem,3vw,2.75rem)}
.heroi h1{margin-top:1.4rem;font-size:clamp(2.9rem,1.2rem + 5vw,5.6rem);line-height:.98;font-variation-settings:"opsz" 144}
.heroi-txt>p{margin-top:1.5rem;max-width:31em;font-size:clamp(1.05rem,1rem + .3vw,1.2rem);color:var(--tinta-2)}
.fotos{position:relative;min-height:clamp(26rem,48vw,42rem)}
.f1{position:absolute;right:0;top:0;width:86%;height:calc(100% - 3rem);border-radius:999px 999px 18px 18px;overflow:hidden;background:var(--creme-2)}
.f2{position:absolute;left:0;bottom:0;width:40%;aspect-ratio:3/4;max-height:58%;border-radius:999px 999px 14px 14px;overflow:hidden;box-shadow:0 0 0 10px var(--creme);background:var(--creme-2)}
.etq{position:absolute;right:1.25rem;top:46%;background:var(--branco);border-radius:16px;padding:.85rem 1.1rem;font:500 .875rem/1.35 var(--f);box-shadow:0 18px 40px -20px rgb(31 36 33 / .5)}
.etq b{display:block;font:italic 500 1.2rem/1.1 var(--s);color:var(--mar)}

/* pesquisa de datas */
.reserva{margin-top:clamp(1.75rem,3vw,2.75rem);background:var(--branco);border-radius:20px;padding:.75rem;display:grid;grid-template-columns:1.1fr 1.2fr 1.2fr .6fr auto;align-items:center;box-shadow:var(--sombra)}
.reserva .campo{padding:.45rem .9rem;border-right:1px solid var(--creme-2);min-width:0}
.reserva .campo:nth-child(4){border-right:0}
.reserva label{display:block;font:700 .6875rem/1 var(--f);letter-spacing:.16em;text-transform:uppercase;color:var(--tinta-2)}
.reserva input,.reserva select{width:100%;margin-top:.35rem;border:0;background:transparent;padding:.15rem 0;min-height:2rem;font:600 .9375rem/1.2 var(--f);color:var(--tinta);font-variant-numeric:tabular-nums;accent-color:var(--mar)}
.reserva input:focus,.reserva select:focus{outline:2px solid var(--mar);outline-offset:2px;border-radius:6px}
.reserva .btn{min-height:3.5rem;border-radius:14px}
.nota{margin:1rem 0 0 .9rem;font:500 .875rem/1.4 var(--f);color:var(--tinta-2)}
.nota b{color:var(--mar)}
.nota a{text-decoration:underline;text-underline-offset:.2em}

/* ---------- cartões em arco (casas e quartos) ---------- */
.arcos{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.25rem,2.4vw,2rem)}
.arco{display:flex;flex-direction:column}
.arco .img{position:relative;aspect-ratio:3/3.9;border-radius:999px 999px 16px 16px;overflow:hidden;background:var(--creme-2)}
.arco .img img{transition:transform 1.4s var(--ease)}
.arco:hover .img img{transform:scale(1.05)}
.arco h3{margin-top:1.35rem;font-size:clamp(1.6rem,1.2rem + 1vw,2.05rem);line-height:1.1}
.arco ul{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;margin-top:.7rem;font:500 .875rem/1.3 var(--f);color:var(--tinta-2)}
.arco p{margin-top:.75rem;color:var(--tinta-2);font-size:.9375rem}
.arco .pe{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding-top:1.1rem}
.arco .pe-in{display:flex;justify-content:space-between;align-items:center;gap:1rem;width:100%;margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--linha)}
.arco .pe b{font:600 1rem/1 var(--f)}
.arco .pe b small{font-weight:400;color:var(--tinta-2)}
.arco .pe-in>a{display:inline-flex;align-items:center;gap:.4rem;min-height:var(--tap);font:700 .875rem/1 var(--f);color:var(--mar);white-space:nowrap}
.arco .pe-in>a svg{width:1rem;height:1rem;flex:none;transition:transform .5s var(--ease)}
.arco:hover .pe-in>a svg{transform:translateX(4px)}
.arco .pe-in .nota-casa{font-weight:600;color:var(--tinta-2)}
.nota-casa{display:inline-flex;align-items:center;gap:.4rem;font:700 .8125rem/1 var(--f)}
.nota-casa b{background:var(--mar);color:#fff;padding:.35rem .55rem;border-radius:999px}
.arco[data-casa="tavira"] .nota-casa b{background:var(--oliva)}
.arco--breve .img{background:var(--mar);display:grid;place-items:center;text-align:center;color:#fff;padding:2rem}
.arco--breve .img p{margin:0;color:#fff;font:300 clamp(2.2rem,1.4rem + 2vw,3.2rem)/1 var(--s)}
.arco--breve .img p em{display:block;font-style:italic;font-weight:400;color:var(--mar-claro)}
.arco--breve .img span{display:block;margin-top:1rem;font:700 .75rem/1 var(--f);letter-spacing:.2em;text-transform:uppercase;color:var(--mar-claro)}

/* ---------- secção escura ---------- */
.escura{background:var(--mar);color:#eef3f2}
.escura-in{max-width:var(--wrap);margin:0 auto;padding:clamp(4.5rem,3rem + 5vw,7.5rem) var(--lado);display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,5vw,5.5rem);align-items:center}
.escura .img{aspect-ratio:4/4.6;border-radius:999px 999px 18px 18px;overflow:hidden}
.escura h2{color:#fff;font-size:clamp(2.3rem,1.4rem + 3.2vw,3.9rem);line-height:1.02}
.escura h2 em{color:var(--mar-claro)}
.escura p{margin-top:1.4rem;max-width:30em;color:#d3e2e2;font-size:1.0625rem}
.factos{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:2.5rem;padding-top:1.75rem;border-top:1px solid rgb(255 255 255 / .22)}
.factos b{display:block;font:300 clamp(2.2rem,1.6rem + 1.5vw,3rem)/1 var(--s);color:#fff}
.factos span{display:block;margin-top:.5rem;font:500 .875rem/1.35 var(--f);color:#bcd2d3}

/* ---------- vantagens ---------- */
.vant{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.vant div{background:var(--branco);border-radius:20px;padding:clamp(1.5rem,2.5vw,2rem)}
.vant b{display:block;font:400 1.6rem/1.15 var(--s)}
.vant p{margin-top:.65rem;color:var(--tinta-2)}
.claro{background:var(--creme-2)}

/* ---------- onde ficamos (mapa) ---------- */
.onde-foto{position:relative;margin:0 auto;max-width:var(--wrap);padding:0 var(--lado)}
.onde-foto .img{aspect-ratio:21/8;border-radius:24px;overflow:hidden;background:var(--mar-2)}
.onde-foto figcaption{margin-top:.6rem;font-size:.8125rem;color:var(--tinta-2)}
.onde-foto figcaption a{text-decoration:underline;text-underline-offset:.2em}
.onde-grelha{display:grid;grid-template-columns:1fr 1.35fr;gap:clamp(1.5rem,3vw,3rem);align-items:stretch;margin-top:clamp(1.5rem,3vw,2.5rem)}
.moradas{display:grid;gap:1rem;align-content:start}
.morada{background:var(--branco);border-radius:20px;padding:1.4rem 1.5rem}
.morada h3{display:flex;align-items:center;gap:.6rem;font-size:1.55rem;line-height:1.1}
.morada h3::before{content:"";width:.75rem;height:.75rem;border-radius:50%;background:var(--mar);flex:none}
.morada[data-casa="tavira"] h3::before{background:var(--oliva)}
.morada p{margin-top:.5rem;color:var(--tinta-2);font-size:.9375rem}
.morada ul{margin-top:.9rem;display:grid;gap:.35rem;font-size:.9375rem}
.morada li{display:flex;justify-content:space-between;gap:1rem;padding-top:.35rem;border-top:1px solid var(--creme-2)}
.morada li b{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.morada .btn{margin-top:1.1rem;min-height:2.75rem;font-size:.875rem}
.mapa{position:relative;min-height:24rem;border-radius:24px;overflow:hidden;background:var(--mar-2);display:grid;place-items:center;text-align:center;padding:2rem}
.mapa iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.mapa p{max-width:24em;color:var(--tinta-2);font-size:.9375rem;margin-top:.75rem}
.mapa b{font:400 1.6rem/1.15 var(--s);color:var(--mar)}

/* ---------- página da casa ---------- */
.voltar{display:inline-flex;align-items:center;gap:.45rem;min-height:var(--tap);font:600 .9375rem/1 var(--f);color:var(--tinta-2)}
.voltar svg{width:1rem;height:1rem;transform:scaleX(-1)}
.voltar:hover{color:var(--tinta)}
.casa-nota{display:flex;align-items:center;gap:1rem;margin-top:1.75rem;padding:1rem 0;border-top:1px solid var(--linha);border-bottom:1px solid var(--linha);max-width:32rem}
.casa-nota b{font:300 3rem/1 var(--s);color:var(--mar)}
.casa-nota span{font:500 .875rem/1.4 var(--f);color:var(--tinta-2)}
.acoes{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.75rem}
.chips li{font:500 .875rem/1 var(--f);padding:.6rem .95rem;border-radius:999px;background:var(--branco)}
.galeria{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.6rem,1.2vw,1rem)}
.galeria>button{appearance:none;border:0;padding:0;cursor:zoom-in;overflow:hidden;border-radius:16px;aspect-ratio:3/4;background:var(--creme-2)}
.galeria>button:nth-child(1){grid-column:span 2;grid-row:span 2;aspect-ratio:auto;border-radius:999px 999px 16px 16px}
.galeria>button img{transition:transform 1.2s var(--ease)}
.galeria>button:hover img{transform:scale(1.05)}
.galeria>button:nth-child(n+8){display:none}
.ver-todas{grid-column:1/-1;display:flex;justify-content:center;margin-top:.5rem}
.frases{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(1.5rem,4vw,4rem);align-items:end}
.frases blockquote p{font:300 clamp(1.8rem,1.2rem + 1.8vw,2.8rem)/1.2 var(--s);letter-spacing:-.015em}
.frases blockquote p em{color:var(--mar)}
.frases .peq p{font:400 1.25rem/1.4 var(--s)}
.frases cite{display:block;margin-top:1rem;font:500 .875rem/1 var(--f);font-style:normal;color:var(--tinta-2)}

/* ---------- fecho ---------- */
.fecho{background:var(--tinta);color:#efeae2;text-align:center}
.fecho-in{max-width:var(--wrap);margin:0 auto;padding:clamp(4.5rem,3rem + 5vw,7.5rem) var(--lado)}
.fecho h2{margin:0 auto;color:#fff;font-size:clamp(2.5rem,1.4rem + 3.8vw,4.2rem);line-height:1}
.fecho h2 em{color:var(--mar-claro)}
.fecho p{margin:1.4rem auto 0;max-width:34em;color:#cfd2cd}
.fecho .acoes{justify-content:center}
.fecho .btn--linha{color:#fff;box-shadow:0 0 0 1.5px #fff}
.fecho .btn--linha:hover{background:#fff;color:var(--tinta)}
.regras{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.75rem;margin-top:2.5rem;font-size:.9375rem;color:#cfd2cd}
.regras b{color:#fff;font-weight:700}
.rodape{background:var(--tinta);color:#a9aea9;border-top:1px solid rgb(255 255 255 / .1)}
.rodape-in{max-width:var(--wrap);margin:0 auto;padding:2.5rem var(--lado);display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:2rem;font:500 .875rem/1.6 var(--f)}
.rodape h2{font:700 .75rem/1 var(--f);letter-spacing:.16em;text-transform:uppercase;color:#fff;margin-bottom:.8rem}
.rodape .marca b{color:#fff}
.rodape .marca small{color:#a9aea9}
.rodape a{color:#fff;display:inline-flex;align-items:center;min-height:2.25rem;text-decoration:underline;text-underline-offset:.2em}
.rodape-fim{max-width:var(--wrap);margin:0 auto;padding:1.25rem var(--lado) 2rem;border-top:1px solid rgb(255 255 255 / .1);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;font-size:.8125rem;color:#a9aea9}

/* ---------- álbum ---------- */
.album{position:fixed;inset:0;z-index:80;background:rgb(26 30 28 / .97);color:#fff;display:flex;flex-direction:column}
.album[hidden]{display:none}
.album-topo{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem var(--lado);border-bottom:1px solid #353b38}
.album-topo h2{font:italic 400 1.4rem/1 var(--s)}
.album-fechar{width:var(--tap);height:var(--tap);border-radius:50%;border:1.5px solid #fff;background:none;color:#fff;cursor:pointer;display:grid;place-items:center}
.album-fechar svg{width:1.1rem;height:1.1rem}
.album-lista{overflow-y:auto;padding:1.5rem var(--lado) 3rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,21rem),1fr));gap:1rem;align-items:start}
.album-lista figure{margin:0}
.album-lista img{height:auto;border-radius:14px;background:#2b302d}
.album-lista figcaption{margin-top:.4rem;font-size:.875rem;color:#c9cdc9}
.album-mais{grid-column:1/-1;border:1.5px dashed #5b625e;border-radius:14px;padding:1.5rem;text-align:center;color:#c9cdc9}

/* ---------- página de reserva (mesma estrutura, cores e letras novas) ---------- */
.pagina-reserva{max-width:var(--wrap);margin:0 auto;padding:clamp(2rem,1rem + 3vw,4rem) var(--lado) clamp(4rem,3rem + 4vw,6.5rem)}
.pagina-reserva h1{font-size:clamp(2.6rem,1.4rem + 3.6vw,4.4rem);line-height:1}
.reserva-sub{margin-top:.9rem;color:var(--tinta-2);max-width:56ch}
.reserva-grelha{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:clamp(1.5rem,1rem + 3vw,4rem);margin-top:2.5rem;align-items:start}
.resumo{position:sticky;top:6.5rem}
.resumo-cartao{display:flex;flex-direction:column;gap:1rem;background:var(--branco);border-radius:22px;padding:.75rem .75rem 1.5rem;box-shadow:var(--sombra)}
.resumo-foto{aspect-ratio:4/4.2;border-radius:999px 999px 14px 14px;overflow:hidden;background:var(--creme-2)}
.resumo-cartao>h2,.resumo-cartao>dl{margin-inline:.75rem}
.resumo-cartao>h2{font-size:1.9rem!important;line-height:1.1}
.resumo dl{display:grid;grid-template-columns:auto 1fr;gap:.6rem 1rem;font-size:.9375rem}
.resumo dt{color:var(--tinta-2)}
.resumo dd{margin:0;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.passos{display:grid;gap:1rem}
.passo{background:var(--branco);border-radius:22px;padding:clamp(1.25rem,1rem + 1.5vw,2rem)}
fieldset.passo{border:0;margin:0;min-width:0}
fieldset.passo>legend{float:left;width:100%}
fieldset.passo>legend+*{clear:both}
.passo legend,.passo-tit{display:flex;align-items:baseline;gap:.7rem;margin-bottom:1.1rem;padding:0;font:300 1.75rem/1.1 var(--s);letter-spacing:-.01em}
.passo legend em,.passo-tit em{font:700 .75rem/1 var(--f);font-style:normal;letter-spacing:.14em;color:var(--mar)}
.campos{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.campos .largo{grid-column:1/-1}
.passo .campo{display:flex;flex-direction:column;gap:.4rem}
.passo .campo label{font:700 .75rem/1 var(--f);letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-2)}
.passo .campo input,.passo .campo select,.passo .campo textarea{width:100%;min-height:3.1rem;padding:.7rem .9rem;border:1.5px solid var(--linha);border-radius:12px;background:var(--creme);font-size:1rem;accent-color:var(--mar)}
.passo .campo textarea{min-height:6rem;resize:vertical}
.passo .campo input:focus,.passo .campo select:focus,.passo .campo textarea:focus{border-color:var(--mar);outline:2px solid var(--mar);outline-offset:0}
.passo .campo input[aria-invalid="true"]{border-color:#b3261e}
.erro{color:#b3261e;font-size:.875rem;min-height:1.2em;margin-top:.5rem}
.escolha-quarto{display:grid;gap:.6rem}
.escolha-quarto label{display:grid;grid-template-columns:auto 1fr auto;gap:.2rem .9rem;align-items:center;padding:.95rem 1.1rem;border:1.5px solid var(--linha);border-radius:14px;cursor:pointer;background:var(--creme);transition:border-color .3s var(--ease),background .3s var(--ease)}
.escolha-quarto label:has(input:checked){border-color:var(--mar);background:var(--mar-2)}
.escolha-quarto input{width:1.2rem;height:1.2rem;accent-color:var(--mar)}
.escolha-quarto b{font:400 1.2rem/1.2 var(--s)}
.escolha-quarto span{color:var(--tinta-2);font-size:.875rem}
.pagar{display:grid;gap:1rem}
.total{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1rem 0;border-top:1px solid var(--linha);border-bottom:1px solid var(--linha)}
.total b{font:300 1.75rem/1 var(--s)}
.total span{font-size:.875rem;color:var(--tinta-2)}
.btn-azul{background:var(--mar);color:#fff}
.btn-paypal{width:100%;min-height:3.5rem;font-size:1.05rem}
.ou{display:flex;align-items:center;gap:1rem;color:var(--tinta-2);font-size:.875rem}
.ou::before,.ou::after{content:"";height:1px;background:var(--linha);flex:1}
.pagar .btn:not(.btn-azul){background:transparent;color:var(--tinta);box-shadow:0 0 0 1.5px var(--tinta)}
.pagar .btn:not(.btn-azul):hover{background:var(--tinta);color:#fff}
.aviso{font-size:.875rem;color:var(--tinta-2);background:var(--creme);padding:.95rem 1.1rem;border-radius:14px}
.aviso b{color:var(--tinta)}
.estado{font-size:.875rem;padding:.95rem 1.1rem;background:var(--mar-2);border-radius:14px}
.estado[hidden]{display:none}

.heroi-busca{margin-top:clamp(1.75rem,3vw,2.5rem)}
.heroi-busca .reserva{margin-top:0;grid-template-columns:1fr 1fr;padding:.6rem;border-radius:24px}
.heroi-busca .reserva .campo{padding:.7rem 1.1rem;border-right:0;border-radius:16px;position:relative}
.heroi-busca .reserva .campo:nth-child(odd)::after{content:"";position:absolute;right:0;top:20%;bottom:20%;width:1px;background:var(--creme-2)}
.heroi-busca .reserva .campo:nth-child(-n+2){border-bottom:1px solid var(--creme-2);border-radius:16px 16px 0 0}
.heroi-busca .reserva .btn{grid-column:1/-1;margin-top:.5rem;min-height:3.6rem;border-radius:16px;font-size:1rem}
.heroi-busca .nota{margin:1rem 0 0 1.1rem}
/* ---------- telemóvel ---------- */
@media (max-width:1000px){
  .heroi{grid-template-columns:1fr}
  .heroi-txt{padding-top:0}
  .fotos{min-height:0;height:clamp(22rem,70vw,34rem);order:-1}
  .f1{width:100%;height:100%;border-radius:999px 999px 16px 16px}
  .f2{display:none}
  .reserva{grid-template-columns:1fr 1fr;padding:.5rem}
  .reserva .campo:nth-child(2){border-right:0}
  .reserva .campo-casa{grid-column:1/-1;border-right:0;border-bottom:1px solid var(--creme-2)}
  .reserva .btn{grid-column:1/-1;margin-top:.35rem}
  .escura-in,.onde-grelha,.frases{grid-template-columns:1fr}
  .rodape-in{grid-template-columns:1fr 1fr}
  .reserva-grelha{grid-template-columns:1fr}
  .resumo{position:static}
}
@media (max-width:820px){
  .nav,.topo .langs{display:none}
  .topo .btn{min-height:2.75rem;padding:0 1.1rem;font-size:.875rem}
  .menu-btn{display:grid}
  .topo-in{gap:.75rem;padding-block:.8rem}
  .marca b{font-size:1.5rem}
  .marca small{font-size:.625rem;letter-spacing:.16em}
  .arcos{grid-template-columns:1fr}
  .arcos.quartos{grid-template-columns:1fr 1fr}
  .arcos.quartos .arco h3{font-size:1.45rem}
  .vant{grid-template-columns:1fr}
  .galeria{grid-template-columns:1fr 1fr}
  .galeria>button:nth-child(n+6){display:none}
  .onde-foto .img{aspect-ratio:4/3}
  .factos{grid-template-columns:1fr 1fr 1fr;gap:.75rem}
  .campos{grid-template-columns:1fr}
  .pagina-reserva [data-pagina] .topo .langs{display:inline-flex}
}
@media (max-width:560px){
  .arcos.quartos{grid-template-columns:1fr}
  .rodape-in{grid-template-columns:1fr}
  .reserva .campo{padding:.45rem .6rem}
  .acoes .btn{flex:1 1 100%}
  .etq{right:.75rem;top:auto;bottom:1rem}
}
[data-pagina="reserva"] .topo .langs{display:inline-flex}
[data-pagina="reserva"] .topo .btn{display:none}

/* ---------- movimento: uma entrada calma ---------- */
@media (prefers-reduced-motion:no-preference){
  .js .heroi-txt>*{animation:sobe .9s var(--ease) backwards}
  .js .heroi-txt>*:nth-child(2){animation-delay:.08s}
  .js .heroi-txt>*:nth-child(3){animation-delay:.16s}
  .js .heroi-txt>*:nth-child(4){animation-delay:.24s}
  .js .heroi-txt>*:nth-child(5){animation-delay:.32s}
  .js .f1{animation:arco 1.4s .1s var(--ease) backwards}
  .js .f2,.js .etq{animation:sobe 1s .5s var(--ease) backwards}
  .js .revela{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1.1s var(--ease)}
  .js .revela.visto{opacity:1;transform:none}
  @keyframes sobe{from{opacity:0;transform:translateY(22px)}}
  @keyframes arco{from{clip-path:inset(100% 0 0 0 round 999px 999px 18px 18px)}to{clip-path:inset(0 0 0 0 round 999px 999px 18px 18px)}}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* ---------- onde ficamos: pequeno, no fundo ---------- */
.onde-mini{border-top:1px solid var(--linha)}
.onde-mini-in{max-width:var(--wrap);margin:0 auto;padding:clamp(2.25rem,2rem + 1.5vw,3.25rem) var(--lado);display:grid;grid-template-columns:minmax(0,22rem) minmax(0,1fr);gap:clamp(1.25rem,3vw,3rem);align-items:center}
.onde-mini-foto{margin:0}
.onde-mini-foto img{aspect-ratio:16/10;height:auto;border-radius:16px}
.onde-mini-foto figcaption{margin-top:.4rem;font-size:.75rem;color:var(--tinta-2)}
.onde-mini h2{font-size:clamp(1.7rem,1.4rem + 1vw,2.3rem);line-height:1.05}
.onde-mini p{margin-top:.4rem;color:var(--tinta-2);font-size:.9375rem}
.onde-mini ul{margin-top:1rem;display:grid;gap:.6rem}
.onde-mini li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .9rem;font-size:.9375rem;padding-top:.6rem;border-top:1px solid var(--creme-2)}
.onde-mini li span{color:var(--tinta-2)}
.onde-mini li a{margin-left:auto;display:inline-flex;align-items:center;min-height:var(--tap);font-weight:700;color:var(--mar);text-decoration:underline;text-underline-offset:.2em}
@media (max-width:820px){.onde-mini-in{grid-template-columns:1fr}.onde-mini li a{margin-left:0}}

@media (max-width:420px){.topo .btn span,.topo .btn{font-size:.8125rem}.marca small{display:none}}

/* barra das datas: elegante */
.heroi-busca .reserva label{font-size:.6875rem;letter-spacing:.18em}
.heroi-busca .reserva input,.heroi-busca .reserva select{appearance:none;-webkit-appearance:none;margin-top:.4rem;font:400 1.2rem/1.2 var(--s);color:var(--tinta);cursor:pointer;min-height:2.1rem}
.heroi-busca .reserva input::placeholder{color:var(--tinta-2);font-style:italic;opacity:1}
.heroi-busca .reserva select{padding-right:1.4rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%231e4d5a' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") right center/1rem no-repeat}
.heroi-busca .reserva input{position:relative}
.heroi-busca .reserva input::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:auto;height:auto;opacity:0;cursor:pointer}
.heroi-busca .reserva .campo{transition:background .3s var(--ease)}
.heroi-busca .reserva .campo:hover{background:var(--creme)}
.heroi-busca .reserva .campo-casa{grid-column:auto}
@media (max-width:560px){.heroi-busca .reserva select,.heroi-busca .reserva input{font-size:1rem}.heroi-busca .reserva .campo{padding:.65rem .8rem}}
.heroi-busca .reserva input,.heroi-busca .reserva select{min-height:2.75rem}

/* ---------- página inicial no telemóvel: mais compacta ---------- */
@media (max-width:820px){
  .inicio .fotos{height:clamp(15rem,62vw,20rem)}
  .inicio .f1{border-radius:180px 180px 16px 16px}
  .inicio .etq{padding:.6rem .85rem;font-size:.8125rem}
  .inicio .etq b{font-size:1rem}
  .inicio .heroi h1{font-size:2.6rem;margin-top:1rem}
  .inicio .heroi-txt>p{margin-top:1rem;font-size:1rem}
  .inicio .heroi-busca .reserva .campo-casa{grid-column:1/-1;border-bottom:1px solid var(--creme-2);border-radius:16px 16px 0 0}
  .inicio .heroi-busca .reserva .campo-casa::after{display:none}
  .inicio .heroi-busca .reserva .campo:nth-child(2){order:3;grid-column:1/-1;border-bottom:0;border-radius:0}
  .inicio .heroi-busca .reserva .campo:nth-child(2)::after{display:none}
  .inicio .heroi-busca .reserva .campo:nth-child(3){order:1;border-bottom:1px solid var(--creme-2);border-radius:0}
  .inicio .heroi-busca .reserva .campo:nth-child(3)::after{content:"";position:absolute;right:0;top:20%;bottom:20%;width:1px;background:var(--creme-2)}
  .inicio .heroi-busca .reserva .campo:nth-child(4){order:2;border-bottom:1px solid var(--creme-2);border-radius:0}
  .inicio .heroi-busca .reserva .campo:nth-child(4)::after{display:none}
  .inicio .heroi-busca .reserva .btn{order:4}
  .inicio .sec{padding-block:3.25rem}
  .inicio .sec h2{font-size:2.1rem}
  .inicio .arcos{grid-template-columns:1fr 1fr;gap:1.25rem .75rem}
  .inicio .arco .img{aspect-ratio:3/4;border-radius:120px 120px 12px 12px}
  .inicio .arco h3{margin-top:.8rem;font-size:1.25rem}
  .inicio .arco ul{gap:.15rem .6rem;margin-top:.4rem;font-size:.8125rem}
  .inicio .arco ul li:nth-child(n+3){display:none}
  .inicio .arco .pe-in{flex-wrap:wrap;gap:.25rem .75rem;margin-top:.6rem;padding-top:.6rem}
  .inicio .arco .pe-in>a{min-height:2.75rem}
  .inicio .arco--breve{grid-column:1/-1;display:grid;grid-template-columns:7.5rem 1fr;gap:0 1rem;align-items:center}
  .inicio .arco--breve .img{aspect-ratio:1;border-radius:60px 60px 12px 12px;padding:.75rem;grid-row:1/4}
  .inicio .arco--breve .img p{font-size:1.4rem}
  .inicio .arco--breve .img span{margin-top:.4rem;font-size:.625rem;letter-spacing:.12em}
  .inicio .arco--breve h3{margin-top:0}
  .inicio .arco--breve p{margin-top:.25rem;font-size:.875rem}
  .inicio .arco--breve .pe-in{border-top:0;padding-top:0;margin-top:.25rem}
  .inicio .escura-in{padding-block:3.25rem;gap:1.75rem}
  .inicio .escura .img{aspect-ratio:16/11;border-radius:140px 140px 14px 14px}
  .inicio .escura h2{font-size:2.1rem}
  .inicio .factos{margin-top:1.5rem;padding-top:1.25rem}
  .inicio .factos b{font-size:1.7rem}
  .inicio .vant{gap:0}
  .inicio .vant div{background:transparent;border-radius:0;padding:1rem 0;border-top:1px solid var(--linha)}
  .inicio .vant b{font-size:1.3rem}
  .inicio .vant p{margin-top:.3rem;font-size:.9375rem}
  .inicio .onde-mini-foto img{aspect-ratio:21/9}
  .inicio .fecho-in{padding-block:3.5rem}
  .inicio .fecho h2{font-size:2.2rem}
}

/* telemóvel: as datas aparecem a seguir à 3.ª casa */
.busca-tel{display:none}
@media (max-width:820px){
  .inicio .busca-pc{display:none}
  .inicio .busca-tel{display:block;margin-top:2rem}
}

/* telemóvel: PT/EN sempre visível no topo */
@media (max-width:820px){
  .topo .langs{display:inline-flex;padding:2px}
  .topo .langs a{min-width:2.4rem;min-height:2.4rem;font-size:.75rem}
  .so-pc{display:none}
  .topo .btn{padding:0 1rem}
  .topo-in{gap:.5rem}
}
@media (max-width:380px){.marca b{font-size:1.3rem}.marca-sinal{width:1.8rem;height:1.8rem}}
/* botão do menu: sem fundo do Safari e sempre redondo */
.menu-btn{-webkit-appearance:none;appearance:none;background:none!important;padding:0;flex:none;color:var(--tinta);-webkit-tap-highlight-color:transparent}
.menu-btn svg{stroke:currentColor}
@media (max-width:420px){.topo .langs a{min-width:2.1rem;min-height:2.3rem}.topo-in{gap:.4rem}.marca{gap:.5rem}}
