/* =========================================================
   DRA. VANESSA BREMM — Dermatologia
   Editorial · Premium · Feminino
   ========================================================= */

:root{
  --bg:          #F5F0EB;
  --bg-2:        #FBF8F5;
  --nude:        #DED0C5;
  --taupe:       #B29B8C;
  --bronze:      #956D58;
  --bronze-dark: #795847;
  --ink:         #302724;
  --deep:        #211A18;
  --white:       #FFFFFF;
  --line:        #E5D9D0;

  --serif: "Cormorant Garamond", Georgia, serif;
  --sans:  "Manrope", -apple-system, "Segoe UI", sans-serif;

  --maxw: 1320px;
  --pad: clamp(20px, 5vw, 64px);
  --gap-section: clamp(72px, 12vw, 100px);

  --ease: cubic-bezier(.22,1,.36,1);
}

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

html{ -webkit-text-size-adjust:100%; }
html.lenis, html.lenis body { height:auto; }
.lenis.lenis-smooth { scroll-behavior:auto !important; }

body{
  font-family:var(--sans);
  background:var(--bg);
  color:var(--ink);
  font-size:17px;
  line-height:1.65;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--bronze); color:var(--white); }

h1,h2,h3,h4{ font-family:var(--serif); font-weight:500; line-height:1.04; color:var(--ink); letter-spacing:-.01em; }

.container{ max-width:var(--maxw); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad); }

/* ---------- shared type helpers ---------- */
.label{
  font-family:var(--sans);
  font-size:12px;
  font-weight:600;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--bronze);
}
.eyebrow{
  display:inline-flex; align-items:center; gap:14px;
  font-family:var(--sans); font-size:12px; font-weight:600;
  letter-spacing:.28em; text-transform:uppercase; color:var(--bronze);
}
.eyebrow::before{ content:""; width:38px; height:1px; background:var(--bronze); opacity:.6; }

.serif-lg{ font-family:var(--serif); font-weight:500; }
.italic{ font-style:italic; }
.accent{ color:var(--bronze); }

.section{ padding-top:var(--gap-section); padding-bottom:var(--gap-section); position:relative; }

/* =========================================================
   BUTTONS
   ========================================================= */
.btn{
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--sans); font-size:13px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  padding:17px 30px; border-radius:10px; cursor:pointer;
  border:1px solid transparent; position:relative; overflow:hidden;
  transition:background-color .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease), transform .5s var(--ease);
}
.btn .arrow{ transition:transform .5s var(--ease); }
.btn:hover .arrow{ transform:translateX(6px); }
.btn .ico-wa{ width:18px; height:18px; flex-shrink:0; }

.btn-primary{ background:var(--bronze); color:var(--white); }
.btn-primary:hover{ background:var(--bronze-dark); }

.btn-secondary{ background:transparent; color:var(--bronze-dark); border-color:var(--bronze); }
.btn-secondary:hover{ background:var(--bronze); color:var(--white); }

.btn-ghost-light{ background:transparent; color:var(--bg); border-color:rgba(245,240,235,.35); }
.btn-ghost-light:hover{ background:var(--bg); color:var(--deep); }

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:22px var(--pad);
  transition:background-color .5s var(--ease), padding .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(245,240,235,.82);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  padding-top:14px; padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.nav-logo{ height:52px; width:auto; transition:height .5s var(--ease); }
.nav.scrolled .nav-logo{ height:42px; }
.nav-links{ display:flex; align-items:center; gap:38px; }
.nav-links a{
  font-size:13px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink); position:relative; padding:6px 0;
}
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:var(--bronze); transition:width .45s var(--ease);
}
.nav-links a:hover::after{ width:100%; }
.nav-cta{ display:inline-flex; }
.nav .btn{ padding:13px 22px; }
.nav-right{ display:flex; align-items:center; gap:16px; }
.nav-ig{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:50%; border:1px solid var(--line);
  color:var(--bronze-dark); transition:background-color .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease), transform .45s var(--ease);
}
.nav-ig svg{ width:19px; height:19px; }
.nav-ig:hover{ background:var(--bronze); color:var(--white); border-color:var(--bronze); transform:translateY(-2px); }
.mobile-ig{ display:inline-flex !important; align-items:center; gap:12px; font-family:var(--sans) !important; font-size:15px !important; letter-spacing:.04em; color:var(--bronze-dark) !important; border-bottom:none !important; margin-top:18px; }
.mobile-ig svg{ width:22px; height:22px; }
.nav-burger{ display:none; flex-direction:column; gap:6px; background:none; border:none; cursor:pointer; padding:8px; }
.nav-burger span{ width:26px; height:1.5px; background:var(--ink); transition:.4s var(--ease); }

/* mobile drawer */
.mobile-menu{
  position:fixed; inset:0; z-index:99; background:var(--bg);
  display:flex; flex-direction:column; justify-content:center; gap:8px;
  padding:0 var(--pad); transform:translateY(-100%);
  transition:transform .7s var(--ease); visibility:hidden;
}
.mobile-menu.open{ transform:translateY(0); visibility:visible; }
.mobile-menu a{ font-family:var(--serif); font-size:38px; color:var(--ink); padding:10px 0; border-bottom:1px solid var(--line); }
.mobile-menu .btn{ margin-top:28px; align-self:flex-start; }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  padding-top:130px; padding-bottom:60px; overflow:hidden;
}
.hero-grid{
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,80px);
  align-items:center; width:100%;
}
.hero-copy{ max-width:640px; }
.hero h1{
  font-size:clamp(44px, 6.6vw, 68px); margin:22px 0 20px;
}
.hero h1 .word{ display:inline-block; }
.hero-lede{
  font-size:clamp(16px,1.4vw,19px); color:#5a4d46; max-width:440px; margin-bottom:38px;
}
.hero-ctas{ display:flex; gap:16px; flex-wrap:wrap; }
.hero-note{
  display:flex; align-items:center; gap:14px; margin-top:44px;
  font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--taupe);
}
.hero-note svg{ width:20px; height:20px; stroke:var(--bronze); }

.hero-media{ position:relative; }
.hero-photo-frame{
  position:relative; border-radius:220px 220px 22px 22px; overflow:hidden;
  aspect-ratio:3/4; box-shadow:0 40px 90px -50px rgba(33,26,24,.5);
}
.hero-photo-frame img{ width:100%; height:100%; object-fit:cover; object-position:center 18%; transform:scale(1.06); }
.hero-cred{
  position:absolute; top:34px; right:-14px; z-index:5;
  background:rgba(251,248,245,.86); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid var(--line); border-radius:16px; padding:18px 22px; min-width:184px;
  box-shadow:0 24px 50px -30px rgba(33,26,24,.4);
}
.hero-cred .cr-ico{ width:22px; height:22px; stroke:var(--bronze); margin-bottom:10px; }
.hero-cred .cr-main{ font-family:var(--sans); font-size:13px; font-weight:700; letter-spacing:.04em; color:var(--ink); line-height:1.5; }
.hero-cred .cr-div{ height:1px; background:var(--line); margin:12px 0; }
.hero-cred .cr-label{ font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--taupe); margin-bottom:6px; }
.hero-cred .cr-tags{ font-size:12px; font-weight:600; letter-spacing:.08em; color:var(--bronze-dark); }

/* watermark butterfly */
.watermark{ position:absolute; pointer-events:none; z-index:0; opacity:.06; }
.watermark svg{ width:100%; height:100%; }
.hero-wm{ width:min(60vw,720px); right:-8%; top:50%; transform:translateY(-50%); }

/* =========================================================
   MARQUEE
   ========================================================= */
.marquee{
  background:var(--deep); color:var(--bg); overflow:hidden; padding:26px 0;
  border-top:1px solid rgba(178,155,140,.18); border-bottom:1px solid rgba(178,155,140,.18);
}
.marquee-track{ display:flex; gap:60px; width:max-content; animation:scroll-x 38s linear infinite; }
.marquee-track span{
  font-family:var(--serif); font-size:clamp(24px,3vw,38px); font-style:italic;
  color:var(--nude); white-space:nowrap; display:inline-flex; align-items:center; gap:60px;
}
.marquee-track span::after{ content:"·"; color:var(--bronze); }
@keyframes scroll-x{ to{ transform:translateX(-50%); } }

/* =========================================================
   MANIFESTO
   ========================================================= */
.manifesto{ background:var(--bg-2); }
.manifesto-head{ max-width:900px; margin-bottom:clamp(48px,7vw,50px); }
.manifesto-head h2{ font-size:clamp(32px,4.4vw,54px); margin-top:22px; }
.manifesto-head .pillars{ display:flex; gap:16px; flex-wrap:wrap; margin-top:28px; }
.pillar-tag{
  font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--bronze-dark);
  border:1px solid var(--line); border-radius:999px; padding:10px 22px; background:var(--white);
}
.chapters{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); }
.chapter{ padding:20px; border-right:1px solid var(--line); position:relative; }
.chapter:last-child{ border-right:none; }
.chapter .num{ font-family:var(--serif); font-size:16px; color:var(--taupe); letter-spacing:.05em; }
.chapter h3{ font-size:26px; margin:10px 0 10px; }
.chapter p{ font-size:15.5px; color:#5f524b; }

/* =========================================================
   SOBRE
   ========================================================= */
.sobre-grid{ display:grid; grid-template-columns:0.8fr 1fr; gap:clamp(36px,6vw,60px); align-items:center; }
.sobre-media{ position:relative; }
.sobre-photo{ border-radius:20px; overflow:hidden; aspect-ratio:4/5; box-shadow:0 40px 80px -50px rgba(33,26,24,.45); }
.sobre-photo img{ width:100%; height:100%; object-fit:cover; object-position:center 25%; }
.sobre-badge{
  position:absolute; bottom:-26px; left:-26px; background:var(--deep); color:var(--bg);
  border-radius:18px; padding:26px 30px; box-shadow:0 30px 60px -40px rgba(33,26,24,.6);
}
.sobre-badge .big{ font-family:var(--serif); font-size:52px; line-height:1; color:var(--white); }
.sobre-badge .small{ font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--taupe); margin-top:8px; max-width:200px; }

.sobre-copy h2{ font-size:clamp(30px,3.8vw,50px); margin:16px 0 16px; }
.sobre-copy p{ color:#5f524b; margin-bottom:12px; }
.sobre-copy p.lead{ font-size:18px; color:var(--ink); }
.cred-list{ list-style:none; margin:10px 0; display:grid; gap:2px; }
.cred-list li{
  display:flex; align-items:flex-start; gap:10px; padding:8px 0; border-bottom:1px solid var(--line);
  font-size:15.5px; color:var(--ink);
}
.cred-list li svg{ width:18px; height:18px; stroke:var(--bronze); flex-shrink:0; margin-top:3px; }
.checklist{ list-style:none; display:grid; gap:12px; margin:26px 0 34px; }
.checklist li{ display:flex; gap:12px; align-items:flex-start; font-size:15.5px; color:#5f524b; }
.checklist li::before{ content:""; width:7px; height:7px; margin-top:9px; border-radius:50%; background:var(--bronze); flex-shrink:0; }

/* =========================================================
   CURRÍCULO (accordion)
   ========================================================= */
.curriculo{ background:var(--nude); }
.curriculo .container{ max-width:1000px; }
.curriculo-head{ text-align:center; margin-bottom:56px; }
.curriculo-head h2{ font-size:clamp(30px,4vw,50px); margin-top:18px; }
.curriculo-head .crm{ margin-top:16px; font-size:13px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--bronze-dark); }
.accordion-item{ border-bottom:1px solid rgba(48,39,36,.16); }
.accordion-trigger{
  width:100%; background:none; border:none; cursor:pointer; text-align:left;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:30px 4px; font-family:var(--serif); font-size:clamp(22px,2.4vw,30px); color:var(--ink);
  transition:color .4s var(--ease);
}
.accordion-trigger:hover{ color:var(--bronze-dark); }
.accordion-trigger .plus{ position:relative; width:24px; height:24px; flex-shrink:0; }
.accordion-trigger .plus::before,
.accordion-trigger .plus::after{ content:""; position:absolute; background:var(--bronze); transition:transform .45s var(--ease); }
.accordion-trigger .plus::before{ top:50%; left:0; width:100%; height:1.5px; transform:translateY(-50%); }
.accordion-trigger .plus::after{ left:50%; top:0; height:100%; width:1.5px; transform:translateX(-50%); }
.accordion-item.open .plus::after{ transform:translateX(-50%) scaleY(0); }
.accordion-panel{ max-height:0; overflow:hidden; transition:max-height .6s var(--ease); }
.accordion-inner{ padding:0 4px 32px; }
.accordion-inner p.subhead{ font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--bronze-dark); margin:6px 0 12px; font-family:var(--sans); font-weight:700; }
.accordion-inner ul{ list-style:none; display:grid; gap:12px; }
.accordion-inner ul li{ display:flex; gap:12px; font-size:15.5px; color:#4a3e39; line-height:1.55; }
.accordion-inner ul li::before{ content:""; width:6px; height:6px; margin-top:8px; border-radius:50%; background:var(--bronze); flex-shrink:0; }

/* =========================================================
   DARK SECTION
   ========================================================= */
.dark{ background:var(--deep); color:var(--bg); position:relative; overflow:hidden; }
.dark .container{ position:relative; z-index:2; }
.dark-inner{ max-width:960px; }
.dark .eyebrow{ color:var(--taupe); }
.dark .eyebrow::before{ background:var(--taupe); }
.dark h2{ color:var(--bg); font-size:clamp(34px,5vw,64px); margin:28px 0 30px; }
.dark h2 .italic{ color:var(--taupe); }
.dark p{ color:#cdbfb5; max-width:600px; font-size:18px; }
.dark-wm{ width:min(50vw,560px); right:-6%; bottom:-14%; opacity:.07; }
.dark-wm svg *{ stroke:var(--taupe) !important; }
.dark-stats{ display:flex; gap:clamp(30px,6vw,80px); flex-wrap:wrap; margin-top:56px; }
.dark-stat .n{ font-family:var(--serif); font-size:clamp(40px,5vw,64px); color:var(--white); line-height:1; }
.dark-stat .t{ font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--taupe); margin-top:12px; max-width:180px; }

/* =========================================================
   PROCEDIMENTOS
   ========================================================= */
.procedimentos .sec-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:30px; flex-wrap:wrap; margin-bottom:clamp(46px,6vw,74px); }
.procedimentos .sec-head h2{ font-size:clamp(32px,4.4vw,56px); margin-top:20px; max-width:820px; }
.procedimentos .sec-head p{ max-width:340px; color:#5f524b; font-size:15.5px; }

.proc-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(20px,3vw,40px); }
.proc-card{
  background:var(--bg-2); border:1px solid var(--line); border-radius:22px; overflow:hidden;
  display:flex; flex-direction:column; transition:transform .6s var(--ease), box-shadow .6s var(--ease);
}
.proc-card:hover{ transform:translateY(-6px); box-shadow:0 40px 70px -50px rgba(33,26,24,.5); }
.proc-card.wide{ grid-column:span 2; flex-direction:row; }
.proc-media{ overflow:hidden; position:relative; }
.proc-card:not(.wide) .proc-media{ aspect-ratio:16/11; }
.proc-card.wide .proc-media{ flex:0 0 44%; }
.proc-media img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.proc-card:hover .proc-media img{ transform:scale(1.06); }
.proc-body{ padding:30px 32px 34px; display:flex; flex-direction:column; }
.proc-card.wide .proc-body{ justify-content:center; padding:44px; }
.proc-body .num{ font-family:var(--serif); font-size:15px; color:var(--taupe); }
.proc-body h3{ font-size:27px; margin:8px 0 14px; }
.proc-body p{ font-size:15px; color:#5f524b; margin-bottom:14px; }
.proc-body .tags{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; }
.proc-body .tags li{ font-size:11.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--bronze-dark); border:1px solid var(--line); border-radius:999px; padding:7px 14px; background:var(--white); }

/* outros procedimentos */
.outros{ margin-top:clamp(50px,7vw,84px); }
.outros h3{ font-size:26px; margin-bottom:18px; }
.outros .label{ margin-bottom:26px; display:block; }
.outros-list{ list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); }
.outros-list li{
  display:flex; align-items:center; gap:14px; padding:22px 20px 22px 0;
  border-bottom:1px solid var(--line); font-size:16px; color:var(--ink);
  transition:color .4s var(--ease), padding .4s var(--ease);
}
.outros-list li:hover{ color:var(--bronze-dark); padding-left:8px; }
.outros-list li span{ font-family:var(--serif); font-size:14px; color:var(--taupe); }

/* =========================================================
   DIFERENCIAIS
   ========================================================= */
.diferenciais{ background:var(--bg-2); }
.dif-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(18px,2.5vw,32px); margin-top:clamp(46px,6vw,70px); }
.dif-card{ background:var(--white); border:1px solid var(--line); border-radius:20px; padding:34px 28px; transition:transform .5s var(--ease); }
.dif-card:hover{ transform:translateY(-6px); }
.dif-ico{ width:52px; height:52px; border-radius:50%; border:1px solid var(--bronze); display:flex; align-items:center; justify-content:center; margin-bottom:24px; }
.dif-ico svg{ width:24px; height:24px; stroke:var(--bronze); }
.dif-card h3{ font-size:22px; margin-bottom:12px; }
.dif-card p{ font-size:14.5px; color:#5f524b; }

/* =========================================================
   AVALIAÇÃO (editorial split)
   ========================================================= */
.avaliacao-grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(36px,6vw,90px); align-items:center; }
.avaliacao-copy h2{ font-size:clamp(30px,4vw,52px); margin:22px 0 26px; }
.avaliacao-copy p{ color:#5f524b; margin-bottom:20px; }
.steps{ counter-reset:st; margin-top:15px; display:grid; gap:2px; }
.step{ display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); }
.step .st-n{ font-family:var(--serif); font-size:22px; color:var(--bronze); width:40px; flex-shrink:0; }
.step h4{ font-family:var(--serif); font-size:22px; margin-bottom:6px; }
.step p{ font-size:14.5px; color:#5f524b; margin:0; }
.avaliacao-media{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.avaliacao-media img{ width:100%; height:100%; object-fit:cover; border-radius:16px; }
.avaliacao-media .tall{ grid-row:span 2; aspect-ratio:3/5; }
.avaliacao-media .sq{ aspect-ratio:1/1; }

/* =========================================================
   CTA
   ========================================================= */
.cta{ background:var(--deep); color:var(--bg); text-align:center; position:relative; overflow:hidden; }
.cta .container{ position:relative; z-index:2; }
.cta .eyebrow{ color:var(--taupe); justify-content:center; }
.cta .eyebrow::before{ background:var(--taupe); }
.cta h2{ color:var(--bg); font-size:clamp(38px,6vw,80px); margin:26px auto 34px; max-width:960px; }
.cta h2 .italic{ color:var(--taupe); }
.cta-ctas{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.cta-wm{ width:min(70vw,760px); left:50%; top:50%; transform:translate(-50%,-50%); opacity:.06; }
.cta-wm svg *{ stroke:var(--taupe) !important; }

/* =========================================================
   LOCALIZAÇÃO / CONTATO
   ========================================================= */
.contato-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,6vw,80px); align-items:stretch; }
.contato-copy h2{ font-size:clamp(30px,4vw,50px); margin:20px 0 22px; }
.contato-copy p{ color:#5f524b; margin-bottom:18px; max-width:460px; }
.contact-block{ display:grid; gap:2px; margin-top:30px; }
.contact-row{ display:flex; gap:18px; padding:22px 0; border-bottom:1px solid var(--line); align-items:flex-start; }
.contact-row svg{ width:20px; height:20px; stroke:var(--bronze); flex-shrink:0; margin-top:3px; }
.contact-row .c-label{ font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--taupe); margin-bottom:4px; }
.contact-row .c-val{ font-size:16px; color:var(--ink); line-height:1.5; }
.contact-row a.c-val:hover{ color:var(--bronze-dark); }
.contato-media{ border-radius:22px; overflow:hidden; position:relative; min-height:420px; }
.contato-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.contato-media .overlay{
  position:absolute; inset:0; background:linear-gradient(to top, rgba(33,26,24,.7), rgba(33,26,24,0) 55%);
  display:flex; align-items:flex-end; padding:36px;
}
.contato-media .overlay .place{ color:var(--bg); }
.contato-media .overlay .place .n{ font-family:var(--serif); font-size:26px; color:var(--white); }
.contato-media .overlay .place .a{ font-size:13.5px; color:var(--nude); margin-top:6px; }

/* =========================================================
   FOOTER
   ========================================================= */
.footer{ background:var(--deep); color:var(--nude); padding:clamp(60px,8vw,90px) 0 40px; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:50px; border-bottom:1px solid rgba(178,155,140,.2); }
.footer-logo{ height:70px; margin-bottom:24px; filter:brightness(0) invert(1); opacity:.92; }
.footer-brand p{ font-size:14px; color:#a99b90; max-width:320px; }
.footer-col h4{ font-family:var(--sans); font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--taupe); margin-bottom:20px; font-weight:700; }
.footer-col ul{ list-style:none; display:grid; gap:12px; }
.footer-col a{ font-size:14.5px; color:#cdbfb5; transition:color .4s var(--ease); }
.footer-col a:hover{ color:var(--white); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; padding-top:30px; }
.footer-bottom p{ font-size:12.5px; color:#8f8177; letter-spacing:.04em; }

/* =========================================================
   WhatsApp float
   ========================================================= */
.wa-float{
  position:fixed; right:24px; bottom:24px; z-index:90;
  width:60px; height:60px; border-radius:50%; background:var(--bronze);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 16px 34px -12px rgba(33,26,24,.6); transition:background-color .4s var(--ease), transform .4s var(--ease);
}
.wa-float:hover{ background:var(--bronze-dark); transform:scale(1.06); }
.wa-float svg{ width:30px; height:30px; fill:var(--white); }

/* =========================================================
   REVEAL ANIMATIONS  (gated on html.js — content visible if JS off)
   ========================================================= */
html.js [data-reveal]{ opacity:0; transform:translateY(34px); transition:opacity 1.1s var(--ease), transform 1.1s var(--ease); }
html.js [data-reveal].in{ opacity:1; transform:none; }
[data-reveal-delay="1"]{ transition-delay:.09s; }
[data-reveal-delay="2"]{ transition-delay:.18s; }
[data-reveal-delay="3"]{ transition-delay:.27s; }
[data-reveal-delay="4"]{ transition-delay:.36s; }

/* line mask reveal for hero heading — auto plays on load */
.line-mask{ overflow:hidden; display:block; }
.line-mask > span{ display:block; }
html.js .line-mask > span{ transform:translateY(105%); animation:mask-up 1.05s var(--ease) forwards; }
html.js .hero h1 .line-mask:nth-child(2) > span{ animation-delay:.12s; }
html.js .hero h1 .line-mask:nth-child(3) > span{ animation-delay:.24s; }
@keyframes mask-up{ to{ transform:translateY(0); } }

html.js .hero-fade{ opacity:0; transform:translateY(22px); animation:fade-up 1s var(--ease) forwards; }
html.js .hero-fade.d1{ animation-delay:.5s; }
html.js .hero-fade.d2{ animation-delay:.62s; }
html.js .hero-fade.d3{ animation-delay:.74s; }
@keyframes fade-up{ to{ opacity:1; transform:none; } }

html.js .hero-media{ opacity:0; transform:scale(.97); animation:media-in 1.3s var(--ease) .3s forwards; }
@keyframes media-in{ to{ opacity:1; transform:none; } }

/* =========================================================
   DEPOIMENTOS
   ========================================================= */
.depoimentos{ background:var(--bg-2); }
.dep-head{ max-width:820px; margin:0 auto clamp(46px,6vw,72px); text-align:center; }
.dep-head .eyebrow{ justify-content:center; }
.dep-head h2{ font-size:clamp(30px,4.2vw,54px); margin-top:20px; }
.dep-google{
  display:inline-flex; align-items:center; gap:10px; margin-top:26px;
  font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--bronze-dark);
  border:1px solid var(--line); background:var(--white); border-radius:999px; padding:12px 22px;
  transition:border-color .4s var(--ease), transform .4s var(--ease);
}
.dep-google svg{ width:18px; height:18px; }
.dep-google:hover{ border-color:var(--bronze); transform:translateY(-2px); }

.dep-embed{
  border:1px solid var(--line); border-radius:24px; background:var(--bg);
  min-height:clamp(340px,40vw,460px); overflow:hidden;
  box-shadow:0 40px 80px -60px rgba(33,26,24,.4);
}
.dep-embed iframe{ display:block; width:100%; border:0; }
.dep-placeholder{
  min-height:inherit; height:clamp(340px,40vw,460px);
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  gap:8px; padding:48px 28px; position:relative;
  background:
    radial-gradient(circle at 20% 20%, rgba(222,208,197,.35), transparent 40%),
    radial-gradient(circle at 82% 78%, rgba(178,155,140,.22), transparent 45%);
}
.dep-ph-badge{
  width:64px; height:64px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--white); border:1px solid var(--line); color:var(--bronze); margin-bottom:14px;
  box-shadow:0 20px 40px -26px rgba(33,26,24,.4);
}
.dep-ph-badge svg{ width:28px; height:28px; }
.dep-placeholder h3{ font-size:28px; }
.dep-placeholder p{ font-size:15px; color:#5f524b; max-width:440px; margin:4px 0 22px; }

/* outros procedimentos — boxes 3x3 */
.outros{ margin-top:clamp(50px,7vw,84px); }
.outros .label{ display:block; margin-bottom:14px; }
.outros-title{ font-size:clamp(24px,3vw,34px); max-width:620px; margin-bottom:54px; }
.outros-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,24px); }
.outro-box{
  background:var(--white); border:1px solid var(--line); border-radius:16px; padding:28px 26px;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
}
.outro-box:hover{ transform:translateY(-5px); box-shadow:0 34px 60px -46px rgba(33,26,24,.5); border-color:var(--nude); }
.outro-box h4{ font-family:var(--serif); font-size:22px; margin-bottom:10px; }
.outro-box p{ font-size:14px; color:#5f524b; line-height:1.6; }

/* footer contact icons */
.footer-col ul.with-icons li{ display:flex; align-items:flex-start; gap:12px; }
.footer-col ul.with-icons li svg{ width:17px; height:17px; flex-shrink:0; margin-top:3px; color:var(--taupe); }

/* =========================================================
   MAPA
   ========================================================= */
.mapa{ background:var(--bg); padding:0 0 var(--gap-section); }
.mapa-frame{
  position:relative; margin:0 var(--pad); border:1px solid var(--line);
  border-radius:24px; overflow:hidden; box-shadow:0 40px 80px -60px rgba(33,26,24,.45);
}
.mapa-frame iframe{
  display:block; width:100%; height:clamp(320px,46vw,520px); border:0;
  filter:sepia(.32) saturate(.72) contrast(.94) brightness(1.03);
  transition:filter .6s var(--ease);
}
.mapa-frame:hover iframe{ filter:sepia(.12) saturate(.9) contrast(1) brightness(1); }
.mapa-frame::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(120deg, rgba(149,109,88,.10), rgba(33,26,24,.05));
  mix-blend-mode:multiply;
}
.mapa-pin{
  position:absolute; z-index:3; left:24px; bottom:24px;
  display:inline-flex; align-items:center; gap:10px;
  background:rgba(251,248,245,.9); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border:1px solid var(--line); border-radius:999px; padding:13px 22px;
  font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--bronze-dark);
  box-shadow:0 18px 40px -24px rgba(33,26,24,.5); transition:background-color .4s var(--ease), color .4s var(--ease), transform .4s var(--ease);
}
.mapa-pin svg{ width:18px; height:18px; stroke:var(--bronze); }
.mapa-pin:hover{ background:var(--bronze); color:var(--white); transform:translateY(-2px); }
.mapa-pin:hover svg{ stroke:var(--white); }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1080px){
  .chapters{ grid-template-columns:1fr; }
  .chapter{ border-right:none; border-bottom:1px solid var(--line); padding:34px 0; }
  .chapter:last-child{ border-bottom:none; }
  .dif-grid{ grid-template-columns:repeat(2,1fr); }
  .outros-list{ grid-template-columns:repeat(2,1fr); }
  .outros-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px){
  .nav-links, .nav-cta, .nav-ig{ display:none; }
  .nav-burger{ display:flex; }
  .hero-grid{ grid-template-columns:1fr; gap:48px; }
  .hero-media{ max-width:460px; margin:0 auto; }
  .hero-cred{ right:0; }
  .sobre-grid,.avaliacao-grid,.contato-grid{ grid-template-columns:1fr; }
  .sobre-media{ max-width:480px; }
  .avaliacao-media{ order:-1; }
  .proc-card.wide{ flex-direction:column; }
  .proc-card.wide .proc-media{ flex:none; aspect-ratio:16/10; }
}
@media (max-width:640px){
  body{ font-size:16px; }
  .proc-grid{ grid-template-columns:1fr; }
  .proc-card.wide{ grid-column:span 1; }
  .dif-grid, .outros-list, .avaliacao-media{ grid-template-columns:1fr; }
  .outros-grid{ grid-template-columns:1fr; }
  .footer-top{ grid-template-columns:1fr; gap:36px; }
  .sobre-badge{ left:0; padding:20px 22px; }
  .sobre-badge .big{ font-size:40px; }
  .avaliacao-media .tall{ grid-row:auto; aspect-ratio:4/3; }
  .hero h1{ font-size:clamp(40px,11vw,52px); }
}

/* reduce motion */
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .marquee-track{ animation:none; }
}
