/* Hotel Costa - Londrina/PR
   Padrao: site de hotel real. Sem pill nav, sem bento, sem serif italica gigante.
   Botoes = retangulo borda 1px + versalete espacada. Motion = fade-up discreto. */

:root{
  --ink:#14171c;
  --ink-soft:#3d444e;
  /* cinza e azul escurecidos para passar 4.5:1 nos dois fundos de papel.
     o azul claro da placa (#4cc0eb) fica so sobre fundo escuro. */
  --ink-faint:#5d656f;
  --paper:#f5f3ef;
  --paper-2:#ebe7e0;
  --line:#d9d4cb;
  --blue:#146a8d;
  --blue-deep:#0f3f55;
  --wrap:1180px;
  --gut:clamp(20px,5vw,64px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}

/* acessibilidade: foco visivel e coerente */
a:focus-visible,button:focus-visible,summary:focus-visible{
  outline:2px solid var(--blue);outline-offset:3px;border-radius:1px;
}
.skip{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--ink);color:#fff;padding:12px 20px;font-size:13px;
}
.skip:focus{left:0}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.wrap-narrow{max-width:760px;margin:0 auto;padding:0 var(--gut)}

/* ---------- tipografia de secao ---------- */
.label{
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--ink-faint);font-weight:600;margin:0 0 14px;
}
.title{
  font-size:clamp(24px,3.2vw,36px);
  letter-spacing:.01em;line-height:1.2;font-weight:600;margin:0 0 18px;
}
.title-c{text-align:center}
.lede{font-size:clamp(17px,1.9vw,19px);color:var(--ink-soft);margin:0 0 28px;max-width:62ch}

/* ---------- botoes ---------- */
.btn{
  display:inline-block;padding:15px 30px;
  border:1px solid currentColor;background:transparent;
  font-family:inherit;
  font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;
  text-decoration:none;cursor:pointer;
  transition:background .25s ease,color .25s ease,border-color .25s ease;
}
.btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn-light{color:#fff}
.btn-light:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn-fill{background:var(--blue);border-color:var(--blue);color:#fff}
.btn-fill:hover{background:var(--blue-deep);border-color:var(--blue-deep);color:#fff}

/* ---------- topo ---------- */
.nav{
  position:absolute;top:0;left:0;right:0;z-index:40;
  display:flex;align-items:center;justify-content:space-between;
  padding:26px var(--gut);
}
.nav.solid{position:sticky;background:var(--paper);border-bottom:1px solid var(--line)}
.brand{
  display:flex;align-items:center;gap:11px;
  font-size:15px;letter-spacing:.3em;text-transform:uppercase;font-weight:700;
  text-decoration:none;color:#fff;
}
.nav.solid .brand{color:var(--ink)}
.brand b{color:#4cc0eb;font-weight:700}
.nav.solid .brand b{color:var(--blue)}
.brand svg{width:30px;height:30px;flex:0 0 auto}

.nav-links{display:flex;gap:30px;align-items:center}
.nav-links a{
  font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
  text-decoration:none;color:rgba(255,255,255,.88);font-weight:500;
}
.nav.solid .nav-links a{color:var(--ink-soft)}
.nav-links a:hover{color:#fff}
.nav.solid .nav-links a:hover{color:var(--blue)}
.nav-links a.cta{border:1px solid rgba(255,255,255,.5);padding:11px 20px}
.nav.solid .nav-links a.cta{border-color:var(--line)}

/* botao do menu mobile */
.nav-toggle{
  display:none;background:none;border:1px solid rgba(255,255,255,.5);
  color:#fff;padding:10px 16px;cursor:pointer;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  font-family:inherit;
}
.nav.solid .nav-toggle{border-color:var(--line);color:var(--ink)}

@media(max-width:880px){
  .nav-toggle{display:block}
  .nav-links{
    position:fixed;inset:0;z-index:70;
    flex-direction:column;justify-content:center;gap:6px;
    background:var(--ink);
    transform:translateY(-100%);visibility:hidden;
    transition:transform .38s cubic-bezier(.2,.7,.2,1),visibility .38s;
  }
  .nav-links[data-open="true"]{transform:none;visibility:visible}
  .nav-links a,.nav.solid .nav-links a{
    color:#fff;font-size:15px;letter-spacing:.2em;padding:16px 24px;
  }
  .nav-links a.cta,.nav.solid .nav-links a.cta{
    margin-top:18px;border-color:rgba(255,255,255,.55);padding:15px 30px;
  }
  .nav-close{
    position:absolute;top:22px;right:calc(var(--gut) - 4px);
    background:none;border:0;color:#fff;font-size:30px;line-height:1;
    cursor:pointer;padding:8px 12px;font-family:inherit;
  }
}
@media(min-width:881px){.nav-close{display:none}}

/* ---------- hero ---------- */
.hero{position:relative;min-height:min(88vh,760px);display:flex;align-items:flex-end;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover}
.hero-bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,14,18,.60) 0%,rgba(10,14,18,.24) 38%,rgba(10,14,18,.88) 100%);
}
.hero-in{position:relative;z-index:2;width:100%;padding:0 var(--gut) clamp(48px,7vw,84px)}
.hero-in .inner{max-width:var(--wrap);margin:0 auto}
.hero-loc{
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.85);margin:0 0 18px;font-weight:600;
}
.hero h1{
  color:#fff;font-weight:600;margin:0 0 20px;
  font-size:clamp(30px,5vw,56px);line-height:1.08;letter-spacing:-.015em;max-width:15ch;
  text-wrap:balance;
}
/* so o paragrafo de apoio limita a medida: se pegar todo .hero p,
   a linha do endereco quebra no meio */
.hero .sub{color:rgba(255,255,255,.9);margin:0 0 32px;max-width:46ch;font-size:clamp(16px,1.8vw,18px)}
.hero-acts{display:flex;gap:14px;flex-wrap:wrap}

/* faixa de fatos sob o hero */
.facts{background:var(--ink);color:#fff}
.facts .row{
  display:grid;grid-template-columns:repeat(4,1fr);
  max-width:var(--wrap);margin:0 auto;padding:0 var(--gut);
}
.facts .it{padding:30px 0;border-right:1px solid rgba(255,255,255,.14)}
.facts .it:last-child{border-right:0}
.facts .n{font-size:clamp(21px,2.5vw,29px);font-weight:600;letter-spacing:-.015em;line-height:1.15}
.facts .n small{font-size:.5em;font-weight:500;opacity:.7;letter-spacing:.03em}
.facts .k{font-size:10.5px;letter-spacing:.17em;text-transform:uppercase;color:rgba(255,255,255,.58);margin-top:7px;font-weight:600}
@media(max-width:820px){
  .facts .row{grid-template-columns:repeat(2,1fr)}
  .facts .it{border-right:0;border-bottom:1px solid rgba(255,255,255,.14);padding:22px 0}
  .facts .it:nth-child(odd){border-right:1px solid rgba(255,255,255,.14);padding-right:18px}
  .facts .it:nth-child(even){padding-left:18px}
  .facts .it:nth-last-child(-n+2){border-bottom:0}
}

/* ---------- secoes ---------- */
section{padding:clamp(64px,9vw,110px) 0}
.sec-head{max-width:720px;margin:0 auto clamp(38px,5vw,58px);text-align:center}
.sec-head .lede{margin-left:auto;margin-right:auto}

/* incluso: lista sobria com filete */
.incl{display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(28px,5vw,72px);margin:0}
.incl div{
  display:flex;justify-content:space-between;gap:18px;align-items:baseline;
  padding:17px 0;border-bottom:1px solid var(--line);
}
.incl dt{font-weight:600;font-size:16px}
.incl dd{margin:0;color:var(--ink-faint);font-size:14.5px;text-align:right}
@media(max-width:760px){.incl{grid-template-columns:1fr}}

/* quartos: foto edge-to-edge com nome sobreposto */
.rooms{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.room{position:relative;aspect-ratio:1/1;overflow:hidden;text-decoration:none;color:#fff;display:block;background:var(--ink)}
@media(max-width:820px){.rooms{grid-template-columns:1fr}.room{aspect-ratio:4/3}}
.room img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.6,.2,1)}
.room:hover img,.room:focus-visible img{transform:scale(1.04)}
.room::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0) 42%,rgba(0,0,0,.80) 100%);
}
.room .cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(22px,3vw,36px)}
.room .cap h3{margin:0 0 6px;font-size:clamp(19px,2.1vw,25px);font-weight:600;letter-spacing:.01em}
.room .cap p{margin:0;font-size:14px;color:rgba(255,255,255,.85)}
.room .price{
  position:absolute;top:clamp(18px,2.4vw,26px);right:clamp(18px,2.4vw,26px);z-index:2;
  background:rgba(255,255,255,.94);color:var(--ink);
  padding:8px 14px;font-size:12px;font-weight:700;letter-spacing:.03em;
}

/* faixa full-bleed com foto de fundo */
.band{position:relative;color:#fff;text-align:center;padding:clamp(72px,10vw,120px) 0}
.band .bg{position:absolute;inset:0}
.band .bg img{width:100%;height:100%;object-fit:cover}
.band .bg::after{content:"";position:absolute;inset:0;background:rgba(12,16,20,.76)}
.band .in{position:relative;z-index:2}
.band h2{color:#fff;font-size:clamp(22px,3vw,34px);font-weight:600;margin:0 0 22px;letter-spacing:.01em;text-wrap:balance}
.band .items{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px 0;
  color:rgba(255,255,255,.9);font-size:clamp(14px,1.7vw,17px);max-width:900px;margin:0 auto;
}
.band .items span{padding:0 16px;position:relative}
.band .items span:not(:last-child)::after{
  content:"·";position:absolute;right:-3px;color:rgba(255,255,255,.42);
}

/* ---------- galeria em mosaico ----------
   A grade e de 4 colunas. O destaque ocupa 2x2, as verticais ocupam 1x2 e as
   demais sao 3:2. Cada peca tem proporcao propria, entao a linha nunca depende
   de outra peca para ter altura (se dependesse, a linha colapsaria). */
.mos{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.mos-i{
  position:relative;display:block;overflow:hidden;padding:0;border:0;
  background:var(--paper-2);aspect-ratio:3/2;cursor:zoom-in;
  font:inherit;color:inherit;
}
.mos-i img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.6,.2,1)}
.mos-i:hover img,.mos-i:focus-visible img{transform:scale(1.05)}
.mos-i::after{
  content:"";position:absolute;inset:0;background:rgba(20,23,28,0);
  transition:background .3s ease;
}
.mos-i:hover::after{background:rgba(20,23,28,.16)}
.mos-big{grid-column:span 2;grid-row:span 2}
.mos-tall{grid-row:span 2;aspect-ratio:3/4}
/* grade uniforme de retratos (pagina /quartos) */
.mos-4{grid-template-columns:repeat(4,1fr)}
.mos-4 .mos-i{aspect-ratio:3/4}
@media(max-width:900px){
  .mos{grid-template-columns:repeat(2,1fr);gap:8px}
  .mos-big{grid-column:span 2;grid-row:span 1;aspect-ratio:3/2}
  .mos-4{grid-template-columns:repeat(2,1fr)}
}
.gal-hint{
  font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-faint);margin-top:20px;font-weight:600;text-align:center;
}

/* ---------- lightbox ---------- */
.lb{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center}
.lb[hidden]{display:none}
.lb-bd{position:absolute;inset:0;background:rgba(10,13,17,.94)}
.lb-fig{
  position:relative;z-index:2;margin:0;max-width:min(1100px,92vw);
  display:flex;flex-direction:column;align-items:center;gap:14px;
}
.lb-fig img{
  max-width:100%;max-height:78vh;width:auto;height:auto;
  object-fit:contain;background:#14171c;
}
.lb-cap{
  color:rgba(255,255,255,.82);font-size:13.5px;letter-spacing:.02em;
  display:flex;gap:14px;align-items:baseline;
}
.lb-cap b{font-weight:600;color:#fff}
.lb-cap span{font-size:11px;letter-spacing:.18em;color:rgba(255,255,255,.5);font-weight:600}
.lb-btn{
  position:absolute;z-index:3;background:rgba(255,255,255,.10);border:0;
  color:#fff;width:52px;height:52px;cursor:pointer;font-size:26px;line-height:1;
  font-family:inherit;transition:background .2s ease;
}
.lb-btn:hover{background:rgba(255,255,255,.22)}
.lb-prev{left:max(12px,3vw);top:50%;transform:translateY(-50%)}
.lb-next{right:max(12px,3vw);top:50%;transform:translateY(-50%)}
.lb-x{top:16px;right:max(12px,3vw);width:46px;height:46px;font-size:24px}
@media(max-width:700px){
  .lb-btn{width:44px;height:44px;font-size:22px}
  .lb-prev{left:6px}.lb-next{right:6px}
  .lb-fig img{max-height:66vh}
}

/* ---------- barra de consulta (estilo hotel) ---------- */
.consulta{position:relative;z-index:6;margin-top:clamp(-64px,-4.4vw,-40px);padding-bottom:clamp(16px,2vw,24px)}
.cbar{
  background:#fff;border:1px solid var(--line);
  box-shadow:0 18px 44px rgba(20,23,28,.13);
  padding:clamp(20px,2.4vw,26px) clamp(20px,2.6vw,30px);
}
.cbar-t{
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ink-faint);font-weight:600;margin:0 0 16px;
}
.cbar-f{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:clamp(14px,2vw,26px);align-items:end}
.cbar label{display:block;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);font-weight:600}
.cbar input,.cbar select{
  display:block;width:100%;margin-top:7px;padding:9px 0 10px;
  border:0;border-bottom:1px solid var(--line);background:transparent;
  font-family:inherit;font-size:15.5px;color:var(--ink);
  border-radius:0;-webkit-appearance:none;appearance:none;
}
.cbar select{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235d656f' stroke-width='1.6'/%3E%3C/svg%3E") right center/12px no-repeat}
.cbar input:focus,.cbar select:focus{outline:0;border-bottom-color:var(--blue)}
.cbar input:focus-visible,.cbar select:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
.cbar button{white-space:nowrap}
.cbar-m{margin:16px 0 0;font-size:12.5px;color:var(--ink-faint)}
@media(max-width:900px){
  /* no celular a folga do hero e menor, entao o cartao sobe menos:
     com -40px ele encostava nos botoes do hero */
  .consulta{margin-top:-26px}
  .cbar-f{grid-template-columns:1fr 1fr;gap:16px 18px}
  .cbar-f .cbar-cta{grid-column:1 / -1;margin-top:4px}
  .cbar button{width:100%}
}

/* ---------- popup de contato ---------- */
.mod{position:fixed;inset:0;z-index:95;display:flex;align-items:center;justify-content:center;padding:20px}
.mod[hidden]{display:none}
.mod-bd{position:absolute;inset:0;background:rgba(10,13,17,.62)}
.mod-cx{
  position:relative;z-index:2;background:var(--paper);width:min(520px,100%);
  max-height:92vh;overflow-y:auto;padding:clamp(28px,4vw,42px);
  box-shadow:0 26px 70px rgba(10,13,17,.34);
}
.mod-x{
  position:absolute;top:10px;right:12px;background:none;border:0;
  font-size:28px;line-height:1;color:var(--ink-faint);cursor:pointer;
  padding:8px 12px;font-family:inherit;
}
.mod-x:hover{color:var(--ink)}
.mod h2{font-size:clamp(21px,2.8vw,27px);font-weight:600;margin:0 0 12px;letter-spacing:.01em;line-height:1.2}
.mod-s{color:var(--ink-soft);margin:0 0 24px;font-size:15.5px}
.mod-campos{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.mod-campos .full{grid-column:1 / -1}
.mod label{display:block;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);font-weight:600}
.mod input,.mod select{
  display:block;width:100%;margin-top:7px;padding:10px 12px;
  border:1px solid var(--line);background:#fff;border-radius:0;
  font-family:inherit;font-size:15.5px;color:var(--ink);-webkit-appearance:none;appearance:none;
}
.mod select{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235d656f' stroke-width='1.6'/%3E%3C/svg%3E") right 12px center/12px no-repeat}
.mod input:focus,.mod select:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 2px rgba(20,106,141,.16)}
.mod .btn{width:100%;margin-top:22px;text-align:center}
.mod-erro{color:#a3231f;font-size:13.5px;margin:14px 0 0;display:none}
.mod-erro.on{display:block}
.mod-m{font-size:12px;color:var(--ink-faint);margin:16px 0 0;text-align:center}
.mod-ok{text-align:center}
.mod-ok .tick{
  width:54px;height:54px;border:1px solid var(--blue);border-radius:50%;
  display:flex;align-items:center;justify-content:center;margin:0 auto 20px;
  color:var(--blue);font-size:26px;
}
@media(max-width:520px){.mod-campos{grid-template-columns:1fr}}

/* localizacao */
.loc{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,68px);align-items:center}
@media(max-width:900px){.loc{grid-template-columns:1fr}}
.loc iframe{width:100%;height:420px;border:0;filter:grayscale(.25)}
.dist{margin:24px 0 0;padding:0;list-style:none}
.dist li{
  display:flex;justify-content:space-between;gap:16px;align-items:baseline;
  padding:13px 0;border-bottom:1px solid var(--line);font-size:15.5px;
}
.dist li b{font-weight:600}
.dist li span{color:var(--ink-faint);font-size:14px;text-align:right}

/* faq */
.faq{max-width:820px;margin:0 auto}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  padding:22px 44px 22px 0;cursor:pointer;list-style:none;position:relative;
  font-weight:600;font-size:16.5px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);
  font-size:22px;font-weight:400;color:var(--blue);
}
.faq details[open] summary::after{content:"\2212"}
.faq .a{padding:0 34px 24px 0;color:var(--ink-soft);margin:0}
.faq .a p{margin:0 0 12px}
.faq .a p:last-child{margin:0}

/* cta final */
.close{background:var(--ink);color:#fff;text-align:center}
.close h2{color:#fff;font-size:clamp(24px,3.4vw,38px);margin:0 0 16px;font-weight:600;text-wrap:balance}
.close p{color:rgba(255,255,255,.75);max-width:48ch;margin:0 auto 32px}
.close-acts{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.close .mini{font-size:12.5px;color:rgba(255,255,255,.5);margin:26px 0 0;letter-spacing:.02em}

/* rodape */
footer{background:var(--paper-2);padding:clamp(50px,6vw,72px) 0 34px;font-size:14.5px}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(28px,4vw,56px)}
@media(max-width:820px){.f-grid{grid-template-columns:1fr;gap:32px}}
footer h4{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 14px;font-weight:600}
footer p,footer a{color:var(--ink-soft);text-decoration:none;margin:0 0 7px;display:block}
footer a:hover{color:var(--blue)}
.f-brand{font-size:15px;letter-spacing:.3em;text-transform:uppercase;font-weight:700;color:var(--ink);margin-bottom:14px}
.f-brand b{color:var(--blue)}
.f-base{
  margin-top:clamp(34px,4vw,50px);padding-top:24px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:12.5px;color:var(--ink-faint);
}

/* whatsapp flutuante */
.wa{
  position:fixed;right:20px;bottom:20px;z-index:60;
  background:var(--blue);color:#fff;text-decoration:none;
  padding:15px 24px;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
  box-shadow:0 8px 26px rgba(0,0,0,.24);
}
.wa:hover{background:var(--blue-deep)}
/* no hero o botao e redundante e ainda cobre a faixa de fatos.
   padrao = visivel; o JS so esconde enquanto o hero esta na tela,
   entao se o script falhar o botao continua la. */
.wa.oculto{opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none}
.wa{transition:opacity .3s ease,transform .3s ease,visibility .3s}
@media(max-width:600px){
  .wa{left:14px;right:14px;bottom:14px;text-align:center;padding:16px}
  /* folga para o botao fixo no proprio rodape, senao sobra uma faixa
     de fundo diferente embaixo dele */
  footer{padding-bottom:104px}
}

/* pagina interna: cabecalho */
.phead{padding:clamp(50px,7vw,84px) 0 clamp(34px,4vw,50px);border-bottom:1px solid var(--line)}
.phead h1{font-size:clamp(28px,4.2vw,46px);font-weight:600;margin:0 0 16px;line-height:1.12;letter-spacing:-.015em;text-wrap:balance}
.crumb{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 18px;font-weight:600}
.crumb a{text-decoration:none}
.crumb a:hover{color:var(--blue)}

/* bloco de texto rico (pagina local) */
.prose h2{font-size:clamp(21px,2.6vw,28px);font-weight:600;margin:clamp(44px,5vw,62px) 0 16px;letter-spacing:.01em}
.prose h3{font-size:18px;font-weight:600;margin:32px 0 10px}
.prose p{margin:0 0 16px;color:var(--ink-soft)}
.prose ul{margin:0 0 18px;padding-left:20px;color:var(--ink-soft)}
.prose li{margin-bottom:8px}
.prose strong{color:var(--ink);font-weight:600}
.prose a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;margin:22px 0 8px;font-size:15px;min-width:420px}
.tbl th,.tbl td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line)}
.tbl th{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);font-weight:600}
.tbl td:last-child,.tbl th:last-child{text-align:right}
.tbl tr.me td{background:#fff;font-weight:600}
.note{
  background:#fff;border-left:2px solid var(--blue);
  padding:20px 24px;margin:26px 0;font-size:15.5px;color:var(--ink-soft);
}
.note b{color:var(--ink)}
.fonte{font-size:13px;color:var(--ink-faint);margin:6px 0 0}

/* cards de quarto (pagina quartos) */
.rt{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,56px);align-items:center;margin-bottom:clamp(56px,7vw,88px)}
.rt:nth-child(even) .rt-img{order:2}
@media(max-width:860px){.rt{grid-template-columns:1fr;gap:24px}.rt:nth-child(even) .rt-img{order:0}}
.rt-img img{width:100%;object-fit:cover;aspect-ratio:4/3}
.rt h2{font-size:clamp(22px,2.8vw,30px);font-weight:600;margin:0 0 8px}
.rt .tag{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);font-weight:700;margin:0 0 12px}
.rt .val{font-size:clamp(26px,3.2vw,34px);font-weight:600;margin:18px 0 4px;letter-spacing:-.015em}
.rt .val small{font-size:.42em;font-weight:500;color:var(--ink-faint);letter-spacing:.03em}
.rt ul{list-style:none;padding:0;margin:18px 0 26px}
.rt ul li{padding:11px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--ink-soft)}

/* motion discreto */
.js .rv{opacity:0;transform:translateY(16px)}
.js .rv.in{opacity:1;transform:none;transition:opacity .7s ease,transform .7s cubic-bezier(.2,.6,.2,1)}
@media(prefers-reduced-motion:reduce){
  .js .rv{opacity:1;transform:none}
  html{scroll-behavior:auto}
  .room img,.nav-links{transition:none}
}
