:root{
  --bg: #0e0d0b;
  --bg-alt: #17140f;
  --bg-card: #1c1812;
  --gold: #c9a24b;
  --gold-light: #e6c878;
  --cream: #f3ecdc;
  --muted: #a89d86;
  --hairline: rgba(201,162,75,0.22);
  --radius: 2px;
}

*{box-sizing:border-box; margin:0; padding:0;}

html{scroll-behavior:smooth;}

body{
  background:var(--bg);
  color:var(--cream);
  font-family:'Jost', sans-serif;
  font-weight:300;
  line-height:1.6;
  overflow-x:hidden;
  overflow-wrap:break-word;   /* textos longos quebram em vez de vazar do card */
}

/* Granulado de filme fotográfico: textura viva e sutil sobre todo o site */
body::after{
  content:'';
  position:fixed;
  inset:-100px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity:0.05;
  pointer-events:none;
  z-index:9999;
  animation:grain 7s steps(8) infinite;
}
@keyframes grain{
  0%,100%{ transform:translate(0,0); }
  12%{ transform:translate(-40px,25px); }
  25%{ transform:translate(30px,-45px); }
  37%{ transform:translate(-25px,-30px); }
  50%{ transform:translate(45px,35px); }
  62%{ transform:translate(-35px,10px); }
  75%{ transform:translate(20px,-25px); }
  87%{ transform:translate(-15px,40px); }
}

h1,h2,h3{
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  letter-spacing:0.01em;
}

a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}

::selection{ background:var(--gold); color:var(--bg); }

:focus-visible{
  outline:2px solid var(--gold-light);
  outline-offset:3px;
}

.eyebrow{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:'Jost', sans-serif;
  font-size:0.86rem;
  letter-spacing:0.24em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:22px;
}
.eyebrow .fstop{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:0.95rem;
  letter-spacing:0.03em;
  color:var(--gold-light);
}

.wrap{
  max-width:1180px;
  margin:0 auto;
  padding:0 32px;
}

/* ---------- APERTURE MARK (signature element) ---------- */
.aperture{
  width:34px; height:34px;
  flex-shrink:0;
}
.aperture path{
  transform-origin:50% 50%;
  transition:transform 1.1s cubic-bezier(.16,.84,.44,1), opacity 1.1s ease;
}
.aperture.closed path{
  transform:rotate(-26deg) scale(0.55);
  opacity:0.35;
}
.reveal .aperture path{
  transform:rotate(0deg) scale(1);
  opacity:1;
}
.hero-aperture path{
  animation:breathe 9s ease-in-out infinite;
}
@keyframes breathe{
  0%,100%{ transform:rotate(0deg) scale(1); }
  50%{ transform:rotate(8deg) scale(1.06); }
}

/* ---------- NAV ---------- */
header{
  position:fixed; top:0; left:0; right:0;
  z-index:100;
  padding:22px 0;
  transition:background .4s ease, padding .4s ease, border-color .4s ease;
  border-bottom:1px solid transparent;
}
header.scrolled{
  background:rgba(14,13,11,0.92);
  backdrop-filter:blur(10px);
  padding:14px 0;
  border-bottom:1px solid var(--hairline);
}
nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.logo-mark{
  display:flex;
  align-items:center;
}
.logo-mark .logo-img{
  height:52px;
  width:auto;
  transition:height .4s ease;
}
header.scrolled .logo-mark .logo-img{
  height:42px;
}
.nav-links{
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:clamp(14px, 2.4vw, 38px);
  font-size:clamp(0.72rem, 1.3vw, 0.82rem);
  letter-spacing:0.05em;
  white-space:nowrap;
}
.nav-links a{
  position:relative;
  padding-bottom:4px;
  color:var(--cream);
  opacity:0.85;
  transition:opacity .3s ease;
}
.nav-links a:hover{ opacity:1; }
.nav-links a::after{
  content:'';
  position:absolute; left:0; bottom:0;
  width:0; height:1px;
  background:var(--gold);
  transition:width .3s ease;
}
.nav-links a:hover::after{ width:100%; }
.nav-links a.active{ opacity:1; color:var(--gold-light); }
.nav-links a.active::after{ width:100%; }

.nav-cta{
  border:1px solid var(--gold);
  color:var(--gold-light) !important;
  padding:9px clamp(12px, 1.6vw, 20px);
  font-size:inherit;
  letter-spacing:0.08em;
  transition:background .3s ease, color .3s ease;
  flex-shrink:0;
}
.nav-cta:hover{
  background:var(--gold);
  color:var(--bg) !important;
}
.nav-cta::after{ display:none; }

.burger{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none; border:none; cursor:pointer;
  padding:6px;
}
.burger span{
  width:24px; height:1px; background:var(--cream);
}

/* ---------- PAGE HERO (used on inner pages) ---------- */
.page-hero{
  padding:180px 0 90px;
  background:
    radial-gradient(ellipse 800px 500px at 15% 0%, rgba(201,162,75,0.08), transparent 60%),
    var(--bg);
  border-bottom:1px solid var(--hairline);
  position:relative;
  overflow:hidden;
}
.page-hero .wrap{
  position:relative;
  z-index:2;
}
/* Luz em deriva, como no hero da home */
.page-hero::before{
  content:'';
  position:absolute; inset:-10%;
  background:radial-gradient(ellipse 560px 380px at 72% 40%, rgba(201,162,75,0.07), transparent 62%);
  pointer-events:none;
  animation:glowDrift 16s ease-in-out infinite alternate;
}
/* Marca d'água de diafragma girando lentamente no canto */
.page-hero::after{
  content:'';
  position:absolute;
  right:-120px; bottom:-140px;
  width:420px; height:420px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23c9a24b' stroke-width='1'%3E%3Cpath d='M50 8 L64 40 L50 50 Z'/%3E%3Cpath d='M50 8 L64 40 L50 50 Z' transform='rotate(60 50 50)'/%3E%3Cpath d='M50 8 L64 40 L50 50 Z' transform='rotate(120 50 50)'/%3E%3Cpath d='M50 8 L64 40 L50 50 Z' transform='rotate(180 50 50)'/%3E%3Cpath d='M50 8 L64 40 L50 50 Z' transform='rotate(240 50 50)'/%3E%3Cpath d='M50 8 L64 40 L50 50 Z' transform='rotate(300 50 50)'/%3E%3Ccircle cx='50' cy='50' r='46'/%3E%3C/svg%3E");
  background-size:contain;
  opacity:0.1;
  pointer-events:none;
  animation:spinSlow 120s linear infinite;
}
.page-hero h1{
  font-size:clamp(2.2rem, 4.5vw, 3.4rem);
  color:var(--cream);
}

/* ---------- BOKEH (luzes desfocadas nos heros) ---------- */
.bokeh-dot{
  position:absolute;
  border-radius:50%;
  background:radial-gradient(circle, rgba(230,200,120,0.55), rgba(201,162,75,0.18) 55%, transparent 72%);
  filter:blur(5px);
  pointer-events:none;
  z-index:1;
  opacity:0;
  animation-name:bokehFloat;
  animation-timing-function:ease-in-out;
  animation-iteration-count:infinite;
}
@keyframes bokehFloat{
  0%{ transform:translateY(30px) scale(0.9); opacity:0; }
  25%{ opacity:0.55; }
  75%{ opacity:0.3; }
  100%{ transform:translateY(-90px) scale(1.05); opacity:0; }
}

/* ---------- HERO (home) ---------- */
.hero{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  overflow:hidden;
  padding-top:120px;
  padding-bottom:80px;
  background:
    radial-gradient(ellipse 900px 600px at 15% 10%, rgba(201,162,75,0.08), transparent 60%),
    radial-gradient(ellipse 700px 500px at 90% 90%, rgba(201,162,75,0.05), transparent 60%),
    var(--bg);
}
.hero::before{
  content:'';
  position:absolute; inset:0;
  background-image:
    repeating-linear-gradient(115deg, transparent 0, transparent 120px, var(--hairline) 120px, transparent 121px);
  opacity:0.5;
  pointer-events:none;
}
/* Luz dourada em lenta deriva, como luz de estúdio se movendo */
.hero::after{
  content:'';
  position:absolute; inset:-10%;
  background:radial-gradient(ellipse 620px 420px at 68% 32%, rgba(201,162,75,0.07), transparent 62%);
  pointer-events:none;
  animation:glowDrift 16s ease-in-out infinite alternate;
}
@keyframes glowDrift{
  from{ transform:translate(0,0) scale(1); }
  to{ transform:translate(-7%, 5%) scale(1.12); }
}
.hero-inner{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.05fr 0.95fr;
  align-items:center;
  gap:clamp(40px, 6vw, 90px);
  width:100%;
  text-align:left;
}
.hero h1{
  font-size:clamp(2.4rem, 4.6vw, 4rem);
  font-weight:500;
  color:var(--cream);
  line-height:1.08;
  margin-bottom:26px;
}
.hero h1 em{
  font-style:italic;
  color:var(--gold-light);
}
.hero p.lede{
  font-size:1.08rem;
  color:var(--muted);
  max-width:560px;
  margin:0 0 44px;
}
.hero-actions{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  justify-content:flex-start;
}
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:15px 30px;
  font-size:0.82rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  border-radius:var(--radius);
  transition:transform .3s ease, background .3s ease, color .3s ease, border-color .3s ease;
}
.btn-solid{
  background:var(--gold);
  color:var(--bg);
  position:relative;
  overflow:hidden;
}
.btn-solid:hover{ background:var(--gold-light); transform:translateY(-2px); }
/* Brilho de vidro varrendo o botão no hover */
.btn-solid::after{
  content:'';
  position:absolute;
  top:0; left:-70%;
  width:45%; height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,0.4), transparent);
  transform:skewX(-20deg);
  transition:left .55s ease;
}
.btn-solid:hover::after{ left:130%; }
.btn-outline{
  border:1px solid var(--hairline);
  color:var(--cream);
}
.btn-outline:hover{ border-color:var(--gold); transform:translateY(-2px); }

/* ---------- BADGE (selo de disponibilidade) ---------- */
.badge-pill{
  display:inline-flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--hairline);
  border-radius:100px;
  padding:9px 18px;
  font-size:0.72rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--gold-light);
  background:rgba(201,162,75,0.05);
  margin-bottom:32px;
}
.badge-pill .dot{
  width:6px; height:6px;
  border-radius:50%;
  background:var(--gold);
  animation:pulseDot 2.4s ease-out infinite;
}
@keyframes pulseDot{
  0%{ box-shadow:0 0 0 0 rgba(201,162,75,0.45); }
  70%{ box-shadow:0 0 0 9px rgba(201,162,75,0); }
  100%{ box-shadow:0 0 0 0 rgba(201,162,75,0); }
}

/* ---------- OBJETIVA (visual do hero) ---------- */
.lens{
  width:min(500px, 100%);
  height:auto;
  position:relative;
  z-index:1;
  filter:drop-shadow(0 30px 60px rgba(0,0,0,0.5));
  animation:lensFloat 9s ease-in-out infinite alternate;
}
/* Foto do casal cobrindo todo o hero, casal ancorado à direita */
.hero-bg{
  position:absolute;
  inset:0;
  overflow:hidden;
  z-index:0;
}
.hero-bg img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:right 22%;
}
/* Tinta cinematográfica: o cenário do estúdio permanece visível,
   escurecido o bastante para o texto respirar à esquerda */
.hero-bg::after{
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(14,13,11,0.68) 0%, rgba(14,13,11,0.56) 42%, rgba(14,13,11,0.3) 68%, rgba(14,13,11,0.44) 100%),
    linear-gradient(0deg, var(--bg) 0%, rgba(14,13,11,0) 22%),
    linear-gradient(180deg, rgba(14,13,11,0.5) 0%, rgba(14,13,11,0) 18%);
}
/* As luzes bokeh brilham sobre a foto */
.hero .bokeh-dot{
  mix-blend-mode:screen;
}
/* Assinatura: logo vetorizada, pequena o bastante para não cobrir o casal */
.hero-sign{
  position:absolute;
  right:2.5%;
  bottom:5%;
  width:min(120px, 8vw);
  height:auto;
  z-index:2;
  opacity:0.92;
  filter:drop-shadow(0 3px 16px rgba(0,0,0,0.6));
}
@media (max-width:960px){
  .hero-bg img{
    object-position:77% center;
  }
  .hero-bg::after{
    background:
      linear-gradient(180deg, rgba(14,13,11,0.62) 0%, rgba(14,13,11,0.66) 55%, var(--bg) 100%),
      linear-gradient(90deg, rgba(14,13,11,0.35) 0%, rgba(14,13,11,0.15) 100%);
  }
  .hero-sign{
    width:96px;
    right:5%;
    bottom:5%;
    left:auto;
  }
}
@keyframes lensFloat{
  from{ transform:translateY(-10px) rotate(-1.5deg); }
  to{ transform:translateY(12px) rotate(1.5deg); }
}
.lens-glow{
  position:absolute;
  inset:-12%;
  background:radial-gradient(circle, rgba(201,162,75,0.2), rgba(201,162,75,0.05) 45%, transparent 70%);
  filter:blur(28px);
  animation:glowPulse 7s ease-in-out infinite alternate;
}
@keyframes glowPulse{
  from{ opacity:0.65; transform:scale(0.96); }
  to{ opacity:1; transform:scale(1.06); }
}
.lens-blades{
  transform-box:fill-box;
  transform-origin:center;
  animation:spinSlow 120s linear infinite reverse;
}
@keyframes spinSlow{
  to{ transform:rotate(360deg); }
}
@media (max-width:960px){
  .hero-inner{
    grid-template-columns:1fr;
    gap:56px;
  }
  .lens{ width:min(300px, 72vw); }
  .hero{ padding-top:140px; }
}

.scroll-hint{
  position:absolute;
  bottom:36px; left:32px;
  display:flex; align-items:center; gap:12px;
  font-size:0.7rem; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--muted);
  z-index:2;
}
.scroll-hint .line{
  width:40px; height:1px; background:var(--hairline);
  position:relative; overflow:hidden;
}
.scroll-hint .line::after{
  content:'';
  position:absolute; left:-100%; top:0; bottom:0; width:100%;
  background:var(--gold);
  animation:slide 2.4s ease-in-out infinite;
}
@keyframes slide{
  0%{ left:-100%; } 50%{ left:0; } 100%{ left:100%; }
}

/* ---------- ENTRADA SUAVE DOS CABEÇALHOS ---------- */
@keyframes fadeInUp{
  from{ opacity:0; transform:translateY(24px); }
  to{ opacity:1; transform:translateY(0); }
}

/* Efeito de foco: cada palavra do título surge desfocada e "entra em foco",
   como uma lente ajustando a nitidez. Ativado via JS (classe .split-words). */
h1.split-words{
  opacity:1 !important;
  animation:none !important;
}
.split-words .word{
  display:inline-block;
  opacity:0;
  filter:blur(10px);
  transform:translateY(0.3em);
  animation:focusIn 1.4s cubic-bezier(.16,.84,.44,1) forwards;
  animation-delay:calc(0.35s + var(--wi) * 0.14s);
  will-change:opacity, filter, transform;
}
@keyframes focusIn{
  60%{ filter:blur(2px); }
  to{ opacity:1; filter:blur(0); transform:translateY(0); }
}

.hero-copy .badge-pill{
  opacity:0;
  animation:fadeInUp 1s cubic-bezier(.16,.84,.44,1) 0.1s forwards;
}
.hero-inner h1{
  opacity:0;
  animation:fadeInUp 1.1s cubic-bezier(.16,.84,.44,1) 0.3s forwards;
}
.hero-inner p.lede{
  opacity:0;
  animation:fadeInUp 1.2s cubic-bezier(.16,.84,.44,1) 1.1s forwards;
}
.hero-inner .hero-actions{
  opacity:0;
  animation:fadeInUp 1.2s cubic-bezier(.16,.84,.44,1) 1.45s forwards;
}
.page-hero .eyebrow{
  opacity:0;
  animation:fadeInUp 1s cubic-bezier(.16,.84,.44,1) 0.1s forwards;
}
.page-hero h1{
  opacity:0;
  animation:fadeInUp 1.1s cubic-bezier(.16,.84,.44,1) 0.3s forwards;
}
section{
  padding:130px 0;
  position:relative;
}
section.tight{ padding:90px 0 130px; }
section.alt{ background:var(--bg-alt); }
.section-head{
  margin-bottom:64px;
}
.section-head h2{
  font-size:clamp(2rem, 4vw, 2.9rem);
  color:var(--cream);
  max-width:600px;
  position:relative;
  padding-bottom:20px;
}
/* Traço dourado que se desenha sob o título quando a seção entra em cena */
.section-head h2::after{
  content:'';
  position:absolute;
  left:0; bottom:0;
  width:72px; height:1px;
  background:linear-gradient(90deg, var(--gold), var(--gold-light));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 1.1s cubic-bezier(.16,.84,.44,1) 0.35s;
}
.reveal.in-view h2::after{
  transform:scaleX(1);
}
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .9s ease, transform .9s cubic-bezier(.16,.84,.44,1);
}
.reveal.in-view{
  opacity:1;
  transform:translateY(0);
}

/* ---------- SOBRE ---------- */
.sobre-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:start;
}
.sobre-grid p{
  color:var(--muted);
  margin-bottom:20px;
  font-size:1rem;
}
.sobre-grid p:last-child{ margin-bottom:0; }
.placeholder-note{
  display:inline-block;
  margin-top:24px;
  padding:10px 16px;
  font-size:0.72rem;
  letter-spacing:0.05em;
  color:var(--gold-light);
  border:1px dashed var(--hairline);
}
.stat-row{
  display:flex;
  gap:48px;
  margin-top:40px;
  flex-wrap:wrap;
}
.stat-row div h3{
  font-size:2.4rem;
  color:var(--gold-light);
  font-style:italic;
}
.stat-row div span{
  font-size:0.72rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--muted);
}
.sobre-article{
  max-width:760px;
  margin:0 auto;
}
.sobre-article p{
  color:var(--muted);
  margin-bottom:22px;
  font-size:1.02rem;
}
.sobre-article p:last-child{ margin-bottom:0; }

.photo-float-right,
.photo-float-left{
  width:300px;
  max-width:42%;
}
.photo-float-right{
  float:right;
  margin:4px 0 24px 32px;
}
.photo-float-left{
  float:left;
  margin:4px 32px 24px 0;
}
@media (max-width:700px){
  .photo-float-right,
  .photo-float-left{
    float:none;
    width:100%;
    max-width:360px;
    margin:0 auto 32px;
  }
}

@media (max-width:860px){
  .sobre-grid{ grid-template-columns:1fr; gap:36px; }
}

.photo-frame{
  position:relative;
  border:1px solid var(--hairline);
  padding:14px;
  background:var(--bg-card);
}
.photo-frame img{
  width:100%;
  display:block;
}
.photo-frame::before,
.photo-frame::after{
  content:'';
  position:absolute;
  width:22px; height:22px;
  border:1px solid var(--gold);
  opacity:0.7;
}
.photo-frame::before{ top:-1px; left:-1px; border-right:none; border-bottom:none; }
.photo-frame::after{ bottom:-1px; right:-1px; border-left:none; border-top:none; }
.photo-caption{
  margin-top:16px;
  text-align:center;
  font-size:0.72rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--muted);
}

/* ---------- SERVIÇOS ---------- */
.servicos-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;
  background:var(--hairline);
  border:1px solid var(--hairline);
}
.servico-card{
  background:var(--bg);
  padding:40px 32px;
  transition:background .35s ease;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  position:relative;
  overflow:hidden;
}
/* Spotlight: luz dourada que acompanha o mouse sobre o card */
.servico-card::after{
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(340px circle at var(--mx, 50%) var(--my, 50%), rgba(201,162,75,0.09), transparent 62%);
  opacity:0;
  transition:opacity .45s ease;
  pointer-events:none;
}
.servico-card:hover::after{
  opacity:1;
}
/* Cascata: os cards surgem um a um quando a grade entra em cena */
.reveal .servico-card{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .85s ease, transform .85s cubic-bezier(.16,.84,.44,1), background .35s ease;
}
.reveal.in-view .servico-card{
  opacity:1;
  transform:translateY(0);
}
.reveal.in-view .servico-card:nth-child(1){ transition-delay:0s, 0s, 0s; }
.reveal.in-view .servico-card:nth-child(2){ transition-delay:0.07s, 0.07s, 0s; }
.reveal.in-view .servico-card:nth-child(3){ transition-delay:0.14s, 0.14s, 0s; }
.reveal.in-view .servico-card:nth-child(4){ transition-delay:0.21s, 0.21s, 0s; }
.reveal.in-view .servico-card:nth-child(5){ transition-delay:0.28s, 0.28s, 0s; }
.reveal.in-view .servico-card:nth-child(6){ transition-delay:0.35s, 0.35s, 0s; }
.reveal.in-view .servico-card:nth-child(7){ transition-delay:0.42s, 0.42s, 0s; }
.reveal.in-view .servico-card:nth-child(8){ transition-delay:0.49s, 0.49s, 0s; }
.reveal.in-view .servico-card:nth-child(9){ transition-delay:0.56s, 0.56s, 0s; }
.reveal.in-view .servico-card:nth-child(10){ transition-delay:0.63s, 0.63s, 0s; }
.reveal.in-view .servico-card:nth-child(11){ transition-delay:0.7s, 0.7s, 0s; }
.reveal.in-view .servico-card:nth-child(12){ transition-delay:0.77s, 0.77s, 0s; }
.reveal.in-view .servico-card:nth-child(13){ transition-delay:0.84s, 0.84s, 0s; }
.servico-card:hover{ background:var(--bg-card); }
.servico-card .icon{
  width:26px; height:26px;
  margin-bottom:22px;
  color:var(--gold);
}

/* ---------- ANIMAÇÃO DE TRAÇADO DOS ÍCONES ---------- */
.icon path:not([stroke="none"]),
.icon rect:not([stroke="none"]),
.icon circle:not([stroke="none"]),
.icon line:not([stroke="none"]),
.icon ellipse:not([stroke="none"]),
.icon polyline:not([stroke="none"]),
.icon polygon:not([stroke="none"]){
  stroke-dasharray:1;
  stroke-dashoffset:1;
  transition:stroke-dashoffset 1.3s cubic-bezier(.4,.1,.2,1);
}
.reveal.in-view .icon path:not([stroke="none"]),
.reveal.in-view .icon rect:not([stroke="none"]),
.reveal.in-view .icon circle:not([stroke="none"]),
.reveal.in-view .icon line:not([stroke="none"]),
.reveal.in-view .icon ellipse:not([stroke="none"]),
.reveal.in-view .icon polyline:not([stroke="none"]),
.reveal.in-view .icon polygon:not([stroke="none"]){
  stroke-dashoffset:0;
}
.servicos-grid .servico-card:nth-child(1) .icon path,   .servicos-grid .servico-card:nth-child(1) .icon rect,   .servicos-grid .servico-card:nth-child(1) .icon circle{ transition-delay:0s; }
.servicos-grid .servico-card:nth-child(2) .icon path,   .servicos-grid .servico-card:nth-child(2) .icon rect,   .servicos-grid .servico-card:nth-child(2) .icon circle{ transition-delay:0.06s; }
.servicos-grid .servico-card:nth-child(3) .icon path,   .servicos-grid .servico-card:nth-child(3) .icon rect,   .servicos-grid .servico-card:nth-child(3) .icon circle{ transition-delay:0.12s; }
.servicos-grid .servico-card:nth-child(4) .icon path,   .servicos-grid .servico-card:nth-child(4) .icon rect,   .servicos-grid .servico-card:nth-child(4) .icon circle{ transition-delay:0.18s; }
.servicos-grid .servico-card:nth-child(5) .icon path,   .servicos-grid .servico-card:nth-child(5) .icon rect,   .servicos-grid .servico-card:nth-child(5) .icon circle{ transition-delay:0.24s; }
.servicos-grid .servico-card:nth-child(6) .icon path,   .servicos-grid .servico-card:nth-child(6) .icon rect,   .servicos-grid .servico-card:nth-child(6) .icon circle{ transition-delay:0.3s; }
.servicos-grid .servico-card:nth-child(7) .icon path,   .servicos-grid .servico-card:nth-child(7) .icon rect,   .servicos-grid .servico-card:nth-child(7) .icon circle{ transition-delay:0.36s; }
.servicos-grid .servico-card:nth-child(8) .icon path,   .servicos-grid .servico-card:nth-child(8) .icon rect,   .servicos-grid .servico-card:nth-child(8) .icon circle{ transition-delay:0.42s; }
.servicos-grid .servico-card:nth-child(9) .icon path,   .servicos-grid .servico-card:nth-child(9) .icon rect,   .servicos-grid .servico-card:nth-child(9) .icon circle{ transition-delay:0.48s; }
.servicos-grid .servico-card:nth-child(10) .icon path,  .servicos-grid .servico-card:nth-child(10) .icon rect,  .servicos-grid .servico-card:nth-child(10) .icon circle{ transition-delay:0.54s; }
.servicos-grid .servico-card:nth-child(11) .icon path,  .servicos-grid .servico-card:nth-child(11) .icon rect,  .servicos-grid .servico-card:nth-child(11) .icon circle{ transition-delay:0.6s; }
.servicos-grid .servico-card:nth-child(12) .icon path,  .servicos-grid .servico-card:nth-child(12) .icon rect,  .servicos-grid .servico-card:nth-child(12) .icon circle{ transition-delay:0.66s; }

/* redesenha o ícone também ao passar o mouse, como um pequeno gesto vivo */
.servico-card:hover .icon path:not([stroke="none"]),
.servico-card:hover .icon rect:not([stroke="none"]),
.servico-card:hover .icon circle:not([stroke="none"]){
  animation:redraw 0.9s cubic-bezier(.4,.1,.2,1);
}
@keyframes redraw{
  0%{ stroke-dashoffset:1; }
  100%{ stroke-dashoffset:0; }
}
.servico-card h3{
  font-size:1.25rem;
  color:var(--cream);
  margin-bottom:10px;
  font-weight:500;
}
.servico-card p{
  font-size:0.88rem;
  color:var(--muted);
}
.info-btn{
  margin-top:20px;
  background:none;
  border:none;
  padding:0;
  color:var(--gold);
  font-family:'Jost', sans-serif;
  font-size:0.74rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  cursor:pointer;
  position:relative;
  padding-bottom:3px;
}
.info-btn::after{
  content:'';
  position:absolute; left:0; bottom:0;
  width:100%; height:1px;
  background:var(--gold);
  transform:scaleX(0.4);
  transform-origin:left;
  transition:transform .3s ease, opacity .3s ease;
  opacity:0.5;
}
.info-btn:hover::after{ transform:scaleX(1); opacity:1; }

/* ---------- MODAL DE PACOTES ---------- */
.modal-overlay{
  position:fixed; inset:0;
  background:rgba(10,9,8,0.82);
  backdrop-filter:blur(4px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  z-index:200;
  opacity:0;
  visibility:hidden;
  transition:opacity .3s ease, visibility .3s ease;
}
.modal-overlay.open{
  opacity:1;
  visibility:visible;
}
.modal-box{
  background:var(--bg-alt);
  border:1px solid var(--hairline);
  border-radius:16px;
  max-width:520px;
  width:100%;
  max-height:85vh;
  overflow-y:auto;
  padding:44px 36px;
  position:relative;
  transform:translateY(16px);
  transition:transform .35s cubic-bezier(.16,.84,.44,1);
}
.modal-overlay.open .modal-box{
  transform:translateY(0);
}
.modal-close{
  position:absolute;
  top:18px; right:18px;
  width:34px; height:34px;
  border:1px solid var(--hairline);
  background:none;
  color:var(--cream);
  font-size:1.3rem;
  line-height:1;
  cursor:pointer;
  transition:border-color .3s ease, color .3s ease;
}
.modal-close:hover{ border-color:var(--gold); color:var(--gold-light); }

.modal-content .m-eyebrow{
  font-size:0.72rem;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:10px;
}
.modal-content h3{
  font-family:'Cormorant Garamond', serif;
  font-size:1.7rem;
  color:var(--cream);
  margin-bottom:24px;
  padding-right:20px;
}
.package-option{
  border:1px solid var(--hairline);
  padding:20px 22px;
  margin-bottom:16px;
}
.package-option .p-head{
  display:flex;
  flex-wrap:wrap;              /* valor desce de linha quando falta espaço */
  justify-content:space-between;
  align-items:baseline;
  margin-bottom:12px;
  gap:4px 12px;
}
.package-option .p-name{
  flex:1 1 auto;
  min-width:0;                 /* permite encolher dentro do flex */
  font-size:0.78rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--gold-light);
}
.package-option .p-price{
  flex:0 1 auto;
  min-width:0;
  margin-left:auto;
  text-align:right;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:1.4rem;
  line-height:1.25;
  color:var(--cream);
  /* Valores descritivos ("R$ 25,00 por look") precisam poder quebrar */
  white-space:normal;
  overflow-wrap:anywhere;
}
.package-option ul{
  list-style:none;
}
.package-option ul li{
  font-size:0.9rem;
  color:var(--muted);
  padding-left:16px;
  position:relative;
  margin-bottom:6px;
}
.package-option ul li::before{
  content:'—';
  position:absolute; left:0;
  color:var(--gold);
}
.package-section{
  border-left:2px solid var(--gold);
  padding-left:18px;
  margin-bottom:20px;
}
.package-section h4{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:1.1rem;
  color:var(--gold-light);
  margin-bottom:8px;
  font-weight:500;
}
.package-section ul{
  list-style:none;
}
.package-section ul li{
  font-size:0.9rem;
  color:var(--muted);
  padding-left:16px;
  position:relative;
  margin-bottom:6px;
}
.package-section ul li::before{
  content:'—';
  position:absolute; left:0;
  color:var(--gold);
}
.modal-meta{
  margin-top:20px;
  font-size:0.86rem;
  color:var(--muted);
}
.modal-meta strong{
  color:var(--cream);
  font-weight:500;
}
.modal-meta p{ margin-bottom:6px; }
.modal-empty{
  color:var(--muted);
  font-size:0.95rem;
  margin-bottom:8px;
}
.modal-content .btn{
  margin-top:28px;
  width:100%;
  justify-content:center;
}
/* Modal no celular: mais área útil e nome/valor empilhados */
@media (max-width:560px){
  .modal-overlay{ padding:14px; }
  .modal-box{
    padding:34px 18px 28px;
    max-height:88vh;
    border-radius:14px;
  }
  .modal-close{
    top:12px; right:12px;
    width:40px; height:40px;
  }
  .modal-content h3{
    font-size:1.5rem;
    margin-bottom:20px;
    padding-right:44px;   /* não passa por baixo do botão de fechar */
  }
  .package-option{ padding:16px 15px; }
  .package-option .p-head{
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
  }
  .package-option .p-price{
    margin-left:0;
    text-align:left;
    font-size:1.3rem;
  }
  .package-option ul li,
  .package-section ul li{ font-size:0.86rem; }
  .package-section{ padding-left:14px; }
}
@media (max-width:860px){
  .servicos-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .servicos-grid{ grid-template-columns:1fr; }
}

/* ---------- PORTFOLIO ---------- */
.portfolio-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  grid-auto-rows:200px;
  gap:14px;
}
.portfolio-grid .p-item:nth-child(1){ grid-column:span 2; grid-row:span 2; }
.portfolio-grid .p-item:nth-child(6){ grid-column:span 2; }
.p-item{
  position:relative;
  background:
    linear-gradient(160deg, var(--bg-card), var(--bg-alt));
  border:1px solid var(--hairline);
  display:flex;
  align-items:flex-end;
  padding:18px;
  overflow:hidden;
  cursor:default;
}
.p-item::before{
  content:'';
  position:absolute; inset:0;
  background-image:
    linear-gradient(135deg, transparent 48%, var(--hairline) 49%, transparent 50%),
    linear-gradient(-135deg, transparent 48%, var(--hairline) 49%, transparent 50%);
  opacity:0.5;
}
.p-item span{
  position:relative;
  font-size:0.72rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--gold-light);
  background:rgba(14,13,11,0.6);
  padding:6px 10px;
}
@media (max-width:860px){
  .portfolio-grid{ grid-template-columns:repeat(2,1fr); }
  .portfolio-grid .p-item:nth-child(1){ grid-column:span 2; }
}

.portfolio-cta{
  margin-top:44px;
  display:flex;
  justify-content:center;
}

/* ---------- FAIXA DE CATEGORIAS (letreiro contínuo) ---------- */
.marquee{
  border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);
  overflow:hidden;
  padding:22px 0;
  background:var(--bg-alt);
}
.marquee-track{
  display:flex;
  align-items:center;
  gap:38px;
  width:max-content;
  animation:marqueeScroll 36s linear infinite;
}
.marquee .m-item{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:1.45rem;
  color:var(--muted);
  white-space:nowrap;
}
.marquee .m-sep{
  color:var(--gold);
  font-size:0.8rem;
}
@keyframes marqueeScroll{
  to{ transform:translateX(-50%); }
}

/* ---------- MOSAICO DE DESTAQUES (masonry: preserva a proporção original) ---------- */
.mosaic{
  columns:3;
  column-gap:12px;
}
.mosaic-item{
  position:relative;
  border:1px solid var(--hairline);
  background:linear-gradient(160deg, var(--bg-card), var(--bg-alt));
  overflow:hidden;
  line-height:0;
  display:block;
  margin-bottom:12px;
  break-inside:avoid;
}
.mosaic-item img{
  display:block;
  width:100%;
  height:auto;
}
/* Mini-slides: fotos da mesma categoria se alternam em crossfade.
   A primeira foto define a moldura; as demais preenchem o mesmo quadro.
   Transição Ken Burns: a foto entra em fade enquanto desliza de um leve
   zoom até acomodar, num movimento contínuo, lento e elegante. */
.mosaic-item .slide{
  position:absolute;
  inset:0;
  height:100%;
  object-fit:cover;
  opacity:0;
  transform:scale(1.08);
  transition:opacity 2.6s cubic-bezier(.4, 0, .2, 1),
             transform 2.6s cubic-bezier(.4, 0, .2, 1);
  z-index:0;
}
.mosaic-item .slide.active{
  opacity:1;
  transform:scale(1);
  transition:opacity 2.6s cubic-bezier(.4, 0, .2, 1),
             transform 8s cubic-bezier(.22, .61, .36, 1);
}
.slide-dots{
  position:absolute;
  right:14px; bottom:16px;
  z-index:2;
  display:flex;
  gap:6px;
  line-height:0;
}
.slide-dots i{
  width:5px; height:5px;
  border-radius:50%;
  background:rgba(243,236,220,0.35);
  transition:background .4s ease;
}
.slide-dots i.on{
  background:var(--gold);
}
/* Cortina de revelação: um painel escuro desliza e "revela" a foto,
   enquanto a imagem acomoda com um leve zoom, como foto sendo revelada */
.reveal .mosaic-item::before{
  content:'';
  position:absolute; inset:0;
  background:var(--bg);
  z-index:2;
  transform:scaleX(1);
  transform-origin:right;
  transition:transform 1.15s cubic-bezier(.77,0,.18,1) calc(var(--mi, 0) * 0.12s);
}
.reveal.in-view .mosaic-item::before{
  transform:scaleX(0);
}
.reveal .mosaic-item img:not(.slide){
  transform:scale(1.12);
  transition:transform 1.6s cubic-bezier(.16,.84,.44,1) calc(var(--mi, 0) * 0.12s);
}
.reveal.in-view .mosaic-item img:not(.slide){
  transform:scale(1);
}
.mosaic-item:hover img{
  transform:scale(1.03);
  transition:transform 0.8s cubic-bezier(.16,.84,.44,1);
}
.mosaic-item::after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(14,13,11,0.6) 0%, transparent 45%);
  z-index:1;
  pointer-events:none;
}
.mosaic-label{
  position:absolute;
  left:16px; bottom:14px;
  z-index:2;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:1.2rem;
  line-height:1.2;
  color:var(--gold-light);
}
@media (max-width:860px){
  .mosaic{
    columns:2;
    column-gap:10px;
  }
  .mosaic-item{ margin-bottom:10px; }
}

/* ---------- TEASER DO SOBRE ---------- */
.teaser-grid{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:clamp(40px, 6vw, 90px);
  align-items:center;
}
.teaser-photo{
  margin:0;
}
.teaser-copy h2{
  font-size:clamp(1.9rem, 3.6vw, 2.8rem);
  color:var(--cream);
  margin-bottom:20px;
}
.teaser-copy h2 em{
  font-style:italic;
  color:var(--gold-light);
}
.teaser-copy p{
  color:var(--muted);
  max-width:520px;
  margin-bottom:34px;
}
@media (max-width:860px){
  .teaser-grid{ grid-template-columns:1fr; gap:44px; }
}

/* ---------- AGENDAMENTO ---------- */
.agenda-grid{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:70px;
  align-items:center;
}
.agenda-copy p{
  color:var(--muted);
  margin-bottom:18px;
}
.agenda-list{
  list-style:none;
  margin:28px 0 34px;
}
.agenda-list li{
  display:flex;
  gap:14px;
  margin-bottom:14px;
  font-size:0.92rem;
  color:var(--cream);
}
.agenda-list li::before{
  content:'—';
  color:var(--gold);
}
/* ---------- ASSISTENTE DE AGENDAMENTO ---------- */
.booking-panel{
  position:relative;
  border:1px solid var(--hairline);
  border-radius:20px;
  background:linear-gradient(180deg, var(--bg-alt), var(--bg-card));
  padding:44px 38px;
  overflow:hidden;
}
.booking-glow{
  position:absolute;
  inset:-40%;
  background:radial-gradient(circle at 85% 0%, rgba(201,162,75,0.12), transparent 55%);
  pointer-events:none;
}
.booking-step{
  position:relative;
  margin-bottom:26px;
}
.booking-label{
  display:block;
  font-size:0.72rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold-light);
  margin-bottom:10px;
}
.booking-label em{
  text-transform:none;
  letter-spacing:0.04em;
  color:var(--muted);
  font-style:italic;
}
.booking-select,
.booking-input{
  width:100%;
  background:var(--bg);
  border:1px solid var(--hairline);
  border-radius:10px;
  color:var(--cream);
  font-family:'Jost', sans-serif;
  font-weight:300;
  font-size:0.95rem;
  padding:13px 16px;
  outline:none;
  transition:border-color .3s ease, box-shadow .3s ease;
  color-scheme:dark;
}
.booking-select:focus,
.booking-input:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(201,162,75,0.12);
}
.booking-input::placeholder{
  color:var(--muted);
  opacity:0.6;
}
.booking-hint{
  font-size:0.8rem;
  color:var(--muted);
  margin-top:8px;
}
.booking-hint.warn{
  color:#d98a6a;
}
/* Dropdown customizado: sempre abre para baixo */
.dd{
  position:relative;
}
.dd-toggle{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  text-align:left;
  cursor:pointer;
}
.dd-toggle .placeholder{
  color:var(--muted);
  opacity:0.7;
}
.dd-toggle .chev{
  width:15px; height:15px;
  flex:none;
  color:var(--gold);
  transition:transform .3s ease;
}
.dd.open .chev{
  transform:rotate(180deg);
}
.dd-list{
  position:absolute;
  top:calc(100% + 6px);
  left:0; right:0;
  background:var(--bg-alt);
  border:1px solid var(--hairline);
  border-radius:10px;
  list-style:none;
  max-height:250px;
  overflow-y:auto;
  z-index:20;
  padding:6px;
  margin:0;
  opacity:0;
  visibility:hidden;
  transform:translateY(-6px);
  transition:opacity .25s ease, transform .25s ease, visibility .25s ease;
  box-shadow:0 18px 40px rgba(0,0,0,0.45);
}
.dd.open .dd-list{
  opacity:1;
  visibility:visible;
  transform:none;
}
.dd-list li{
  padding:10px 12px;
  border-radius:7px;
  font-size:0.92rem;
  color:var(--cream);
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.dd-list li:hover,
.dd-list li:focus{
  background:rgba(201,162,75,0.12);
  color:var(--gold-light);
}
.dd-list li:focus-visible{
  outline:2px solid var(--gold-light);
  outline-offset:-2px;
}
/* Valor do serviço escolhido — aparece dentro do passo 1 do agendamento */
.svc-info{
  margin-top:14px;
  padding:15px 16px;
  border:1px solid var(--hairline);
  border-radius:10px;
  background:rgba(201,162,75,0.05);
  animation:svcIn .3s ease both;
}
@keyframes svcIn{
  from{ opacity:0; transform:translateY(-6px); }
  to{ opacity:1; transform:none; }
}
.svc-single{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:4px 14px;
}
.svc-single-lbl,
.svc-choose{
  font-size:0.72rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--muted);
}
.svc-choose{ margin-bottom:10px; }
.svc-single-val{
  min-width:0;
  margin-left:auto;
  text-align:right;
  font-family:'Cormorant Garamond', serif;
  font-size:1.5rem;
  line-height:1.2;
  color:var(--gold-light);
  overflow-wrap:anywhere;
}
.svc-opts{
  display:grid;
  gap:8px;
}
.svc-opt{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  width:100%;
  text-align:left;
  padding:11px 13px;
  background:var(--bg);
  border:1px solid var(--hairline);
  border-radius:8px;
  color:var(--muted);
  font-family:'Jost', sans-serif;
  font-size:0.85rem;
  cursor:pointer;
  transition:all .25s ease;
}
.svc-opt:hover{
  border-color:var(--gold);
  color:var(--cream);
}
.svc-opt.selected{
  border-color:var(--gold);
  background:rgba(201,162,75,0.12);
  color:var(--cream);
}
.svc-opt .o-name{
  flex:1 1 auto;
  min-width:0;
  line-height:1.35;
}
.svc-opt .o-price{
  flex:0 1 auto;
  min-width:0;
  text-align:right;
  line-height:1.3;
  font-size:0.9rem;
  color:var(--gold-light);
  overflow-wrap:anywhere;
}
.svc-opt.selected .o-price{ font-weight:500; }
.svc-consulta{
  font-size:0.88rem;
  color:var(--cream);
}
.svc-note{
  margin-top:10px;
  font-size:0.76rem;
  line-height:1.5;
  color:var(--muted);
}
.svc-link{
  display:inline-block;
  margin-top:10px;
  font-size:0.76rem;
  letter-spacing:0.06em;
  color:var(--gold);
  border-bottom:1px solid rgba(201,162,75,0.35);
  padding-bottom:1px;
  transition:color .25s ease, border-color .25s ease;
}
.svc-link:hover{
  color:var(--gold-light);
  border-color:var(--gold-light);
}
/* Telas estreitas: nome e preço empilhados para não apertar */
@media (max-width:560px){
  .svc-opt{
    flex-direction:column;
    align-items:flex-start;
    gap:5px;
  }
  .svc-opt .o-price{ text-align:left; }
  .svc-single{
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
  }
  .svc-single-val{ margin-left:0; text-align:left; }
}
@media (prefers-reduced-motion: reduce){
  .svc-info{ animation:none; }
}

/* Câmera SVG preenchendo a coluna de texto do agendamento */
.agenda-logo{
  margin-top:56px;
  position:relative;
  display:flex;
  justify-content:center;
}
.agenda-logo .lens{
  width:min(340px, 82%);
}

/* ---------- FAIXA DOS 11 ANOS (home) ---------- */
.stats-band{
  padding:50px 0;
}
.stats-solo{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:18px;
  flex-wrap:wrap;
  text-align:center;
}
.stats-solo .stat-inline{
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(1.25rem, 2.3vw, 1.7rem);
  color:var(--cream);
}
.stats-solo .stat-num{
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(2rem, 3.6vw, 2.7rem);
  font-weight:500;
  color:var(--gold);
  line-height:1;
}
.stats-solo .stat-sep{
  color:var(--gold);
  opacity:0.55;
  font-size:0.85rem;
}
.stats-solo .stat-phrase{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:clamp(1.1rem, 2.1vw, 1.45rem);
  color:var(--gold-light);
  margin:0;
  line-height:1.4;
}
.slot-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:8px;
}
.slot{
  background:var(--bg);
  border:1px solid var(--hairline);
  border-radius:8px;
  color:var(--muted);
  font-family:'Jost', sans-serif;
  font-size:0.85rem;
  padding:10px 0;
  cursor:pointer;
  transition:all .25s ease;
}
.slot:hover{
  border-color:var(--gold);
  color:var(--cream);
}
.slot.selected{
  background:var(--gold);
  border-color:var(--gold);
  color:var(--bg);
  font-weight:500;
}
.slot:disabled{
  opacity:0.3;
  cursor:not-allowed;
  border-color:var(--hairline);
  color:var(--muted);
}
.booking-summary{
  position:relative;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:1.05rem;
  color:var(--gold-light);
  min-height:1.4em;
  margin-bottom:20px;
}
.booking-submit{
  position:relative;
  width:100%;
  text-align:center;
  justify-content:center;
  border:none;
  cursor:pointer;
  font-family:'Jost', sans-serif;
}
.booking-submit:disabled{
  opacity:0.4;
  cursor:not-allowed;
  transform:none;
}
.booking-submit:disabled::after{
  display:none;
}
@media (max-width:860px){
  .agenda-grid{ grid-template-columns:1fr; }
  .booking-panel{ padding:34px 22px; }
  .slot-grid{ grid-template-columns:repeat(3, 1fr); }
}

/* ---------- CONTATO ---------- */
.contato-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
}
.info-line{
  display:flex;
  gap:16px;
  padding:20px 0;
  border-bottom:1px solid var(--hairline);
}
.info-line:first-child{ border-top:1px solid var(--hairline); }
.info-line .icon{ width:20px; height:20px; color:var(--gold); flex-shrink:0; margin-top:2px; }
.info-line h4{
  font-size:0.7rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:4px;
  font-weight:400;
}
.info-line p, .info-line a{
  color:var(--cream);
  font-size:0.98rem;
}
.info-line a:hover{ color:var(--gold-light); }
.map-frame{
  border:1px solid var(--hairline);
  min-height:340px;
  filter:grayscale(1) invert(0.92) contrast(1.05);
}
.map-frame iframe{ width:100%; height:100%; min-height:340px; border:0; display:block; }
@media (max-width:860px){
  .contato-grid{ grid-template-columns:1fr; }
}

/* ---------- FOOTER ---------- */
footer{
  border-top:1px solid var(--hairline);
  padding:44px 0;
}
.footer-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:20px;
}
.footer-inner p{
  font-size:0.78rem;
  color:var(--muted);
}
.social{
  display:flex;
  gap:18px;
}
.social a{
  width:34px; height:34px;
  border:1px solid var(--hairline);
  display:flex; align-items:center; justify-content:center;
  color:var(--gold-light);
  transition:border-color .3s ease, transform .3s ease;
}
.social a:hover{ border-color:var(--gold); transform:translateY(-2px); }
.social svg{ width:16px; height:16px; }
.social svg path,
.social svg rect,
.social svg circle:not([fill]){
  stroke-dasharray:1;
  stroke-dashoffset:0;
}
.social a:hover svg path,
.social a:hover svg rect,
.social a:hover svg circle:not([fill]){
  animation:redraw 0.9s cubic-bezier(.4,.1,.2,1);
}

@media (max-width:820px){
  .nav-links{
    position:fixed;
    top:0; right:-100%;
    width:min(78vw, 320px);
    height:100vh;
    background:var(--bg-alt);
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    gap:28px;
    padding:0 40px;
    transition:right .4s ease;
    border-left:1px solid var(--hairline);
  }
  .nav-links.open{ right:0; }
  .nav-cta{ order:99; }
  .burger{ display:flex; }
}

/* ---------- CTA FINAL (painel arredondado antes do rodapé) ---------- */
.cta-band{
  padding:0 0 130px;
}
.cta-panel{
  position:relative;
  text-align:center;
  padding:90px 40px;
  border:1px solid var(--hairline);
  border-radius:24px;
  background:linear-gradient(180deg, var(--bg-alt), var(--bg-card));
  overflow:hidden;
}
.cta-panel::before{
  content:'';
  position:absolute;
  inset:-40%;
  background:radial-gradient(circle at 50% 120%, rgba(201,162,75,0.16), transparent 55%);
  animation:glowPulse 8s ease-in-out infinite alternate;
  pointer-events:none;
}
.cta-panel .eyebrow{
  justify-content:center;
  position:relative;
}
.cta-panel h2{
  position:relative;
  font-size:clamp(1.9rem, 3.6vw, 2.8rem);
  color:var(--cream);
  max-width:640px;
  margin:0 auto 16px;
}
.cta-panel h2 em{
  font-style:italic;
  color:var(--gold-light);
}
.cta-panel p{
  position:relative;
  color:var(--muted);
  margin-bottom:40px;
}
.cta-actions{
  position:relative;
  display:flex;
  gap:18px;
  justify-content:center;
  flex-wrap:wrap;
}
@media (max-width:600px){
  .cta-panel{ padding:64px 24px; border-radius:18px; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
  .hero-copy .badge-pill,
  .hero-inner h1,
  .hero-inner p.lede,
  .hero-inner .hero-actions,
  .page-hero .eyebrow,
  .page-hero h1{ opacity:1 !important; transform:none !important; }
  .split-words .word{ opacity:1 !important; filter:none !important; transform:none !important; }
  .reveal .mosaic-item::before{ transform:scaleX(0) !important; }
  .reveal .mosaic-item img{ transform:none !important; }
  .reveal .servico-card{ opacity:1 !important; transform:none !important; }
  body::after{ display:none; }
}
