:root{
  --black:#0a0906;
  --black2:#12100b;
  --gold:#d3a94e;
  --gold-light:#f0d075;
  --gold-deep:#9a7426;
  --cream:#f3e8cf;
  --cream-dim:rgba(243,232,207,.62);
  --en:rgba(211,169,78,.78);
  --hairline:rgba(211,169,78,.35);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--black);color:var(--cream);font-family:'Nunito Sans',sans-serif;font-weight:300;line-height:1.65;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--gold-light);text-decoration:none}

/* ---------- typographic system ---------- */
.label{font-family:'Josefin Sans',sans-serif;font-weight:300;letter-spacing:.55em;text-transform:uppercase;font-size:.78rem;color:var(--gold);text-indent:.55em}
h1,h2,h3{font-family:'Marcellus',serif;font-weight:400;color:var(--gold-light);line-height:1.15}
h2{font-size:clamp(1.9rem,4.2vw,3.1rem);letter-spacing:.06em}
h3{font-size:clamp(1.25rem,2.4vw,1.7rem);letter-spacing:.1em;text-transform:uppercase}
.en-title{font-family:'Josefin Sans',sans-serif;font-weight:300;letter-spacing:.35em;text-transform:uppercase;color:var(--en);font-size:clamp(.8rem,1.4vw,1rem);margin-top:.7rem;text-indent:.35em}
.pt{font-size:1.06rem;color:var(--cream)}
.en{font-size:.92rem;color:var(--cream-dim);font-style:italic;margin-top:.55rem}
.pt b,.pt strong{font-weight:700;color:var(--gold-light)}
.rule{width:64px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:1.6rem auto}
.rule.left{margin:1.6rem 0;background:linear-gradient(90deg,var(--gold),transparent)}

/* deco diamond divider */
.deco{display:flex;align-items:center;gap:14px;justify-content:center;margin:0 auto 1.4rem;max-width:420px}
.deco::before,.deco::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--hairline))}
.deco::after{background:linear-gradient(90deg,var(--hairline),transparent)}
.deco span{width:8px;height:8px;border:1px solid var(--gold);transform:rotate(45deg)}

section{padding:clamp(4rem,9vw,7.5rem) clamp(1.2rem,6vw,5rem);position:relative}
.wrap{max-width:1180px;margin:0 auto}
.center{text-align:center}

/* ---------- hero ---------- */
.hero{min-height:92vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:
  radial-gradient(ellipse 60% 45% at 50% 38%,rgba(211,169,78,.10),transparent 70%),var(--black);
  padding-top:5rem}
.hero .logo{width:min(300px,58vw);filter:drop-shadow(0 0 34px rgba(211,169,78,.30))}
.sapucai{font-family:'Josefin Sans',sans-serif;font-weight:300;letter-spacing:.5em;text-indent:.5em;text-transform:uppercase;color:var(--gold);font-size:.95rem;margin-top:1.1rem}
.hero .tag-pt{font-family:'Marcellus',serif;font-size:clamp(1.15rem,2.6vw,1.65rem);color:var(--cream);margin-top:2.6rem;max-width:720px}
.hero .tag-pt em{font-style:normal;color:var(--gold-light)}
.hero .tag-en{margin-top:.8rem;max-width:640px}
.cta{display:inline-block;margin-top:2.8rem;padding:1.05rem 3.2rem;border:1px solid var(--gold);color:var(--gold-light);font-family:'Josefin Sans',sans-serif;letter-spacing:.4em;text-transform:uppercase;font-size:.8rem;text-indent:.4em;transition:.35s;background:linear-gradient(90deg,rgba(211,169,78,.12),rgba(211,169,78,.04))}
.cta:hover{background:var(--gold);color:#141005}
.hero .global{width:110px;margin-top:3.4rem;opacity:.85}
.scroll-hint{margin-top:2.2rem;color:var(--gold);font-size:1.3rem;animation:bob 2.2s infinite}
@keyframes bob{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(8px);opacity:1}}

/* ---------- hero strip ---------- */
.strip{padding:0;height:clamp(300px,52vw,560px);background:url('image/foto-rio-de-janeiro-rio-private.jpg') center/cover no-repeat;position:relative}
.strip::before,.strip::after{content:"";position:absolute;left:0;right:0;height:130px}
.strip::before{top:0;background:linear-gradient(180deg,var(--black),transparent)}
.strip::after{bottom:0;background:linear-gradient(0deg,var(--black),transparent)}

/* ---------- intro ---------- */
.intro{background:var(--black)}
.intro .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.quote-pt{font-family:'Marcellus',serif;font-size:clamp(1.3rem,2.4vw,1.75rem);color:var(--cream);line-height:1.5}
.quote-pt em{font-style:normal;color:var(--gold-light)}

/* ---------- photo/text split ---------- */
.split{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.split.rev{grid-template-columns:1fr 1.05fr}
.frame{position:relative}
.frame img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.frame::after{content:"";position:absolute;inset:14px;border:1px solid rgba(211,169,78,.4);pointer-events:none}

/* ---------- pillars ---------- */
.pillars{background:linear-gradient(180deg,var(--black) 0%,var(--black2) 50%,var(--black) 100%)}
.pillar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;margin-top:3.2rem}
.pillar{border:1px solid rgba(211,169,78,.28);padding:2.4rem 1.6rem;text-align:center;transition:.35s;background:rgba(211,169,78,.03)}
.pillar:hover{border-color:var(--gold);background:rgba(211,169,78,.08);transform:translateY(-4px)}
.pillar .icon{font-size:1.9rem;color:var(--gold);margin-bottom:1.1rem}
.pillar h3{font-size:1.05rem;letter-spacing:.14em}
.pillar .en{font-style:normal;font-family:'Josefin Sans',sans-serif;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--en);margin-top:.5rem}
.pillar p.desc{font-size:.88rem;color:var(--cream-dim);margin-top:.8rem}

/* ---------- banner ---------- */
.banner{background:linear-gradient(90deg,rgba(211,169,78,.14),rgba(211,169,78,.05));border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);text-align:center;padding:3.2rem 1.5rem}
.banner .pt-b{font-family:'Marcellus',serif;font-size:clamp(1.15rem,2.4vw,1.6rem);color:var(--gold-light);letter-spacing:.08em;max-width:820px;margin:0 auto}
.banner .en{max-width:700px;margin:.8rem auto 0}

/* ---------- location ---------- */
.map-wrap{margin-top:3rem;position:relative}
.map-wrap img{width:100%}
.badge{display:inline-block;border:1px solid var(--gold);padding:.55rem 1.6rem;font-family:'Josefin Sans',sans-serif;letter-spacing:.35em;text-transform:uppercase;font-size:.75rem;color:var(--gold-light);text-indent:.35em;margin-top:1.4rem}

/* ---------- spaces / gallery ---------- */
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:3rem}
.card{position:relative;overflow:hidden}
.card img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/10;transition:transform .6s}
.card:hover img{transform:scale(1.04)}
.card .cap{position:absolute;inset:auto 0 0 0;padding:2.4rem 1.6rem 1.4rem;background:linear-gradient(0deg,rgba(5,4,2,.92),transparent)}
.card .cap h3{font-size:1.05rem}
.card .cap .en{font-style:normal;font-family:'Josefin Sans',sans-serif;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;margin-top:.3rem;color:var(--en)}
.card.wide{grid-column:1/-1}
.card.wide img{aspect-ratio:21/9}

/* ---------- open bar ---------- */
.openbar{background:linear-gradient(180deg,var(--black),#0f0c07 60%,var(--black))}
.brands{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:3rem}
.brand{position:relative;overflow:hidden;border:1px solid rgba(211,169,78,.2)}
.brand img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .6s}
.brand:hover img{transform:scale(1.05)}
.brand .bcap{padding:1.2rem 1.3rem 1.4rem;background:var(--black2)}
.brand .btype{font-family:'Josefin Sans',sans-serif;font-size:.68rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);text-indent:.4em}
.brand .bname{font-family:'Marcellus',serif;font-size:1.2rem;color:var(--cream);margin-top:.35rem}
.note{font-size:.8rem;color:var(--cream-dim);margin-top:2rem;text-align:center;font-style:italic}

/* ---------- journey ---------- */
.journey .split{margin-top:3.4rem}
.journey .split + .split{margin-top:clamp(3rem,7vw,5.5rem)}
.frame.tall img{aspect-ratio:3/3.4}

.hours .pillar-grid {
	display: flex;
	justify-content: center;
}

/* ---------- footer ---------- */
footer{background:#070604;border-top:1px solid var(--hairline);padding:clamp(4rem,8vw,6rem) clamp(1.2rem,6vw,5rem) 3rem;text-align:center}
footer .logo{width:170px;margin:0 auto 2.4rem;filter:drop-shadow(0 0 22px rgba(211,169,78,.25))}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.4rem;max-width:1000px;margin:3rem auto 0;text-align:center}
.contact-grid h3{font-size:.95rem;letter-spacing:.3em;color:var(--gold);margin-bottom:1rem}
.contact-grid p{font-size:.95rem;color:var(--cream)}
.contact-grid .en{font-size:.82rem}
.contact-grid a{display:block;margin-top:.3rem}
.partners{margin-top:3.5rem}
.partners .label{font-size:.68rem}
.partners .row{display:flex;gap:3rem;align-items:center;justify-content:center;margin-top:1.6rem}
.partners img{height:44px;width:auto;opacity:.9}
.partners .visitrio{font-family:'Marcellus',serif;color:var(--cream);font-size:1.5rem;letter-spacing:.06em}
.fine{margin-top:3.5rem;font-size:.75rem;color:rgba(243,232,207,.4)}

/* whatsapp float */
.whats{position:fixed;right:22px;bottom:22px;z-index:50;width:56px;height:56px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px rgba(0,0,0,.5);transition:.3s}
.whats:hover{transform:scale(1.08);background:var(--gold-light)}
.whats svg{width:30px;height:30px;fill:#14100a}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}
.reveal.on{opacity:1;transform:none}

@media(max-width:880px){
  .intro .grid,.split,.split.rev{grid-template-columns:1fr}
  .pillar-grid{grid-template-columns:repeat(2,1fr)}
  .brands{grid-template-columns:1fr 1fr}
  .gallery{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr;gap:2rem}
}
@media(max-width:800px){
.hours .pillar-grid {
	display: block;
}
}
@media(max-width:540px){
  .pillar-grid{grid-template-columns:1fr}
  .brands{grid-template-columns:1fr}
}