/* ==========================================================================
   Dra. Ilaria Maggi — Cirurgia de Mama · Roma
   Direção: identidade rosa já usada pela cliente, mantida e refinada —
   rosa (não o rosa-choque genérico de clínica) + vinho profundo para
   contraste, sobre travertino. Tipografia igual ao site do Dr. Cleiton Alam:
   Montserrat (títulos/corpo) + Roboto (apoio).
   ========================================================================== */

/* fontes carregadas via <link> no <head> de cada página, não por @import (mais rápido) */

:root{
  /* --- paleta --- */
  --cream:        #FFFFFF;   /* fundo principal — branco, sem véu bege */
  --cream-deep:   #FBEEF1;   /* leve véu rosado — seções alternadas */
  --paper:        #FFFFFF;   /* cartões, superfícies elevadas */
  --ink:          #2A2420;   /* texto principal, quase preto, quente */
  --ink-soft:     #6B6055;   /* texto secundário */
  --ink-faint:    #9A9085;   /* legendas, metadados */

  --rosa:         #BD5676;   /* rosa da marca — refinado, não neon */
  --rosa-deep:    #96405B;   /* hover / texto sobre claro */
  --rosa-soft:    rgba(189,86,118,.11);
  --rosa-light:   #F2C7D4;   /* rosa claro — texto/ícones sobre fundo escuro */

  --vinho:        #44202F;   /* vinho profundo — seções escuras, contraste */
  --vinho-deep:   #2E1521;

  --line:         rgba(42,36,32,.14);
  --line-on-dark: rgba(246,240,230,.18);

  --font-heading: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-sub:     'Roboto', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-body:    'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;

  --container:    1220px;
  --container-nar:820px;
  --pad:          clamp(1.25rem, 4vw, 2.75rem);
  --section-pad:  clamp(3.5rem, 7vw, 6.5rem);

  --fs-hero:  clamp(2.4rem, 1.7vw + 1.9rem, 3.8rem);
  --fs-h1:    clamp(2rem, 1.2vw + 1.6rem, 2.9rem);
  --fs-h2:    clamp(1.7rem, .9vw + 1.4rem, 2.4rem);
  --fs-h3:    clamp(1.2rem, .4vw + 1.05rem, 1.4rem);
  --fs-lede:  clamp(1.05rem, .3vw + .95rem, 1.2rem);

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

/* ---------- reset ---------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
html, body{ background: var(--cream); color: var(--ink); }
body{
  margin: 0;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
h1,h2,h3,h4, blockquote{ margin: 0; font-family: var(--font-heading); font-weight: 700; line-height: 1.18; color: var(--ink); letter-spacing: -.01em; }
p, ul, ol, dl, figure{ margin: 0; }
ul, ol{ list-style: none; padding: 0; }
img{ max-width: 100%; display: block; }
a{ color: inherit; text-decoration: none; }
button, input, textarea, select{ font: inherit; color: inherit; }
button{ cursor: pointer; background: none; border: none; }
svg{ display: block; }

/* assinatura: cantos retos em superfícies, cheios nos elementos de ação */
img, .card, .faq-item, .gallery-item, .stat, .guide-card, .consult-row{ border-radius: 0; }

.container{ width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--pad); }
.container-nar{ width: 100%; max-width: var(--container-nar); margin-inline: auto; padding-inline: var(--pad); }

.visually-hidden{ position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

/* ---------- tipografia utilitária ---------- */
.eyebrow{
  display: inline-flex; align-items: center;
  font-family: var(--font-sub); font-size: 12.5px; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase; color: var(--rosa);
}
.on-dark .eyebrow{ color: var(--rosa-light); }

.lede{ font-size: var(--fs-lede); color: var(--ink-soft); line-height: 1.6; max-width: 46ch; }
.on-dark h1, .on-dark h2, .on-dark h3, .on-dark h4{ color: var(--cream); }
.on-dark p{ color: rgba(246,240,230,.82); }
.on-dark .lede{ color: rgba(246,240,230,.78); }

em.accent{ font-style: italic; font-weight: 600; color: var(--rosa); }
.on-dark em.accent{ color: var(--rosa-light); }

/* placeholders de conteúdo pendente — marcados para revisão da cliente */
.tbd{
  color: var(--rosa-deep);
  border-bottom: 1px dashed var(--rosa);
  padding-bottom: 1px;
  cursor: help;
}
.on-dark .tbd{ color: var(--rosa-light); border-bottom-color: var(--rosa-light); }

/* ---------- botões ---------- */
.btn{
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  gap: 10px; padding: 15px 30px; border-radius: 3px;
  font-family: var(--font-body); font-weight: 600; font-size: 14.5px; letter-spacing: .01em;
  border: 1px solid transparent; white-space: nowrap;
  transition: transform .35s var(--ease), background-color .3s, color .3s, border-color .3s, box-shadow .3s;
}
.btn svg{ width: 17px; height: 17px; flex-shrink: 0; }
.btn-primary{ background: var(--rosa); color: var(--cream); box-shadow: 0 14px 26px -12px rgba(150,64,91,.45); }
.btn-primary:hover{ background: var(--rosa-deep); transform: translateY(-2px); }
.btn-ghost{ background: transparent; border-color: rgba(42,36,32,.28); color: var(--ink); }
.btn-ghost:hover{ border-color: var(--ink); transform: translateY(-2px); }
.on-dark .btn-ghost{ border-color: rgba(246,240,230,.35); color: var(--cream); }
.on-dark .btn-ghost:hover{ border-color: var(--cream); }
.btn-light{ background: var(--cream); color: var(--vinho-deep); }
.btn-light:hover{ background: #fff; transform: translateY(-2px); }
.btn-block{ width: 100%; }

.link-inline{
  display: inline-flex; align-items: center; gap: 10px; font-weight: 600; font-size: 14.5px;
  color: var(--ink);
}
.link-inline .ring{
  display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px;
  border: 1px solid rgba(42,36,32,.3); border-radius: 50%; transition: background .3s var(--ease), border-color .3s;
}
.link-inline:hover .ring{ background: var(--rosa); border-color: var(--rosa); color: #fff; }

/* ---------- reveal on scroll ---------- */
.reveal{ opacity: 0; transform: translateY(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.is-visible{ opacity: 1; transform: translateY(0); }
.reveal-delay-1{ transition-delay: .08s; }
.reveal-delay-2{ transition-delay: .16s; }
.reveal-delay-3{ transition-delay: .24s; }

/* ==========================================================================
   Header
   ========================================================================== */
.site-header{
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  padding: 26px 0;
  transition: padding .4s var(--ease), background-color .4s var(--ease), box-shadow .4s var(--ease);
}
.site-header::before{
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: var(--cream); opacity: 0; transition: opacity .4s var(--ease);
  box-shadow: 0 16px 30px -22px rgba(42,36,32,.4);
}
.site-header.is-scrolled{ padding: 15px 0; }
.site-header.is-scrolled::before{ opacity: 1; }

/* cabeçalho sobre a foto da hero (home): texto claro + véu escuro até rolar */
.site-header.has-photo-hero::after{
  content: ''; position: absolute; inset: 0; z-index: -2;
  background: linear-gradient(180deg, rgba(46,21,33,.6) 0%, rgba(46,21,33,0) 100%);
  opacity: 1; transition: opacity .4s var(--ease);
}
.site-header.has-photo-hero.is-scrolled::after{ opacity: 0; }
.site-header.has-photo-hero:not(.is-scrolled) .brand-name,
.site-header.has-photo-hero:not(.is-scrolled) .nav-links a.nav-link,
.site-header.has-photo-hero:not(.is-scrolled) .nav-toggle,
.site-header.has-photo-hero:not(.is-scrolled) .btn-ghost{ color: var(--cream); }
.site-header.has-photo-hero:not(.is-scrolled) .brand-tag{ color: var(--rosa-light); }
body.nav-open .site-header.has-photo-hero .brand-name,
body.nav-open .site-header.has-photo-hero .nav-links a.nav-link,
body.nav-open .site-header.has-photo-hero .nav-toggle{ color: var(--ink); }

.site-header .container{ display: flex; align-items: center; justify-content: space-between; gap: 24px; }

.brand{ display: flex; flex-direction: column; line-height: 1; }
.brand .brand-name{ font-family: var(--font-heading); font-size: 20px; font-weight: 800; letter-spacing: .01em; color: var(--ink); }
.brand .brand-tag{ margin-top: 3px; font-family: var(--font-sub); font-size: 9.5px; letter-spacing: .22em; text-transform: uppercase; color: var(--rosa); font-weight: 700; }

.nav-links{ display: flex; align-items: center; gap: 22px; }
.nav-links > li{ position: relative; }
.nav-links a.nav-link{
  font-size: 13.5px; font-weight: 600; color: var(--ink); padding: 8px 0; position: relative; white-space: nowrap;
}
.nav-links a.nav-link::after{
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--rosa);
  transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease);
}
.nav-links a.nav-link:hover::after, .nav-links li.is-active > a.nav-link::after{ transform: scaleX(1); }
.nav-links li.has-dropdown > a.nav-link{ display: inline-flex; align-items: center; gap: 6px; }
.nav-links li.has-dropdown > a.nav-link svg{ width: 11px; height: 11px; transition: transform .3s var(--ease); }

.dropdown{
  position: absolute; top: calc(100% + 14px); left: 50%; transform: translate(-50%, 8px);
  min-width: 260px; background: var(--paper); box-shadow: 0 30px 50px -24px rgba(42,36,32,.3);
  padding: 10px; opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .28s var(--ease), transform .28s var(--ease), visibility .28s;
}
/* hover só existe em telas com mouse (desktop) — em touch isso "vazava" e deslocava o texto do menu mobile */
@media (min-width: 921px){
  .nav-links li.has-dropdown:hover > a.nav-link svg{ transform: rotate(180deg); }
  .nav-links li.has-dropdown:hover .dropdown{ opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
}
.dropdown a{ display: block; padding: 11px 16px; font-size: 14px; font-weight: 500; color: var(--ink); }
.dropdown a:hover{ background: var(--rosa-soft); color: var(--rosa-deep); }
.dropdown a.dropdown-all{ margin-top: 4px; padding-top: 11px; border-top: 1px solid var(--line); font-weight: 700; color: var(--rosa); font-size: 13px; letter-spacing: .02em; }

.header-actions{ display: flex; align-items: center; gap: 18px; }
.header-actions .btn{ padding: 12px 24px; font-size: 13.5px; }
.nav-toggle{ display: none; width: 40px; height: 40px; align-items: center; justify-content: center; position: relative; z-index: 160; }
.nav-toggle svg{ position: absolute; width: 22px; height: 22px; transition: opacity .25s, transform .25s; }
.nav-toggle .icon-close{ opacity: 0; transform: rotate(-90deg) scale(.6); }
.nav-open .nav-toggle .icon-menu{ opacity: 0; transform: rotate(90deg) scale(.6); }
.nav-open .nav-toggle .icon-close{ opacity: 1; transform: rotate(0) scale(1); }

/* ---------- menu mobile ---------- */
.nav-backdrop{
  position: fixed; inset: 0; z-index: 140; background: rgba(20,14,12,.45);
  opacity: 0; visibility: hidden; transition: opacity .4s var(--ease), visibility .4s;
}
.nav-open .nav-backdrop{ opacity: 1; visibility: visible; }
@media (max-width: 920px){
  .nav-links{
    position: fixed; top: 0; right: 0; left: auto; bottom: 0; z-index: 150;
    width: min(340px, 82vw); flex-direction: column; justify-content: flex-start; align-items: flex-start;
    gap: 2px; background: var(--cream); transform: translateX(100%); transition: transform .5s var(--ease);
    padding: 108px 30px 40px; overflow-y: auto;
    box-shadow: -24px 0 50px -24px rgba(42,36,32,.4);
  }
  .nav-open .nav-links{ transform: translateX(0); }
  .nav-links > li{ width: 100%; text-align: left; border-bottom: 1px solid var(--line); }
  .nav-links a.nav-link{ display: flex; width: 100%; padding: 15px 0; font-size: 17px; }
  .nav-links a.nav-link::after{ display: none; }
  .dropdown{
    position: static; min-width: 0; box-shadow: none; background: transparent; padding: 0 0 10px 14px;
    opacity: 1; visibility: visible; pointer-events: auto; transform: none; display: none;
  }
  .nav-links li.has-dropdown.is-open .dropdown{ display: block; }
  .dropdown a{ padding: 10px 0; font-size: 15px; }
  .header-actions .btn-primary{ display: none; }
  .nav-toggle{ display: flex; }
}

/* ---------- whatsapp flutuante ---------- */
.wa-float{
  position: fixed; right: clamp(16px, 4vw, 34px); bottom: clamp(16px, 4vw, 34px); z-index: 180;
  display: flex; align-items: center; gap: 10px; padding: 14px 22px; border-radius: 3px;
  background: var(--vinho); color: var(--cream); font-weight: 700; font-size: 14px;
  box-shadow: 0 18px 34px -16px rgba(46,21,33,.55);
  transition: transform .35s var(--ease), background .3s;
}
.wa-float:hover{ background: var(--vinho-deep); transform: translateY(-3px); }
.wa-float svg{ width: 19px; height: 19px; }
.wa-float .wa-label{ display: none; }
@media (min-width: 640px){ .wa-float .wa-label{ display: inline; } }

/* ==========================================================================
   Hero (texto + moldura de retrato)
   ========================================================================== */
.hero{
  position: relative; min-height: clamp(540px, 82vh, 780px);
  display: flex; align-items: center; overflow: hidden; padding: 90px 0 60px;
}
.hero-media{ position: absolute; inset: 0; z-index: 0; }
.hero-media img{ width: 100%; height: 100%; object-fit: cover; object-position: 68% 30%; }
.hero-scrim{
  position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(46,21,33,.88) 0%, rgba(46,21,33,.62) 30%, rgba(46,21,33,.22) 56%, rgba(46,21,33,0) 72%);
}
.hero .container{ position: relative; z-index: 2; }
.hero-copy{ max-width: 580px; }
.hero-copy .eyebrow{ color: var(--rosa-light); }
.hero h1{ font-size: var(--fs-hero); margin: 20px 0 22px; max-width: 16ch; color: var(--cream); }
.hero-copy .lede{ color: rgba(255,255,255,.86); }
.hero .hero-actions{ display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 34px; }
.hero .link-inline{ color: var(--cream); }
.hero .link-inline .ring{ border-color: rgba(255,255,255,.4); }
.hero .breadcrumb{ color: rgba(255,255,255,.65); }
.hero .breadcrumb a{ color: rgba(255,255,255,.85); }
.hero .breadcrumb a:hover{ color: var(--rosa-light); }

/* ---------- masthead fotográfico (foto cheia, sem texto sobreposto) ---------- */
.photo-masthead{ position: relative; height: clamp(380px, 46vw, 560px); overflow: hidden; }
.photo-masthead img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.photo-masthead::after{
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(0deg, var(--cream) 0%, rgba(246,240,230,0) 30%);
}
.photo-masthead-text{ padding: clamp(28px, 4vw, 40px) 0 clamp(36px, 5vw, 56px); }
.photo-masthead-text h1{ font-size: var(--fs-h1); margin: 14px 0 18px; }
@media (max-width: 760px){
  .hero{ min-height: clamp(520px, 92vh, 680px); padding-top: 110px; }
  .hero-media img{ object-position: 72% 78%; }
  .hero-scrim{ background: linear-gradient(180deg, rgba(46,21,33,.68) 0%, rgba(46,21,33,.6) 45%, rgba(46,21,33,.8) 100%); }
}

/* ---------- moldura de retrato (usada fora da hero) ---------- */
.hero-arcs{ position: absolute; right: -8%; top: 50%; transform: translateY(-50%); width: min(640px, 58vw); aspect-ratio: 1/1; opacity: .9; pointer-events: none; }
.hero-arcs circle{ fill: none; stroke: var(--rosa); }
.portrait-frame{
  position: relative; aspect-ratio: 4/5; width: 100%; overflow: hidden;
  background: linear-gradient(155deg, var(--vinho) 0%, var(--vinho-deep) 100%);
  display: flex; align-items: center; justify-content: center;
}
.portrait-frame svg{ width: 62%; opacity: .55; }
.portrait-frame img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.portrait-frame.is-small{ aspect-ratio: 1/1; }
@media (max-width: 860px){
  .portrait-frame{ max-width: 320px; margin: 0 auto; }
}

/* ---------- banner com efeito parallax ---------- */
.parallax-banner{ position: relative; height: clamp(200px, 26vw, 300px); overflow: hidden; background: var(--vinho); }
.parallax-media{
  position: absolute; inset: -35% 0; will-change: transform;
  background: linear-gradient(135deg, var(--vinho) 0%, var(--vinho-deep) 55%, var(--ink) 100%);
  display: flex; align-items: center; justify-content: center;
}
.parallax-media svg{ width: min(820px, 90vw); opacity: .18; }
.parallax-overlay{ position: relative; z-index: 2; height: 100%; display: flex; align-items: center; }
.parallax-overlay h2{ color: var(--cream); font-size: clamp(1.5rem, 1vw + 1.3rem, 2.2rem); max-width: 16ch; }
.parallax-overlay .eyebrow{ color: var(--rosa-light); }

/* ---------- grade de procedimentos (quadrados ilustrativos) ---------- */
.square-grid{ display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 2vw, 24px); }
.square-card{ display: flex; flex-direction: column; }
.square-media{
  aspect-ratio: 1/1; width: 100%; overflow: hidden; position: relative;
  background: var(--vinho);
}
.square-media > img{ width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s var(--ease); }
.square-card:hover .square-media > img{ transform: scale(1.045); }
.square-media .ba-slider{ position: absolute; inset: 0; }
.square-card-link{ display: block; color: inherit; text-decoration: none; }
.square-card h3{ font-size: 1.05rem; margin: 18px 0 6px; }
.square-card p{ color: var(--ink-soft); font-size: .92rem; }
.square-cta{
  display: inline-flex; align-items: center; gap: 8px; margin-top: 12px;
  font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--rosa);
}
@media (max-width: 920px){ .square-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px){ .square-grid{ grid-template-columns: 1fr 1fr; gap: 12px; } }

/* ---------- marquee ---------- */
.marquee{ background: var(--ink); overflow: hidden; padding: 16px 0; }
.marquee-track{ display: flex; gap: 48px; white-space: nowrap; animation: marquee 32s linear infinite; width: max-content; }
.marquee-track span{ font-family: var(--font-heading); font-weight: 600; font-size: 15px; color: rgba(246,240,230,.7); letter-spacing: .02em; }
@keyframes marquee{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }

/* ==========================================================================
   Seções genéricas
   ========================================================================== */
.section{ padding: var(--section-pad) 0; }
.section-alt{ background: var(--cream-deep); }
.section-dark{ background: var(--vinho); }
.section-head{ display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; flex-wrap: wrap; margin-bottom: clamp(2rem, 4vw, 3.2rem); }
.section-head h2{ font-size: var(--fs-h2); margin-top: 16px; max-width: 18ch; }
.section-head .desc{ max-width: 42ch; color: var(--ink-soft); }
.section-head.center{ flex-direction: column; text-align: center; align-items: center; }
.section-head.center h2, .section-head.center .desc{ max-width: 52ch; }

/* ---------- lista editorial (momentos / procedimentos) ---------- */
.feature-list{ display: flex; flex-direction: column; gap: 14px; }
a.feature-row, .feature-row{
  display: flex; align-items: center; gap: clamp(16px, 3vw, 32px);
  padding: clamp(20px, 3vw, 28px) clamp(20px, 3.5vw, 30px);
  background: var(--vinho);
  transition: background-color .3s var(--ease);
}
a.feature-row:hover{ background: var(--vinho-deep); }
.feature-num{ font-family: var(--font-heading); font-weight: 800; font-size: clamp(1.1rem, 1.2vw, 1.4rem); color: var(--rosa-light); opacity: .8; width: 2.4ch; flex-shrink: 0; }
.feature-body{ flex: 1; min-width: 0; }
.feature-body h3{ font-size: 1.2rem; margin-bottom: 6px; color: var(--cream); }
.feature-body p{ color: rgba(246,240,230,.78); max-width: 58ch; }
.feature-arrow{
  display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; flex-shrink: 0;
  border: 1px solid rgba(246,240,230,.4); color: var(--cream);
  transition: background .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
a.feature-row:hover .feature-arrow{ background: var(--rosa); border-color: var(--rosa); color: #fff; transform: translateX(3px); }
.feature-arrow svg{ width: 15px; height: 15px; }
@media (max-width: 640px){
  a.feature-row, .feature-row{ flex-wrap: wrap; }
  .feature-arrow{ display: none; }
}

/* ---------- citação / filosofia (bloco leve, sem moldura) ---------- */
.quote-section{ padding: clamp(1.6rem, 3vw, 2.4rem) 0; }
.quote-block{ display: grid; grid-template-columns: 1fr; gap: 20px; max-width: var(--container-nar); margin-inline: auto; text-align: center; }
.quote-block blockquote{ font-size: clamp(1.4rem, 1vw + 1.1rem, 1.9rem); line-height: 1.4; }
.quote-block blockquote::before{ content: '\201C'; color: var(--rosa); }
.quote-block blockquote::after{ content: '\201D'; color: var(--rosa); }
.quote-block .quote-note{ display: block; margin-top: 16px; font-family: var(--font-body); font-weight: 400; font-size: 1rem; line-height: 1.6; color: var(--ink-soft); max-width: 56ch; margin-inline: auto; }

/* ---------- localização ---------- */
.location-strip{ display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding: 30px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.location-strip .loc-info{ display: flex; align-items: center; gap: 14px; }
.location-strip .loc-info svg{ width: 22px; height: 22px; color: var(--rosa); flex-shrink: 0; }
.location-strip address{ font-style: normal; font-size: 15px; }
.location-strip address strong{ display: block; font-family: var(--font-heading); font-weight: 700; font-size: 16px; margin-bottom: 2px; }

/* ==========================================================================
   Cabeçalho de página interna (sub-páginas)
   ========================================================================== */
.page-hero{ position: relative; padding: calc(var(--section-pad) + 60px) 0 var(--section-pad); background: var(--cream); overflow: hidden; }
.page-hero .container{ max-width: var(--container-nar); text-align: left; position: relative; }
.breadcrumb{ display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ink-faint); margin-bottom: 22px; }
.breadcrumb a{ color: var(--ink-faint); }
.breadcrumb a:hover{ color: var(--rosa); }
.page-hero h1{ font-size: var(--fs-h1); margin: 14px 0 18px; }
.page-hero .hero-arcs{ right: -14%; opacity: .5; }

/* ---------- caixa "o que é importante saber" ---------- */
.callout{ background: var(--vinho); color: var(--cream); padding: clamp(1.8rem, 3vw, 2.6rem); display: flex; gap: 20px; align-items: flex-start; }
.callout svg{ width: 26px; height: 26px; flex-shrink: 0; color: var(--rosa-light); margin-top: 2px; }
.callout h3{ color: var(--cream); font-size: 1.15rem; margin-bottom: 10px; }
.callout p{ color: rgba(246,240,230,.82); }
.callout p + p{ margin-top: 10px; }

/* ---------- linha do tempo (trajetória) ---------- */
.timeline{ position: relative; margin-left: 6px; padding-left: 28px; border-left: 1px solid var(--line); }
.timeline-item{ position: relative; padding-bottom: clamp(26px, 4vw, 36px); }
.timeline-item:last-child{ padding-bottom: 0; }
.timeline-dot{
  position: absolute; left: -33px; top: 4px; width: 12px; height: 12px; border-radius: 50%;
  background: var(--rosa); border: 3px solid var(--cream);
}
.timeline-body h4{ font-family: var(--font-body); font-weight: 700; font-size: 1.02rem; margin-bottom: 5px; }
.timeline-body p{ color: var(--ink-soft); font-size: .96rem; }

/* ---------- lista numerada "na consulta avaliamos" ---------- */
.steps-list{ display: flex; flex-direction: column; gap: 12px; }
.steps-list li{ display: flex; gap: 20px; padding: clamp(18px, 3vw, 22px); background: var(--vinho); }
.steps-list .step-num{ font-family: var(--font-heading); font-weight: 800; font-size: 1.1rem; color: var(--rosa-light); opacity: .8; flex-shrink: 0; width: 2ch; }
.steps-list .step-body h4{ font-family: var(--font-body); font-weight: 700; font-size: 1rem; margin-bottom: 4px; color: var(--cream); }
.steps-list .step-body p{ color: rgba(246,240,230,.78); font-size: .96rem; }

/* ---------- consulta: linhas de info ---------- */
.consult-row{ display: flex; gap: 22px; padding: clamp(18px, 3vw, 22px); align-items: flex-start; background: var(--vinho); }
.consult-row + .consult-row{ margin-top: 12px; }
.consult-row svg{ width: 22px; height: 22px; color: var(--rosa-light); flex-shrink: 0; margin-top: 3px; }
.consult-row h4{ font-family: var(--font-body); font-weight: 700; font-size: 1rem; margin-bottom: 4px; color: var(--cream); }
.consult-row p{ color: rgba(246,240,230,.78); }

/* ---------- faq accordion ---------- */
.faq-list{ display: flex; flex-direction: column; gap: 14px; }
.faq-item{ background: var(--vinho); }
.faq-q{ width: 100%; display: flex; align-items: center; gap: clamp(14px, 2.5vw, 24px); padding: clamp(18px, 3vw, 24px) clamp(20px, 3.5vw, 30px); text-align: left; }
.faq-q .faq-num{ font-family: var(--font-heading); font-weight: 800; font-size: .85rem; color: var(--rosa-light); opacity: .8; flex-shrink: 0; width: 2.6ch; }
.faq-q h3{ font-family: var(--font-body); font-weight: 700; font-size: 1.02rem; color: var(--cream); flex: 1; }
.faq-q .faq-plus{ position: relative; width: 34px; height: 34px; flex-shrink: 0; border: 1px solid rgba(246,240,230,.4); }
.faq-q .faq-plus::before, .faq-q .faq-plus::after{ content:''; position: absolute; top: 50%; left: 50%; background: var(--cream); transition: transform .3s var(--ease); }
.faq-q .faq-plus::before{ width: 13px; height: 1.5px; transform: translate(-50%,-50%); }
.faq-q .faq-plus::after{ width: 1.5px; height: 13px; transform: translate(-50%,-50%); }
.faq-item.is-open .faq-plus::after{ transform: translate(-50%,-50%) rotate(90deg); opacity: 0; }
.faq-a{ max-height: 0; overflow: hidden; transition: max-height .4s var(--ease); }
.faq-a-inner{ padding: 0 clamp(20px, 3.5vw, 30px) clamp(20px, 3vw, 24px) calc(2.6ch + clamp(14px, 2.5vw, 24px) + clamp(20px, 3.5vw, 30px)); max-width: 64ch; color: rgba(246,240,230,.78); }
.faq-item.is-open .faq-a{ max-height: 600px; }
@media (max-width: 560px){ .faq-a-inner{ padding-left: clamp(20px, 3.5vw, 30px); } }

/* ---------- galeria antes/depois ---------- */
.gallery-filters{ display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 36px; }
.gallery-filters button{ padding: 10px 20px; border-radius: 3px; border: 1px solid var(--line); font-size: 13.5px; font-weight: 600; transition: all .3s var(--ease); }
.gallery-filters button.is-active, .gallery-filters button:hover{ background: var(--rosa); border-color: var(--rosa); color: #fff; }
.gallery-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.gallery-item{ position: relative; min-width: 0; aspect-ratio: 4/5; background: var(--cream-deep); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center; padding: 20px; border: 1px solid var(--line); }
.gallery-item > svg{ width: 34px; height: 34px; color: var(--rosa); opacity: .7; }
.gallery-item span{ font-size: 12.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-faint); font-weight: 600; }
.gallery-item.has-photo{ aspect-ratio: auto; padding: 0; border: none; background: none; align-self: start; width: 100%; }
.gallery-item.has-photo img{ width: 100%; height: auto; display: block; }
.gallery-item.has-photo .gallery-caption{ margin-top: 10px; font-size: 12px; letter-spacing: .04em; color: var(--ink-faint); text-align: left; }
@media (max-width: 860px){ .gallery-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px){
  .gallery-grid{ grid-template-columns: 1fr 1fr; gap: 10px; }
  .gallery-item.has-photo{ grid-column: 1 / -1; max-width: 420px; margin-inline: auto; }
}

/* ---------- comparador antes/depois ---------- */
.ba-slider{
  position: relative; width: 100%; aspect-ratio: 4/5; overflow: hidden;
  touch-action: pan-y; cursor: ew-resize; user-select: none; background: var(--cream-deep);
}
.ba-slider img{
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  display: block; pointer-events: none; -webkit-user-drag: none;
}
.ba-slider .ba-before{
  clip-path: inset(0 calc(100% - var(--pos, 50%)) 0 0);
  filter: grayscale(55%) brightness(1.15) contrast(0.88) saturate(0.5);
}
.ba-divider{
  position: absolute; top: 0; bottom: 0; left: var(--pos, 50%); width: 2px;
  background: var(--rosa); transform: translateX(-50%); pointer-events: none;
}
.ba-handle{
  position: absolute; top: 50%; left: var(--pos, 50%); transform: translate(-50%, -50%);
  width: 38px; height: 38px; border-radius: 6px; background: var(--rosa);
  border: 2px solid var(--cream); display: flex; align-items: center; justify-content: center;
  color: var(--cream); box-shadow: 0 10px 20px -8px rgba(42,36,32,.45); cursor: ew-resize;
  animation: ba-pulse 1.8s ease-in-out 2;
}
@media (prefers-reduced-motion: reduce){ .ba-handle{ animation: none; } }
@keyframes ba-pulse{ 0%,100%{ transform: translate(-50%,-50%) scale(1); } 50%{ transform: translate(-50%,-50%) scale(1.12); } }
.ba-label{
  position: absolute; top: 12px; padding: 5px 11px; font-size: 10.5px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; background: rgba(46,21,33,.55); color: var(--cream);
  pointer-events: none;
}
.ba-label-before{ left: 12px; }
.ba-label-after{ right: 12px; }

/* ---------- depoimentos (slider) ---------- */
.testi-slider{ max-width: 680px; margin-inline: auto; }
.testi-track{ position: relative; min-height: 200px; }
.testi-slide{
  position: absolute; inset: 0; opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .5s var(--ease);
  display: flex; flex-direction: column; align-items: center;
}
.testi-slide.is-active{ position: relative; opacity: 1; visibility: visible; pointer-events: auto; }
.testi-stars{ display: flex; gap: 4px; color: var(--rosa); }
.testi-stars svg{ width: 15px; height: 15px; fill: currentColor; }
.testi-quote{
  margin-top: 18px; font-family: var(--font-body); font-weight: 500; font-style: normal;
  font-size: 1.1rem; line-height: 1.65; color: var(--ink); max-width: 56ch;
}
.testi-nav{ display: flex; align-items: center; justify-content: center; gap: 20px; margin-top: 36px; }
.testi-arrow{
  width: 36px; height: 36px; flex-shrink: 0; border-radius: 3px; border: 1px solid var(--line);
  background: none; display: flex; align-items: center; justify-content: center; color: var(--ink);
  transition: background .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease);
}
.testi-arrow:hover{ background: var(--rosa); border-color: var(--rosa); color: #fff; }
.testi-dots{ display: flex; gap: 9px; }
.testi-dot{
  width: 8px; height: 8px; padding: 0; border: none; background: var(--line);
  transition: background .25s var(--ease), transform .25s var(--ease);
}
.testi-dot.is-active{ background: var(--rosa); transform: scale(1.3); }
@media (max-width: 560px){ .testi-nav{ gap: 14px; } }

/* ---------- guia / download ---------- */
.guide-card{ background: var(--vinho); color: var(--cream); padding: clamp(2.4rem, 5vw, 4rem); display: grid; grid-template-columns: 1.3fr 1fr; gap: 40px; align-items: center; }
.guide-card h2{ color: var(--cream); font-size: var(--fs-h2); }
.guide-card .lede{ color: rgba(246,240,230,.8); margin-top: 14px; }
.guide-card .eyebrow{ color: var(--rosa-light); }
.guide-list{ display: flex; flex-direction: column; gap: 10px; }
.guide-list li{ display: flex; align-items: baseline; gap: 12px; font-size: .95rem; color: rgba(246,240,230,.85); }
.guide-list .g-num{ font-family: var(--font-heading); font-weight: 800; color: var(--rosa-light); font-size: .95rem; width: 2ch; flex-shrink: 0; }
@media (max-width: 760px){ .guide-card{ grid-template-columns: 1fr; } }

/* ---------- cartões genéricos (sobre, consulta) ---------- */
.stat-row{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: var(--line); margin-top: 10px; }
.stat{ background: var(--paper); padding: clamp(1.6rem, 3vw, 2.2rem); text-align: center; }
.stat strong{ display: block; font-family: var(--font-heading); font-weight: 800; font-size: clamp(1.8rem, 2vw, 2.4rem); color: var(--rosa); }
.stat span{ display: block; margin-top: 6px; font-size: 13px; color: var(--ink-soft); }
@media (max-width: 680px){ .stat-row{ grid-template-columns: 1fr; } }

.two-col{ display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
@media (max-width: 860px){ .two-col{ grid-template-columns: 1fr; } }
@media (min-width: 861px){ .callout-align{ margin-top: 50px; } }

/* ---------- footer ---------- */
.site-footer{ background: var(--ink); color: rgba(246,240,230,.72); padding: clamp(3rem, 6vw, 5rem) 0 2rem; }
.footer-top{ display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; padding-bottom: clamp(2.4rem, 5vw, 3.6rem); border-bottom: 1px solid rgba(246,240,230,.14); }
.footer-brand .brand-name{ font-family: var(--font-heading); font-weight: 800; font-size: 22px; color: var(--cream); }
.footer-brand p{ margin-top: 14px; max-width: 32ch; font-size: 14px; }
.footer-col h5{ font-family: var(--font-sub); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--rosa-light); margin-bottom: 16px; font-weight: 700; }
.footer-col ul{ display: flex; flex-direction: column; gap: 11px; }
.footer-col a{ font-size: 14.5px; transition: color .25s; }
.footer-col a:hover{ color: var(--cream); }
.footer-legal{ padding-top: 28px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; font-size: 12.5px; color: rgba(246,240,230,.5); }
.footer-legal a{ color: rgba(246,240,230,.5); }
.footer-legal a:hover{ color: var(--cream); }
@media (max-width: 860px){ .footer-top{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px){ .footer-top{ grid-template-columns: 1fr; } }

/* ---------- responsivo geral ---------- */
@media (max-width: 760px){
  .hero .container{ grid-template-columns: 1fr; }
  .hero-arcs{ width: 80vw; opacity: .45; }
  .two-col{ gap: 2.4rem; }
  .guide-card{ padding: 2.2rem; }
}
