/* ===== TOKENS ===== */
:root{
  --cream:      #FBF7F1;
  --cream-2:    #F4EBDD;
  --sand:       #EADFCD;
  --ink:        #2A211A;
  --brown:      #6B4F2A;
  --gold:       #B78E4B;
  --gold-soft:  #D8C29A;
  --rose:       #E7D3C4;
  --muted:      #8C7C6A;
  --line:       rgba(107,79,42,.16);
  --shadow:     0 24px 60px -30px rgba(42,33,26,.45);
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans:  'Jost', -apple-system, system-ui, sans-serif;
  --wrap: 1200px;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
  font-weight:300;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }

h1,h2,h3{ font-family:var(--serif); font-weight:500; line-height:1.08; letter-spacing:.4px; }
h1{ font-size:clamp(2.6rem,5.4vw,4.6rem); }
h2{ font-size:clamp(2rem,4vw,3.2rem); }
em{ font-style:italic; color:var(--brown); }

.eyebrow{
  font-family:var(--sans);
  text-transform:uppercase;
  letter-spacing:.34em;
  font-size:.72rem;
  font-weight:500;
  color:var(--gold);
  margin-bottom:1.1rem;
}
.eyebrow--light{ color:var(--gold-soft); }

/* ===== BUTTONS ===== */
.btn{
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--sans); font-weight:500; font-size:.86rem;
  letter-spacing:.06em; text-transform:uppercase;
  padding:.95rem 1.7rem; border-radius:100px;
  transition:transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
  cursor:pointer; border:1px solid transparent; white-space:nowrap;
}
.btn__ico{ font-size:1rem; }
.btn--solid{ background:var(--ink); color:var(--cream); }
.btn--solid:hover{ background:var(--brown); transform:translateY(-2px); box-shadow:var(--shadow); }
.btn--ghost{ border-color:var(--ink); color:var(--ink); background:transparent; }
.btn--ghost:hover{ background:var(--ink); color:var(--cream); transform:translateY(-2px); }
.btn--nav{ background:var(--brown); color:var(--cream); padding:.7rem 1.3rem; font-size:.78rem; }
.btn--nav:hover{ background:var(--ink); transform:translateY(-1px); }
.btn--lg{ padding:1.15rem 2.4rem; font-size:.95rem; }

/* ===== NAV ===== */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(251,247,241,.82);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav__inner{
  max-width:var(--wrap); margin:0 auto;
  padding:1rem 2rem; display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.brand{ display:flex; align-items:baseline; gap:.5rem; }
.brand__name{ font-family:var(--serif); font-size:1.5rem; font-weight:600; letter-spacing:1px; }
.brand__mark{ color:var(--gold); font-size:.8rem; }
.brand__sub{ font-family:var(--sans); font-size:.7rem; letter-spacing:.4em; text-transform:uppercase; color:var(--muted); }
.nav__links{ display:flex; gap:2rem; }
.nav__links a{ font-size:.86rem; letter-spacing:.05em; color:var(--ink); position:relative; padding:.2rem 0; }
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:-2px; width:0; height:1px; background:var(--gold); transition:width .3s ease;
}
.nav__links a:hover::after{ width:100%; }

/* ===== HERO ===== */
.hero{
  max-width:var(--wrap); margin:0 auto;
  padding:clamp(3rem,7vw,6rem) 2rem;
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,5rem); align-items:center;
}
.hero__text h1{ margin-bottom:1.5rem; }
.hero__lead{ font-size:1.12rem; color:var(--muted); max-width:34ch; margin-bottom:2.2rem; }
.hero__lead strong{ color:var(--ink); font-weight:500; }
.hero__cta{ display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:2.8rem; }
.hero__proof{ display:flex; gap:2.4rem; flex-wrap:wrap; border-top:1px solid var(--line); padding-top:1.6rem; }
.hero__proof div{ display:flex; flex-direction:column; }
.hero__proof strong{ font-family:var(--serif); font-size:1.7rem; font-weight:600; color:var(--brown); line-height:1; }
.hero__proof span{ font-size:.78rem; letter-spacing:.04em; color:var(--muted); text-transform:uppercase; margin-top:.35rem; }

.hero__media{ position:relative; }
.hero__frame{
  border-radius:220px 220px 24px 24px; overflow:hidden;
  box-shadow:var(--shadow); background:var(--cream-2);
  aspect-ratio:4/5;
}
.hero__frame img{ width:100%; height:100%; object-fit:cover; object-position:center 20%; }
.hero__media::before{
  content:""; position:absolute; inset:-18px -18px auto auto; width:70%; height:70%;
  border:1px solid var(--gold-soft); border-radius:200px 200px 20px 20px; z-index:-1;
}
.hero__tag{
  position:absolute; left:-14px; bottom:34px;
  background:var(--cream); border:1px solid var(--line);
  padding:.7rem 1.2rem; border-radius:100px; font-size:.78rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--brown); box-shadow:var(--shadow);
}

/* ===== MARQUEE ===== */
.marquee{
  background:var(--ink); color:var(--cream); overflow:hidden; padding:1rem 0;
}
.marquee__track{
  display:flex; align-items:center; gap:2.2rem; white-space:nowrap;
  animation:scroll 34s linear infinite; width:max-content;
}
.marquee__track span{ font-family:var(--serif); font-size:1.5rem; font-style:italic; letter-spacing:.5px; }
.marquee__track i{ color:var(--gold); font-style:normal; font-size:.7rem; }
@keyframes scroll{ to{ transform:translateX(-50%); } }

/* ===== SOBRE ===== */
.sobre{
  max-width:var(--wrap); margin:0 auto;
  padding:clamp(4rem,8vw,7rem) 2rem;
  display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(2rem,5vw,5rem); align-items:center;
}
.sobre__media{ position:relative; }
.sobre__img{ border-radius:20px; box-shadow:var(--shadow); }
.sobre__img--main{ aspect-ratio:4/5; object-fit:cover; width:82%; }
.sobre__img--accent{
  position:absolute; right:0; bottom:-30px; width:46%; aspect-ratio:3/4; object-fit:cover;
  border:6px solid var(--cream); border-radius:16px;
}
.sobre__text h2{ margin-bottom:1.5rem; }
.sobre__text p{ color:var(--muted); margin-bottom:1.1rem; max-width:46ch; }
.sobre__text p strong{ color:var(--ink); font-weight:500; }
.sobre__list{ list-style:none; margin-top:1.8rem; display:grid; gap:.8rem; }
.sobre__list li{ position:relative; padding-left:1.7rem; font-size:.95rem; color:var(--ink); }
.sobre__list li::before{ content:"◇"; position:absolute; left:0; color:var(--gold); font-size:.8rem; top:.15rem; }

/* ===== QUOTE ===== */
.quote{
  max-width:900px; margin:0 auto; padding:clamp(3.5rem,7vw,6rem) 2rem; text-align:center;
}
.quote p{
  font-family:var(--serif); font-style:italic; font-weight:500;
  font-size:clamp(1.8rem,4vw,2.9rem); line-height:1.25; color:var(--ink);
}
.quote span{
  display:block; margin-top:1.2rem; font-family:var(--sans); font-size:.8rem;
  letter-spacing:.28em; text-transform:uppercase; color:var(--gold);
}

/* ===== SECTION HEAD ===== */
.section-head{ text-align:center; max-width:640px; margin:0 auto clamp(2.5rem,5vw,4rem); }
.section-head__lead{ color:var(--muted); margin-top:1rem; font-size:1.02rem; }

/* ===== SERVIÇOS ===== */
.servicos{ padding:clamp(4rem,8vw,7rem) 2rem; background:var(--cream-2); }
.cards{
  max-width:var(--wrap); margin:0 auto;
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem;
}
.card{
  background:var(--cream); border:1px solid var(--line); border-radius:18px;
  padding:2.2rem 1.9rem; position:relative; overflow:hidden;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--gold-soft); }
.card__num{
  font-family:var(--serif); font-size:2.4rem; color:var(--gold-soft); font-style:italic; line-height:1;
  display:block; margin-bottom:1rem;
}
.card h3{ font-size:1.5rem; margin-bottom:.8rem; }
.card h3 small{ font-size:.9rem; color:var(--muted); font-style:italic; }
.card p{ color:var(--muted); font-size:.94rem; margin-bottom:1.5rem; }
.card__meta{ display:flex; flex-wrap:wrap; gap:.6rem; border-top:1px solid var(--line); padding-top:1.1rem; }
.card__meta span{
  font-size:.74rem; letter-spacing:.04em; text-transform:uppercase; color:var(--brown);
  background:var(--sand); padding:.35rem .8rem; border-radius:100px;
}
.card--feature{ background:var(--ink); border-color:var(--ink); }
.card--feature h3, .card--feature .card__num{ color:var(--cream); }
.card--feature .card__num{ color:var(--gold); }
.card--feature p{ color:rgba(251,247,241,.72); }
.card--feature .card__meta{ border-color:rgba(251,247,241,.18); }
.card--feature .card__meta span{ background:rgba(251,247,241,.1); color:var(--gold-soft); }
.card--extras{ background:linear-gradient(160deg,var(--sand),var(--cream)); }
.card--extras ul{ list-style:none; display:grid; gap:.9rem; margin-top:.4rem; }
.card--extras li{ font-size:.92rem; color:var(--muted); padding-left:1.4rem; position:relative; }
.card--extras li::before{ content:"+"; position:absolute; left:0; color:var(--gold); font-weight:600; }
.card--extras li strong{ color:var(--ink); font-weight:500; }

.servicos__cta{ text-align:center; margin-top:3rem; }
.servicos__note{ font-size:.86rem; color:var(--muted); margin-top:1rem; }

/* ===== GALERIA ===== */
.galeria{ padding:clamp(4rem,8vw,7rem) 2rem; }
.grid{
  max-width:var(--wrap); margin:0 auto;
  display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:220px; gap:1rem; grid-auto-flow:dense;
}
.grid__item{ overflow:hidden; border-radius:14px; background:var(--cream-2); }
.grid__item img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.grid__item:hover img{ transform:scale(1.06); }
.grid__item--tall{ grid-row:span 2; }
.galeria__cta{ text-align:center; margin-top:2.6rem; }

/* ===== STUDIO ===== */
.studio{
  max-width:var(--wrap); margin:0 auto;
  padding:clamp(3rem,6vw,5rem) 2rem;
  display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(2rem,4vw,4rem); align-items:center;
}
.studio__addr{ font-size:1.15rem; color:var(--ink); margin:1.2rem 0 2rem; line-height:1.9; }
.studio__facts{ list-style:none; display:grid; gap:1rem; margin-bottom:2.2rem; }
.studio__facts li{ display:flex; flex-direction:column; border-bottom:1px solid var(--line); padding-bottom:.9rem; font-size:1rem; }
.studio__facts li span{ font-size:.72rem; text-transform:uppercase; letter-spacing:.18em; color:var(--gold); margin-bottom:.25rem; }
.studio__facts a{ color:var(--brown); border-bottom:1px solid var(--gold-soft); }
.studio__cta{ display:flex; gap:1rem; flex-wrap:wrap; }
.studio__map{ position:relative; border-radius:20px; overflow:hidden; box-shadow:var(--shadow); height:100%; min-height:440px; background:linear-gradient(160deg,var(--sand),var(--cream-2)); }
.studio__map iframe{ position:relative; z-index:2; width:100%; height:100%; min-height:440px; border:0; filter:grayscale(.2) contrast(1.02); }
.studio__map-fallback{
  position:absolute; inset:0; z-index:1;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:.5rem; padding:2rem;
}
.studio__pin{ font-size:2.2rem; color:var(--gold); margin-bottom:.4rem; }
.studio__map-title{ font-family:var(--serif); font-size:1.6rem; color:var(--ink); }
.studio__map-sub{ color:var(--muted); font-size:.92rem; margin-bottom:1rem; line-height:1.7; }

/* ===== FINAL CTA ===== */
.final{
  background:var(--ink); color:var(--cream); margin-top:2rem;
  background-image:radial-gradient(circle at 80% -20%, rgba(183,142,75,.35), transparent 55%);
}
.final__inner{ max-width:var(--wrap); margin:0 auto; padding:clamp(4rem,8vw,7rem) 2rem; text-align:center; }
.final h2{ color:var(--cream); margin:.4rem 0 2rem; }
.final__phone{ margin-top:1.6rem; font-family:var(--serif); font-size:1.4rem; letter-spacing:1px; color:var(--gold-soft); }

/* ===== FOOTER ===== */
.footer{ background:#241C15; color:rgba(251,247,241,.72); }
.footer__inner{
  max-width:var(--wrap); margin:0 auto; padding:4rem 2rem 2.5rem;
  display:grid; grid-template-columns:2fr 1fr 1fr; gap:2.5rem;
}
.footer .brand__name{ color:var(--cream); }
.footer__brand p{ margin-top:1rem; max-width:34ch; font-size:.92rem; }
.footer__col h4{ font-family:var(--sans); text-transform:uppercase; letter-spacing:.16em; font-size:.76rem; color:var(--gold); font-weight:500; margin-bottom:1rem; }
.footer__col p{ font-size:.92rem; line-height:1.9; }
.footer__col a:hover{ color:var(--cream); }
.footer__bottom{
  max-width:var(--wrap); margin:0 auto; padding:1.5rem 2rem;
  border-top:1px solid rgba(251,247,241,.12);
  display:flex; justify-content:space-between; font-size:.8rem; letter-spacing:.04em;
}

/* ===== FAB ===== */
.fab{
  position:fixed; right:1.4rem; bottom:1.4rem; z-index:60;
  width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#fff; display:grid; place-items:center;
  font-size:1.5rem; box-shadow:0 12px 30px -8px rgba(37,211,102,.7);
  transition:transform .25s ease;
}
.fab:hover{ transform:scale(1.08); }

/* ===== REVEAL ===== */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease; }
.reveal.in{ opacity:1; transform:none; }

/* ===== RESPONSIVE ===== */
@media (max-width:920px){
  .hero{ grid-template-columns:1fr; text-align:center; }
  .hero__lead{ margin-left:auto; margin-right:auto; }
  .hero__cta,.hero__proof{ justify-content:center; }
  .hero__media{ max-width:420px; margin:0 auto; order:-1; }
  .sobre,.studio{ grid-template-columns:1fr; }
  .sobre__media{ max-width:440px; margin:0 auto; }
  .cards{ grid-template-columns:repeat(2,1fr); }
  .grid{ grid-template-columns:repeat(2,1fr); }
  .nav__links{ display:none; }
}
@media (max-width:560px){
  .nav__inner{ padding:.9rem 1.2rem; }
  .brand__name{ font-size:1.25rem; }
  .btn--nav{ padding:.6rem 1rem; font-size:.7rem; }
  .hero,.sobre,.servicos,.galeria,.studio,.final__inner{ padding-left:1.2rem; padding-right:1.2rem; }
  .hero__proof{ gap:1.4rem; }
  .cards{ grid-template-columns:1fr; }
  .grid{ grid-template-columns:1fr 1fr; grid-auto-rows:150px; }
  .footer__inner{ grid-template-columns:1fr; }
  .footer__bottom{ flex-direction:column; gap:.6rem; text-align:center; }
  .studio__cta{ flex-direction:column; }
  .studio__cta .btn{ justify-content:center; }
}
