:root{
  --nude-50:#FBF6F0;
  --nude-100:#F4EADE;
  --nude-200:#E9D8C5;
  --nude-300:#D9BEA5;
  --beige:#EFE3D3;
  --white-soft:#FCFAF7;
  --rose:#C9A28A;
  --rose-strong:#B07F65;
  --gold:#C9A86B;
  --gold-soft:#E0C699;
  --ink:#3A2C24;
  --ink-soft:#6B574B;
  --line:rgba(58,44,36,.12);
  --shadow-sm:0 4px 18px rgba(58,44,36,.08);
  --shadow-md:0 18px 50px rgba(58,44,36,.12);
  --radius:18px;
  --radius-lg:28px;
  --maxw:1200px;
  --font-serif:"Cormorant Garamond", serif;
  --font-sans:"Jost", system-ui, sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-sans);
  color:var(--ink);
  background:var(--nude-50);
  font-weight:300;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  background-image:
    radial-gradient(1200px 600px at 80% -10%, rgba(224,198,153,.18), transparent 60%),
    radial-gradient(900px 500px at -10% 30%, rgba(201,162,138,.18), transparent 60%);
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* TYPE */
.eyebrow{
  display:inline-block;
  font-family:var(--font-sans);
  letter-spacing:.32em;
  text-transform:uppercase;
  font-size:11px;
  color:var(--rose-strong);
  margin-bottom:18px;
}
.display{
  font-family:var(--font-serif);
  font-weight:500;
  font-size:clamp(2.4rem, 5vw, 4.4rem);
  line-height:1.05;
  letter-spacing:-.01em;
  margin:0 0 22px;
}
.display em{font-style:italic;color:var(--rose-strong);font-weight:500}
.h2{
  font-family:var(--font-serif);
  font-weight:500;
  font-size:clamp(1.9rem, 3.4vw, 2.9rem);
  line-height:1.15;
  margin:0 0 18px;
  letter-spacing:-.005em;
}
.lead{font-size:1.06rem;color:var(--ink-soft);max-width:540px}
.muted{color:var(--ink-soft)}

/* NAV */
.nav{
  position:sticky;top:0;z-index:50;
  backdrop-filter:saturate(140%) blur(14px);
  background:rgba(252,250,247,.72);
  border-bottom:1px solid var(--line);
}
.nav__inner{display:flex;align-items:center;justify-content:space-between;height:72px;gap:24px}
.brand{display:flex;align-items:center;gap:12px}
.brand__mark{
  width:42px;height:42px;border-radius:50%;
  display:grid;place-items:center;
  background:linear-gradient(135deg,var(--gold-soft),var(--rose));
  color:#fff;font-family:var(--font-serif);font-size:18px;letter-spacing:.05em;
  box-shadow:var(--shadow-sm);
}
.brand__text{font-family:var(--font-serif);font-size:18px;line-height:1;display:flex;flex-direction:column;gap:4px}
.brand__text small{font-family:var(--font-sans);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft)}
.nav__links{display:flex;gap:28px}
.nav__links a{font-size:14px;color:var(--ink-soft);transition:color .25s}
.nav__links a:hover{color:var(--rose-strong)}
@media (max-width:880px){.nav__links{display:none}}

/* BUTTONS */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 24px;border-radius:999px;
  font-size:14px;letter-spacing:.04em;
  transition:transform .3s ease, box-shadow .3s ease, background .3s, color .3s;
  cursor:pointer;border:1px solid transparent;white-space:nowrap;
}
.btn--primary{
  background:linear-gradient(135deg,var(--ink) 0%, #5b4337 100%);
  color:#fff;box-shadow:var(--shadow-sm);
}
.btn--primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn--ghost{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:#fff}

/* HERO */
.hero{position:relative;padding:60px 0 90px;overflow:hidden}
.hero__bg{
  position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(60% 50% at 70% 30%, rgba(201,168,107,.18), transparent 60%),
    linear-gradient(180deg,var(--nude-50),var(--white-soft));
}
.hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
@media (max-width:900px){.hero__grid{grid-template-columns:1fr;gap:40px}}
.hero__cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
.hero__meta{display:flex;gap:36px;margin-top:42px;flex-wrap:wrap}
.hero__meta div{display:flex;flex-direction:column}
.hero__meta strong{font-family:var(--font-serif);font-size:1.6rem;color:var(--ink)}
.hero__meta span{font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:var(--ink-soft)}
.hero__img-wrap{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-md);
  aspect-ratio: 1/1;
}
.hero__img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.hero__img-wrap:hover img{transform:scale(1.04)}
.hero__badge{
  position:absolute;bottom:22px;left:22px;
  background:rgba(252,250,247,.92);backdrop-filter:blur(8px);
  padding:14px 18px;border-radius:14px;
  box-shadow:var(--shadow-sm);
}
.hero__badge span{display:block;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft)}
.hero__badge strong{font-family:var(--font-serif);font-size:1.2rem}

/* SECTION */
.section{padding:110px 0;position:relative}
.section__head{text-align:center;max-width:680px;margin:0 auto 60px}
.section__head .lead, .section__head .muted{margin:0 auto}

/* SOBRE */
.sobre__grid{display:grid;grid-template-columns:1fr 1.1fr;gap:70px;align-items:center}
@media (max-width:900px){.sobre__grid{grid-template-columns:1fr;gap:40px}}
.sobre__media{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);aspect-ratio:1/1}
.sobre__media img{width:100%;height:100%;object-fit:cover}
.sobre__tag{
  position:absolute;left:18px;bottom:18px;
  background:rgba(252,250,247,.92);
  padding:10px 16px;border-radius:999px;
  font-family:var(--font-serif);font-size:1rem;letter-spacing:.04em;
}
.features{list-style:none;padding:0;margin:32px 0 0;display:grid;gap:18px}
.features li{display:flex;gap:18px;align-items:flex-start;padding:18px;background:rgba(255,255,255,.5);border:1px solid var(--line);border-radius:16px;transition:background .3s, transform .3s}
.features li:hover{background:#fff;transform:translateX(4px)}
.features span{
  flex:0 0 42px;height:42px;border-radius:50%;
  display:grid;place-items:center;
  font-family:var(--font-serif);
  background:linear-gradient(135deg,var(--gold-soft),var(--rose));color:#fff;
}
.features h4{margin:0 0 4px;font-family:var(--font-serif);font-weight:600;font-size:1.15rem}
.features p{margin:0;color:var(--ink-soft);font-size:.95rem}

/* GALLERY */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.gallery__item{margin:0;border-radius:var(--radius);overflow:hidden;position:relative;box-shadow:var(--shadow-sm);aspect-ratio:1/1}
.gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform .9s ease, filter .9s ease}
.gallery__item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%, rgba(58,44,36,.35));opacity:0;transition:opacity .4s}
.gallery__item:hover img{transform:scale(1.07)}
.gallery__item:hover::after{opacity:1}
@media (max-width:900px){
  .gallery{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:560px){
  .gallery{grid-template-columns:1fr 1fr}
}

/* CARDS */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media (max-width:900px){.cards{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.cards{grid-template-columns:1fr}}
.card{
  background:#fff;border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:34px 28px;
  transition:transform .4s ease, box-shadow .4s ease, border-color .4s;
  position:relative;overflow:hidden;
}
.card::before{
  content:"";position:absolute;inset:auto -40% -60% auto;width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle,var(--gold-soft),transparent 70%);
  opacity:.5;transition:transform .6s ease;
}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:transparent}
.card:hover::before{transform:translate(-20px,-20px) scale(1.1)}
.card__icon{
  width:54px;height:54px;border-radius:50%;
  display:grid;place-items:center;font-size:22px;
  background:var(--nude-100);color:var(--rose-strong);
  margin-bottom:18px;font-family:var(--font-serif);
}
.card h3{font-family:var(--font-serif);font-weight:600;font-size:1.4rem;margin:0 0 8px}
.card p{margin:0;color:var(--ink-soft);font-size:.95rem;position:relative;z-index:1}

/* LOCAL */
.local__grid{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center}
@media (max-width:900px){.local__grid{grid-template-columns:1fr}}
.address{
  font-style:normal;margin:18px 0 28px;
  font-family:var(--font-serif);font-size:1.25rem;line-height:1.6;color:var(--ink);
}
.local__map{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);aspect-ratio:4/3;background:#eee}
.local__map iframe{width:100%;height:100%;border:0;filter:saturate(.85) contrast(.95)}

/* CONTATO */
.contato__box{
  background:linear-gradient(135deg,#fff 0%, var(--nude-100) 100%);
  border-radius:var(--radius-lg);
  padding:70px 40px;text-align:center;
  border:1px solid var(--line);box-shadow:var(--shadow-sm);
}
.contato__cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:24px}

/* FOOTER */
.footer{background:var(--ink);color:#e9dccf;padding:60px 0 30px;margin-top:40px}
.footer .brand__text{color:#fff}
.footer .brand__text small{color:#c9b6a3}
.footer__inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
@media (max-width:780px){.footer__inner{grid-template-columns:1fr;text-align:center;justify-items:center}}
.footer__social{display:flex;gap:22px}
.footer__social a{position:relative;font-size:14px;letter-spacing:.06em;transition:color .3s}
.footer__social a:hover{color:var(--gold-soft)}
.footer__copy{grid-column:1/-1;text-align:center;font-size:12px;letter-spacing:.1em;color:#a89684;margin:30px 0 0;border-top:1px solid rgba(255,255,255,.08);padding-top:24px}

/* FAB */
.fab{
  position:fixed;bottom:22px;right:22px;z-index:80;
  width:60px;height:60px;border-radius:50%;
  background:#25D366;color:#fff;
  display:grid;place-items:center;
  box-shadow:0 12px 30px rgba(37,211,102,.45);
  transition:transform .3s ease;
}
.fab:hover{transform:scale(1.08) rotate(-6deg)}
.fab::after{
  content:"";position:absolute;inset:-6px;border-radius:50%;
  border:2px solid rgba(37,211,102,.4);
  animation:pulse 2.2s ease-out infinite;
}
@keyframes pulse{
  0%{transform:scale(.85);opacity:.9}
  100%{transform:scale(1.4);opacity:0}
}

/* REVEAL */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease, transform .9s ease}
.reveal.is-in{opacity:1;transform:none}

.reveal-left{opacity:0;transform:translateX(-24px);transition:opacity .9s ease, transform .9s ease}
.reveal-left.is-in{opacity:1;transform:none}

.reveal-right{opacity:0;transform:translateX(24px);transition:opacity .9s ease, transform .9s ease}
.reveal-right.is-in{opacity:1;transform:none}

.reveal-scale{opacity:0;transform:scale(.94);transition:opacity .9s ease, transform .9s ease}
.reveal-scale.is-in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .reveal,.reveal-left,.reveal-right,.reveal-scale{opacity:1;transform:none;transition:none}
  .fab::after{animation:none}
}
