/* ==========================================================

   PORTO CARIOCA â€” estilo clÃ¡ssico refinado

   ========================================================== */

:root{

  --navy:#1d2d44;

  --ink:#2c3b52;

  --muted:#6b7684;

  --terra:#b4755b;

  --terra-dk:#9c6049;

  --cream:#fbf8f3;

  --sand:#f3ece2;

  --sea:#d4e6ec;

  --gold: #c3a36d;

  --line:rgba(29,45,68,.12);

  --radius:16px; /* Levemente menos arredondado para parecer mais premium que 18px */

  --shadow:0 18px 40px -22px rgba(29,45,68,.35);

  --serif:'Playfair Display',Georgia,serif;

  --sans:'Plus Jakarta Sans','Roboto',system-ui,sans-serif;

  --script:'Caveat',cursive;

  --ease:cubic-bezier(.22,.8,.3,1);

}

*{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth;scroll-padding-top:84px;overflow-x:hidden;width:100%;max-width:100%}

body{

  font-family:var(--sans);font-weight:300;color:var(--ink);

  background:var(--cream);line-height:1.7;font-size:17px;

  -webkit-font-smoothing:antialiased;overflow-x:hidden;width:100%;max-width:100%;

}

img{max-width:100%;display:block}

a{color:inherit;text-decoration:none}

ul{list-style:none}

button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

.container{width:min(1180px,92%);margin-inline:auto}

.ico{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}

.script{font-family:var(--script);font-weight:500;color:var(--terra);line-height:1.15}

.muted{color:var(--muted)}

.center{text-align:center}



h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--navy);line-height:1.1}

h1{font-size:clamp(2.6rem,5.4vw,4.4rem);letter-spacing:-.01em}

h2{font-size:clamp(2rem,3.6vw,2.9rem);margin-bottom:.6rem}

h3{font-size:1.45rem}

.eyebrow{font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--terra);font-weight:500;margin-bottom:.7rem}

.lead{font-size:1.12rem;max-width:30rem;margin:1.2rem 0 1.8rem}



/* ---------- Botões ---------- */

.btn {

  display: inline-flex;

  align-items: center;

  gap: 0.45rem;

  padding: 0.52rem 1.15rem;

  border-radius: 999px;

  font-family: var(--sans);

  font-size: 0.85rem;

  font-weight: 500;

  letter-spacing: 0.02em;

  transition: transform 0.25s var(--ease), box-shadow 0.25s, background 0.25s;

  line-height: 1.25;

  white-space: nowrap;

}

.btn--terra {

  background: var(--terra);

  color: #fff !important;

  box-shadow: 0 6px 16px -6px rgba(180, 117, 91, 0.55);

}

.btn--terra:hover {

  background: var(--terra-dk);

  transform: translateY(-2px);

  box-shadow: 0 10px 20px -6px rgba(180, 117, 91, 0.65);

}

.btn--terra:hover .ico { transform: translateX(2px); }

.btn .ico {

  width: 15px;

  height: 15px;

  transition: transform 0.25s;

}

.btn--sm {

  padding: 0.36rem 0.82rem;

  font-size: 0.8rem;

  gap: 0.35rem;

}

.btn-sep-ou {

  font-size: 0.78rem;

  font-weight: 500;

  color: var(--muted);

  font-style: italic;

  opacity: 0.85;

  user-select: none;

  padding: 0 0.15rem;

}

.nav__cta-stack {

  display: inline-flex;

  flex-direction: column;

  align-items: center;

  gap: 2px;

  margin-left: 0.35rem;

}

.btn--xs {

  padding: 0.22rem 0.62rem !important;

  font-size: 0.72rem !important;

  gap: 0.28rem !important;

  line-height: 1.15 !important;

  border-radius: 999px !important;

  box-shadow: 0 2px 6px -2px rgba(180, 117, 91, 0.45) !important;

}

.btn--xs .ico {

  width: 12px !important;

  height: 12px !important;

}

.nav-stack-ou {

  font-size: 0.65rem;

  line-height: 1;

  font-style: italic;

  color: var(--muted);

  opacity: 0.8;

  user-select: none;

}

.link-btn{display:inline-flex;align-items:center;gap:.5rem;color:var(--terra);font-weight:400;border-bottom:1px solid rgba(180,117,91,.35);padding-bottom:2px;transition:gap .3s,border-color .3s}

.link-btn:hover{gap:.9rem;border-color:var(--terra)}



/* ---------- Barra Superior de Tradução (Canto Superior do Site) ---------- */

.top-bar {

  background: rgba(251, 248, 243, 0.45);

  backdrop-filter: blur(10px);

  -webkit-backdrop-filter: blur(10px);

  border-bottom: 1px solid rgba(29, 45, 68, 0.08);

  font-family: var(--sans);

  position: relative;

  z-index: 52;

}

.top-bar__inner {

  display: flex;

  justify-content: flex-end;

  align-items: center;

  gap: 0.65rem;

  min-height: 38px;

  padding-top: 4px;

  padding-bottom: 4px;

}

.audio-btn {

  display: inline-flex;

  align-items: center;

  gap: 0.45rem;

  background: rgba(255, 255, 255, 0.85);

  padding: 0.22rem 0.65rem;

  border-radius: 999px;

  border: 1px solid rgba(29, 45, 68, 0.12);

  box-shadow: 0 1px 4px rgba(29, 45, 68, 0.05);

  cursor: pointer;

  color: var(--navy);

  font-family: var(--sans);

  font-size: 0.78rem;

  font-weight: 600;

  transition: transform 0.2s var(--ease), border-color 0.2s, box-shadow 0.2s, background 0.2s, color 0.2s;

  user-select: none;

  line-height: 1;

}

.audio-btn:hover {

  border-color: var(--terra);

  transform: translateY(-1px);

  box-shadow: 0 2px 6px rgba(180, 117, 91, 0.2);

}

.audio-btn.is-playing {

  border-color: rgba(37, 211, 102, 0.5);

  color: #128C7E;

}

.audio-btn.is-muted {

  color: var(--muted);

  opacity: 0.85;

}

.audio-btn .ico {

  width: 16px;

  height: 16px;

  flex-shrink: 0;

}

.audio-btn__label {

  white-space: nowrap;

}

.translate-widget {

  display: inline-flex;

  align-items: center;

  gap: 0.65rem;

  background: rgba(255, 255, 255, 0.85);

  padding: 0.22rem 0.55rem 0.22rem 0.75rem;

  border-radius: 999px;

  border: 1px solid rgba(29, 45, 68, 0.12);

  box-shadow: 0 1px 4px rgba(29, 45, 68, 0.05);

}

.translate-widget__text {

  font-size: 0.78rem;

  font-weight: 600;

  color: var(--navy);

  letter-spacing: 0.03em;

  white-space: nowrap;

  user-select: none;

}

.translate-flags {

  display: flex;

  align-items: center;

  gap: 0.35rem;

}

.flag-btn {

  background: #fff;

  border: 1.5px solid rgba(29, 45, 68, 0.18);

  border-radius: 5px;

  padding: 2px 3px;

  cursor: pointer;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  transition: transform 0.2s var(--ease), border-color 0.2s, box-shadow 0.2s;

  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);

  line-height: 1;

}

.flag-btn:hover {

  transform: translateY(-2px) scale(1.08);

  border-color: var(--terra);

  box-shadow: 0 4px 8px rgba(180, 117, 91, 0.25);

}

.flag-btn.is-active {

  border-color: var(--terra);

  box-shadow: 0 0 0 2px rgba(180, 117, 91, 0.4), 0 2px 5px rgba(0, 0, 0, 0.12);

  transform: scale(1.06);

}

.flag-svg {

  width: 25px;

  height: 17px;

  border-radius: 2px;

  display: block;

  pointer-events: none;

}



/* ---------- Header ---------- */

.header{

  position:sticky;top:0;z-index:50;

  background:rgba(251, 248, 243, 0.55);

  backdrop-filter:blur(10px);

  -webkit-backdrop-filter:blur(10px);

  border-bottom:1px solid rgba(29, 45, 68, 0.08);

  transition:background .3s,border-color .3s,box-shadow .3s;

}

.header.scrolled{

  background:rgba(251, 248, 243, 0.96);

  backdrop-filter:blur(12px);

  -webkit-backdrop-filter:blur(12px);

  border-color:var(--line);

  box-shadow:0 10px 30px -24px rgba(29,45,68,.5);

}

.header__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:84px}

.brand img{width:150px;height:auto;mix-blend-mode:multiply;filter:contrast(1.05)}

.nav{display:flex;align-items:center;gap:clamp(0.8rem, 1.2vw, 1.5rem);font-family:var(--sans);font-size:0.95rem;font-weight:500}

.nav a{white-space:nowrap}

.nav a:not(.btn){position:relative;padding:.3rem 0;color:var(--navy);transition:color .3s}

.nav a:not(.btn)::after{content:"";position:absolute;left:0;bottom:0;height:1.5px;width:100%;background:var(--terra);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}

.nav a:not(.btn):hover,.nav a.is-active{color:var(--terra)}

.nav a:not(.btn):hover::after,.nav a.is-active::after{transform:scaleX(1)}

.nav .btn{font-family:var(--sans)}

.header__tag{font-size:1.1rem;text-align:right;color:var(--navy);opacity:.75}

.burger{display:none;width:44px;height:44px;border-radius:12px;color:var(--navy)}

.burger .ico{width:28px;height:28px}



/* ---------- Hero Banner Visual (Aquarela Panorâmica) ---------- */

.hero {

  position: relative;

  margin-top: -124px;

  padding-top: 136px;

  padding-bottom: 0;

  min-height: 520px;

  overflow: hidden;

  background: var(--cream);

  border-bottom: 1px solid var(--line);

}

.hero--banner {

  display: flex;

  align-items: flex-end;

}

.hero__media {

  position: absolute !important;

  inset: 0 !important;

  width: 100% !important;

  height: 100% !important;

  z-index: 0;

  pointer-events: none;

  overflow: hidden;

}

.hero__media img {

  width: 100% !important;

  height: 100% !important;

  object-fit: cover !important;

  object-position: center 46% !important;

  opacity: 1 !important; /* Aquarela 100% nítida e visível */

  transform: none !important;

  filter: saturate(1.08) contrast(1.02);

}

.hero__media::after {

  content: "";

  position: absolute;

  inset: 0;

  background: linear-gradient(

    180deg,

    rgba(251, 248, 243, 0.22) 0%,

    rgba(251, 248, 243, 0) 16%,

    rgba(251, 248, 243, 0) 65%,

    rgba(251, 248, 243, 0.18) 88%,

    rgba(251, 248, 243, 0.55) 100%

  );

  pointer-events: none;

  z-index: 1;

}



/* ---------- Card de Apresentação Premium (Abaixo do Hero) ---------- */

.hero-card-section {

  position: relative;

  z-index: 10;

  margin-top: -35px;

  padding-bottom: 2.2rem;

}

.hero-card {

  background: #ffffff;

  border-radius: 20px;

  border: 1px solid rgba(220, 214, 203, 0.85);

  box-shadow: 0 20px 48px -16px rgba(29, 45, 68, 0.12), 0 4px 16px rgba(0, 0, 0, 0.03);

  padding: clamp(1.75rem, 3.2vw, 2.6rem);

  transition: box-shadow 0.3s var(--ease), transform 0.3s var(--ease);

}

.hero-card:hover {

  box-shadow: 0 24px 54px -14px rgba(29, 45, 68, 0.16), 0 6px 20px rgba(0, 0, 0, 0.04);

}

.hero-card__meta {

  display: flex;

  align-items: center;

  justify-content: space-between;

  flex-wrap: wrap;

  gap: 0.75rem;

  margin-bottom: 0.6rem;

}

.hero-card__eyebrow {

  font-size: 0.76rem;

  letter-spacing: 0.22em;

  text-transform: uppercase;

  color: var(--terra);

  font-weight: 600;

  display: inline-flex;

  align-items: center;

  gap: 0.5rem;

  margin: 0;

}

.hero-card__eyebrow::before {

  content: "";

  display: inline-block;

  width: 18px;

  height: 2px;

  background: var(--terra);

  border-radius: 2px;

}

.hero-card__superhost {

  display: inline-flex;

  align-items: center;

  gap: 0.4rem;

  font-size: 0.76rem;

  font-weight: 600;

  color: var(--terra);

  background: #faf4ee;

  border: 1px solid rgba(180, 117, 91, 0.25);

  padding: 0.25rem 0.8rem;

  border-radius: 999px;

  letter-spacing: 0.03em;

}

.hero-card__superhost .ico {

  width: 1rem;

  height: 1rem;

  color: var(--gold);

}

.hero-card__title {

  font-family: var(--serif);

  font-size: clamp(1.75rem, 2.7vw, 2.45rem);

  font-weight: 600;

  line-height: 1.18;

  letter-spacing: -0.015em;

  color: var(--navy);

  margin: 0.35rem 0 0.65rem;

}

.hero-card__lead-eco {
  display: block;
  margin-top: 0.55rem;
}
.hero-card__lead {

  font-size: 1.02rem;

  line-height: 1.6;

  color: #4a5568;

  margin: 0;

  max-width: 820px;

  font-weight: 400;

}

.hero-card__divider {

  height: 1px;

  background: linear-gradient(90deg, rgba(220, 214, 203, 0.9) 0%, rgba(220, 214, 203, 0.25) 100%);

  margin: 1.6rem 0;

}

.hero-card__bottom {

  display: flex;

  align-items: center;

  justify-content: space-between;

  flex-wrap: wrap;

  gap: 1.5rem;

}

.hero-card__facts {

  display: flex;

  flex-wrap: wrap;

  align-items: center;

  gap: 0.85rem;

  margin: 0;

  padding: 0;

}

.hero-fact {

  display: inline-flex;

  align-items: center;

  gap: 0.75rem;

  padding: 0.55rem 0.95rem;

  background: #faf8f5;

  border: 1px solid rgba(220, 214, 203, 0.6);

  border-radius: 12px;

  transition: transform 0.25s var(--ease), box-shadow 0.25s, border-color 0.25s;

}

.hero-fact:hover {

  transform: translateY(-2px);

  background: #ffffff;

  border-color: rgba(180, 117, 91, 0.4);

  box-shadow: 0 6px 14px -3px rgba(29, 45, 68, 0.08);

}

.hero-fact__icon {

  width: 36px;

  height: 36px;

  border-radius: 9px;

  background: rgba(180, 117, 91, 0.12);

  color: var(--terra);

  display: flex;

  align-items: center;

  justify-content: center;

  flex-shrink: 0;

}

.hero-fact__icon .ico {

  width: 1.25rem;

  height: 1.25rem;

}

.hero-fact__text {

  display: flex;

  flex-direction: column;

  line-height: 1.2;

}

.hero-fact__text strong {

  font-size: 0.92rem;

  font-weight: 700;

  color: var(--navy);

}

.hero-fact__text span {

  font-size: 0.76rem;

  color: var(--muted);

}

.hero-card__actions {

  display: inline-flex;

  align-items: center;

  gap: 0.75rem;

  flex-wrap: wrap;

}

.hero-card__actions .btn {

  font-size: 0.88rem;

  padding: 0.62rem 1.25rem;

  font-weight: 600;

}



/* Botão outline premium */

.btn--outline {

  background: #ffffff;

  color: var(--navy);

  border: 1px solid rgba(29, 45, 68, 0.2);

  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);

}

.btn--outline:hover {

  background: #faf7f2;

  border-color: var(--terra);

  color: var(--terra);

  transform: translateY(-2px);

  box-shadow: 0 6px 16px -4px rgba(29, 45, 68, 0.12);

}

.btn--outline .ico {

  color: var(--terra);

}



/* ---------- SeÃ§Ãµes ---------- */

.section{padding:clamp(3.5rem,5vw,4.5rem) 0;position:relative}

.section--sand{background:var(--sand)}

.section--sand::before,.section--sand::after{content:"";position:absolute;left:0;right:0;height:46px;pointer-events:none;

  background:var(--cream);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 46' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v14c-100 22-200 22-300 6S700 0 600 12 400 40 300 34 100 6 0 20z'/%3E%3C/svg%3E") center/100% 100%;

  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 46' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v14c-100 22-200 22-300 6S700 0 600 12 400 40 300 34 100 6 0 20z'/%3E%3C/svg%3E") center/100% 100%}

.section--sand::before{top:-1px}

.section--sand::after{bottom:-1px;transform:scaleY(-1)}



.split{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(2rem,6vw,5rem);align-items:start;margin-bottom:3.5rem}

.split__body p+p{margin-top:1rem}

.split__body strong{font-weight:500;color:var(--navy)}

.note{font-size:1.5rem;margin-top:1rem}



.rooms{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}

.room{background:#fff;border-radius:var(--radius);padding:2rem 1.8rem;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.8);transition:transform .4s var(--ease)}

.room:hover{transform:translateY(-6px)}

.room__ico{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--sea);color:var(--navy);margin-bottom:1.1rem}

.room__ico .ico{width:28px;height:28px}

.room h3{margin-bottom:.4rem}

.room p{font-size:.97rem;color:var(--muted)}



/* HeranÃ§a Brasil e Portugal: aplicamos a textura e referÃªncias nesta caixa, de forma bem sutil */

.story{

  position:relative;display:grid;grid-template-columns:auto 1fr;gap:2.5rem;align-items:center;margin-top:3.5rem;padding:2.4rem 2.6rem;border-radius:var(--radius);

  background:linear-gradient(120deg,rgba(212,230,236,.65),rgba(255,255,255,.7));border:1px solid rgba(255,255,255,.8); overflow: hidden;

}

.story__bg{

  position:absolute; inset:0; pointer-events:none; opacity:0.04;

  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cg fill='none' stroke='%231d2d44' stroke-width='1.5'%3E%3Cpath d='M40 0L80 40L40 80L0 40z'/%3E%3Cpath d='M40 20L60 40L40 60L20 40z'/%3E%3Ccircle cx='40' cy='40' r='10'/%3E%3Ccircle cx='40' cy='40' r='4'/%3E%3C/g%3E%3C/svg%3E");

  background-size: 80px; z-index: 0;

}

.story__mark{font-size:2.8rem;white-space:nowrap;position:relative;z-index:2;}

.story__mark span{color:var(--navy)}

.story__text{font-family:var(--serif);font-size:1.4rem;line-height:1.5;color:var(--navy);position:relative;z-index:2;}

.story__text em{color:var(--terra); font-style:italic;}

.story__icons { display: flex; gap: 1rem; margin-top: 1.2rem; color: var(--gold); position:relative; z-index:2; }

.story__icons .ico { width: 32px; height: 32px; stroke-width: 1; opacity: 0.8; }



/* ---------- Galeria ---------- */

.gallery-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2.2rem;flex-wrap:wrap}

.gallery-head .muted{max-width:30rem}

.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}

.g-item{position:relative;border-radius:14px;overflow:hidden;cursor:zoom-in;aspect-ratio:4/5;box-shadow:var(--shadow)}

.g-item img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}

.g-item:hover img{transform:scale(1.08)}

.g-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.5rem 1rem .9rem;font-family:var(--serif);font-size:1.15rem;color:#fff;

  background:linear-gradient(transparent,rgba(20,32,50,.7));transition:padding .4s}

.g-item:hover figcaption{padding-bottom:1.3rem}



/* ---------- VÃ­deo ---------- */

.section--video{padding-top:0}

.video{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(2rem,6vw,4.5rem);align-items:center}

.video__thumb{position:relative;display:block;width:100%;aspect-ratio:16/10;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}

.video__thumb img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}

.video__thumb:hover img{transform:scale(1.06)}

.play{position:absolute;inset:0;margin:auto;width:84px;height:84px;border-radius:50%;display:grid;place-items:center;

  background:rgba(29,45,68,.55);backdrop-filter:blur(6px);color:#fff;border:1.5px solid rgba(255,255,255,.7);transition:transform .35s var(--ease),background .3s}

.play .ico{width:34px;height:34px;margin-left:4px}

.video__thumb:hover .play{transform:scale(1.12);background:var(--terra)}

.video__cap{position:absolute;left:1.4rem;bottom:1rem;color:#fff;font-size:1.4rem;text-shadow:0 2px 10px rgba(0,0,0,.5)}

.video__text p:not(.eyebrow):not(.note){margin:.4rem 0 1.5rem;color:var(--muted)}



/* ---------- Comodidades ---------- */

.amen-head{margin-bottom:3rem}

.amen{display:grid;grid-template-columns:repeat(7,1fr);gap:1rem;text-align:center}

.amen li{display:flex;flex-direction:column;align-items:center;gap:.2rem}

.amen__ico{display:grid;place-items:center;width:78px;height:78px;border-radius:50%;background:var(--sea);color:var(--navy);margin-bottom:.8rem;transition:transform .4s var(--ease),background .3s,color .3s}

.amen__ico .ico{width:32px;height:32px}

.amen li:hover .amen__ico{transform:translateY(-6px) scale(1.06);background:var(--terra);color:#fff}

.amen b{font-weight:500;color:var(--navy);font-size:.98rem;line-height:1.25}

.amen small{color:var(--muted);font-size:.82rem;line-height:1.3}



/* ---------- LocalizaÃ§Ã£o ---------- */

.loc{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,6vw,4.5rem);align-items:center}

.loc__map{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:block;cursor:pointer;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}

.loc__map:hover{transform:translateY(-3px);box-shadow:0 24px 50px -20px rgba(29,45,68,.45)}

.loc__map img{width:100%;aspect-ratio:4/3;object-fit:cover}

.pin{position:absolute;left:46%;top:46%;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--terra);color:#fff;

  box-shadow:0 8px 20px rgba(0,0,0,.25);animation:pulse 2.4s infinite}

.pin .ico{width:26px;height:26px}

@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(180,117,91,.55),0 8px 20px rgba(0,0,0,.25)}70%{box-shadow:0 0 0 26px rgba(180,117,91,0),0 8px 20px rgba(0,0,0,.25)}100%{box-shadow:0 0 0 0 rgba(180,117,91,0),0 8px 20px rgba(0,0,0,.25)}}

.loc__script{position:absolute;left:1.2rem;top:1rem;font-size:1.6rem;background:rgba(251,248,243,.88);padding:.2rem .9rem;border-radius:999px}

.places{margin:1.8rem 0 2rem;display:grid;gap:1rem}

.places li{display:flex;gap:1rem;align-items:center}

.places .ico{width:38px;height:38px;padding:9px;border-radius:50%;background:var(--sea);color:var(--navy)}

.places b{display:block;font-weight:500;color:var(--navy);line-height:1.3}

.places small{color:var(--muted);font-size:.86rem}



/* ---------- Regras ---------- */

.rules{display:grid;grid-template-columns:repeat(5,1fr);gap:1.15rem;margin-top:3rem}

.rules li{

  background:#fff;border-radius:6px;padding:2.5rem 1.5rem;text-align:center;

  box-shadow:0 15px 35px -15px rgba(29,45,68,.1);

  border:1px solid rgba(195,163,109,.4);

  display:flex;flex-direction:column;align-items:center;gap:.6rem;position:relative;

}

.rules li::after{

  content:"";position:absolute;inset:5px;border:1px solid rgba(195,163,109,.15);border-radius:3px;pointer-events:none;

}

.rules .ico{width:36px;height:36px;color:var(--gold);margin-bottom:.5rem;stroke-width:1.2}

.rules b{font-family:var(--sans);font-size:.95rem;font-weight:500;color:var(--navy);letter-spacing:.1em;text-transform:uppercase}

.rules span{color:var(--muted);font-size:.9rem;line-height:1.5}



/* ---------- AvaliaÃ§Ãµes ---------- */

.rev-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:2rem}

.rev-nav{display:flex;gap:.6rem}

.rev-nav button{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--navy);transition:.3s;background:#fff}

.rev-nav button:hover{background:var(--terra);color:#fff;border-color:var(--terra)}

.reviews{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2.4rem)/3);gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.5rem .2rem 1.4rem;scrollbar-width:none}

.reviews::-webkit-scrollbar{display:none}

.review{scroll-snap-align:start;background:#fff;border-radius:var(--radius);padding:1.8rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1rem}

.review p{font-family:var(--serif);font-size:1.25rem;line-height:1.45;color:var(--navy);flex:1}

.stars{display:flex;gap:2px;color:#c3a36d}

.review footer{display:flex;align-items:center;gap:.8rem;font-size:.95rem;color:var(--muted)}

.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--sea);color:var(--navy);font-weight:500}



/* ---------- CTA ---------- */

.cta{position:relative;text-align:center;padding:clamp(2rem,4vw,3rem) 0 clamp(6rem,10vw,8rem);overflow:hidden;

  background:

    radial-gradient(60% 80% at 15% 100%,rgba(212,230,236,.9),transparent 70%),

    radial-gradient(50% 70% at 90% 100%,rgba(243,226,208,.9),transparent 70%),var(--cream)}

.cta__kicker{letter-spacing:.35em;font-family:var(--serif);color:var(--navy);margin-bottom:.4rem}

.cta h2{font-size:clamp(2.4rem,5vw,3.8rem)}

.cta p:not(.cta__kicker){max-width:34rem;margin:.6rem auto 2rem;color:var(--muted)}

.ico--heart{color:#3b6fb6;fill:#3b6fb6;stroke:none;vertical-align:-.2em}

.cta__wave{position:absolute;left:0;right:0;bottom:0;width:100%;height:110px;fill:var(--navy);opacity:.95}



/* ---------- Footer ---------- */

.footer{background:var(--navy);color:rgba(255,255,255,.8);font-size:.88rem;padding:1.6rem 0}

.footer__inner{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;flex-wrap:wrap}

.footer__inner span{opacity:.5;margin:0 .4rem}

.footer nav{display:flex;gap:1.3rem;flex-wrap:wrap}

.footer nav a:hover{color:#fff}

.social{display:flex;gap:.8rem}

.social a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.3);display:grid;place-items:center;transition:.3s}

.social a:hover{background:var(--terra);border-color:var(--terra);color:#fff}



/* ---------- Proteção contra Download ---------- */

.protected-img-wrap:not(.hero__media), .mosaic__item, .ag-card, .alb-image-wrapper {

  position: relative;

  -webkit-user-select: none;

  -moz-user-select: none;

  -ms-user-select: none;

  user-select: none;

}

.protected-img-wrap img, .mosaic__item img, .ag-card img, .alb-image-wrapper img {

  -webkit-user-drag: none;

  user-select: none;

  -webkit-touch-callout: none;

  pointer-events: none;

}

.photo-shield {

  position: absolute;

  inset: 0;

  z-index: 5;

  background: transparent;

  cursor: pointer;

}



/* ---------- Airbnb Hero & Mosaico ---------- */

.hero-airbnb {

  padding-top: clamp(6.5rem, 8vw, 8rem);

  padding-bottom: 3rem;

  background: linear-gradient(180deg, var(--cream) 0%, rgba(251,248,243,0.6) 100%);

}

.listing-header {

  margin-bottom: 1.4rem;

}

.listing-header h1 {

  font-size: clamp(1.8rem, 3.2vw, 2.6rem);

  color: var(--navy);

  margin-bottom: 0.4rem;

  line-height: 1.2;

}

.listing-meta {

  display: flex;

  align-items: center;

  justify-content: space-between;

  flex-wrap: wrap;

  gap: 1rem;

  font-size: 0.95rem;

  color: var(--muted);

}

.listing-meta__left {

  display: flex;

  align-items: center;

  flex-wrap: wrap;

  gap: 0.6rem;

}

.listing-rating {

  font-weight: 600;

  color: var(--navy);

  display: inline-flex;

  align-items: center;

  gap: 0.25rem;

}

.listing-rating .ico { color: #f59e0b; width: 1.1em; height: 1.1em; }

.listing-meta__sep { opacity: 0.4; }

.listing-location {

  color: var(--navy);

  text-decoration: underline;

  text-underline-offset: 3px;

}

.listing-meta__right {

  display: flex;

  gap: 0.8rem;

}

.listing-action-btn {

  background: transparent;

  border: none;

  font-size: 0.9rem;

  font-weight: 500;

  color: var(--navy);

  display: inline-flex;

  align-items: center;

  gap: 0.4rem;

  cursor: pointer;

  padding: 0.4rem 0.6rem;

  border-radius: 8px;

  transition: background 0.2s;

  text-decoration: underline;

}

.listing-action-btn:hover { background: rgba(29, 45, 68, 0.06); }



/* Mosaico Principal */

.mosaic {

  display: grid;

  grid-template-columns: 2fr 1fr 1fr;

  grid-template-rows: repeat(2, clamp(180px, 22vw, 250px));

  gap: 10px;

  border-radius: 18px;

  overflow: hidden;

  position: relative;

  box-shadow: 0 20px 40px -15px rgba(29, 45, 68, 0.18);

  margin-bottom: 2rem;

  background: #e5e0d8;

}

.mosaic__item {

  position: relative;

  overflow: hidden;

  cursor: pointer;

  background: #dcd6cd;

}

.mosaic__item--main {

  grid-column: 1 / 2;

  grid-row: 1 / 3;

}

.mosaic__item img {

  width: 100%;

  height: 100%;

  object-fit: cover;

  transition: transform 0.6s var(--ease);

  display: block;

}

.mosaic__item:hover img {

  transform: scale(1.05);

}

.mosaic__overlay {

  position: absolute;

  inset: 0;

  background: rgba(0,0,0,0.02);

  transition: background 0.3s;

  z-index: 2;

}

.mosaic__item:hover .mosaic__overlay {

  background: rgba(0,0,0,0.12);

}

.mosaic__tag {

  position: absolute;

  top: 12px;

  left: 12px;

  background: rgba(255, 255, 255, 0.92);

  backdrop-filter: blur(8px);

  color: var(--navy);

  font-size: 0.78rem;

  font-weight: 600;

  padding: 0.3rem 0.7rem;

  border-radius: 999px;

  box-shadow: 0 4px 12px rgba(0,0,0,0.15);

  z-index: 3;

  letter-spacing: 0.04em;

  text-transform: uppercase;

}

.mosaic__btn {

  position: absolute;

  right: 18px;

  bottom: 18px;

  z-index: 6;

  background: #ffffff;

  color: var(--navy);

  font-family: var(--sans);

  font-size: 0.88rem;

  font-weight: 500;

  border: 1px solid rgba(29, 45, 68, 0.2);

  padding: 0.65rem 1.1rem;

  border-radius: 10px;

  cursor: pointer;

  display: inline-flex;

  align-items: center;

  gap: 0.55rem;

  box-shadow: 0 8px 24px rgba(0,0,0,0.18);

  transition: transform 0.25s var(--ease), box-shadow 0.25s, background 0.2s;

}

.mosaic__btn .ico { width: 1.1em; height: 1.1em; }

.mosaic__btn:hover {

  transform: scale(1.04);

  background: #faf8f3;

  box-shadow: 0 12px 28px rgba(0,0,0,0.24);

}



/* Informações Rápidas do Hero */

.hero-details-row {

  display: grid;

  grid-template-columns: 1.5fr 1fr;

  gap: clamp(2rem, 5vw, 4rem);

  align-items: center;

  margin-top: 1.5rem;

}

.hero-details-text .lead {

  font-size: 1.05rem;

  color: #4a5568;

  line-height: 1.6;

  margin-bottom: 1.5rem;

}

.hero-details-row .facts {

  margin-top: 0;

  margin-bottom: 1.2rem;

}

.hero-details-action {

  background: #fff;

  border: 1px solid var(--line);

  border-radius: var(--radius);

  padding: 1.8rem;

  box-shadow: var(--shadow);

  display: flex;

  flex-direction: column;

  gap: 1rem;

  text-align: center;

}

.hero-details-action .price-tag {

  font-family: var(--serif);

  font-size: 1.6rem;

  color: var(--navy);

}

.hero-details-action .price-sub {

  font-size: 0.88rem;

  color: var(--muted);

  margin-top: -0.6rem;

}



/* ---------- Galeria por Cômodos (Airbnb Style) ---------- */

.section--gallery {

  padding-top: 2rem;

}

.gallery-head {

  display: flex;

  justify-content: space-between;

  align-items: flex-end;

  gap: 1.5rem;

  margin-bottom: 1.8rem;

  flex-wrap: wrap;

}

.gallery-badge {

  display: inline-flex;

  align-items: center;

  gap: 0.4rem;

  background: rgba(193, 119, 103, 0.12);

  color: var(--terra);

  font-size: 0.82rem;

  font-weight: 500;

  padding: 0.4rem 0.85rem;

  border-radius: 999px;

  border: 1px solid rgba(193, 119, 103, 0.25);

}

.gallery-badge .ico { width: 1.1em; height: 1.1em; }



/* Tabs de Filtro por Cômodo */

.gallery-tabs {

  display: flex;

  gap: 0.6rem;

  overflow-x: auto;

  padding: 0.4rem 0 1.4rem;

  margin-bottom: 1rem;

  scrollbar-width: none;

}

.gallery-tabs::-webkit-scrollbar { display: none; }

.tab-btn {

  background: #fff;

  border: 1.5px solid var(--line);

  color: var(--navy);

  font-family: var(--sans);

  font-size: 0.9rem;

  font-weight: 500;

  padding: 0.65rem 1.25rem;

  border-radius: 999px;

  cursor: pointer;

  display: inline-flex;

  align-items: center;

  gap: 0.45rem;

  white-space: nowrap;

  transition: all 0.25s var(--ease);

  box-shadow: 0 2px 6px rgba(0,0,0,0.03);

}

.tab-btn span {

  font-size: 0.8rem;

  opacity: 0.65;

  font-weight: 400;

}

.tab-btn:hover {

  border-color: var(--terra);

  color: var(--terra);

  transform: translateY(-2px);

}

.tab-btn.is-active {

  background: var(--navy);

  border-color: var(--navy);

  color: #fff;

  box-shadow: 0 4px 14px rgba(29, 45, 68, 0.25);

}

.tab-btn.is-active span {

  opacity: 0.85;

  color: #faf8f3;

}



/* Grid da Galeria */

.airbnb-gallery {

  display: grid;

  grid-template-columns: repeat(4, 1fr);

  gap: 1.2rem;

}

.ag-card {

  position: relative;

  border-radius: 14px;

  overflow: hidden;

  aspect-ratio: 4/5;

  cursor: zoom-in;

  box-shadow: var(--shadow);

  background: #eae5de;

  transition: transform 0.4s var(--ease), box-shadow 0.4s;

}

.ag-card:hover {

  transform: translateY(-5px);

  box-shadow: 0 16px 32px -10px rgba(29, 45, 68, 0.25);

}

.ag-card img {

  width: 100%;

  height: 100%;

  object-fit: cover;

  transition: transform 0.8s var(--ease);

  display: block;

}

.ag-card:hover img {

  transform: scale(1.08);

}

.ag-card__badge {

  position: absolute;

  top: 10px;

  left: 10px;

  z-index: 3;

  background: rgba(29, 45, 68, 0.85);

  backdrop-filter: blur(6px);

  color: #fff;

  font-size: 0.72rem;

  font-weight: 500;

  padding: 0.25rem 0.6rem;

  border-radius: 999px;

  letter-spacing: 0.03em;

  text-transform: uppercase;

}

.ag-card figcaption {

  position: absolute;

  left: 0;

  right: 0;

  bottom: 0;

  z-index: 3;

  padding: 2.2rem 1rem 0.85rem;

  font-size: 0.92rem;

  color: #fff;

  line-height: 1.35;

  background: linear-gradient(to top, rgba(14, 22, 34, 0.85) 0%, rgba(14, 22, 34, 0.4) 65%, transparent 100%);

  transition: padding 0.3s;

}

.ag-card:hover figcaption {

  padding-bottom: 1.1rem;

}



.gallery-footer {

  text-align: center;

  margin-top: 2.5rem;

}



/* ---------- Lightbox Modal Estilo Airbnb ---------- */

.airbnb-lightbox {

  position: fixed;

  inset: 0;

  z-index: 10000;

  background: rgba(10, 16, 26, 0.97);

  backdrop-filter: blur(14px);

  display: flex;

  flex-direction: column;

  animation: albFade 0.25s ease-out;

}

.airbnb-lightbox[hidden] {

  display: none !important;

}

@keyframes albFade {

  from { opacity: 0; transform: scale(0.99); }

  to { opacity: 1; transform: scale(1); }

}



/* Header do Lightbox */

.alb-header {

  height: 68px;

  display: flex;

  align-items: center;

  justify-content: space-between;

  padding: 0 1.8rem;

  border-bottom: 1px solid rgba(255, 255, 255, 0.1);

  background: rgba(14, 22, 34, 0.8);

  flex-shrink: 0;

  gap: 1rem;

}

.alb-header__left {

  display: flex;

  align-items: center;

  gap: 0.8rem;

}

.alb-counter {

  color: rgba(255, 255, 255, 0.85);

  font-size: 0.95rem;

  font-weight: 500;

  letter-spacing: 0.05em;

}

.alb-room-tag {

  background: rgba(193, 119, 103, 0.25);

  border: 1px solid rgba(193, 119, 103, 0.5);

  color: #f7c5ba;

  font-size: 0.75rem;

  padding: 0.25rem 0.65rem;

  border-radius: 999px;

  text-transform: uppercase;

  letter-spacing: 0.05em;

}

.alb-header__center {

  display: flex;

  gap: 0.4rem;

  overflow-x: auto;

  scrollbar-width: none;

}

.alb-header__center::-webkit-scrollbar { display: none; }

.alb-filter-chip {

  background: rgba(255, 255, 255, 0.08);

  border: 1px solid rgba(255, 255, 255, 0.15);

  color: rgba(255, 255, 255, 0.75);

  font-size: 0.82rem;

  padding: 0.35rem 0.85rem;

  border-radius: 999px;

  cursor: pointer;

  white-space: nowrap;

  transition: all 0.2s;

}

.alb-filter-chip:hover {

  background: rgba(255, 255, 255, 0.16);

  color: #fff;

}

.alb-filter-chip.is-active {

  background: var(--terra);

  border-color: var(--terra);

  color: #fff;

  font-weight: 500;

}

.alb-header__right {

  display: flex;

  align-items: center;

  gap: 1rem;

}

.alb-lock-pill {

  display: inline-flex;

  align-items: center;

  gap: 0.35rem;

  font-size: 0.75rem;

  color: rgba(255, 255, 255, 0.5);

  border: 1px solid rgba(255, 255, 255, 0.15);

  padding: 0.3rem 0.65rem;

  border-radius: 999px;

}

.alb-lock-pill .ico { width: 1em; height: 1em; }

.alb-btn-close {

  width: 42px;

  height: 42px;

  border-radius: 50%;

  background: rgba(255, 255, 255, 0.1);

  border: 1px solid rgba(255, 255, 255, 0.2);

  color: #fff;

  display: grid;

  place-items: center;

  cursor: pointer;

  transition: background 0.2s, transform 0.2s;

}

.alb-btn-close:hover {

  background: var(--terra);

  border-color: var(--terra);

  transform: rotate(90deg);

}



/* Corpo Principal do Lightbox */

.alb-body {

  flex: 1;

  position: relative;

  display: flex;

  align-items: center;

  justify-content: space-between;

  padding: 1rem 1.5rem;

  overflow: hidden;

}

.alb-nav-btn {

  width: 52px;

  height: 52px;

  border-radius: 50%;

  background: rgba(255, 255, 255, 0.12);

  border: 1px solid rgba(255, 255, 255, 0.25);

  color: #fff;

  display: grid;

  place-items: center;

  cursor: pointer;

  z-index: 10;

  transition: background 0.25s, transform 0.25s, border-color 0.25s;

  flex-shrink: 0;

}

.alb-nav-btn:hover {

  background: var(--terra);

  border-color: var(--terra);

  transform: scale(1.1);

}

.alb-nav-btn:active {

  transform: scale(0.95);

}

.alb-stage {

  flex: 1;

  height: 100%;

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  position: relative;

  max-width: 1200px;

  margin: 0 auto;

  padding: 0 1rem;

}

.alb-image-wrapper {

  position: relative;

  max-height: calc(100vh - 210px);

  max-width: 100%;

  display: flex;

  align-items: center;

  justify-content: center;

}

.alb-image-wrapper img {

  max-height: calc(100vh - 210px);

  max-width: 100%;

  object-fit: contain;

  border-radius: 12px;

  box-shadow: 0 25px 60px rgba(0,0,0,0.6);

  transition: opacity 0.25s ease-out, transform 0.25s ease-out;

}

.alb-caption {

  color: rgba(255, 255, 255, 0.9);

  font-size: 0.95rem;

  margin-top: 0.85rem;

  text-align: center;

  max-width: 750px;

  line-height: 1.4;

  font-weight: 300;

  letter-spacing: 0.02em;

}



/* Rodapé / Miniaturas do Lightbox */

.alb-footer {

  height: 84px;

  background: rgba(14, 22, 34, 0.9);

  border-top: 1px solid rgba(255, 255, 255, 0.1);

  display: flex;

  align-items: center;

  padding: 0 1.5rem;

  flex-shrink: 0;

}

.alb-thumbs {

  display: flex;

  gap: 8px;

  overflow-x: auto;

  scroll-behavior: smooth;

  width: 100%;

  padding: 6px 0;

  scrollbar-width: thin;

  scrollbar-color: rgba(255,255,255,0.2) transparent;

}

.alb-thumbs::-webkit-scrollbar { height: 4px; }

.alb-thumbs::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.25); border-radius: 4px; }

.alb-thumb {

  position: relative;

  width: 68px;

  height: 52px;

  flex-shrink: 0;

  border-radius: 6px;

  overflow: hidden;

  cursor: pointer;

  border: 2px solid transparent;

  opacity: 0.45;

  transition: opacity 0.2s, border-color 0.2s, transform 0.2s;

  background: #111;

}

.alb-thumb img {

  width: 100%;

  height: 100%;

  object-fit: cover;

  pointer-events: none;

}

.alb-thumb:hover {

  opacity: 0.85;

  transform: translateY(-2px);

}

.alb-thumb.is-active {

  opacity: 1;

  border-color: var(--terra);

  transform: scale(1.06);

  box-shadow: 0 0 12px rgba(193, 119, 103, 0.6);

}



/* ---------- Lightbox Antigo (Fallback mantido) ---------- */

.lightbox{position:fixed;inset:0;z-index:100;background:rgba(14,22,34,.94);display:grid;grid-template-columns:70px 1fr 70px;align-items:center;padding:1rem;animation:fade .3s}

.lightbox[hidden]{display:none}



/* ---------- Toast ---------- */

.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,30px);opacity:0;pointer-events:none;background:var(--navy);color:#fff;padding:.8rem 1.4rem;border-radius:999px;font-size:.95rem;transition:.4s var(--ease);z-index:120}

.toast.show{opacity:1;transform:translate(-50%,0)}



/* ---------- Reveal Premium ---------- */

.reveal{opacity:0;transform:translateY(40px);transition:opacity 1.2s cubic-bezier(0.22,1,0.36,1),transform 1.2s cubic-bezier(0.22,1,0.36,1)}

.reveal.fade-left{transform:translateX(40px)}

.reveal.fade-right{transform:translateX(-40px)}

.reveal.zoom-in{transform:scale(0.94);transform-origin:center}

.reveal.in{opacity:1;transform:translate(0,0) scale(1)}

@media (prefers-reduced-motion:reduce){

  *{animation:none!important;transition:none!important}

  .reveal{opacity:1;transform:none!important}

}



/* ---------- Responsivo ---------- */

@media (max-width:1200px){

  .header__tag{display:none}

  .burger{display:grid;place-items:center}

  .nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:rgba(251,248,243,.98);padding:.8rem 6% 1.6rem;

    border-bottom:1px solid var(--line);box-shadow:0 30px 40px -30px rgba(29,45,68,.5);transform:translateY(-12px);opacity:0;pointer-events:none;transition:.35s var(--ease)}

  .nav.open{transform:none;opacity:1;pointer-events:auto}

  .nav a:not(.btn){padding:.9rem 0;border-bottom:1px solid var(--line)}

  .nav .btn{margin-top:1rem;justify-content:center}

  .amen{grid-template-columns:repeat(4,1fr);row-gap:2rem}

}



@media (max-width:900px){

  .header{

    background:rgba(251,248,243,.96);

    backdrop-filter:blur(12px);

    -webkit-backdrop-filter:blur(12px);

    border-bottom:1px solid var(--line);

  }

  .header__inner{min-height:68px;gap:1rem}

  .brand img{width:135px}

  .top-bar__inner{min-height:34px;justify-content:space-between}

  .translate-widget__text{display:none}



  /* Hero Banner Responsivo - Visualização Completa sem Cortes */

  .hero{

    position:relative!important;

    margin-top:0!important;

    padding-top:0!important;

    padding-bottom:0!important;

    min-height:unset!important;

    height:auto!important;

    width:100%!important;

    aspect-ratio:1376 / 768!important;

    display:block!important;

    overflow:hidden!important;

    background:var(--cream)!important;

  }

  .hero__media{

    position:absolute!important;

    inset:0!important;

    width:100%!important;

    height:100%!important;

  }

  .hero__media img{

    width:100%!important;

    height:100%!important;

    object-fit:contain!important;

    object-position:center center!important;

    opacity:1!important;

  }

  .hero__media::after{

    background:linear-gradient(

      180deg,

      rgba(251,248,243,0) 65%,

      rgba(251,248,243,.4) 100%

    )!important;

  }



  .hero-card-section{margin-top:-24px!important;padding-bottom:1.8rem!important}

  .hero-card{padding:1.5rem}

  .hero-card__bottom{flex-direction:column;align-items:stretch;gap:1.2rem}

  .hero-card__actions{width:100%}

  .hero-card__actions .btn{flex:1;justify-content:center}

  .mosaic{grid-template-columns:1fr 1fr;grid-template-rows:260px 140px}

  .mosaic__item--main{grid-column:1 / 3;grid-row:1 / 2}

  .mosaic__item:nth-child(n+4){display:none}

  .hero-details-row{grid-template-columns:1fr}

  .airbnb-gallery{grid-template-columns:repeat(2,1fr);gap:1rem}

  .split,.video,.loc{grid-template-columns:1fr;gap:2rem}

  .split{margin-bottom:2.2rem}

  .rooms{grid-template-columns:1fr;gap:1rem}

  .gallery{grid-template-columns:repeat(2,1fr)}

  .story{grid-template-columns:1fr;gap:1rem;padding:1.8rem}

  .rules{grid-template-columns:repeat(auto-fit, minmax(200px, 1fr))}

  .reviews{grid-auto-columns:82%}

}



@media (max-width:768px){

  /* Evita que animações de entrada façam a tela vazar horizontalmente no celular */

  .reveal.fade-left,

  .reveal.fade-right{

    transform:translateY(24px)!important;

  }

  .reveal.in{

    transform:translate(0,0) scale(1)!important;

  }

}



@media (max-width:560px){

  body{font-size:16px}

  .container{width:93%!important}



  .hero{

    aspect-ratio:1376 / 768!important;

    width:100%!important;

    min-height:unset!important;

    height:auto!important;

    margin-top:0!important;

    padding-top:0!important;

  }

  .hero__media img{

    object-fit:contain!important;

    object-position:center center!important;

  }



  .hero-card-section{margin-top:-18px!important;padding-bottom:1.4rem}

  .hero-card{padding:1.2rem 1rem;border-radius:16px}

  .hero-card__meta{gap:.5rem;margin-bottom:.5rem}

  .hero-card__eyebrow{font-size:.68rem;letter-spacing:.1em}

  .hero-card__superhost{font-size:.72rem;padding:.2rem .6rem}

  .hero-card__title{font-size:clamp(1.35rem,5.2vw,1.68rem)!important;line-height:1.25!important;margin:.25rem 0 .5rem!important}

  .hero-card__lead{font-size:.93rem;line-height:1.55}

  .hero-card__divider{margin:1.1rem 0}

  .hero-card__facts{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;width:100%}

  .hero-fact{padding:.45rem .55rem;gap:.45rem;min-width:0;border-radius:10px}

  .hero-fact__icon{width:30px;height:30px}

  .hero-fact__icon .ico{width:1rem;height:1rem}

  .hero-fact__text{min-width:0;overflow:hidden}

  .hero-fact__text strong{font-size:.82rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block}

  .hero-fact__text span{font-size:.68rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block}

  .hero-card__actions{flex-direction:column;width:100%;gap:.65rem}

  .hero-card__actions .btn{width:100%;justify-content:center;padding:.72rem 1.2rem;font-size:.9rem}



  .mosaic{display:block;height:260px;border-radius:12px}

  .mosaic__item:not(.mosaic__item--main){display:none}

  .mosaic__item--main{height:100%}

  .mosaic__btn{right:12px;bottom:12px;padding:.5rem .85rem;font-size:.8rem}



  /* Galeria em formato perfeito para visualização móvel */

  .airbnb-gallery{grid-template-columns:1fr;gap:1.1rem}

  .ag-card{aspect-ratio:4/3;border-radius:12px}

  .gallery-tabs{gap:.45rem;padding:.3rem 0 .8rem;margin-bottom:.8rem}

  .tab-btn{padding:.52rem 1rem;font-size:.84rem}



  /* Detalhes de seções internas */

  .section{padding:3.2rem 0}

  h2{font-size:clamp(1.7rem,6.2vw,2.2rem)}

  .room{padding:1.4rem 1.15rem}

  .room__ico{width:46px;height:46px;margin-bottom:.8rem}

  .room__ico .ico{width:24px;height:24px}



  .story{grid-template-columns:1fr;gap:.8rem;padding:1.4rem 1.15rem;margin-top:2.2rem}

  .story__mark{font-size:2.2rem}

  .story__text{font-size:1.12rem;line-height:1.5}



  .amen{grid-template-columns:repeat(2,1fr);gap:1.2rem .8rem}

  .amen__ico{width:56px;height:56px;margin-bottom:.5rem}

  .amen__ico .ico{width:26px;height:26px}

  .amen b{font-size:.9rem}

  .amen small{font-size:.78rem}



  .loc__script{font-size:1.2rem;padding:.2rem .7rem;top:.8rem;left:.8rem}

  .places{margin:1.2rem 0 1.5rem;gap:.75rem}

  .places .ico{width:32px;height:32px;padding:7px}

  .places b{font-size:.92rem}

  .places small{font-size:.8rem}



  .rules{grid-template-columns:1fr;gap:.75rem;margin-top:1.8rem}

  .rules li{

    padding:1.1rem 1rem;

    display:flex;

    align-items:center;

    text-align:left;

    gap:.85rem;

    border-radius:10px;

  }

  .rules li .ico{margin:0;flex-shrink:0;width:30px;height:30px}

  .rules b{font-size:.94rem;margin:0;display:block}

  .rules span{font-size:.82rem;display:block}



  .reviews{grid-auto-columns:88%;gap:.8rem;padding:.4rem .1rem 1rem}

  .review{padding:1.3rem 1.1rem;gap:.75rem}

  .review p{font-size:1.05rem;line-height:1.4}



  .cta{padding:2.2rem 0 5.2rem}

  .cta h2{font-size:clamp(1.8rem,6.5vw,2.3rem)}

  .cta__actions{width:100%!important;flex-direction:column!important;gap:.65rem!important}

  .cta__actions .btn{width:100%!important;justify-content:center!important;padding:.68rem 1.2rem!important;font-size:.9rem!important}

  .btn-sep-ou{margin:.1rem 0}



  .footer__inner{flex-direction:column;text-align:center;gap:1rem}

  .footer nav{justify-content:center;gap:.7rem 1rem}



  /* Lightbox perfeitamente adaptado para smartphone */

  .alb-header{padding:0 .8rem;height:52px}

  .alb-header__center{display:none}

  .alb-body{padding:.5rem;position:relative}

  .alb-nav-btn{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    z-index:20;

    width:40px;

    height:40px;

    background:rgba(14,22,34,.75);

    border:1px solid rgba(255,255,255,.2);

  }

  .alb-prev{left:6px}

  .alb-next{right:6px}

  .alb-stage{padding:0}

  .alb-image-wrapper{max-height:calc(100vh - 160px)}

  .alb-image-wrapper img{max-height:calc(100vh - 160px);border-radius:8px}

  .alb-caption{font-size:.84rem;margin-top:.5rem;padding:0 .5rem}

  .alb-footer{height:60px;padding:0 .6rem}

  .alb-thumb{width:50px;height:36px}

}



/* ============ BOTAO WHATSAPP (TOM PASTEL HARMONICO) ============ */

.btn--whatsapp {

  background: var(--terra);

  color: #fff !important;

  border: 1px solid var(--terra);

  box-shadow: 0 6px 16px -6px rgba(180, 117, 91, 0.55);

}

.btn--whatsapp:hover {

  background: var(--terra-dk);

  border-color: var(--terra-dk);

  color: #fff !important;

  transform: translateY(-2px);

  box-shadow: 0 10px 20px -6px rgba(180, 117, 91, 0.65);

}

.btn--whatsapp .ico {

  fill: currentColor;

}











