/* ---------------------------------------------------
   Face Corpore — design tokens (identidade dourada / high-ticket)
   Ink #14110F · Gold #C6A15B · Champagne #EFE6D8
   Blush #D9A897 · Cream #FAF7F2 · Charcoal #241F1A
   Variable names kept from the previous palette to avoid touching
   every usage site — only the color VALUES changed.
--------------------------------------------------- */

:root{
  --forest:#14110F;
  --forest-soft:#241F1A;
  --orange:#C6A15B;
  --orange-bright:#E4C078;
  --green:#9C7B3D;
  --green-deep:#7A5F2E;
  --sage:#EFE6D8;
  --blush:#D9A897;
  --cream:#FAF7F2;
  --charcoal:#241F1A;
  --line:rgba(198,161,91,0.32);
  /* dourado escuro para texto pequeno sobre fundo claro (o dourado claro não passa no contraste) */
  --gold-ink:#7A5F2E;

  --font-display:"Fraunces", Georgia, serif;
  --font-script:"Alex Brush", cursive;
  --font-body:"Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --container:1180px;
  --radius:2px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--cream);
  color:var(--charcoal);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; }
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ font-family:var(--font-display); font-weight:500; margin:0; color:var(--charcoal); }
p{ margin:0 0 1em; }
ul{ list-style:none; margin:0; padding:0; }

::selection{ background:var(--orange); color:var(--forest); }

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

.grain{
  position:fixed; inset:0; pointer-events:none; z-index:9999; opacity:0.03; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.eyebrow{
  font-family:var(--font-body);
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--gold-ink);
  margin:0 0 0.9em;
}
.section-head.light .eyebrow{ color:var(--orange-bright); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.5em;
  padding:0.95em 1.9em;
  border-radius:999px;
  font-family:var(--font-body);
  font-weight:700;
  font-size:0.92rem;
  letter-spacing:0.01em;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease, color .25s ease;
  white-space:nowrap;
}
.btn-primary{ background:var(--orange); color:var(--forest); }
.btn-primary:hover{ background:var(--orange-bright); transform:translateY(-2px); box-shadow:0 10px 24px -8px rgba(198,161,91,0.55); }
.btn-ghost{ background:transparent; color:var(--charcoal); border-color:var(--charcoal); }
.btn-ghost:hover{ background:var(--charcoal); color:var(--cream); }
.btn-small{ padding:0.6em 1.3em; font-size:0.82rem; }
.btn-full{ width:100%; }

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  display:flex; align-items:center; gap:2rem;
  padding:0.7rem clamp(1.25rem, 4vw, 3rem);
  background:rgba(247,243,236,0.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(36,31,26,0.08);
}
.brand{ display:flex; align-items:center; gap:0.6rem; margin-right:auto; }
.brand-logo-nav{ height:72px; width:auto; display:block; }
.brand-logo{ width:34px; height:34px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.site-footer .brand-logo{ width:40px; height:40px; }
.brand-word{ font-family:var(--font-script); font-size:2rem; letter-spacing:0.01em; color:var(--green-deep); }
.brand-dot{ color:var(--orange); }
.site-nav{ display:flex; gap:2rem; }
.site-nav a{ font-size:0.9rem; font-weight:600; color:var(--charcoal); opacity:0.75; transition:opacity .2s; }
.site-nav a:hover{ opacity:1; }
#nav-cta{ margin-left:0.5rem; }

.menu-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:38px; height:38px; background:none; border:none; cursor:pointer; padding:0;
}
.menu-toggle span{ width:100%; height:1.5px; background:var(--charcoal); }

.mobile-nav{
  display:none; flex-direction:column; gap:0; background:var(--cream);
  border-bottom:1px solid rgba(36,31,26,0.08);
  position:fixed; left:0; right:0; top:64px; z-index:99;
  max-height:calc(100vh - 64px); overflow-y:auto;
}
.mobile-nav.open{ display:flex; }
.mobile-nav a{ padding:1rem 1.5rem; border-bottom:1px solid rgba(36,31,26,0.06); font-weight:600; }
.mobile-nav .btn{ margin:1rem 1.5rem; }

@media (max-width: 880px){
  .site-nav{ display:none; }
  #nav-cta{ display:none; }
  .menu-toggle{ display:flex; }
  .site-header .brand-logo-nav{ height:52px; }
}

/* ---------- hero (promo creative, banner largo tipo vitrine) ----------
   As 5 artes do carrossel foram recortadas pra uma faixa larga (~16:9),
   priorizando manter título ou preço + CTA visíveis. */
.hero-promo{
  padding:clamp(0.75rem, 1.6vw, 1.25rem) clamp(1.25rem, 6vw, 3rem);
  background:var(--cream);
}
.hero-card{
  position:relative;
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  aspect-ratio:16/9;
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 12px 28px -14px rgba(20,17,15,0.3);
  border:1px solid rgba(36,31,26,0.08);
}
.hero-bg-photo{
  position:absolute; inset:0;
  background:var(--forest);
}
.hero-bg-layer{
  position:absolute; inset:0;
  background-size:cover; background-position:center; background-repeat:no-repeat;
  opacity:0; transition:opacity 1.6s ease;
}
.hero-bg-layer.is-prev{ opacity:1; transition:none; z-index:1; }
.hero-bg-layer.is-active{ opacity:1; z-index:2; }
.hero-slide-link{ position:absolute; inset:0; z-index:1; }
.hero-slide-link:focus-visible{ outline:3px solid var(--orange); outline-offset:-3px; }
.hero-float-cta{
  position:absolute;
  right:0.8rem;
  top:0.8rem;
  z-index:2;
  background:var(--orange);
  color:var(--forest);
  font-weight:700;
  font-size:0.78rem;
  padding:0.6em 1.1em;
  border-radius:999px;
  box-shadow:0 12px 28px -10px rgba(20,17,15,0.45);
  transition:background .2s ease, transform .2s ease;
}
.hero-float-cta:hover{ background:var(--orange-bright); transform:translateY(-2px); }

.hero-nav{
  position:absolute; top:50%; z-index:2;
  transform:translateY(-50%);
  width:2rem; height:2rem;
  border-radius:50%;
  border:none;
  background:rgba(250,247,240,0.9);
  color:var(--charcoal);
  font-size:1.05rem;
  line-height:1;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 12px -4px rgba(20,17,15,0.35);
  transition:background .2s ease, transform .2s ease;
}
.hero-nav:hover{ background:var(--cream); transform:translateY(-50%) scale(1.06); }
.hero-nav-prev{ left:0.6rem; }
.hero-nav-next{ right:0.6rem; }

.hero-dots{
  position:absolute; left:50%; bottom:0.7rem; z-index:2;
  transform:translateX(-50%);
  display:flex; gap:0.4rem;
}
.hero-dot{
  width:6px; height:6px; border-radius:50%;
  border:none; padding:0; cursor:pointer;
  background:rgba(250,247,240,0.55);
  transition:background .2s ease, transform .2s ease;
}
.hero-dot.is-active{ background:var(--cream); transform:scale(1.3); }

/* On phones the banner is small: the floating CTA covered the promo headline,
   and the intro right below already has the WhatsApp button. */
@media (max-width:640px){
  .hero-float-cta{ display:none; }
  .hero-nav{ width:1.7rem; height:1.7rem; font-size:0.95rem; background:rgba(250,247,240,0.75); }
  .hero-nav-prev{ left:0.35rem; }
  .hero-nav-next{ right:0.35rem; }
  .hero-dots{ bottom:0.4rem; }
  .hero-dot{ width:5px; height:5px; }
}

/* ---------- intro (fachada ao fundo, texto por cima) ---------- */
.intro-section{
  position:relative;
  overflow:hidden;
  max-width:none;
  background:var(--forest);
  color:var(--cream);
  padding:clamp(3.4rem, 8vw, 6rem) clamp(1.25rem, 6vw, 3rem);
}
.intro-bg{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:62% 40%;
}
.intro-shade{
  position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(20,17,15,0.9) 0%, rgba(20,17,15,0.78) 38%, rgba(20,17,15,0.25) 72%, rgba(20,17,15,0.1) 100%),
    linear-gradient(0deg, rgba(20,17,15,0.55) 0%, rgba(20,17,15,0) 40%);
}
.intro-grid{
  position:relative; z-index:1;
  max-width:var(--container);
  margin:0 auto;
  text-align:left;
}
.intro-inner{ max-width:560px; }
.intro-section .eyebrow{ color:var(--orange-bright); }
.intro-title{
  font-size:clamp(2.4rem, 4.2vw, 3.2rem);
  line-height:1.08;
  color:var(--cream);
  margin-bottom:0.55em;
}
.intro-title em{ font-family:var(--font-script); font-style:normal; font-size:1.3em; color:var(--orange); }
.intro-lead{
  position:relative;
  font-family:var(--font-display);
  font-style:italic;
  font-size:1.2rem;
  max-width:30em;
  color:var(--cream);
}
.hero-lead-author{ display:block; margin-top:0.6em; font-family:var(--font-body); font-style:normal; font-size:0.85rem; color:var(--orange-bright); font-weight:600; letter-spacing:0.03em; }
.intro-actions{ display:flex; flex-wrap:wrap; justify-content:flex-start; gap:1rem; margin:2rem 0 3rem; }

.trust-bar{
  display:grid; grid-template-columns:repeat(4, minmax(0, 1fr));
  padding-top:2rem;
  position:relative;
}
.trust-bar::before{
  content:"";
  position:absolute; top:0; left:0;
  width:48px; height:2px; background:var(--orange);
}
.trust-bar li{
  display:flex; flex-direction:column; align-items:flex-start;
  padding:0 1rem; border-left:1px solid rgba(250,247,240,0.22);
}
.trust-bar li:first-child{ padding-left:0; border-left:none; }
.trust-bar strong{ font-family:var(--font-display); font-size:1.7rem; line-height:1.2; color:var(--orange-bright); white-space:nowrap; }
.trust-bar span{ font-size:0.78rem; line-height:1.4; color:rgba(250,247,240,0.8); }

.reveal{ animation:rise 0.9s cubic-bezier(.22,.61,.36,1) both; }
.intro-title.reveal{ animation-delay:0.05s; }
.intro-lead.reveal{ animation-delay:0.2s; }
.intro-actions.reveal{ animation-delay:0.35s; }
.trust-bar.reveal{ animation-delay:0.5s; }
@keyframes rise{ from{ opacity:0; transform:translateY(16px);} to{ opacity:1; transform:translateY(0);} }

@media (max-width:880px){
  .intro-grid{ text-align:center; }
  .intro-inner{ max-width:560px; margin:0 auto; }
  .intro-shade{ background:linear-gradient(0deg, rgba(20,17,15,0.88) 0%, rgba(20,17,15,0.72) 100%); }
  .intro-actions{ justify-content:center; }
  .trust-bar::before{ left:50%; transform:translateX(-50%); }
  .trust-bar li{ align-items:center; text-align:center; }
}

@media (max-width:560px){
  .trust-bar{ grid-template-columns:repeat(2, minmax(0, 1fr)); row-gap:1.4rem; }
  .trust-bar li{ padding:0 0.8rem; }
  .trust-bar li:nth-child(odd){ border-left:none; }
}

/* ---------- sections ---------- */
.section{
  padding:clamp(4.5rem, 9vw, 7rem) clamp(1.25rem, 6vw, 3rem);
  max-width:var(--container);
  margin:0 auto;
}
#servicos{ padding-top:clamp(2rem, 4vw, 3rem); }
.section-alt{ background:var(--sage); max-width:none; }
.section-alt .section-head, .section-alt .faq-list{ max-width:var(--container); margin-left:auto; margin-right:auto; }
.section-dark{ background:var(--forest); color:var(--sage); max-width:none; }

.section-head{ max-width:640px; margin:0 auto 3.2rem; text-align:center; }
.section-head h2{ font-size:clamp(2rem, 4vw, 2.7rem); margin-bottom:0.5rem; }
.section-dark h2{ color:var(--cream); }
.section-sub{ color:rgba(36,31,26,0.65); }

/* ---------- services ---------- */
.service-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.6rem;
}
.service-grid-featured{ grid-template-columns:repeat(3, 1fr); max-width:960px; margin:0 auto; }
.service-card{
  background:var(--cream);
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 12px 28px -18px rgba(36,31,26,0.35);
  transition:transform .25s ease, box-shadow .25s ease;
  display:flex;
  flex-direction:column;
}
.service-card:hover{ transform:translateY(-4px); box-shadow:0 18px 34px -16px rgba(36,31,26,0.4); }
.service-card:hover .service-card-cta{ color:var(--charcoal); }
.service-card:hover .service-card-cta-arrow{ transform:translateX(4px); }

.service-card-trigger{
  display:flex;
  flex-direction:column;
  flex:1;
  appearance:none;
  border:none;
  margin:0;
  padding:0;
  background:none;
  width:100%;
  text-align:left;
  cursor:pointer;
  font-family:inherit;
  font-size:1rem;
  color:inherit;
}
.service-card-trigger:focus-visible{ outline:2px solid var(--orange); outline-offset:-2px; }

.service-card-detail-link{
  display:block;
  text-align:center;
  padding:0.7em 1rem;
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:0.02em;
  color:rgba(36,31,26,0.55);
  border-top:1px solid rgba(36,31,26,0.08);
  transition:color .2s ease, background .2s ease;
}
.service-card-detail-link:hover{ color:var(--charcoal); background:rgba(36,31,26,0.04); }

.service-card-photo{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--sage);
}
.service-card-photo img,
.service-card-photo svg{ width:100%; height:100%; object-fit:cover; display:block; }

.service-card-body{ padding:1.6rem 1.6rem 1.8rem; flex:1; display:flex; flex-direction:column; }
.service-card h3{ font-size:1.25rem; margin-bottom:0.5rem; }
.service-card p{ color:rgba(36,31,26,0.7); font-size:0.92rem; flex:1; }
.service-card-cta{
  display:inline-flex; align-items:center; gap:0.4rem;
  margin-top:1.2rem; font-weight:700; font-size:0.85rem; color:var(--gold-ink);
  transition:color .2s ease;
}
.service-card-cta-arrow{ display:inline-block; transition:transform .2s ease; }

/* ---------- mais procedimentos (secundário) ---------- */
.more-services{ max-width:760px; margin:3.2rem auto 0; }
.more-services-title{
  font-family:var(--font-body); font-size:0.75rem; font-weight:700; letter-spacing:0.16em;
  text-transform:uppercase; color:rgba(36,31,26,0.5); text-align:center; margin-bottom:1rem;
}
.more-services-list{ border-top:1px solid rgba(36,31,26,0.1); }
.all-services-link{ text-align:center; margin-top:1.8rem; }
.more-service-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:1.1rem 0.4rem; border-bottom:1px solid rgba(36,31,26,0.1);
  font-weight:600; font-size:0.98rem; color:var(--charcoal);
  transition:padding-left .2s ease, color .2s ease;
}
.more-service-row:hover{ padding-left:0.6rem; color:var(--green-deep); }
.more-service-arrow{ color:var(--gold-ink); font-weight:700; }

@media (max-width:960px){
  .service-grid{ grid-template-columns:repeat(2, 1fr); }
  .service-grid-featured{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:560px){
  .service-grid{ grid-template-columns:1fr; }
  .service-grid-featured{ grid-template-columns:1fr; }
}

/* ---------- como funciona (primeira visita) ---------- */
.steps{
  display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:2.5rem;
  max-width:1088px; margin:0 auto;
}
.step{ border-top:1px solid rgba(228,192,120,0.4); padding-top:1.4rem; display:flex; flex-direction:column; gap:0.6rem; }
.step-num{ font-family:var(--font-display); font-size:2.5rem; line-height:1; color:var(--orange-bright); }
.step h3{ color:var(--cream); font-size:1.35rem; }
.step p{ margin:0; color:rgba(239,230,216,0.75); font-size:0.95rem; }
.steps-actions{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:1rem 1.8rem; margin-top:3rem; }
.steps-actions .text-link{ color:var(--orange-bright); border-bottom-color:var(--orange-bright); }
@media (max-width:820px){ .steps{ grid-template-columns:1fr; gap:2rem; } }

/* ---------- botão fixo de WhatsApp (celular) ---------- */
.sticky-cta{ display:none; }
.icon-chat{ width:20px; height:20px; flex-shrink:0; }
@media (max-width:880px){
  .sticky-cta{
    display:flex; flex-direction:column; gap:0.35rem;
    position:fixed; left:0; right:0; bottom:0; z-index:90;
    padding:0.6rem 1rem calc(0.9rem + env(safe-area-inset-bottom));
    background:rgba(250,247,242,0.95); backdrop-filter:blur(8px);
    border-top:1px solid rgba(36,31,26,0.1);
    box-shadow:0 -10px 30px -18px rgba(20,17,15,0.45);
    transform:translateY(110%); transition:transform .3s ease;
  }
  .sticky-cta.is-visible{ transform:none; }
  .sticky-cta .btn{ width:100%; min-height:50px; }
  .sticky-cta small{ text-align:center; font-size:0.75rem; font-weight:600; color:rgba(36,31,26,0.62); }
  .site-footer{ padding-bottom:calc(2rem + 96px); }
}

/* ---------- gallery ---------- */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:0.6rem;
  max-width:var(--container);
  margin:0 auto;
}
.gallery-grid-3{ grid-template-columns:repeat(3, 1fr); max-width:900px; }
.gallery-item{ margin:0; overflow:hidden; border-radius:2px; aspect-ratio:3/4; }
.gallery-item img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.gallery-item:hover img{ transform:scale(1.04); }
/* Two portrait columns on phones keep the same 3:4 framing the admin crops to. */
@media (max-width:880px){
  .gallery-grid, .gallery-grid-3{ grid-template-columns:repeat(2, 1fr); }
}

/* ---------- about ---------- */
.about-grid{
  display:grid;
  grid-template-columns:260px 1fr;
  gap:clamp(2rem, 6vw, 5rem);
  align-items:center;
}
.about-photo{ margin:0; }
.about-photo img{
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  object-position:top center;
  border-radius:2px;
  box-shadow:0 24px 48px -20px rgba(36,31,26,0.35);
}
.about-photo figcaption{
  margin-top:0.8rem;
  font-size:0.78rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  text-align:center;
}
.about-role{ color:var(--gold-ink); font-weight:700; font-size:0.9rem; margin-bottom:1rem; }
.about-copy h2{ font-size:clamp(1.9rem,4vw,2.5rem); margin-bottom:0.2rem; }
.about-copy p{ color:rgba(36,31,26,0.75); max-width:42em; }
.about-links{ display:flex; flex-wrap:wrap; gap:1.6rem; margin-top:0.4rem; }
.text-link{ font-weight:700; border-bottom:1px solid var(--orange); padding-bottom:2px; }
@media (max-width:760px){
  .about-grid{ grid-template-columns:1fr; text-align:center; }
  .about-copy p{ margin-left:auto; margin-right:auto; }
}

/* ---------- reviews ---------- */
.section-sub.light{ color:rgba(239,230,216,0.75); }
.review-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.6rem;
  max-width:var(--container);
  margin:0 auto;
}
.review-card{
  background:rgba(239,230,216,0.05);
  border:1px solid rgba(239,230,216,0.14);
  padding:2rem 1.8rem;
  border-radius:2px;
}
.review-stars{ color:var(--orange); font-size:0.95rem; letter-spacing:0.15em; display:block; margin-bottom:1rem; }
.review-card p{ font-family:var(--font-display); font-size:1.1rem; line-height:1.45; color:var(--cream); margin-bottom:1.2rem; }
.review-author{ font-size:0.8rem; font-weight:700; letter-spacing:0.03em; color:var(--orange-bright); }
.review-author em{ font-style:normal; font-weight:600; color:rgba(250,247,240,0.55); font-size:0.92em; }
.review-more{ display:block; text-align:center; margin-top:2.4rem; color:var(--orange-bright); border-bottom-color:var(--orange-bright); }
@media (max-width:880px){ .review-grid{ grid-template-columns:1fr; } }

.review-actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:1rem 2.4rem; margin-top:2.4rem; }
.review-actions .review-more{ margin-top:0; }
.review-toggle{ background:none; border:none; font-family:var(--font-body); cursor:pointer; }
.review-form{
  max-width:520px; margin:2.4rem auto 0;
  background:rgba(239,230,216,0.05);
  border:1px solid rgba(239,230,216,0.14);
  padding:clamp(1.6rem,4vw,2.2rem);
  border-radius:2px;
}
.review-form .field label{ color:var(--sage); }
.review-form .field input, .review-form .field select, .review-form .field textarea{
  background:rgba(239,230,216,0.1);
  border:1.5px solid rgba(239,230,216,0.4);
  color:var(--cream);
  padding:0.8em 1em;
  font-family:var(--font-body);
  font-size:0.95rem;
  border-radius:2px;
  width:100%;
}
.review-form .field select{ appearance:none; }
.review-form .field textarea{ resize:vertical; }

/* ---------- star rating input ---------- */
.star-rating-input{ display:flex; gap:0.3rem; }
.star-btn{
  background:none; border:none; padding:0; cursor:pointer;
  font-size:1.8rem; line-height:1; color:rgba(239,230,216,0.25);
  transition:color .15s ease, transform .15s ease;
}
.star-btn:hover, .star-btn:focus-visible{ transform:scale(1.12); }
.star-btn.active{ color:var(--orange-bright); }

/* ---------- lightbox ---------- */
.gallery-item{ cursor:zoom-in; }
.lightbox{
  position:fixed; inset:0; z-index:1000;
  background:rgba(18,15,12,0.92);
  display:flex; align-items:center; justify-content:center;
  padding:4vh 4vw;
}
.lightbox[hidden]{ display:none; }
.lightbox-img{ max-width:100%; max-height:92vh; object-fit:contain; border-radius:2px; box-shadow:0 24px 60px -20px rgba(0,0,0,0.6); }
.lightbox-close{
  position:absolute; top:1.2rem; right:1.4rem;
  background:rgba(250,247,240,0.12); border:1px solid rgba(250,247,240,0.3); color:var(--cream);
  width:40px; height:40px; border-radius:50%; font-size:1.4rem; line-height:1; cursor:pointer;
}
.lightbox-close:hover{ background:rgba(250,247,240,0.22); }
body.lightbox-open{ overflow:hidden; }

/* ---------- lead capture popup ---------- */
.lead-modal{
  position:fixed; inset:0; z-index:1100;
  background:rgba(20,17,15,0.7);
  display:flex; align-items:center; justify-content:center;
  padding:1.5rem;
}
.lead-modal[hidden]{ display:none; }
.lead-modal-card{
  position:relative; background:var(--cream); border-radius:4px;
  padding:2.4rem clamp(1.6rem,4vw,2.4rem); width:100%; max-width:440px;
  box-shadow:0 30px 70px -20px rgba(0,0,0,0.45);
}
.lead-modal-card h3{ font-size:1.6rem; margin-bottom:0.6rem; }
.lead-modal-sub{ color:rgba(36,31,26,0.7); font-size:0.92rem; margin-bottom:1.6rem; }
.lead-modal-card .field{ margin-bottom:1.1rem; }
.lead-modal-card label{ font-size:0.8rem; font-weight:700; display:block; margin-bottom:0.4rem; }
.lead-modal-card input{
  width:100%; padding:0.8em 1em; border:1.5px solid rgba(36,31,26,0.45); border-radius:2px;
  font-family:var(--font-body); font-size:0.95rem; color:var(--charcoal); background:#fff;
  box-shadow:inset 0 1px 2px rgba(36,31,26,0.06);
}
.lead-modal-card input:focus{ outline:2px solid var(--orange); outline-offset:1px; border-color:var(--orange); }
.lead-modal-close{
  position:absolute; top:1rem; right:1rem;
  background:rgba(36,31,26,0.06); border:none; color:var(--charcoal);
  width:34px; height:34px; border-radius:50%; font-size:1.3rem; line-height:1; cursor:pointer;
}
.lead-modal-close:hover{ background:rgba(36,31,26,0.12); }
body.lead-modal-open{ overflow:hidden; }

/* ---------- faq ---------- */
.faq-list{ max-width:760px; margin:0 auto; }
.faq-item{
  border-bottom:1px solid rgba(36,31,26,0.15);
  padding:1.3rem 0;
}
.faq-item summary{
  cursor:pointer;
  font-family:var(--font-display);
  font-size:1.15rem;
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:"+";
  font-family:var(--font-body);
  font-size:1.4rem;
  color:var(--gold-ink);
  transition:transform .25s ease;
  flex-shrink:0;
}
.faq-item[open] summary::after{ transform:rotate(45deg); }
.faq-item p{ margin-top:0.8rem; color:rgba(36,31,26,0.7); }

/* ---------- contact ---------- */
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:clamp(2rem, 6vw, 5rem);
}
.contact-grid > *{ min-width:0; }
.field select{ width:100%; text-overflow:ellipsis; }
.hp-field{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.contact-info h2{ font-size:clamp(1.9rem,4vw,2.5rem); margin-bottom:0.6rem; }
.contact-info p{ color:rgba(36,31,26,0.7); max-width:32em; }
.contact-list{ margin-top:1.6rem; display:flex; flex-direction:column; gap:1rem; }
.contact-list li{ display:flex; flex-direction:column; gap:0.15rem; }
.contact-label{ font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-ink); font-weight:700; }
.contact-list a{ font-weight:600; }
.contact-list a:hover{ color:var(--gold-ink); }

.contact-form{
  background:var(--charcoal);
  color:var(--cream);
  padding:clamp(1.8rem,4vw,2.6rem);
  border-radius:var(--radius);
}
.field{ margin-bottom:1.2rem; display:flex; flex-direction:column; gap:0.4rem; }
.field label{ font-size:0.8rem; font-weight:700; letter-spacing:0.03em; color:var(--sage); }
.field input, .field select, .field textarea{
  background:rgba(247,243,236,0.1);
  border:1.5px solid rgba(247,243,236,0.4);
  color:var(--cream);
  padding:0.8em 1em;
  font-family:var(--font-body);
  font-size:0.95rem;
  border-radius:2px;
}
.field select{ appearance:none; background-image:linear-gradient(45deg, transparent 50%, var(--orange) 50%), linear-gradient(135deg, var(--orange) 50%, transparent 50%); background-position: calc(100% - 20px) center, calc(100% - 15px) center; background-size:5px 5px; background-repeat:no-repeat; }
.field textarea{ resize:vertical; }
.field input::placeholder, .field textarea::placeholder{ color:rgba(247,243,236,0.4); }
.field input:focus, .field select:focus, .field textarea:focus{ outline:2px solid var(--orange); outline-offset:1px; border-color:var(--orange); }
.form-status{ margin:0.9rem 0 0; font-size:0.88rem; min-height:1.2em; }
.form-status.ok{ color:var(--orange-bright); }
.lead-modal-card .form-status.ok{ color:var(--gold-ink); }
.lead-modal-card .form-status.err{ color:#9A3B2E; }
.form-status.err{ color:var(--blush); }
.submit-loading{ opacity:0.7; pointer-events:none; }

@media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }

/* ---------- service detail ---------- */
.service-loading-wrap{ color:rgba(36,31,26,0.6); padding:3rem clamp(1.25rem, 6vw, 3rem) 4rem; }
.svc-wrap{ max-width:var(--container); margin:0 auto; padding-left:clamp(1.25rem, 4vw, 3rem); padding-right:clamp(1.25rem, 4vw, 3rem); }

.svc-hero{ display:flex; flex-wrap:wrap; align-items:center; gap:clamp(1.8rem, 5vw, 4rem); padding-top:clamp(1.1rem, 3vw, 1.8rem); padding-bottom:clamp(2.8rem, 6vw, 4.5rem); }
.svc-hero-text{ flex:1 1 420px; min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:1.1rem; }
.svc-hero-media{ flex:1 1 440px; min-width:0; }
.svc-hero-media img, .svc-hero-media svg{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:16px; box-shadow:0 24px 50px -22px rgba(20,17,15,0.4); }
.svc-back{ font-size:0.72rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-ink); }
.svc-promo{ padding:0.4em 1em; border-radius:999px; border:1px solid var(--orange); background:rgba(198,161,91,0.12); color:var(--gold-ink); font-size:0.82rem; font-weight:700; }
.svc-promo:hover{ background:rgba(198,161,91,0.22); }
.svc-hero h1{ font-size:clamp(2.3rem, 5vw, 3.6rem); line-height:1.05; }
.svc-lead{ margin:0; font-size:clamp(1rem, 1.6vw, 1.12rem); color:rgba(36,31,26,0.78); max-width:34em; }
.svc-actions{ display:flex; flex-wrap:wrap; gap:0.75rem; }
.svc-trust{ margin:0; font-size:0.82rem; font-weight:600; color:rgba(36,31,26,0.68); }

.svc-facts{ display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:0.75rem; }
.svc-fact{ background:#fff; border:1px solid rgba(36,31,26,0.08); border-radius:10px; padding:1.1rem 1.25rem; display:flex; flex-direction:column; gap:0.2rem; }
.svc-fact-label{ font-size:0.68rem; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-ink); }
.svc-fact-value{ font-family:var(--font-display); font-size:1.2rem; line-height:1.3; }

.svc-about{ display:flex; flex-wrap:wrap; gap:clamp(1.8rem, 5vw, 4rem); padding-top:clamp(3.2rem, 7vw, 5.5rem); padding-bottom:clamp(3.2rem, 7vw, 5.5rem); }
.svc-about-text{ flex:1 1 440px; min-width:0; }
.svc-about-text p:last-child{ margin-bottom:0; }
.svc-description{ color:rgba(36,31,26,0.8); font-size:1.05rem; line-height:1.75; white-space:pre-line; }
.svc-indications{ flex:1 1 340px; min-width:0; align-self:flex-start; background:var(--sage); border-radius:14px; padding:clamp(1.4rem, 3vw, 1.9rem); }
.svc-indications h3{ font-size:1.35rem; margin-bottom:0.9rem; }
.svc-checklist li{ display:flex; gap:0.75rem; align-items:flex-start; margin-bottom:0.7rem; }
.svc-checklist li:last-child{ margin-bottom:0; }
.svc-checklist svg{ flex-shrink:0; margin-top:0.2rem; color:var(--gold-ink); }

.svc-photos{ padding-bottom:clamp(3.2rem, 7vw, 5.5rem); }
.svc-photo-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap:1rem; }
.svc-photo-grid .gallery-item{ aspect-ratio:4/5; border-radius:12px; }
.svc-care{ background:#fff; border:1px solid rgba(36,31,26,0.08); border-radius:12px; padding:clamp(1.4rem, 3vw, 1.75rem); }
.svc-care h3{ font-size:1.35rem; margin-bottom:0.8rem; }
.svc-care h4{ margin:0.9rem 0 0.3rem; font-size:0.72rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-ink); }
.svc-care p{ margin:0; color:rgba(36,31,26,0.78); white-space:pre-line; }

.svc-faq{ max-width:820px; padding-bottom:clamp(3.2rem, 7vw, 5.5rem); }
.svc-faq h2, .svc-team h2{ font-size:clamp(1.8rem, 3.4vw, 2.4rem); margin-bottom:0.6rem; }

.svc-team{ display:flex; flex-wrap:wrap; align-items:center; gap:clamp(1.5rem, 4vw, 3rem); padding-top:clamp(3.2rem, 7vw, 5.5rem); padding-bottom:clamp(3.2rem, 7vw, 5.5rem); }
.svc-team img{ width:200px; aspect-ratio:3/4; object-fit:cover; object-position:top; border-radius:12px; box-shadow:0 20px 40px -20px rgba(36,31,26,0.4); }
.svc-team-text{ flex:1 1 360px; min-width:0; }
.svc-team-text p{ color:rgba(36,31,26,0.78); max-width:38em; }

.svc-more{ max-width:760px; padding-bottom:clamp(3.2rem, 7vw, 5.5rem); }

.svc-final{ background:var(--sage); text-align:center; padding:clamp(3.5rem, 7vw, 5.5rem) clamp(1.25rem, 4vw, 3rem); display:flex; flex-direction:column; align-items:center; gap:0.9rem; }
.svc-final h2{ font-size:clamp(1.9rem, 4vw, 2.6rem); }
.svc-final p{ margin:0; color:rgba(36,31,26,0.75); max-width:30em; }

.gallery-item-illustration svg{ width:100%; height:100%; display:block; }
.gallery-item-illustration{ cursor:default; }

/* ---------- footer ---------- */
.site-footer{ background:var(--forest); color:var(--sage); padding:clamp(3rem,6vw,4rem) clamp(1.25rem,6vw,3rem) 2rem; }
.footer-inner{
  max-width:var(--container); margin:0 auto;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.5rem;
  padding-bottom:2rem; border-bottom:1px solid rgba(239,230,216,0.14);
}
.footer-note{ margin:0; font-size:0.85rem; opacity:0.7; }
.footer-links{ display:flex; gap:1.6rem; font-weight:600; font-size:0.9rem; }
.footer-links a:hover{ color:var(--orange); }
.footer-copy{ max-width:var(--container); margin:1.4rem auto 0; font-size:0.78rem; opacity:0.5; text-align:center; }

/* pop-up de interesse: fundo claro, então rótulo e campos precisam de texto escuro
   (sem isso herdam o estilo do formulário escuro e ficam quase invisíveis) */
.lead-modal-card .field label{ color:var(--charcoal); font-size:0.82rem; }
.lead-modal-card .field input{
  background:#fff; color:var(--charcoal);
  border:1.5px solid rgba(36,31,26,0.55);
  padding:0.85em 1em; font-size:1rem;
}
.lead-modal-card .field input::placeholder{ color:rgba(36,31,26,0.5); }
.lead-modal-card .field input:focus{ border-color:var(--gold-ink); outline:2px solid var(--orange); outline-offset:1px; }
.lead-modal-sub{ color:rgba(36,31,26,0.8); }

/* ---------- botão secundário sobre fundo escuro ---------- */
.intro-section .btn-ghost{ color:var(--cream); border-color:rgba(250,247,240,0.7); }
.intro-section .btn-ghost:hover{ background:var(--cream); color:var(--charcoal); }

/* ---------- carrossel de tratamentos ---------- */
#servicos{ max-width:none; overflow:hidden; }
.svc-carousel{ position:relative; max-width:1280px; margin:0 auto; }
.service-track{
  position:relative;
  display:flex; align-items:center; gap:1.4rem;
  overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; -webkit-overflow-scrolling:touch;
  --card-w:min(310px, 76vw);
  padding:2.4rem calc(50% - var(--card-w) / 2);
}
.service-track::-webkit-scrollbar{ display:none; }
.service-track .service-card{
  flex:0 0 var(--card-w);
  align-self:stretch;
  scroll-snap-align:center;
  transform:scale(0.84); opacity:0.55;
  transition:transform .35s ease, opacity .35s ease, box-shadow .35s ease;
  cursor:pointer;
}
.service-track .service-card.is-center{ transform:scale(1); opacity:1; box-shadow:0 26px 48px -22px rgba(36,31,26,0.55); cursor:default; }
.service-track .service-card:not(.is-center) .service-card-detail-link{ visibility:hidden; }
.service-track .service-card:hover{ transform:scale(0.84); }
.service-track .service-card.is-center:hover{ transform:scale(1); }
.svc-car-btn{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:2.8rem; height:2.8rem; border-radius:50%;
  border:1px solid var(--line); background:var(--cream); color:var(--charcoal);
  font-size:1.5rem; line-height:1; cursor:pointer;
  box-shadow:0 8px 20px -10px rgba(36,31,26,0.5);
  transition:background .2s ease, opacity .2s ease;
}
.svc-car-btn:hover:not(:disabled){ background:var(--orange-bright); }
.svc-car-btn:disabled{ opacity:0.3; cursor:default; }
.svc-car-prev{ left:max(0.5rem, calc(50% - 480px)); }
.svc-car-next{ right:max(0.5rem, calc(50% - 480px)); }
.all-services-link{ text-align:center; margin-top:0.6rem; }
@media (max-width:640px){
  .svc-car-btn{ width:2.3rem; height:2.3rem; font-size:1.2rem; }
  .service-track{ gap:1rem; }
}

/* ---------- Como funciona: arte pronta ---------- */
.como-section{ padding-top:clamp(2.4rem, 5vw, 4rem); padding-bottom:clamp(2.4rem, 5vw, 4rem); }
.como-art{ position:relative; max-width:1280px; margin:0 auto; border-radius:10px; overflow:hidden; box-shadow:0 30px 60px -30px rgba(0,0,0,0.7); }
.como-art img{ display:block; width:100%; height:auto; }
.como-hit{ position:absolute; border-radius:999px; }
.como-hit:focus-visible{ outline:3px solid var(--orange-bright); outline-offset:2px; }
.como-hit-wa{ left:26.8%; top:84.8%; width:33.6%; height:10.4%; }
.como-hit-list{ left:62.6%; top:86.2%; width:20%; height:6%; }
.como-text{ display:none; }
@media (max-width:760px){
  .como-art{ display:none; }
  .como-text{ display:block; }
}

/* ---------- depoimentos com foto ---------- */
.review-person{ display:flex; align-items:center; gap:0.8rem; }
.review-avatar{
  flex:0 0 auto; width:2.8rem; height:2.8rem; border-radius:50%; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(228,192,120,0.18); border:1px solid rgba(228,192,120,0.5);
  color:var(--orange-bright); font-family:var(--font-display); font-size:1.15rem;
}
.review-avatar img{ width:100%; height:100%; object-fit:cover; display:block; }
.review-who{ display:flex; flex-direction:column; line-height:1.3; }
.review-service{ font-size:0.72rem; color:rgba(250,247,240,0.6); }

/* ---------- antes e depois ---------- */
.compare{ margin:0; }
.compare-stage{
  --pos:50%;
  position:relative; aspect-ratio:4/5; overflow:hidden; border-radius:12px;
  background:#e8e1d6; user-select:none; -webkit-user-select:none;
  box-shadow:0 18px 40px -24px rgba(36,31,26,0.55);
}
.compare-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; pointer-events:none; }
.compare-before{ clip-path:inset(0 calc(100% - var(--pos)) 0 0); }
.compare-handle{
  position:absolute; top:0; bottom:0; left:var(--pos); width:2px; margin-left:-1px;
  background:#fff; box-shadow:0 0 0 1px rgba(0,0,0,0.12); pointer-events:none;
}
.compare-handle span{
  position:absolute; top:50%; left:50%; transform:translate(-50%, -50%);
  min-width:2.6rem; height:2.6rem; border-radius:50%; background:#fff; color:var(--charcoal);
  display:flex; align-items:center; justify-content:center; font-weight:700; letter-spacing:0.1em;
  box-shadow:0 6px 16px rgba(0,0,0,0.3);
}
.compare-tag{
  position:absolute; top:0.7rem; padding:0.25rem 0.7rem; border-radius:999px;
  background:rgba(20,17,15,0.7); color:#fff; font-size:0.7rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
  pointer-events:none;
}
.compare-tag-before{ left:0.7rem; }
.compare-tag-after{ right:0.7rem; }
.compare-range{
  position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; touch-action:pan-y;
  -webkit-appearance:none; appearance:none;
}
.compare-stage:focus-within{ outline:3px solid var(--orange); outline-offset:2px; }
.compare figcaption{ margin-top:0.6rem; font-size:0.88rem; color:rgba(36,31,26,0.7); text-align:center; }
.svc-compare{ padding-bottom:clamp(3.2rem, 7vw, 5.5rem); }
.compare-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap:1.6rem; }
.compare-note{ margin-top:1rem; font-size:0.78rem; color:rgba(36,31,26,0.55); }

/* ajustes finos da fachada e do carrossel */
#intro{ max-width:none; margin:0; }
.svc-carousel{ max-width:none; }
.svc-car-prev{ left:max(0.5rem, calc(50% - 400px)); }
.svc-car-next{ right:max(0.5rem, calc(50% - 400px)); }
@media (min-width:881px){
  .intro-bg{ left:16%; width:84%; }
  .intro-shade{
    background:
      linear-gradient(90deg, rgba(20,17,15,1) 0%, rgba(20,17,15,0.96) 18%, rgba(20,17,15,0.7) 40%, rgba(20,17,15,0.2) 70%, rgba(20,17,15,0.08) 100%),
      linear-gradient(0deg, rgba(20,17,15,0.5) 0%, rgba(20,17,15,0) 40%);
  }
}
@media (max-width:640px){
  .service-track{ --card-w:64vw; }
  .svc-car-prev{ left:0.2rem; }
  .svc-car-next{ right:0.2rem; }
}

/* Como funciona: arte ocupa a largura toda (mantém 16:9, sem esticar) */
.como-section{ padding-left:0; padding-right:0; padding-top:0; padding-bottom:0; }
.como-art{ max-width:1920px; border-radius:0; box-shadow:none; }
@media (max-width:760px){
  .como-section{ padding:clamp(2.4rem, 5vw, 4rem) clamp(1.25rem, 6vw, 3rem); }
}

/* Como funciona: mesmo tamanho do banner de promoções */
.como-section{ padding:clamp(2.4rem, 5vw, 4rem) clamp(1.25rem, 6vw, 3rem); }
.como-art{ max-width:var(--container); border-radius:6px; box-shadow:0 12px 28px -14px rgba(0,0,0,0.6); }

/* carrossel de tratamentos: cards maiores */
.service-track{ --card-w:min(400px, 80vw); gap:1.8rem; }
.service-track .service-card h3{ font-size:1.45rem; }
.service-track .service-card p{ font-size:1rem; }
.svc-car-prev{ left:max(0.5rem, calc(50% - 520px)); }
.svc-car-next{ right:max(0.5rem, calc(50% - 520px)); }
@media (max-width:640px){
  .service-track{ --card-w:72vw; gap:1rem; }
  .svc-car-prev{ left:0.2rem; }
  .svc-car-next{ right:0.2rem; }
}
@media (min-width:641px){
  .svc-car-prev{ left:calc(50% - 200px - 2.8rem - 0.6rem); right:auto; }
  .svc-car-next{ left:calc(50% + 200px + 0.6rem); right:auto; }
}

/* antes e depois: boxes menores, vários por linha */
.compare-grid{ grid-template-columns:repeat(auto-fill, minmax(min(100%, 230px), 260px)); gap:1.2rem; justify-content:start; }
.compare-grid .compare-handle span{ min-width:2.1rem; height:2.1rem; font-size:0.8rem; }
.compare-grid .compare-tag{ font-size:0.62rem; padding:0.18rem 0.55rem; top:0.5rem; }
.compare-grid .compare-tag-before{ left:0.5rem; }
.compare-grid .compare-tag-after{ right:0.5rem; }
.compare-grid .compare figcaption{ font-size:0.8rem; }
.hero-bg-photo{ z-index:0; }
