/* ============================================================
   ANDREA BASÍLIO — REDESIGN EDITORIAL
   style.css · Digital Bloom
   ============================================================ */

/* ── TOKENS ─────────────────────────────────────────────────── */
:root {
  --coral:      #f0a296;
  --coral-dk:   #d4796b;
  --coral-lt:   #fce8e5;
  --ink:        #1c1c1c;
  --ink-80:     #3a3a3a;
  --ink-50:     rgba(28,28,28,.5);
  --ink-15:     rgba(28,28,28,.08);
  --cream:      #fdf7f5;
  --warm:       #f5ede9;
  --white:      #ffffff;
  --line:       rgba(28,28,28,.1);

  --serif:  'Playfair Display', Georgia, serif;
  --sans:   'DM Sans', system-ui, sans-serif;

  --r-sm:   8px;
  --r-md:   16px;
  --r-lg:   28px;
  --r-xl:   48px;
  --r-full: 9999px;

  --ease:  cubic-bezier(.4,0,.2,1);
  --fast:  .2s;
  --mid:   .4s;
  --slow:  .7s;

  --w: 1240px;
  --hh: 72px;
}

/* ── RESET ───────────────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { font-size:16px; scroll-behavior:smooth; scroll-padding-top:var(--hh); -webkit-text-size-adjust:100%; }
body { font-family:var(--sans); color:var(--ink); background:var(--cream); line-height:1.65; overflow-x:hidden; -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
ul,ol { list-style:none; }
button { cursor:pointer; border:none; background:none; font:inherit; }
address { font-style:normal; }
details { border:none; }
iframe { border:0; display:block; }

/* ── UTIL ────────────────────────────────────────────────────── */
.wrap {
  width:100%;
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem, 4vw, 2.5rem);
}

.label {
  display:inline-block;
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--coral-dk);
  margin-bottom:.75rem;
}
.label--light { color:rgba(255,255,255,.55); }

/* ── BUTTONS ─────────────────────────────────────────────────── */
.btn {
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  font-family:var(--sans);
  font-size:.88rem;
  font-weight:500;
  letter-spacing:.02em;
  padding:.85rem 2rem;
  border-radius:var(--r-full);
  border:1.5px solid transparent;
  cursor:pointer;
  transition:all var(--fast) var(--ease);
  white-space:nowrap;
}
.btn svg { width:18px; height:18px; flex-shrink:0; }

.btn--fill { background:var(--coral); color:var(--white); border-color:var(--coral); }
.btn--fill:hover { background:var(--coral-dk); border-color:var(--coral-dk); transform:translateY(-2px); box-shadow:0 8px 24px rgba(240,162,150,.4); }

.btn--ghost { background:transparent; color:var(--ink); border-color:var(--line); }
.btn--ghost:hover { background:var(--ink); color:var(--white); border-color:var(--ink); }

.btn--white { background:var(--white); color:var(--coral-dk); border-color:var(--white); }
.btn--white:hover { background:var(--coral-lt); transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.15); }

.btn--sm { padding:.6rem 1.4rem; font-size:.8rem; }
.btn--sm svg { width:16px; height:16px; }
.btn--full { width:100%; justify-content:center; }

/* ── HEADER ──────────────────────────────────────────────────── */
.header {
  position:fixed;
  inset:0 0 auto;
  z-index:100;
  height:var(--hh);
  background:rgba(253,247,245,.9);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid transparent;
  transition:border-color var(--fast), box-shadow var(--fast);
}
.header.scrolled { border-color:var(--line); box-shadow:0 2px 24px rgba(0,0,0,.06); }

.header__inner {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
}

.logo { display:flex; flex-direction:column; line-height:1; gap:2px; }
.logo__name { font-family:var(--serif); font-size:1.2rem; font-weight:500; color:var(--ink); }
.logo__crm { font-size:.6rem; font-weight:400; letter-spacing:.2em; text-transform:uppercase; color:var(--coral-dk); }

nav { display:flex; align-items:center; gap:2.5rem; }
.nav__list { display:flex; align-items:center; gap:1.75rem; }
.nav__link {
  font-size:.82rem;
  font-weight:400;
  color:var(--ink-80);
  position:relative;
  padding-bottom:2px;
}
.nav__link::after {
  content:'';
  position:absolute;
  bottom:0; left:0;
  width:0; height:1px;
  background:var(--coral);
  transition:width var(--fast) var(--ease);
}
.nav__link:hover { color:var(--ink); }
.nav__link:hover::after,.nav__link.active::after { width:100%; }
.nav__link.active { color:var(--ink); }

.header__cta {
  font-size:.82rem;
  font-weight:500;
  background:var(--ink);
  color:var(--white);
  padding:.55rem 1.35rem;
  border-radius:var(--r-full);
  transition:background var(--fast);
}
.header__cta:hover { background:var(--coral); }

.hamburger { display:none; flex-direction:column; gap:5px; width:30px; height:30px; padding:5px 0; justify-content:center; cursor:pointer; }
.hamburger span { display:block; width:100%; height:2px; background:var(--ink); border-radius:2px; transition:all var(--fast) var(--ease); }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ── HERO ────────────────────────────────────────────────────── */
/* ── HERO ────────────────────────────────────────────────────── */
.hero {
  min-height:100svh;
  padding-top:var(--hh);
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  background:var(--cream);
  overflow:hidden;
  position:relative;
}

/* coluna texto */
.hero__left {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(5rem,8vw,8rem) clamp(2rem,4vw,3rem) clamp(5rem,8vw,8rem) clamp(2rem,6vw,7rem);
  position:relative;
  z-index:1;
  background:var(--cream);
}

/* pill tag */
.hero__pill {
  display:inline-flex;
  align-items:center;
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--coral-dk);
  background:rgba(240,162,150,.12);
  border:1px solid rgba(240,162,150,.25);
  border-radius:var(--r-full);
  padding:.4rem 1rem;
  margin-bottom:1.75rem;
  width:fit-content;
}

/* headline */
.hero__title {
  font-family:var(--serif);
  font-size:clamp(2.5rem, 4.5vw, 3.8rem);
  font-weight:700;
  line-height:1.12;
  color:var(--ink);
  margin-bottom:1.25rem;
  letter-spacing:-.025em;
  max-width:520px;
}

.hero__sub {
  font-size:.97rem;
  color:var(--ink-50);
  line-height:1.8;
  max-width:440px;
  margin-bottom:1rem;
}

/* linha de especialidades */
.hero__tags-line {
  font-size:.8rem;
  color:var(--ink-50);
  margin-bottom:2.25rem;
  line-height:1.7;
}

/* CTAs */
.hero__actions {
  display:flex;
  align-items:center;
  gap:.85rem;
  flex-wrap:wrap;
  margin-bottom:2rem;
}

/* botão escuro */
.btn--dark {
  background:var(--coral-dk);
  color:var(--white);
  border-color:var(--coral-dk);
  border-radius:var(--r-full);
  padding:.85rem 2rem;
  font-size:.88rem;
  font-weight:500;
  transition:all var(--fast) var(--ease);
}
.btn--dark:hover {
  background:#b5604f;
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(212,121,107,.35);
}

/* botão whatsapp verde */
.btn--wa {
  background:#25D366;
  color:var(--white);
  border-color:#25D366;
  border-radius:var(--r-full);
  padding:.85rem 2rem;
  font-size:.88rem;
  font-weight:500;
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  transition:all var(--fast) var(--ease);
}
.btn--wa svg { width:18px; height:18px; }
.btn--wa:hover {
  background:#1da851;
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(37,211,102,.35);
}

/* localização */
.hero__location {
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  font-size:.82rem;
  color:var(--ink-50);
}
.hero__location svg { width:15px; height:15px; color:var(--coral); flex-shrink:0; }

/* coluna foto — preenche toda a altura */
.hero__right {
  position:relative;
  overflow:hidden;
}

/* gradiente suave na borda esquerda da foto */
.hero__right::before {
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:140px;
  background:linear-gradient(to right, var(--cream) 0%, transparent 100%);
  z-index:1;
  pointer-events:none;
}

/* foto full-bleed */
.hero__photo {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  display:block;
}

/* card de estatística — sobrepõe a junção das colunas */
.hero__badge {
  position:absolute;
  bottom:clamp(3rem,6vw,5rem);
  left:-2.5rem;
  z-index:2;
  background:var(--white);
  border-radius:var(--r-md);
  padding:1rem 1.4rem;
  box-shadow:0 12px 40px rgba(0,0,0,.14);
  display:flex;
  align-items:center;
  gap:.75rem;
  min-width:160px;
}
.hero__badge strong {
  font-family:var(--serif);
  font-size:2.8rem;
  font-weight:700;
  color:var(--coral-dk);
  line-height:1;
  flex-shrink:0;
}
.hero__badge span {
  font-size:.65rem;
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink-50);
  line-height:1.4;
}

/* ── SOBRE ───────────────────────────────────────────────────── */
.sobre {
  background:var(--white);
  padding-block:clamp(5rem,10vw,9rem);
  position:relative;
  overflow:hidden;
}

.sobre__decor {
  position:absolute;
  top:-120px;
  right:-80px;
  width:400px;
  height:400px;
  border-radius:50%;
  background:var(--coral-lt);
  opacity:.4;
  pointer-events:none;
}

.sobre__wrap {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:clamp(3rem,7vw,7rem);
  align-items:center;
}

.sobre__img-frame {
  position:relative;
  border-radius:var(--r-xl);
  overflow:hidden;
  aspect-ratio:3/4;
  background:var(--warm);
  box-shadow:0 32px 80px rgba(0,0,0,.1);
}
.sobre__img-frame img { width:100%; height:100%; object-fit:cover; object-position:center top; }

.sobre__img-tag {
  position:absolute;
  bottom:1.75rem;
  right:1.75rem;
  background:var(--coral);
  color:var(--white);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:.6rem 1.1rem;
  border-radius:var(--r-full);
  display:flex;
  align-items:center;
  gap:.45rem;
}
.sobre__img-tag svg { width:14px; height:14px; }

.sobre__title {
  font-family:var(--serif);
  font-size:clamp(1.8rem,3.5vw,2.7rem);
  font-weight:400;
  line-height:1.2;
  color:var(--ink);
  margin-bottom:1.5rem;
  letter-spacing:-.01em;
}

.sobre__body { display:flex; flex-direction:column; gap:1rem; color:var(--ink-50); line-height:1.8; margin-bottom:2rem; }

.sobre__nums {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1rem;
  padding:1.5rem;
  background:var(--cream);
  border-radius:var(--r-md);
  margin-bottom:2.5rem;
}
.sobre__num { text-align:center; }
.sobre__num strong {
  display:block;
  font-family:var(--serif);
  font-size:1.6rem;
  font-weight:500;
  color:var(--coral);
  margin-bottom:.2rem;
  line-height:1;
}
.sobre__num span { font-size:.7rem; color:var(--ink-50); letter-spacing:.04em; text-transform:uppercase; line-height:1.4; }

/* ── DIFERENCIAIS ────────────────────────────────────────────── */
.diferenciais {
  background:var(--ink);
  padding-block:clamp(5rem,10vw,9rem);
  position:relative;
  overflow:hidden;
}

.diferenciais__head {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  margin-bottom:4rem;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:1rem;
}
.diferenciais__head h2 {
  font-family:var(--serif);
  font-size:clamp(2rem,3.5vw,3rem);
  font-weight:400;
  color:var(--white);
  line-height:1.2;
  letter-spacing:-.01em;
  max-width:560px;
}

.diferenciais__grid {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.06);
  border-radius:var(--r-lg);
  overflow:hidden;
}

.dif-card {
  padding:2.5rem;
  background:var(--ink);
  transition:background var(--fast) var(--ease);
  position:relative;
}
.dif-card:hover { background:#252525; }
.dif-card:nth-child(n+4) { border-top:1px solid rgba(255,255,255,.06); }
.dif-card:nth-child(3n+2) { border-inline:1px solid rgba(255,255,255,.06); }

.dif-card__n {
  display:block;
  font-family:var(--serif);
  font-size:3rem;
  font-weight:400;
  color:rgba(240,162,150,.25);
  line-height:1;
  margin-bottom:1.25rem;
}
.dif-card h3 {
  font-family:var(--serif);
  font-size:1.1rem;
  font-weight:500;
  color:var(--white);
  margin-bottom:.65rem;
  line-height:1.3;
}
.dif-card p { font-size:.88rem; color:rgba(255,255,255,.45); line-height:1.7; }

/* ── SERVIÇOS ────────────────────────────────────────────────── */
.servicos {
  background:var(--cream);
  padding-block:clamp(5rem,10vw,9rem);
}

.servicos__intro {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  margin-bottom:4rem;
}
.servicos__intro h2 {
  font-family:var(--serif);
  font-size:clamp(2.2rem,4vw,3.5rem);
  font-weight:400;
  color:var(--ink);
  line-height:1.15;
  letter-spacing:-.02em;
}
.servicos__intro h2 em { font-style:italic; color:var(--coral-dk); }

.servicos__list {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:1.25rem;
}
.svc { grid-column:span 2; }
.svc:nth-child(4) { grid-column:2 / span 2; }
.svc:nth-child(5) { grid-column:4 / span 2; }

.svc {
  background:var(--white);
  border-radius:var(--r-lg);
  padding:2.25rem;
  border:1px solid var(--line);
  display:flex;
  flex-direction:column;
  transition:all var(--mid) var(--ease);
  position:relative;
  overflow:hidden;
}
.svc::before {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, var(--coral-lt) 0%, transparent 60%);
  opacity:0;
  transition:opacity var(--mid) var(--ease);
}
.svc:hover { box-shadow:0 20px 56px rgba(0,0,0,.09); transform:translateY(-4px); border-color:rgba(240,162,150,.4); }
.svc:hover::before { opacity:1; }


.svc__head { display:flex; align-items:baseline; gap:1rem; margin-bottom:1rem; position:relative; }
.svc__n {
  font-family:var(--serif);
  font-size:2.5rem;
  font-weight:300;
  color:var(--line);
  line-height:1;
  flex-shrink:0;
}
.svc__head h3 {
  font-family:var(--serif);
  font-size:1.1rem;
  font-weight:500;
  color:var(--ink);
  line-height:1.3;
}

.svc p {
  font-size:.88rem;
  color:var(--ink-50);
  line-height:1.75;
  flex:1;
  margin-bottom:1.5rem;
  position:relative;
}

.svc__link {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-size:.8rem;
  font-weight:500;
  color:var(--coral-dk);
  border-top:1px solid var(--line);
  padding-top:1.25rem;
  margin-top:auto;
  transition:all var(--fast) var(--ease);
  position:relative;
}
.svc__link:hover { gap:.8rem; }
.svc__link svg { width:16px; height:16px; }

/* ── CTA MID ─────────────────────────────────────────────────── */
.cta-mid {
  background:var(--coral);
  padding-block:clamp(5rem,9vw,8rem);
  overflow:hidden;
  position:relative;
}
.cta-mid::before,.cta-mid::after {
  content:'';
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.cta-mid::before { width:500px; height:500px; background:rgba(255,255,255,.06); top:-200px; right:-100px; }
.cta-mid::after { width:300px; height:300px; background:rgba(255,255,255,.06); bottom:-150px; left:-80px; }

.cta-mid__inner {
  max-width:700px;
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  text-align:center;
  position:relative;
  z-index:1;
}
.cta-mid__inner h2 {
  font-family:var(--serif);
  font-size:clamp(2rem,4vw,3.2rem);
  font-weight:400;
  color:var(--white);
  line-height:1.2;
  margin-bottom:1rem;
  letter-spacing:-.01em;
}
.cta-mid__inner h2 em { font-style:italic; }
.cta-mid__inner p { color:rgba(255,255,255,.75); margin-bottom:2.25rem; font-size:1rem; }

/* ── PARA QUEM ───────────────────────────────────────────────── */
.para-quem {
  background:var(--white);
  padding-block:clamp(5rem,10vw,9rem);
}

.para-quem__intro {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  margin-bottom:4rem;
}
.para-quem__intro h2 {
  font-family:var(--serif);
  font-size:clamp(2rem,4vw,3.2rem);
  font-weight:400;
  color:var(--ink);
  line-height:1.2;
  letter-spacing:-.01em;
}
.para-quem__intro h2 em { font-style:italic; color:var(--coral-dk); }

.para-quem__grid {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.25rem;
}

.pq-item {
  padding:2.5rem;
  border-radius:var(--r-lg);
  background:var(--cream);
  border:1px solid var(--line);
  position:relative;
  overflow:hidden;
  transition:all var(--mid) var(--ease);
}
.pq-item:hover { border-color:var(--coral); box-shadow:0 16px 48px rgba(240,162,150,.15); }
.pq-item:hover .pq-item__num { color:rgba(240,162,150,.2); }

.pq-item__num {
  position:absolute;
  top:1rem; right:1.5rem;
  font-family:var(--serif);
  font-size:5rem;
  font-weight:700;
  color:var(--ink-15);
  line-height:1;
  transition:color var(--mid) var(--ease);
}
.pq-item h3 {
  font-family:var(--serif);
  font-size:1.3rem;
  font-weight:500;
  color:var(--ink);
  margin-bottom:.75rem;
  line-height:1.3;
  position:relative;
}
.pq-item p { font-size:.92rem; color:var(--ink-50); line-height:1.75; position:relative; }

/* ── PROCESSO ────────────────────────────────────────────────── */
.processo {
  background:var(--cream);
  padding-block:clamp(5rem,10vw,9rem);
}

.processo__intro {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  margin-bottom:4rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem;
  align-items:end;
}
.processo__intro h2 {
  font-family:var(--serif);
  font-size:clamp(2rem,3.5vw,3rem);
  font-weight:400;
  color:var(--ink);
  line-height:1.2;
  letter-spacing:-.01em;
}

.processo__steps {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  margin-bottom:4rem;
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  overflow:hidden;
}

.proc-step {
  padding:2.5rem 2rem;
  background:var(--white);
  border-right:1px solid var(--line);
  position:relative;
  transition:background var(--fast) var(--ease);
}
.proc-step:hover { background:var(--coral-lt); }
.proc-step--last { border-right:none; }

.proc-step__line {
  position:absolute;
  top:2.5rem;
  right:-12px;
  width:24px;
  height:1px;
  background:var(--coral);
  z-index:1;
}
.proc-step--last .proc-step__line { display:none; }

.proc-step__n {
  display:block;
  font-family:var(--serif);
  font-size:2.5rem;
  font-weight:400;
  color:var(--coral);
  line-height:1;
  margin-bottom:1.25rem;
}
.proc-step h3 {
  font-family:var(--serif);
  font-size:1rem;
  font-weight:500;
  color:var(--ink);
  margin-bottom:.6rem;
  line-height:1.3;
}
.proc-step p { font-size:.84rem; color:var(--ink-50); line-height:1.7; }

.processo__cta {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
}

/* ── DEPOIMENTOS ─────────────────────────────────────────────── */
.depoimentos {
  background:var(--warm);
  padding-block:clamp(5rem,10vw,9rem);
}

.depoimentos__head {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  margin-bottom:4rem;
}
.depoimentos__head h2 {
  font-family:var(--serif);
  font-size:clamp(2rem,3.5vw,3rem);
  font-weight:400;
  color:var(--ink);
  line-height:1.2;
  letter-spacing:-.01em;
}
.depoimentos__head h2 em { font-style:italic; color:var(--coral-dk); }

.dep__grid {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.25rem;
  margin-bottom:1.5rem;
}

.dep-card {
  background:var(--white);
  border-radius:var(--r-lg);
  padding:2.25rem;
  border:1px solid var(--line);
  display:flex;
  flex-direction:column;
  gap:1.25rem;
  transition:all var(--mid) var(--ease);
}
.dep-card:hover { box-shadow:0 16px 48px rgba(0,0,0,.08); transform:translateY(-3px); }

.dep-card__stars { font-size:1rem; color:var(--coral); letter-spacing:.1em; }

.dep-card blockquote {
  font-family:var(--serif);
  font-size:1rem;
  font-weight:400;
  font-style:italic;
  color:var(--ink);
  line-height:1.8;
  flex:1;
}

.dep-card figcaption {
  display:flex;
  align-items:center;
  gap:.85rem;
  padding-top:1.25rem;
  border-top:1px solid var(--line);
}
.dep-card__av {
  width:40px; height:40px;
  border-radius:50%;
  background:var(--coral-lt);
  color:var(--coral-dk);
  font-family:var(--serif);
  font-size:1rem;
  font-weight:500;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.dep-card cite { display:block; font-style:normal; font-size:.88rem; font-weight:500; color:var(--ink); margin-bottom:.15rem; }
.dep-card span { font-size:.75rem; color:var(--ink-50); letter-spacing:.04em; }

.dep-disc {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  font-size:.75rem;
  color:var(--ink-50);
  font-style:italic;
}

/* ── FAQ ─────────────────────────────────────────────────────── */
.faq {
  background:var(--white);
  padding-block:clamp(5rem,10vw,9rem);
}

.faq__intro {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  margin-bottom:3.5rem;
}
.faq__intro h2 {
  font-family:var(--serif);
  font-size:clamp(2rem,3.5vw,3rem);
  font-weight:400;
  color:var(--ink);
  line-height:1.2;
  letter-spacing:-.01em;
}

.faq__list {
  max-width:780px;
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  display:flex;
  flex-direction:column;
}

.faq-item {
  border-bottom:1px solid var(--line);
}
.faq-item:first-child { border-top:1px solid var(--line); }

.faq-item summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.5rem 0;
  cursor:pointer;
  font-size:.97rem;
  font-weight:500;
  color:var(--ink);
  list-style:none;
  user-select:none;
  transition:color var(--fast);
}
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary:hover { color:var(--coral-dk); }
.faq-item summary svg {
  width:18px; height:18px;
  flex-shrink:0;
  color:var(--coral);
  transition:transform var(--fast) var(--ease);
}
.faq-item[open] summary svg { transform:rotate(180deg); }
.faq-item[open] summary { color:var(--coral-dk); }

.faq-item__ans {
  padding-bottom:1.5rem;
  font-size:.93rem;
  color:var(--ink-50);
  line-height:1.8;
}
.faq-item__ans a { color:var(--coral-dk); text-decoration:underline; }

/* ── CTA FINAL ───────────────────────────────────────────────── */
.cta-final {
  background:var(--ink);
  padding-block:clamp(6rem,12vw,11rem);
  position:relative;
  overflow:hidden;
  text-align:center;
}
.cta-final::before {
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse 60% 80% at 80% 20%, rgba(240,162,150,.08) 0%, transparent 60%),
    radial-gradient(ellipse 50% 70% at 20% 80%, rgba(240,162,150,.05) 0%, transparent 60%);
  pointer-events:none;
}

.cta-final__inner {
  position:relative;
  z-index:1;
  max-width:640px;
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
}
.cta-final__inner h2 {
  font-family:var(--serif);
  font-size:clamp(2.5rem,5vw,4rem);
  font-weight:400;
  color:var(--white);
  line-height:1.15;
  letter-spacing:-.02em;
  margin-bottom:1.25rem;
}
.cta-final__inner h2 em { font-style:italic; color:var(--coral); }
.cta-final__inner p {
  color:rgba(255,255,255,.55);
  font-size:1rem;
  line-height:1.8;
  margin-bottom:2.5rem;
}

/* ── CONTATO ─────────────────────────────────────────────────── */
.contato {
  background:var(--cream);
  padding-block:clamp(5rem,10vw,9rem);
}

.contato__wrap {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:clamp(3rem,7vw,7rem);
  align-items:start;
}

.contato__info h2 {
  font-family:var(--serif);
  font-size:clamp(2rem,3.5vw,2.8rem);
  font-weight:400;
  color:var(--ink);
  line-height:1.2;
  margin-bottom:.75rem;
  letter-spacing:-.01em;
}
.contato__sub { color:var(--ink-50); margin-bottom:2.5rem; font-size:.95rem; line-height:1.7; }

.contato__dados { display:flex; flex-direction:column; gap:1.25rem; margin-bottom:2rem; }
.contato__dados li { display:flex; align-items:flex-start; gap:.85rem; }
.contato__dados svg { width:18px; height:18px; color:var(--coral); flex-shrink:0; margin-top:2px; }
.contato__dados span,.contato__dados a { font-size:.9rem; color:var(--ink-50); line-height:1.65; }
.contato__dados a:hover { color:var(--coral-dk); }

.contato__map { border-radius:var(--r-md); overflow:hidden; border:1px solid var(--line); }
.contato__map-frame { display:block; border-radius:var(--r-md); overflow:hidden; cursor:pointer; }
.contato__map-link {
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  font-size:.78rem;
  font-weight:500;
  color:var(--coral-dk);
  margin-top:.6rem;
  transition:color var(--fast);
}
.contato__map-link svg { width:13px; height:13px; flex-shrink:0; }
.contato__map-link:hover { color:var(--ink); }

/* Form */
.contato__form-wrap {
  background:var(--white);
  border-radius:var(--r-xl);
  padding:clamp(2rem,5vw,3.5rem);
  border:1px solid var(--line);
  box-shadow:0 16px 48px rgba(0,0,0,.06);
}

.contato__form { display:flex; flex-direction:column; gap:1.25rem; }

.fg { display:flex; flex-direction:column; gap:.4rem; }
.fg label { font-size:.8rem; font-weight:500; color:var(--ink); letter-spacing:.03em; }

.fg input,.fg textarea {
  font-family:var(--sans);
  font-size:.92rem;
  color:var(--ink);
  background:var(--cream);
  border:1.5px solid var(--line);
  border-radius:var(--r-sm);
  padding:.85rem 1.1rem;
  width:100%;
  outline:none;
  transition:border-color var(--fast),box-shadow var(--fast);
}
.fg input::placeholder,.fg textarea::placeholder { color:rgba(28,28,28,.25); }
.fg input:focus,.fg textarea:focus {
  border-color:var(--coral);
  background:var(--white);
  box-shadow:0 0 0 3px rgba(240,162,150,.18);
}
.fg input.error,.fg textarea.error { border-color:#c0392b; box-shadow:0 0 0 3px rgba(192,57,43,.1); }
.fg textarea { min-height:120px; resize:vertical; }

.fe { font-size:.75rem; color:#c0392b; min-height:1em; }

.form-priv {
  display:flex;
  align-items:center;
  gap:.45rem;
  font-size:.73rem;
  color:var(--ink-50);
  justify-content:center;
}
.form-priv svg { width:13px; height:13px; flex-shrink:0; color:var(--coral); }

/* ── FOOTER ──────────────────────────────────────────────────── */
.footer { background:var(--ink); }

.footer__top {
  max-width:var(--w);
  margin-inline:auto;
  padding:clamp(3.5rem,6vw,5rem) clamp(1.25rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:2fr 1fr 1.5fr;
  gap:3rem;
}

.footer__name {
  display:block;
  font-family:var(--serif);
  font-size:1.5rem;
  font-weight:500;
  color:var(--white);
  margin-bottom:.2rem;
}
.footer__role {
  display:block;
  font-size:.62rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--coral);
  margin-bottom:1.25rem;
}
.footer__brand p { font-size:.88rem; color:rgba(255,255,255,.4); line-height:1.75; margin-bottom:.5rem; }
.footer__crp { font-size:.72rem; color:rgba(255,255,255,.25); letter-spacing:.05em; margin-bottom:1.5rem; }

.footer__social { display:flex; gap:.65rem; }
.footer__social a {
  width:36px; height:36px;
  border-radius:50%;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.5);
  transition:all var(--fast) var(--ease);
}
.footer__social a:hover { background:var(--coral); border-color:var(--coral); color:white; }
.footer__social svg { width:16px; height:16px; }

.footer__nav h4,.footer__end h4 {
  font-size:.67rem;
  font-weight:600;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:rgba(255,255,255,.3);
  margin-bottom:1.25rem;
}
.footer__nav ul { display:flex; flex-direction:column; gap:.65rem; }
.footer__nav a { font-size:.88rem; color:rgba(255,255,255,.45); transition:color var(--fast); }
.footer__nav a:hover { color:var(--white); }

.footer__end address { font-size:.85rem; color:rgba(255,255,255,.4); line-height:1.85; margin-bottom:1.5rem; }
.footer__addr-link { display:block; margin-bottom:1.5rem; }
.footer__addr-link:hover address { color:rgba(255,255,255,.65); }
.footer__addr-link address { margin-bottom:0; transition:color var(--fast) var(--ease); }
.contato__addr-link { color:inherit; font-style:normal; }
.contato__addr-link:hover { color:var(--coral-dk); }

.footer__wa svg { width:16px; height:16px; }

.footer__bottom {
  border-top:1px solid rgba(255,255,255,.07);
  padding:1.5rem clamp(1.25rem,4vw,2.5rem);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  flex-wrap:wrap;
  max-width:var(--w);
  margin-inline:auto;
}
.footer__bottom p { font-size:.73rem; color:rgba(255,255,255,.3); display:flex; align-items:center; gap:.4rem; }
.footer__bottom svg { width:12px; height:12px; flex-shrink:0; }
.footer__bottom a { color:rgba(255,255,255,.5); transition:color var(--fast); }
.footer__bottom a:hover { color:var(--white); }

/* ── WA FLOAT ────────────────────────────────────────────────── */
.wa-float {
  position:fixed;
  bottom:2rem; right:2rem;
  z-index:999;
  width:52px; height:52px;
  border-radius:50%;
  background:#25D366;
  color:var(--white);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 24px rgba(37,211,102,.45);
  transition:all var(--fast) var(--ease);
}
.wa-float svg { width:26px; height:26px; }
.wa-float:hover { background:#1da851; transform:scale(1.1); box-shadow:0 8px 32px rgba(37,211,102,.5); }

/* ── ANIMAÇÕES ───────────────────────────────────────────────── */
[data-ani] { opacity:0; transition:opacity var(--slow) var(--ease), transform var(--slow) var(--ease); }
[data-ani="up"]    { transform:translateY(30px); }
[data-ani="right"] { transform:translateX(-30px); }
[data-ani="left"]  { transform:translateX(30px); }
[data-ani="in"]    { transform:scale(.97); }
[data-ani].vis     { opacity:1; transform:none; }
[data-delay="80"]  { transition-delay:.08s; }
[data-delay="100"] { transition-delay:.1s; }
[data-delay="150"] { transition-delay:.15s; }
[data-delay="160"] { transition-delay:.16s; }
[data-delay="200"] { transition-delay:.2s; }
[data-delay="240"] { transition-delay:.24s; }
[data-delay="300"] { transition-delay:.3s; }

/* ── INSTAGRAM ───────────────────────────────────────────────── */
.instagram {
  background:var(--cream);
  padding-block:clamp(4rem,8vw,7rem);
  overflow:hidden;
}
.instagram__wrap {
  max-width:var(--w);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,2.5rem);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(3rem,6vw,6rem);
  align-items:center;
}
.instagram__left {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1.25rem;
}
.instagram__icon {
  width:56px;
  height:56px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--coral-dk);
}
.instagram__icon svg { width:28px; height:28px; }
.instagram h2 { font-size:clamp(1.6rem,3vw,2.4rem); }
.instagram h2 em { font-style:italic; color:var(--coral-dk); }
.instagram__sub { color:var(--ink-50); line-height:1.7; font-size:.95rem; }
.instagram__btn {
  margin-top:.25rem;
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  font-size:.95rem;
}
.instagram__btn .ig-svg { width:18px; height:18px; }

.instagram__grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.5rem;
}
.ig-post {
  display:block;
  position:relative;
  aspect-ratio:1/1;
  background:linear-gradient(135deg, var(--coral) 0%, #e8c4a8 50%, #c5a572 100%);
  border-radius:var(--r-sm);
  overflow:hidden;
  transition:transform var(--fast) var(--ease), opacity var(--fast) var(--ease);
}
.ig-post:nth-child(2) { background:linear-gradient(135deg, #c5a572 0%, var(--coral) 100%); }
.ig-post:nth-child(3) { background:linear-gradient(135deg, #e8c4a8 0%, #c5a572 60%, var(--coral-dk) 100%); }
.ig-post:nth-child(4) { background:linear-gradient(135deg, var(--coral-dk) 0%, var(--coral) 100%); }
.ig-post:nth-child(5) { background:linear-gradient(135deg, #c5a572 0%, #e8c4a8 100%); }
.ig-post:nth-child(6) { background:linear-gradient(135deg, var(--coral) 0%, #c5a572 100%); }
.ig-post img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.ig-post:hover { transform:scale(.97); opacity:.85; }
.ig-post__overlay {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,0);
  transition:background var(--fast) var(--ease);
}
.ig-post__overlay svg { width:28px; height:28px; fill:rgba(255,255,255,0); transition:fill var(--fast) var(--ease); }
.ig-post:hover .ig-post__overlay { background:rgba(0,0,0,.18); }
.ig-post:hover .ig-post__overlay svg { fill:rgba(255,255,255,.9); }

/* ── RESPONSIVO ──────────────────────────────────────────────── */
@media (max-width:1100px) {
  .diferenciais__grid { grid-template-columns:repeat(2,1fr); }
  .servicos__list { grid-template-columns:repeat(4,1fr); }
  .svc { grid-column:span 2; }
  .svc:nth-child(4), .svc:nth-child(5) { grid-column:span 2; }
  .footer__top { grid-template-columns:1fr 1fr; }
  .footer__brand { grid-column:1/-1; }
}

@media (max-width:900px) {
  .nav__list,.header__cta { display:none; }
  .hamburger { display:flex; }

  nav {
    position:fixed;
    inset:0;
    top:var(--hh);
    background:rgba(253,247,245,.97);
    backdrop-filter:blur(20px);
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:2rem;
    transform:translateX(100%);
    transition:transform var(--mid) var(--ease);
  }
  nav.open { transform:translateX(0); }
  .nav__list { display:flex; flex-direction:column; align-items:center; gap:1.75rem; }
  .nav__link { font-size:1.2rem; }
  .header__cta { display:inline-flex; }

  .hero { grid-template-columns:1fr; min-height:auto; }
  .hero__right { order:-1; height:75vw; min-height:380px; max-height:560px; }
  .hero__right::before { display:none; }
  .hero__left { padding:3rem 1.5rem 3rem; }
  .hero__title { max-width:100%; }

  .sobre__wrap { grid-template-columns:1fr; gap:3rem; }
  .sobre__img-frame { max-width:380px; margin-inline:auto; }

  .diferenciais__head { grid-template-columns:1fr; }
  .diferenciais__grid { grid-template-columns:1fr; }
  .dif-card:nth-child(3n+2) { border-inline:none; border-top:1px solid rgba(255,255,255,.06); }

  .servicos__list { grid-template-columns:repeat(2,1fr); }
  .svc { grid-column:span 1; }
  .svc:nth-child(4), .svc:nth-child(5) { grid-column:span 1; }

  .instagram__wrap { grid-template-columns:1fr; gap:2.5rem; }
  .instagram__grid { max-width:480px; margin-inline:auto; width:100%; }

  .para-quem__grid { grid-template-columns:1fr; }

  .contato__wrap { grid-template-columns:1fr; gap:3rem; }
  .footer__top { grid-template-columns:1fr; gap:2.5rem; }
  .footer__bottom { flex-direction:column; text-align:center; gap:.5rem; }
}

@media (max-width:600px) {
  .hero__title { font-size:2rem; }
  .hero__right { height:85vw; min-height:300px; max-height:480px; }
  .servicos__list { grid-template-columns:1fr; }
  .svc, .svc:nth-child(4), .svc:nth-child(5) { grid-column:span 1; }
  .contato__form-wrap { padding:1.75rem 1.25rem; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
  [data-ani] { opacity:1 !important; transform:none !important; }
}
