/* Fonte Archivo hospedada no próprio site (SIL Open Font License) — sem envio de IP ao Google Fonts */
@font-face{font-family:'Archivo'; font-style:normal; font-weight:400 800; font-stretch:100% 125%; font-display:swap;
  src:url(fonts/archivo-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Archivo'; font-style:normal; font-weight:400 800; font-stretch:100% 125%; font-display:swap;
  src:url(fonts/archivo-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* =========================================================
   Solar Hotel — Barcarena/PA
   Identidade da fachada: faixa laranja, letreiro largo e o
   azul-marinho da logo.
   ========================================================= */
:root{
  --navy:#042A51;
  --navy-deep:#021A33;
  --navy-2:#0B3A66;
  --solar:#EC5B13;
  --solar-deep:#C9470A;
  --paper:#F5F1EA;
  --paper-2:#ECE5D9;
  --white:#FFFFFF;
  --ink:#0F1B27;
  --muted:#5B6672;
  --line:rgba(15,27,39,.14);
  --line-light:rgba(255,255,255,.16);

  --font:'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --container:1200px;
  --gutter:28px;
  --hh:78px; /* altura do cabeçalho */
  --ease:cubic-bezier(.2,.8,.2,1);

  /* aliases usados pelo JS do mapa */
  --teal:var(--navy-2);
  --gold:var(--solar);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:var(--hh);}
body{
  margin:0; font-family:var(--font); font-size:16.5px; line-height:1.6;
  color:var(--ink); background:var(--paper);
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
body.menu-open{overflow:hidden;}
img{max-width:100%; display:block;}
a{color:inherit;}
p{margin:0;}
h1,h2,h3{margin:0; font-family:var(--font); font-stretch:115%; font-weight:800; letter-spacing:-.015em; line-height:1.05;}
::selection{background:var(--solar); color:var(--white);}
.wrap{max-width:var(--container); margin:0 auto; padding:0 var(--gutter);}
main{overflow-x:clip;}
:focus-visible{outline:2px solid var(--solar); outline-offset:3px;}

.kicker{
  display:inline-block; font-stretch:125%; font-weight:700; font-size:12px;
  letter-spacing:.2em; text-transform:uppercase; color:var(--solar-deep); margin-bottom:16px;
}
.on-dark .kicker{color:var(--solar);}
.title{font-size:clamp(30px, 3.8vw, 48px); margin-bottom:22px; overflow-wrap:break-word;}
.muted{color:var(--muted);}
.on-dark .muted{color:rgba(255,255,255,.72);}

/* ---------- reveal ---------- */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.is-visible{opacity:1; transform:none;}
.reveal[data-delay="1"]{transition-delay:.08s;}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  .reveal{opacity:1; transform:none;}
}

/* ---------- botões ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font); font-weight:700; font-size:15px; font-stretch:105%;
  padding:15px 24px; border-radius:6px; text-decoration:none; white-space:nowrap;
  border:1.5px solid transparent; cursor:pointer;
  transition:transform .25s var(--ease), background .25s, color .25s, border-color .25s, box-shadow .25s, opacity .3s;
}
.btn:hover{transform:translateY(-2px);}
.btn-solar{background:var(--solar); color:var(--navy-deep); box-shadow:0 5px 0 var(--solar-deep);}
.btn-solar:hover{box-shadow:0 7px 0 var(--solar-deep);}
.btn-solar:active{transform:translateY(3px); box-shadow:0 2px 0 var(--solar-deep);}
.btn-ghost{border-color:rgba(255,255,255,.45); color:var(--white);}
.btn-ghost:hover{border-color:var(--white);}
.btn-line{border-color:var(--navy); color:var(--navy);}
.btn-line:hover{background:var(--navy); color:var(--white);}
.btn-wa{background:#25D366; color:#fff; box-shadow:0 5px 0 #1a9e4b;}
.btn-sm{padding:10px 16px; font-size:14px; box-shadow:0 4px 0 var(--solar-deep);}

/* =========================================================
   TOPBAR + HEADER
   ========================================================= */
.topbar{background:var(--navy-deep); color:rgba(255,255,255,.78); font-size:12.5px; border-bottom:1px solid var(--line-light); position:relative; z-index:101;}
.topbar-inner{max-width:var(--container); margin:0 auto; padding:8px var(--gutter); display:flex; justify-content:center; gap:26px; flex-wrap:wrap;}
.topbar span{display:inline-flex; align-items:center; gap:7px;}
.topbar i{color:var(--solar);}
@media (max-width:560px){ .topbar-inner{gap:14px; font-size:11.5px;} }

header.site{
  position:sticky; top:0; z-index:100; height:var(--hh);
  transition:background .3s var(--ease), box-shadow .3s var(--ease);
}
header.site.scrolled, header.site.solid{background:var(--navy-deep); box-shadow:0 10px 30px -12px rgba(0,0,0,.45);}
.nav-inner{
  max-width:var(--container); height:100%; margin:0 auto; padding:0 var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--white); position:relative; z-index:102;}
.brand-chip{background:var(--white); border-radius:8px; padding:4px; display:flex; flex-shrink:0;}
.brand-chip img{width:44px; height:44px; border-radius:5px;}
.brand-tag{font-stretch:125%; font-weight:700; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--solar); white-space:nowrap;}

nav.menu{display:flex; align-items:center; gap:30px;}
nav.menu a{
  color:var(--white); text-decoration:none; font-size:14.5px; font-weight:500; opacity:.85;
  padding:6px 0; position:relative; transition:opacity .2s;
}
nav.menu a::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--solar);
  transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease);
}
nav.menu a:hover{opacity:1;}
nav.menu a:hover::after{transform:scaleX(1);}
.nav-actions{display:flex; align-items:center; gap:12px; position:relative; z-index:102;}
.nav-actions .btn{opacity:0; pointer-events:none;}
header.scrolled .nav-actions .btn, header.solid .nav-actions .btn{opacity:1; pointer-events:auto;}
.hamburger{display:none; background:none; border:0; color:var(--white); font-size:24px; cursor:pointer; padding:6px;}

@media (max-width:920px){
  .hamburger{display:block;}
  /* menu em tela cheia: escondido de verdade (visibility) quando fechado */
  nav.menu{
    position:fixed; top:0; left:0; width:100%; height:100vh; height:100dvh; z-index:101;
    background:var(--navy-deep);
    flex-direction:column; align-items:flex-start; justify-content:center; gap:4px;
    padding:90px 32px 40px;
    visibility:hidden; opacity:0; transform:translateY(-12px);
    transition:opacity .3s var(--ease), transform .3s var(--ease), visibility 0s linear .3s;
  }
  nav.menu.open{visibility:visible; opacity:1; transform:none; transition:opacity .3s var(--ease), transform .3s var(--ease), visibility 0s;}
  nav.menu a{font-size:32px; font-stretch:115%; font-weight:800; opacity:1; padding:6px 0;}
  nav.menu a::after{display:none;}
}
@media (max-width:560px){
  :root{--gutter:18px; --hh:68px;}
  .brand-chip img{width:38px; height:38px;}
  .brand-tag{display:none;}
}

/* =========================================================
   HERO — foto da fachada em tela cheia (como o original)
   ========================================================= */
.hero{
  position:relative; isolation:isolate; overflow:hidden; color:var(--white);
  margin-top:calc(var(--hh) * -1); padding-top:var(--hh);
  min-height:100vh; min-height:100svh; display:flex; align-items:center;
  background:var(--navy-deep);
}
.hero-bg{position:absolute; inset:-4%; z-index:-2;}
.hero-bg img{width:100%; height:100%; object-fit:cover; object-position:50% 45%; animation:heroZoom 24s ease-in-out infinite alternate;}
@keyframes heroZoom{from{transform:scale(1);} to{transform:scale(1.07);}}
.hero::before{
  content:''; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(90deg, rgba(2,26,51,.9) 0%, rgba(2,26,51,.65) 50%, rgba(2,26,51,.2) 100%),
    linear-gradient(180deg, rgba(2,26,51,.45) 0%, rgba(2,26,51,0) 30%, rgba(2,26,51,.85) 100%);
}
.hero-inner{width:100%; padding-top:70px; padding-bottom:90px;}
.hero-eyebrow{font-stretch:125%; font-weight:700; font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:var(--solar); margin-bottom:20px;}
.hero h1{font-size:clamp(40px, 6vw, 82px); font-stretch:115%; letter-spacing:-.025em; max-width:900px; text-shadow:0 2px 30px rgba(2,26,51,.4);}
.hero h1 em{font-style:normal; color:var(--solar);}
.hero p.lead{font-size:18px; color:rgba(255,255,255,.88); max-width:560px; margin-top:24px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-top:34px;}
.hero-facts{display:flex; flex-wrap:wrap; margin:46px 0 0; padding:0; border-top:1px solid var(--line-light); max-width:560px;}
.hero-facts div{padding:16px 24px 0 0; margin-right:24px; border-right:1px solid var(--line-light);}
.hero-facts div:last-child{border-right:0; margin-right:0;}
.hero-facts dt{font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.62);}
.hero-facts dd{margin:2px 0 0; font-stretch:118%; font-weight:800; font-size:26px;}
.hero-facts dd small{font-size:14px; font-weight:500; font-stretch:100%; color:rgba(255,255,255,.8);}
@media (max-width:560px){
  .hero{align-items:flex-end;}
  .hero::before{background:linear-gradient(180deg, rgba(2,26,51,.55) 0%, rgba(2,26,51,.72) 30%, rgba(2,26,51,.96) 100%);}
  .hero-inner{padding-top:40px; padding-bottom:60px;}
  .hero h1{font-size:clamp(34px, 10vw, 46px);}
  .hero p.lead{font-size:16px;}
  .hero-ctas .btn{flex:1 1 100%;}
  .hero-facts dd{font-size:21px;}
  .hero-facts div{padding-right:14px; margin-right:14px;}
}

/* ---------- faixa (toldo laranja) ---------- */
.awning{
  position:relative; z-index:2; background:var(--solar); color:var(--navy-deep);
  overflow:hidden; border-bottom:3px solid var(--solar-deep);
  transform:rotate(-1.2deg) scale(1.02); margin:-18px 0 0;
  box-shadow:0 18px 40px -20px rgba(2,26,51,.5);
}
.awning-track{display:flex; width:max-content; animation:marquee 38s linear infinite;}
.awning-track ul{display:flex; margin:0; padding:0; list-style:none;}
.awning li{padding:17px 0; font-stretch:125%; font-weight:800; font-size:16px; letter-spacing:.14em; text-transform:uppercase; white-space:nowrap; display:flex; align-items:center;}
.awning li::after{content:''; width:9px; height:9px; background:var(--navy-deep); border-radius:50%; margin:0 32px;}
@keyframes marquee{to{transform:translateX(-50%);}}

/* =========================================================
   SEÇÕES
   ========================================================= */
section{padding:110px 0;}
.bg-paper{background:var(--paper);}
.bg-white{background:var(--white);}
.bg-navy{background:var(--navy); color:var(--white);}
.sec-head{text-align:center; max-width:680px; margin:0 auto 54px;}
.sec-head .title{margin-bottom:14px;}
.sec-head p{color:var(--muted);}
@media (max-width:900px){ section{padding:76px 0;} }
@media (max-width:560px){ section{padding:60px 0;} .sec-head{margin-bottom:34px;} }

/* ---------- texto + foto (Quem somos / Localização) ---------- */
.split{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:80px; align-items:center;}
.split.flip .split-media{order:2;}
.split-text > p{color:var(--muted);}
.split-text > p + p{margin-top:16px;}
.split-media{position:relative; padding:0 26px 26px 0;}
.split.flip .split-media{padding:0 0 26px 26px;}
.split-media::before{ /* bloco laranja atrás da foto */
  content:''; position:absolute; right:0; bottom:0; width:78%; height:78%; border-radius:6px;
  background:linear-gradient(160deg, #F0662A, var(--solar) 55%, var(--solar-deep));
}
.split.flip .split-media::before{right:auto; left:0;}
.split-media figure{position:relative; margin:0; border-radius:6px; overflow:hidden; box-shadow:0 40px 70px -30px rgba(2,26,51,.5);}
.split-media img{width:100%; aspect-ratio:5/4; object-fit:cover;}
.feats{list-style:none; margin:30px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; column-gap:30px;}
.feats li{display:flex; gap:14px; align-items:center; padding:15px 0; border-bottom:1px solid var(--line); font-weight:600; font-size:15.5px; color:var(--navy);}
.feats li:nth-child(-n+2){border-top:1px solid var(--line);}
.feats i{color:var(--solar-deep); font-size:17px; width:22px; text-align:center; flex-shrink:0;}
.feats.one{grid-template-columns:1fr;}
.feats.one li:nth-child(2){border-top:0;}
@media (max-width:900px){
  .split{grid-template-columns:minmax(0,1fr); gap:44px;}
  .split.flip .split-media{order:0;}
}
@media (max-width:560px){
  .feats{grid-template-columns:1fr;}
  .feats li:nth-child(2){border-top:0;}
  .split-media{padding:0 14px 14px 0;}
  .split.flip .split-media{padding:0 0 14px 14px;}
}

/* ---------- inclinação 3D (só com mouse; ativada pelo JS) ---------- */
[data-tilt]{
  --tx:0deg; --ty:0deg; --gx:50%; --gy:50%;
  transform:perspective(1000px) rotateX(var(--ty)) rotateY(var(--tx));
  transition:transform .6s var(--ease), box-shadow .6s var(--ease);
}
[data-tilt].is-tilting{transition:transform .1s linear, box-shadow .4s var(--ease);}
.glare{
  position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:0; transition:opacity .4s;
  background:radial-gradient(circle at var(--gx) var(--gy), rgba(255,255,255,.35), transparent 55%);
  mix-blend-mode:soft-light;
}
.is-tilting .glare{opacity:1;}

/* ---------- Quartos ---------- */
.rooms{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px;}
.room{
  position:relative; display:block; text-decoration:none; color:var(--white);
  aspect-ratio:3/4; border-radius:8px; background:var(--navy-deep);
  box-shadow:0 30px 50px -30px rgba(2,26,51,.55);
}
.room.is-tilting{box-shadow:0 50px 70px -30px rgba(2,26,51,.6);}
.room-media{position:absolute; inset:0; border-radius:8px; overflow:hidden;}
.room-media img{width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease);}
.room:hover .room-media img{transform:scale(1.06);}
.room-media::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(2,26,51,0) 30%, rgba(2,26,51,.55) 58%, rgba(2,26,51,.95) 100%);}
.room-body{position:absolute; left:22px; right:22px; bottom:22px;}
.room-body h2{font-size:clamp(22px, 2.1vw, 28px);}
.room-body .beds{display:block; font-size:14.5px; opacity:.85; margin-top:6px;}
.room-foot{display:flex; justify-content:space-between; align-items:center; margin-top:16px; padding-top:14px; border-top:1px solid rgba(255,255,255,.25);}
.room-price{font-stretch:115%; font-weight:800; font-size:24px; line-height:1;}
.room-price small{font-size:13px; font-weight:500; opacity:.75; font-stretch:100%;}
.room-go{
  width:44px; height:44px; border-radius:50%; background:var(--white); color:var(--navy-deep); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:15px;
  transition:background .3s, transform .3s var(--ease);
}
.room:hover .room-go{background:var(--solar); transform:rotate(-45deg);}
.rooms-note{font-size:13px; color:var(--muted); margin-top:26px; text-align:center;}
@media (max-width:980px){ .rooms{grid-template-columns:1fr 1fr;} }
@media (max-width:620px){ .rooms{grid-template-columns:1fr;} .room{aspect-ratio:4/4.4;} }

/* ---------- Galeria coverflow 3D ---------- */
.gallery{overflow:hidden;}
.cf{position:relative; height:clamp(360px, 46vw, 520px); perspective:1600px; touch-action:pan-y; user-select:none; -webkit-user-select:none; cursor:grab;}
.cf.dragging{cursor:grabbing;}
.cf-track{position:absolute; inset:0; transform-style:preserve-3d;}
.cf-item{
  position:absolute; top:0; bottom:0; left:50%; width:min(38%, 400px); margin-left:calc(min(38%, 400px) / -2);
  padding:0; border:0; background:none; cursor:pointer;
  transition:transform .8s var(--ease), opacity .6s, filter .6s;
  filter:brightness(.6) saturate(.85);
}
.cf-item.is-active{filter:none; cursor:zoom-in;}
.cf-item img{width:100%; height:100%; object-fit:cover; border-radius:6px; box-shadow:0 40px 70px -30px rgba(2,26,51,.6); pointer-events:none;}
.cf-bar{display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:36px;}
.cf-cap{font-stretch:112%; font-weight:700; font-size:20px;}
.cf-count{white-space:nowrap; font-size:13px; letter-spacing:.14em; color:var(--muted); margin-left:12px; font-weight:600;}
.cf-btns{display:flex; gap:10px;}
.cf-btn{
  width:50px; height:50px; border-radius:50%; border:1.5px solid var(--line); background:var(--white);
  color:var(--navy); font-size:16px; cursor:pointer; transition:background .25s, border-color .25s, color .25s;
}
.cf-btn:hover{background:var(--solar); border-color:var(--solar); color:var(--navy-deep);}
.cf-btn:disabled{opacity:.35; pointer-events:none;}
@media (max-width:700px){
  .cf-item{width:66%; margin-left:-33%;}
  .cf-cap{font-size:17px;}
  .cf-btn{width:44px; height:44px;}
}

.lightbox{position:fixed; inset:0; z-index:1000; background:rgba(2,16,32,.94); display:none; align-items:center; justify-content:center; padding:28px;}
.lightbox.open{display:flex; animation:fade .3s ease;}
@keyframes fade{from{opacity:0;}}
.lightbox figure{margin:0; text-align:center;}
.lightbox img{max-width:92vw; max-height:82vh; border-radius:6px;}
.lightbox figcaption{color:var(--white); margin-top:14px; font-size:14px;}
.lightbox-close{position:absolute; top:18px; right:22px; background:none; border:0; color:var(--white); font-size:28px; cursor:pointer; padding:8px;}

/* ---------- Serviços ---------- */
.services{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line-light); border-left:1px solid var(--line-light);}
.services li{
  display:flex; flex-direction:column; gap:18px; padding:28px 24px 26px;
  border-right:1px solid var(--line-light); border-bottom:1px solid var(--line-light);
  font-stretch:110%; font-weight:700; font-size:17px; line-height:1.25; transition:background .3s;
}
.services li:hover{background:rgba(255,255,255,.05);}
.services i{color:var(--solar); font-size:24px;}
@media (max-width:980px){ .services{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:420px){ .services li{padding:22px 16px; font-size:15.5px;} }

/* ---------- Avaliação ---------- */
.satisfaction{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:70px; align-items:center;}
.satisfaction p{color:var(--muted);}
.satisfaction p + p{margin-top:14px;}
.rating-card{
  position:relative; background:var(--white); border-radius:8px; padding:46px 38px 40px;
  border-top:6px solid var(--solar); box-shadow:0 30px 60px -30px rgba(2,26,51,.35);
  display:flex; flex-direction:column; align-items:flex-start; gap:18px;
}
.rating-card .stars{display:flex; gap:6px; color:var(--solar); font-size:20px;}
.rating-card blockquote{margin:0; font-stretch:112%; font-weight:800; font-size:clamp(24px, 2.6vw, 34px); line-height:1.15; color:var(--navy);}
.rating-card .quote-source{font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); font-weight:600;}
.rating-card .quote-icon{position:absolute; right:30px; top:30px; color:var(--solar); opacity:.2; font-size:54px;}
@media (max-width:900px){ .satisfaction{grid-template-columns:minmax(0,1fr); gap:36px;} }
@media (max-width:560px){ .rating-card{padding:36px 24px 30px;} }

/* ---------- Contato ---------- */
.contact-grid{display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:50px; align-items:stretch;}
.contact-map{position:relative; border-radius:8px; overflow:hidden; min-height:440px; box-shadow:0 30px 60px -30px rgba(2,26,51,.4);}
#hotelMap{position:absolute; inset:0; background:var(--paper-2);}
.contact-map .leaflet-container{font-family:var(--font);}
.contact-list{list-style:none; margin:0; padding:0;}
.contact-list li{border-bottom:1px solid var(--line);}
.contact-list li:first-child{border-top:1px solid var(--line);}
.contact-list a, .contact-list .row{display:flex; gap:16px; align-items:center; padding:18px 4px; text-decoration:none; font-weight:600; color:var(--navy); transition:padding .3s var(--ease), color .2s;}
.contact-list .row{font-weight:500; color:var(--ink);}
.contact-list a:hover{padding-left:12px; color:var(--solar-deep);}
.contact-list i{width:22px; text-align:center; color:var(--navy); font-size:18px; flex-shrink:0;}
.contact-list .fa-whatsapp{color:#25D366;}
.contact-side .btn{margin-top:26px; width:100%;}
@media (max-width:900px){ .contact-grid{grid-template-columns:minmax(0,1fr);} .contact-map{min-height:340px;} }

.map-cta{
  position:absolute; left:50%; bottom:20px; transform:translateX(-50%); z-index:500;
  background:var(--navy-deep); color:var(--white); border:0; border-radius:6px;
  padding:13px 20px; font-family:var(--font); font-weight:700; font-size:14px;
  display:flex; align-items:center; gap:10px; cursor:pointer; white-space:nowrap;
  box-shadow:0 16px 30px rgba(2,26,51,.4); transition:opacity .4s, transform .4s var(--ease), visibility .4s;
}
.map-cta i{color:var(--solar);}
.map-cta:hover{transform:translateX(-50%) translateY(-2px);}
.map-cta.is-hidden{opacity:0; visibility:hidden; pointer-events:none;}

.hotel-marker, .poi-marker{background:transparent; border:0;}
.hotel-marker-chip{position:absolute; top:0; left:2px; width:46px; height:46px; border-radius:50%; background:var(--white); border:3px solid var(--solar); overflow:hidden; box-shadow:0 10px 22px rgba(2,26,51,.4);}
.hotel-marker-chip img{width:100%; height:100%; object-fit:cover;}
.hotel-marker-pulse{position:absolute; top:2px; left:4px; width:42px; height:42px; border-radius:50%; border:2px solid var(--solar); animation:ping 2.2s ease-out infinite;}
@keyframes ping{0%{transform:scale(.9); opacity:.9;} 100%{transform:scale(1.7); opacity:0;}}
.poi-marker-chip{width:30px; height:30px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); display:flex; align-items:center; justify-content:center; border:2px solid var(--white); box-shadow:0 6px 14px rgba(2,26,51,.35);}
.poi-marker-chip i{transform:rotate(45deg); color:var(--white); font-size:13px;}
.leaflet-popup-content-wrapper{border-radius:8px; padding:0; overflow:hidden;}
.leaflet-popup-content{margin:0; width:220px !important;}
.map-popup{display:flex; flex-direction:column; padding:0 0 14px;}
.map-popup img{width:100%; height:110px; object-fit:cover; margin-bottom:10px;}
.map-popup strong, .map-popup span, .map-popup a{padding:0 16px;}
.map-popup strong{font-stretch:112%; font-size:15px; color:var(--navy);}
.map-popup span{font-size:12.5px; color:var(--muted); margin-top:3px; line-height:1.4;}
.map-popup a{margin-top:10px; font-size:12.5px; font-weight:700; color:var(--solar-deep); text-decoration:none;}
.map-popup a::after{content:' \2192';}
.map-popup-logo img{object-fit:contain; padding:14px 16px; height:90px;}

/* =========================================================
   RODAPÉ — o letreiro
   ========================================================= */
footer.site{background:var(--navy-deep); color:rgba(255,255,255,.7); font-size:13.5px;}
.sign{background:linear-gradient(180deg, #F0662A, var(--solar) 55%, var(--solar-deep)); position:relative; overflow:hidden; padding:clamp(28px, 5vw, 60px) 0 clamp(38px, 6.5vw, 76px);}
.sign::after{content:''; position:absolute; left:0; right:0; bottom:clamp(16px, 2.6vw, 30px); height:3px; background:rgba(255,255,255,.8);}
.sign-text{display:block; text-align:center; color:var(--white); font-stretch:125%; font-weight:800; font-size:clamp(36px, 11vw, 160px); letter-spacing:.12em; line-height:1; padding-left:.12em;}
.foot-line{padding:26px 0 30px; text-align:center;}
.foot-line strong{color:var(--solar); font-weight:600;}

.wa-float{
  position:fixed; right:20px; bottom:20px; z-index:90; width:58px; height:58px; border-radius:50%;
  background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; font-size:27px;
  text-decoration:none; box-shadow:0 12px 26px rgba(0,0,0,.25); transition:transform .3s var(--ease);
}
.wa-float:hover{transform:scale(1.08);}

/* =========================================================
   PÁGINA DE QUARTO
   ========================================================= */
.room-hero{min-height:64vh; min-height:64svh; align-items:flex-end;}
.room-hero::before{background:linear-gradient(180deg, rgba(2,26,51,.5) 0%, rgba(2,26,51,.25) 35%, rgba(2,26,51,.92) 100%);}
.room-hero .hero-bg img{animation:none;}
.room-hero .hero-inner{padding-top:120px; padding-bottom:64px;}
.room-hero h1{font-size:clamp(38px, 6vw, 80px);}
.crumbs{font-size:13px; color:rgba(255,255,255,.75); margin-bottom:18px; display:flex; flex-wrap:wrap; gap:8px;}
.crumbs a{color:var(--white); text-decoration:none;}
.crumbs a:hover{color:var(--solar);}
.beds-line{display:inline-flex; align-items:center; gap:10px; margin-top:16px; font-size:16px; color:rgba(255,255,255,.9);}
.beds-line i{color:var(--solar);}
@media (max-width:560px){ .room-hero{min-height:58svh;} .room-hero .hero-inner{padding-top:90px; padding-bottom:50px;} }

.detail-grid{display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:70px; align-items:start;}
.detail-grid .title{font-size:clamp(28px, 3vw, 40px);}
.detail-grid > div > p{color:var(--muted);}
.price-card{
  position:sticky; top:calc(var(--hh) + 24px); background:var(--white); border-radius:8px; padding:32px;
  box-shadow:0 30px 60px -30px rgba(2,26,51,.35); border-top:6px solid var(--solar);
}
.price-card .new{display:block; font-stretch:118%; font-weight:800; font-size:clamp(38px, 4vw, 50px); line-height:1; color:var(--navy);}
.price-card .per-night{display:block; font-size:14px; color:var(--muted); margin-top:8px;}
.price-card .btn{width:100%; margin-top:14px;}
.price-card .btn:first-of-type{margin-top:26px;}
.price-card hr{border:0; border-top:1px solid var(--line); margin:24px 0 8px;}
.mini-note{display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--muted); margin-top:12px;}
.mini-note i{color:var(--solar-deep); margin-top:4px; width:16px;}
.other .rooms{grid-template-columns:1fr 1fr;}
@media (max-width:900px){
  .detail-grid{grid-template-columns:minmax(0,1fr); gap:40px;}
  .price-card{position:static;}
}
@media (max-width:620px){ .other .rooms{grid-template-columns:1fr;} }

/* =========================================================
   PLACA 3D — Praia do Caripi (padrão das placas marrons de
   atrativo turístico das rodovias brasileiras)
   ========================================================= */
.hero-grid{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:48px; align-items:center;}
.road-sign{
  justify-self:end; margin-right:1%; display:flex; flex-direction:column; align-items:center;
  text-decoration:none; color:var(--white); perspective:1000px;
  animation:signIn 1.1s var(--ease) .25s both;
}
@keyframes signIn{from{opacity:0; transform:translateY(40px);}}
.sign-3d{
  --rx:4deg; --ry:-18deg;
  display:flex; flex-direction:column; align-items:center; transform-style:preserve-3d;
  transform:rotateX(var(--rx)) rotateY(var(--ry)); transition:transform .5s var(--ease);
}
.sign-plate{
  position:relative; display:grid; grid-template-columns:auto auto; align-items:center; column-gap:18px; row-gap:12px;
  background:linear-gradient(160deg, #7A4424, #643318 60%, #552a13);
  border-radius:12px; padding:22px 26px 20px;
  outline:3px solid var(--white); outline-offset:-9px;
  transform-style:preserve-3d;
  box-shadow:0 0 0 1px rgba(0,0,0,.25), 26px 40px 60px -20px rgba(0,0,0,.75);
}
.sign-plate::after{ /* espessura da chapa */
  content:''; position:absolute; inset:0; border-radius:12px; background:#2e170a; transform:translateZ(-12px);
}
.sign-plate::before{ /* brilho de chapa metálica */
  content:''; position:absolute; inset:0; border-radius:12px; pointer-events:none;
  background:linear-gradient(115deg, rgba(255,255,255,.18) 0%, rgba(255,255,255,0) 38%, rgba(255,255,255,0) 70%, rgba(255,255,255,.08) 100%);
}
.sign-ico{
  grid-row:span 2; width:74px; height:74px; border-radius:6px; background:var(--white); color:#643318;
  display:flex; align-items:center; justify-content:center; font-size:38px;
}
.sign-name{font-stretch:112%; font-weight:800; font-size:25px; line-height:1.05; max-width:190px;}
.sign-dist{display:flex; align-items:center; gap:10px; font-stretch:115%; font-weight:800; font-size:30px; line-height:1;}
.sign-dist i{font-size:22px;}
.sign-posts{position:relative; width:160px; height:110px; transform:translateZ(-14px);}
.sign-posts::before, .sign-posts::after{
  content:''; position:absolute; top:0; bottom:0; width:9px; border-radius:2px;
  background:linear-gradient(90deg, #6d757c, #d9dee2 45%, #8a939a);
}
.sign-posts::before{left:34px;}
.sign-posts::after{right:34px;}
.sign-note{margin-top:14px; font-size:13px; font-weight:600; letter-spacing:.04em; color:rgba(255,255,255,.85); border-bottom:1px solid rgba(255,255,255,.35); padding-bottom:2px; transition:color .2s, border-color .2s;}
.road-sign:hover .sign-note{color:var(--solar); border-color:var(--solar);}
.road-sign:hover .sign-3d{--rx:2deg; --ry:-8deg;}

@media (max-width:900px){
  .hero-grid{grid-template-columns:minmax(0,1fr); gap:0;}
  .road-sign{justify-self:start; flex-direction:row; align-items:center; gap:14px; margin:34px 0 0;}
  .sign-3d{--rx:0deg; --ry:-10deg;}
  .sign-plate{padding:14px 18px 13px; column-gap:12px; row-gap:6px; outline-offset:-7px; outline-width:2px; border-radius:9px;}
  .sign-plate::after, .sign-plate::before{border-radius:9px;}
  .sign-ico{width:48px; height:48px; font-size:24px;}
  .sign-name{font-size:17px; max-width:130px;}
  .sign-dist{font-size:20px;}
  .sign-dist i{font-size:15px;}
  .sign-posts{display:none;}
  .sign-note{margin-top:0; max-width:110px; font-size:12.5px; line-height:1.35; border-bottom:0;}
}

/* ---------- Praia do Caripi (faixa com foto) ---------- */
.beach{position:relative; isolation:isolate; overflow:hidden; color:var(--white); padding:170px 0; background:var(--navy-deep);}
.beach-bg{position:absolute; inset:-16% 0; z-index:-2;}
.beach-bg img{width:100%; height:100%; object-fit:cover; object-position:50% 50%;}
.beach::before{content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg, rgba(2,26,51,.82) 0%, rgba(2,26,51,.45) 45%, rgba(2,26,51,0) 75%);}
.beach-box{max-width:460px;}
.beach-box p{font-size:18px; color:rgba(255,255,255,.88); margin-bottom:30px;}
.beach .title{text-shadow:0 2px 24px rgba(2,26,51,.5);}
@media (max-width:700px){
  .beach{padding:240px 0 56px;}
  .beach::before{background:linear-gradient(180deg, rgba(2,26,51,0) 25%, rgba(2,26,51,.85) 75%);}
  .beach-bg img{object-position:40% 50%;}
  .beach-box .btn{width:100%;}
}
.hero-grid h1{font-size:clamp(40px, 4.9vw, 70px);}
@media (max-width:560px){ .hero-grid h1{font-size:clamp(34px, 10vw, 46px);} }
.beach::before{background:linear-gradient(90deg, rgba(2,26,51,.88) 0%, rgba(2,26,51,.55) 45%, rgba(2,26,51,0) 78%);}
@media (max-width:700px){ .beach::before{background:linear-gradient(180deg, rgba(2,26,51,0) 25%, rgba(2,26,51,.88) 72%);} }

/* =========================================================
   GALERIA — diário de viagem 3D (páginas em pilha + virar)
   ========================================================= */
.journal{position:relative; outline:none;}
.journal:focus-visible{outline:2px solid var(--solar); outline-offset:6px;}
.jr-stage{
  --pw:min(390px, 36vw); --ph:calc(var(--pw) * 1.3);
  position:relative; height:calc(var(--ph) + 60px); perspective:1900px; perspective-origin:50% 35%;
  touch-action:pan-y; user-select:none; -webkit-user-select:none; cursor:grab;
}
.jr-stage.dragging{cursor:grabbing;}
.jr-spread{
  position:absolute; top:30px; left:50%; width:calc(var(--pw) * 2); height:var(--ph); margin-left:calc(var(--pw) * -1);
  transform-style:preserve-3d; transition:transform 1s var(--ease), opacity .6s; cursor:pointer;
}
.jr-spread.is-active{cursor:default;}
.jr-spread.single{width:var(--pw); margin-left:calc(var(--pw) / -2);}
.jr-spread.single.to-right{transform-origin:0 50%;}
.jr-spread.single.to-left{transform-origin:100% 50%;}
.jr-page{
  position:absolute; top:0; left:0; width:var(--pw); height:var(--ph); margin:0;
  backface-visibility:hidden; -webkit-backface-visibility:hidden; transition:transform 1s var(--ease);
}
.jr-page.is-left{transform-origin:100% 50%;}
.jr-page.is-right{left:var(--pw); transform-origin:0 50%;}
.jr-spread.to-right .jr-page.is-left{transform:rotateY(180deg);}
.jr-spread.to-left .jr-page.is-right{transform:rotateY(-180deg);}

.jr-paper{
  position:absolute; inset:0; overflow:hidden;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px;
  padding:9% 9% 11%; background-color:#FBF6EA;
  background-image:repeating-linear-gradient(0deg, transparent 0 29px, rgba(11,58,102,.07) 29px 30px);
  box-shadow:0 30px 50px -28px rgba(2,26,51,.5); transition:filter .6s;
}
.is-left .jr-paper{border-radius:6px 0 0 6px;}
.is-right .jr-paper{border-radius:0 6px 6px 0;}
.single .jr-paper{border-radius:6px;}
.jr-paper::after{content:''; position:absolute; inset:0; pointer-events:none;}
.is-left .jr-paper::after{background:linear-gradient(90deg, rgba(0,0,0,.04), transparent 12%, transparent 82%, rgba(0,0,0,.16));}
.is-right .jr-paper::after{background:linear-gradient(270deg, rgba(0,0,0,.04), transparent 12%, transparent 82%, rgba(0,0,0,.16));}
.single .jr-paper::after{background:linear-gradient(90deg, rgba(0,0,0,.12), transparent 10%);}
.jr-spread:not(.is-active) .jr-paper{filter:brightness(.82);}

.polaroid{
  position:relative; display:block; border:0; margin:0; padding:9px 9px 0; background:#fff;
  box-shadow:0 12px 24px -10px rgba(0,0,0,.4); transform:rotate(var(--r, -2deg)); cursor:zoom-in;
  font:inherit; color:inherit; transition:transform .4s var(--ease);
}
.jr-spread:not(.is-active) .polaroid{cursor:pointer;}
.jr-spread.is-active .polaroid:hover{transform:rotate(0deg) scale(1.03);}
.polaroid.wide{width:88%;}
.polaroid.tall{width:66%;}
.polaroid img{width:100%; aspect-ratio:4/3; object-fit:cover; pointer-events:none;}
.polaroid.tall img{aspect-ratio:3/4;}
.polaroid .hand{display:block; padding:8px 4px 10px; text-align:center;}
.tape{
  position:absolute; z-index:2; top:-13px; left:50%; width:88px; height:26px; margin-left:-44px;
  background:rgba(232,214,170,.82); transform:rotate(var(--tr, -4deg));
  box-shadow:0 1px 3px rgba(0,0,0,.12);
}
.jr-end .tape{top:16%;}
.hand{font-family:'Caveat', 'Segoe Print', cursive; font-weight:600; font-size:clamp(19px, 1.9vw, 26px); line-height:1.1; color:var(--navy);}
.hand.big{font-size:clamp(26px, 2.8vw, 38px); text-align:center; transform:rotate(-2deg);}
.jr-logo{width:48%; mix-blend-mode:multiply; border-radius:4px;}
.stamp{
  display:inline-block; border:2px solid var(--solar); color:var(--solar-deep); border-radius:4px;
  padding:5px 12px; font-stretch:125%; font-weight:800; font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  transform:rotate(-6deg); opacity:.85;
}
.jr-end p{max-width:88%;}
.pno{position:absolute; bottom:12px; left:16px; font-size:11px; letter-spacing:.16em; font-weight:600; color:rgba(11,58,102,.45);}
.is-right .pno{left:auto; right:16px;}
.jr-bar{display:flex; justify-content:center; align-items:center; gap:22px; margin-top:22px;}
.jr-bar .cf-count{margin:0;}

@media (max-width:699px){
  .jr-stage{--pw:min(270px, 66vw); height:calc(var(--ph) + 50px); perspective:1200px;}
  .jr-spread{top:24px;}
  .jr-paper{padding:10% 9% 13%; gap:14px;}
  .hand{font-size:21px;}
  .hand.big{font-size:27px;}
  .tape{width:70px; height:22px; margin-left:-35px; top:-11px;}
  .pno{bottom:9px;}
}
@media (prefers-reduced-motion: reduce){ .jr-spread, .jr-page{transition:none;} }
.jr-bar p{order:2; margin:0;} .jr-bar .cf-btns{display:contents;} #jrPrev{order:1;} #jrNext{order:3;}

/* ---------- diário: foto ocupa a página inteira (v5) ---------- */
.jr-stage{--pw:min(470px, 40vw); --ph:calc(var(--pw) * 1.25);}
.jr-paper{padding:0; gap:0;}
.polaroid, .polaroid.wide, .polaroid.tall{
  position:absolute; inset:16px 16px 34px; width:auto; padding:0; background:#e9e2d2;
  transform:none; box-shadow:0 1px 2px rgba(0,0,0,.18), 0 10px 18px -12px rgba(0,0,0,.35);
  overflow:visible;
}
.jr-spread.is-active .polaroid:hover{transform:none;}
.polaroid img, .polaroid.tall img{width:100%; height:100%; aspect-ratio:auto; object-fit:cover; display:block;}
.polaroid img[src*="praia-caripi"]{object-position:28% 50%;}
.polaroid img[src*="praca-criancas"]{object-position:50% 50%;}
.polaroid img[src*="fachada-hotel"]{object-position:45% 50%;}
.polaroid .hand{
  position:absolute; left:16px; bottom:16px; max-width:calc(100% - 32px);
  padding:6px 14px 7px; background:#FBF6EA; text-align:left;
  transform:rotate(-2.5deg); box-shadow:0 6px 14px -6px rgba(0,0,0,.45);
  font-size:clamp(22px, 2.2vw, 30px);
}
.polaroid .tape{top:-12px;}
.jr-paper::after{z-index:3;}
.pno{bottom:10px; z-index:4;}
.jr-cover, .jr-end{padding:10% 9% 12%; gap:20px;}
.jr-spread.is-active .polaroid::after{ /* lupa discreta */
  content:'\f00e'; font-family:'Font Awesome 6 Free'; font-weight:900; position:absolute; top:12px; right:12px;
  width:36px; height:36px; border-radius:50%; background:rgba(2,26,51,.55); color:#fff; font-size:14px;
  display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s;
}
.jr-spread.is-active .polaroid:hover::after{opacity:1;}
@media (max-width:699px){
  .jr-stage{--pw:min(310px, 80vw); --ph:calc(var(--pw) * 1.28);}
  .polaroid, .polaroid.wide, .polaroid.tall{inset:11px 11px 28px;}
  .polaroid .hand{left:12px; bottom:12px; font-size:22px; padding:4px 11px 5px;}
  .pno{bottom:7px;}
}

/* ---------- foto livre da praia: texto à direita + créditos (CC BY-SA 4.0) ---------- */
.beach-right .beach-box{margin-left:auto;}
.beach-right::before{background:linear-gradient(270deg, rgba(2,26,51,.88) 0%, rgba(2,26,51,.55) 42%, rgba(2,26,51,0) 75%);}
.beach-right .beach-bg img{object-position:35% 55%;}
.photo-credit{position:absolute; right:14px; bottom:10px; margin:0; font-size:11px; color:rgba(255,255,255,.8); text-shadow:0 1px 3px rgba(0,0,0,.6);}
.beach-right .photo-credit{right:auto; left:14px;}
.photo-credit a, .jr-credit a, .foot-credit a{color:inherit;}
.jr-credit{position:absolute; right:14px; bottom:9px; z-index:4; font-size:10px; color:rgba(11,58,102,.6);}
.map-credit{font-size:10.5px !important; margin-top:6px !important;}
.foot-credit{margin-top:8px; font-size:11.5px; color:rgba(255,255,255,.5);}
@media (max-width:700px){
  .beach-right::before{background:linear-gradient(180deg, rgba(2,26,51,0) 25%, rgba(2,26,51,.88) 72%);}
  .beach-right .beach-box{margin-left:0;}
  .photo-credit, .beach-right .photo-credit{left:auto; right:12px; top:10px; bottom:auto; max-width:70%; text-align:right;}
}
@media (max-width:700px){ .beach.beach-right{padding-top:300px;} .beach-right .beach-bg{inset:0;} .beach-right .beach-bg img{object-position:18% 62%;} .beach-right::before{background:linear-gradient(180deg, rgba(2,26,51,.25) 0%, rgba(2,26,51,0) 22%, rgba(2,26,51,0) 45%, rgba(2,26,51,.9) 72%);} }
@media (max-width:700px){ .beach.beach-right{padding:0 0 52px;} .beach-right .beach-bg{position:relative; inset:auto; height:270px; z-index:0;} .beach-right .beach-bg img{object-position:20% 62%; transform:none !important;} .beach-right .beach-bg::after{content:""; position:absolute; left:0; right:0; bottom:0; height:90px; background:linear-gradient(180deg, rgba(2,26,51,0), var(--navy-deep));} .beach-right::before{display:none;} .beach-right .wrap{padding-top:22px;} }

/* =========================================================
   GALERIA — CoverFlow 3D (porta do componente React "3D CoverFlow
   Carousel" para CSS/JS puro, nas cores do Solar)
   ========================================================= */
.cv-section{
  --cw:min(330px, 70vw); --ch:calc(var(--cw) * 1.5);
  position:relative; overflow:hidden; isolation:isolate; padding:90px 0 70px;
  background:var(--navy-deep); color:var(--white); user-select:none; -webkit-user-select:none;
}
.cv-ambient{position:absolute; inset:0; z-index:-1; overflow:hidden; pointer-events:none;}
.cv-ambient img{width:100%; height:100%; object-fit:cover; filter:brightness(.28) blur(32px); transform:scale(1.15); transition:opacity .6s ease;}
.cv-ambient img.is-fading{opacity:0;}
.cv-ambient::after{content:''; position:absolute; inset:0; background:radial-gradient(circle at center, rgba(2,26,51,.25) 0%, rgba(2,26,51,.92) 100%);}
.cv-inner{position:relative; max-width:1150px; margin:0 auto; padding:0 16px; display:flex; flex-direction:column; align-items:center;}
.cv-eyebrow{display:flex; align-items:center; gap:12px;}
.cv-eyebrow .kicker{margin:0;}
.cv-eyebrow span:not(.kicker){width:36px; height:1px; background:linear-gradient(90deg, transparent, var(--solar));}
.cv-eyebrow span:last-child{background:linear-gradient(90deg, var(--solar), transparent);}
.cv-heading{text-align:center; margin:14px 0 34px;}
.cv-stage{position:relative; width:100%; height:calc(var(--ch) + 20px); display:flex; justify-content:center; align-items:center; perspective:1400px; margin-bottom:28px; touch-action:pan-y;}
.cv-card{
  position:absolute; width:var(--cw); height:var(--ch); border-radius:18px; overflow:hidden;
  background:#0b1b2e; border:1px solid rgba(255,255,255,.12);
  transform-origin:center center; transition:transform .8s cubic-bezier(.25,1,.5,1), opacity .8s cubic-bezier(.25,1,.5,1), filter .8s ease, box-shadow .8s ease;
  box-shadow:0 15px 35px rgba(0,0,0,.5); cursor:pointer; opacity:0; pointer-events:none;
}
.cv-card.is-visible{pointer-events:auto;}
.cv-card.is-center{cursor:zoom-in; box-shadow:0 25px 60px rgba(0,0,0,.85), 0 0 35px rgba(236,91,19,.28);}
.cv-photo{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.cv-shade{position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(0,0,0,.4) 0%, rgba(0,0,0,.08) 25%, rgba(0,0,0,.6) 62%, rgba(0,0,0,.94) 100%);}
.cv-content{
  position:relative; z-index:2; height:100%; padding:18px 18px 22px; display:flex; flex-direction:column;
  text-align:center; opacity:0; transform:translateY(16px); transition:opacity .5s ease, transform .5s ease; pointer-events:none;
}
.cv-card.is-center .cv-content{opacity:1; transform:none; pointer-events:auto;}
.cv-tag{align-self:flex-end; font-size:.8rem; font-weight:600; letter-spacing:.06em; color:rgba(255,255,255,.92); text-shadow:0 2px 6px rgba(0,0,0,.8);}
.cv-body{margin-top:auto; display:flex; flex-direction:column; align-items:center; gap:4px;}
.cv-title{font-size:clamp(1.3rem, 5.4vw, 1.65rem); font-weight:900; font-stretch:112%; text-transform:uppercase; letter-spacing:.04em; line-height:1.1; text-shadow:0 3px 12px rgba(0,0,0,.95);}
.cv-line{width:34px; height:2px; border-radius:2px; margin:8px auto 12px; background:var(--solar); box-shadow:0 0 8px rgba(236,91,19,.7);}
.cv-cta{
  display:inline-flex; align-items:center; gap:8px; padding:9px 18px; border-radius:9999px;
  background:linear-gradient(135deg, #F27A3A 0%, var(--solar) 55%, var(--solar-deep) 100%); color:var(--navy-deep);
  font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; text-decoration:none;
  box-shadow:0 4px 14px rgba(0,0,0,.4), 0 0 15px rgba(236,91,19,.3); transition:transform .2s ease, box-shadow .2s ease;
}
.cv-cta:hover{transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.45), 0 0 20px rgba(236,91,19,.45);}
.cv-credit{display:block; margin-top:10px; font-size:10px; color:rgba(255,255,255,.75);}
.cv-credit a{color:inherit;}
.cv-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:40; width:46px; height:46px; border-radius:50%;
  background:rgba(0,0,0,.55); border:1px solid rgba(255,255,255,.2); color:var(--white); font-size:15px;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  box-shadow:0 8px 24px rgba(0,0,0,.4); transition:background .2s ease, border-color .2s ease;
}
.cv-arrow:hover{background:var(--solar); border-color:var(--solar); color:var(--navy-deep);}
.cv-prev{left:8px;} .cv-next{right:8px;}
.cv-dots{display:flex; align-items:center; justify-content:center; gap:8px;}
.cv-dots button{height:8px; width:8px; border-radius:9999px; border:0; padding:0; cursor:pointer; background:rgba(255,255,255,.28); transition:all .3s ease;}
.cv-dots button.is-active{width:28px; background:var(--solar); box-shadow:0 0 10px rgba(236,91,19,.7);}
@media (min-width:900px){ .cv-prev{left:24px;} .cv-next{right:24px;} }
@media (max-width:560px){
  .cv-section{padding:64px 0 52px;}
  .cv-arrow{width:40px; height:40px; top:auto; bottom:-62px; transform:none;}
  .cv-prev{left:calc(50% - 150px);} .cv-next{right:calc(50% - 150px);}
  .cv-stage{margin-bottom:34px;}
}
@media (prefers-reduced-motion: reduce){ .cv-card, .cv-content, .cv-ambient img{transition:none;} }

/* =========================================================
   RODAPÉ LEGAL, AVISO DE COOKIES, PÁGINAS LEGAIS, 404
   ========================================================= */
.foot-company{margin-top:8px; font-size:12.5px; color:rgba(255,255,255,.6);}
.foot-addr{margin-top:8px; font-size:12.5px; color:rgba(255,255,255,.6);}
.foot-addr a, .foot-legal a{color:inherit; text-decoration:none;}
.foot-addr a:hover, .foot-legal a:hover, .foot-legal button:hover{color:var(--solar);}
.foot-legal{display:flex; justify-content:center; flex-wrap:wrap; gap:6px 22px; margin-top:14px; font-size:13px; color:rgba(255,255,255,.8);}
.foot-legal button{background:none; border:0; padding:0; font:inherit; color:inherit; cursor:pointer;}
.foot-legal a, .foot-legal button{text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(255,255,255,.3);}

.cookie-bar{
  position:fixed; z-index:300; left:16px; right:16px; bottom:16px; max-width:760px; margin:0 auto;
  background:var(--white); color:var(--ink); border-radius:10px; border-top:5px solid var(--solar);
  box-shadow:0 24px 60px -12px rgba(2,26,51,.55); padding:20px 22px;
  display:flex; align-items:center; gap:20px; animation:cookieIn .5s var(--ease);
}
.cookie-bar[hidden]{display:none;}
@keyframes cookieIn{from{opacity:0; transform:translateY(20px);}}
.cookie-bar p{font-size:14.5px; color:var(--muted); line-height:1.5;}
.cookie-bar p a{color:var(--navy); font-weight:600;}
.cookie-actions{display:flex; gap:10px; flex-shrink:0;}
.cookie-actions .btn{padding:11px 20px; font-size:14px; min-width:110px;}
@media (max-width:640px){
  .cookie-bar{flex-direction:column; align-items:stretch; left:10px; right:10px; bottom:10px; padding:18px;}
  .cookie-actions .btn{flex:1;}
}

body.legal header.site, body.page-404 header.site{position:sticky;}
.legal-hero{background:var(--navy-deep); color:var(--white); padding:56px 0 46px;}
.legal-hero h1{font-size:clamp(32px, 5vw, 56px);}
.legal-date{margin-top:12px; color:rgba(255,255,255,.65); font-size:14px;}
.legal-section{padding:56px 0 90px;}
.legal-doc{max-width:820px; margin:0 auto; background:var(--white); border-radius:10px; padding:48px clamp(20px, 5vw, 56px); box-shadow:0 30px 60px -40px rgba(2,26,51,.35);}
.legal-doc .lead-legal{font-size:17.5px; color:var(--ink); margin-bottom:8px;}
.legal-doc h2{font-size:clamp(20px, 2.2vw, 24px); font-stretch:108%; margin:38px 0 12px; color:var(--navy);}
.legal-doc h3{font-size:17px; font-stretch:105%; margin:22px 0 8px; color:var(--ink);}
.legal-doc p, .legal-doc li{color:#3d4752; font-size:15.5px; line-height:1.7;}
.legal-doc p + p{margin-top:10px;}
.legal-doc ul{padding-left:20px; margin:10px 0;}
.legal-doc li + li{margin-top:6px;}
.legal-doc a{color:var(--solar-deep); font-weight:600;}
.legal-doc .link-btn{background:none; border:0; padding:0; font:inherit; font-weight:600; color:var(--solar-deep); text-decoration:underline; cursor:pointer;}
.table-wrap{overflow-x:auto; margin:14px 0; border:1px solid var(--line); border-radius:8px;}
.legal-doc table{width:100%; border-collapse:collapse; font-size:14.5px; min-width:520px;}
.legal-doc th, .legal-doc td{text-align:left; padding:11px 14px; border-bottom:1px solid var(--line); vertical-align:top; color:#3d4752;}
.legal-doc th{background:var(--paper); color:var(--navy); font-weight:700; font-size:13px; letter-spacing:.03em;}
.legal-doc tr:last-child td{border-bottom:0;}

.nf-hero{min-height:70vh;}
.sign-text{white-space:nowrap; font-size:clamp(28px, 8.2vw, 128px); letter-spacing:.1em; padding-left:.1em;}
