/* =========================================================
   Site institucional — [NOME DA MÉDICA]
   Paleta e tipografia centralizadas nas variáveis abaixo.
   Para trocar a identidade visual, mexa só neste bloco.
   ========================================================= */

:root{
  /* Cores */
  --deep:    #315D5B;
  --primary: #5A9F9D;
  --primary-d:#3E817F;
  --accent: #E79AAA;
  --sand:    #F8F3EF;
  --paper:   #FFFCFA;
  --ink:     #314746;
  --muted:   #647775;
  --line:    #E9D9D5;
  --white:   #FFFFFF;

  /* Tipografia */
  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  /* Métricas */
  --radius: 16px;
  --radius-sm: 10px;
  --shadow: 0 1px 2px rgba(15,51,47,.05), 0 12px 32px -12px rgba(15,51,47,.18);
  --shadow-lg: 0 24px 60px -20px rgba(15,51,47,.28);
  --header-h: 76px;
  --pad: clamp(1.25rem, 4vw, 2.5rem);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px); -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:17px; line-height:1.65;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img,svg,iframe{ max-width:100%; display:block; }
img{ height:auto; }
a{ color:var(--primary); text-decoration:none; }
a:hover{ color:var(--primary-d); }
button,input,select,textarea{ font:inherit; color:inherit; }
h1,h2,h3{ font-family:var(--serif); font-weight:500; line-height:1.15; letter-spacing:-.015em; color:var(--deep); margin:0 0 .5em; }
h1{ font-size:clamp(2.3rem, 5.2vw, 3.9rem); }
h2{ font-size:clamp(1.85rem, 3.6vw, 2.75rem); }
h3{ font-size:1.2rem; letter-spacing:-.01em; }
p{ margin:0 0 1.1em; }
ul,ol{ margin:0; padding:0; list-style:none; }
em{ font-style:italic; color:var(--primary); }

:where(a,button,summary,input,select,textarea):focus-visible{
  outline:3px solid var(--accent); outline-offset:3px; border-radius:6px;
}

.skip{
  position:absolute; left:-9999px; top:8px; z-index:999;
  background:var(--deep); color:#fff; padding:.7rem 1.1rem; border-radius:8px;
}
.skip:focus{ left:8px; color:#fff; }

/* ---------- Layout ---------- */
.wrap{ width:min(1180px, 100% - var(--pad)*2); margin-inline:auto; }
.wrap--narrow{ width:min(820px, 100% - var(--pad)*2); }
.section{ padding:clamp(4rem, 9vw, 7.5rem) 0; }
.section--tint{ background:var(--sand); }
.section--dark{ background:var(--deep); color:#DDE7E4; }
.section--dark h2,.section--dark h3{ color:var(--white); }
.section--dark .lead{ color:#B9CBC7; }

.section__head{ max-width:640px; margin:0 auto clamp(2.5rem,5vw,4rem); text-align:center; }
.eyebrow{
  font-size:.78rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--primary); margin:0 0 .8rem;
}
.eyebrow--light{ color:var(--accent); }
.lead{ font-size:clamp(1.05rem,1.6vw,1.2rem); color:var(--muted); }
.lead--center{ margin-inline:auto; }

/* ---------- Botões ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:.95rem 1.6rem; border-radius:999px; border:1.5px solid transparent;
  font-weight:600; font-size:.97rem; cursor:pointer; text-align:center;
  transition:transform .18s ease, background .18s ease, box-shadow .18s ease, color .18s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }
.btn--primary{ background:var(--primary); color:#fff; box-shadow:var(--shadow); }
.btn--primary:hover{ background:var(--primary-d); color:#fff; }
.btn--accent{ background:var(--accent); color:#22190A; }
.btn--accent:hover{ background:#D8B67C; color:#22190A; }
.btn--ghost{ border-color:var(--line); background:transparent; color:var(--deep); }
.btn--ghost:hover{ border-color:var(--primary); color:var(--primary); }
.btn--sm{ padding:.6rem 1.1rem; font-size:.88rem; }
.btn--block{ width:100%; }
.ico{ width:20px; height:20px; flex:none; }

.link-arrow{ font-weight:600; display:inline-flex; gap:.4rem; align-items:center; }
.link-arrow span{ transition:transform .18s ease; }
.link-arrow:hover span{ transform:translateX(4px); }

/* ---------- Header ---------- */
.header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,253,250,.82); backdrop-filter:blur(14px);
  border-bottom:1px solid transparent; transition:border-color .25s ease, box-shadow .25s ease;
}
.header.is-stuck{ border-bottom-color:var(--line); box-shadow:0 6px 24px -18px rgba(15,51,47,.5); }
.header__inner{ display:flex; align-items:center; justify-content:space-between; gap:1rem; height:var(--header-h); }

.brand{ display:flex; align-items:center; gap:.7rem; color:var(--deep); }
.brand__mark{ width:34px; height:34px; color:var(--primary); flex:none; }
.brand__mark svg{ width:100%; height:100%; }
.brand__mark--logo{ position:relative; overflow:hidden; border-radius:50%; background:var(--primary); }
.brand__mark--logo img{ position:absolute; width:194px; max-width:none; left:-65px; top:-50px; }
.brand__text{ display:flex; flex-direction:column; line-height:1.25; }
.brand__text strong{ font-family:var(--serif); font-size:1.05rem; font-weight:600; }
.brand__text small{ font-size:.72rem; color:var(--muted); letter-spacing:.02em; }

.nav{ display:flex; align-items:center; gap:1.6rem; }
.nav a{ color:var(--ink); font-size:.94rem; font-weight:500; position:relative; }
.nav a:not(.btn)::after{
  content:""; position:absolute; left:0; right:100%; bottom:-6px; height:2px;
  background:var(--primary); transition:right .22s ease;
}
.nav a:not(.btn):hover::after{ right:0; }
.nav a.btn{ color:#fff; }

.burger{ display:none; background:none; border:0; padding:.5rem; cursor:pointer; }
.burger span{ display:block; width:24px; height:2px; background:var(--deep); border-radius:2px; transition:.25s ease; }
.burger span+span{ margin-top:6px; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

/* ---------- Hero ---------- */
.hero{ padding:clamp(3rem,7vw,6rem) 0 clamp(3.5rem,7vw,6rem); position:relative; overflow:hidden; }
.hero--juliana{ background:linear-gradient(135deg,#fff 0%,#fffaf8 52%,#edf5f3 100%); }
.hero--juliana::before,.hero--juliana::after{ content:""; position:absolute; border:1px solid rgba(90,159,157,.25); border-radius:48% 52% 46% 54%; pointer-events:none; }
.hero--juliana::before{ width:28rem; height:15rem; left:-12rem; top:4rem; transform:rotate(-28deg); }
.hero--juliana::after{ width:24rem; height:12rem; right:-10rem; bottom:2rem; transform:rotate(36deg); }
.hero::before{
  content:""; position:absolute; inset:auto auto 0 50%;
  width:120vw; height:60%; transform:translateX(-50%);
  background:radial-gradient(60% 100% at 50% 100%, rgba(23,97,90,.07), transparent 70%);
  pointer-events:none;
}
.hero__grid{
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4.5rem); align-items:center;
  position:relative;
}
.hero h1{ margin-bottom:.4em; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.9rem; margin:2rem 0 2.5rem; }

.hero__badges{ display:flex; flex-wrap:wrap; gap:2rem 2.5rem; padding-top:1.75rem; border-top:1px solid var(--line); }
.hero__badges li{ display:flex; flex-direction:column; }
.hero__badges strong{ font-family:var(--serif); font-size:1.35rem; color:var(--deep); line-height:1.15; }
.hero__badges span{ font-size:.85rem; color:var(--muted); }

.hero__photo{ margin:0; position:relative; }
.hero__photo img{
  width:100%; aspect-ratio:4/5; object-fit:cover;
  border-radius:200px 200px var(--radius) var(--radius);
  box-shadow:var(--shadow-lg); background:var(--sand);
}
.hero__photo figcaption{
  position:absolute; left:50%; bottom:1.5rem; transform:translateX(-50%);
  display:flex; align-items:center; gap:.55rem; white-space:nowrap;
  background:rgba(255,253,250,.94); backdrop-filter:blur(8px);
  padding:.6rem 1.1rem; border-radius:999px; font-size:.85rem; font-weight:500;
  box-shadow:var(--shadow); color:var(--deep);
}
.dot{ width:9px; height:9px; border-radius:50%; background:#35C07A; box-shadow:0 0 0 4px rgba(53,192,122,.2); }

/* ---------- Faixa de credenciais ---------- */
.strip{ background:var(--deep); color:#CFDEDB; padding:1.75rem 0; }
.strip__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
.strip__grid > div{ display:flex; flex-direction:column; gap:.15rem; }
.strip__k{ font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; color:var(--accent); }
.strip__v{ font-size:.95rem; color:#fff; font-weight:500; }

/* ---------- Sobre ---------- */
.sobre__grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.sobre__photo{ margin:0; }
.sobre__photo img{
  width:100%; aspect-ratio:4/5; object-fit:cover;
  border-radius:var(--radius); box-shadow:var(--shadow-lg); background:var(--sand);
}

.checklist{ display:grid; gap:.75rem; margin:1.75rem 0; }
.checklist li{ position:relative; padding-left:2rem; color:var(--ink); }
.checklist li::before{
  content:""; position:absolute; left:0; top:.35em; width:1.25rem; height:1.25rem;
  border-radius:50%; background:rgba(23,97,90,.1);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317615A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  background-size:.75rem; background-repeat:no-repeat; background-position:center;
}
.checklist--tight li{ font-size:.94rem; }

/* ---------- Cards ---------- */
.cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.25rem; }
.card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.9rem 1.6rem; transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:transparent; }
.card__ico{
  display:grid; place-items:center; width:46px; height:46px; margin-bottom:1.1rem;
  border-radius:12px; background:rgba(23,97,90,.09); color:var(--primary);
}
.card__ico svg{ width:24px; height:24px; }
.card p{ margin:0; color:var(--muted); font-size:.95rem; }

/* ---------- Passo a passo ---------- */
.steps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:1.5rem; counter-reset:s; }
.step{ position:relative; padding-top:1.5rem; border-top:2px solid var(--line); transition:border-color .22s ease; }
.step:hover{ border-top-color:var(--primary); }
.step__n{ font-family:var(--serif); font-size:.95rem; color:var(--accent); font-weight:600; letter-spacing:.08em; }
.step h3{ margin:.35rem 0 .5rem; }
.step p{ margin:0; color:var(--muted); font-size:.95rem; }

.cta-band{
  margin-top:clamp(3rem,6vw,4.5rem); padding:clamp(1.75rem,4vw,2.75rem);
  background:var(--sand); border-radius:var(--radius);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.5rem;
}
.section--tint .cta-band{ background:var(--white); }
.cta-band h3{ margin:0 0 .3rem; font-size:1.4rem; }
.cta-band p{ margin:0; color:var(--muted); }

/* ---------- Painéis ---------- */
.duo{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1.25rem; }
.panel{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  padding:clamp(1.6rem,3vw,2.2rem);
}
.panel p{ color:var(--muted); font-size:.96rem; }
.section--soft{ background:#fbf7f4; }
.credentials{ display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.credentials article{ padding:clamp(1.4rem,3vw,2rem); background:var(--white); border:1px solid var(--line); border-radius:var(--radius-sm); box-shadow:var(--shadow); }
.credentials h3{ margin:0 0 .9rem; color:var(--deep); font-family:var(--serif); font-size:1.4rem; }
.credentials p{ color:var(--muted); margin:.65rem 0; }
.credentials ul{ display:grid; gap:.7rem; margin:0; padding:0; list-style:none; }
.credentials li{ position:relative; padding-left:1.25rem; color:var(--muted); }
.credentials li::before{ content:""; position:absolute; left:0; top:.55rem; width:.48rem; height:.48rem; border-radius:50%; background:var(--accent); }
.note{
  margin:2rem 0 0; padding:1.1rem 1.4rem; border-left:3px solid var(--accent);
  background:var(--white); border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  font-size:.94rem; color:var(--muted);
}
.note strong{ color:var(--deep); }

/* ---------- Instagram ---------- */
.instagram-section{ background:linear-gradient(115deg,#fff8f5 0%,#f7f0ed 50%,#eef6f4 100%); }
.instagram-section__grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(2rem,6vw,6rem); align-items:center; }
.instagram-card{ display:grid; gap:.9rem; min-height:270px; padding:clamp(2rem,5vw,3.2rem); border-radius:var(--radius); color:var(--deep); background:var(--white); box-shadow:var(--shadow-lg); border:1px solid rgba(231,154,170,.32); transition:transform .22s ease, box-shadow .22s ease; }
.instagram-card:hover{ transform:translateY(-5px); color:var(--deep); box-shadow:0 28px 60px -20px rgba(49,93,91,.28); }
.instagram-card__icon{ display:grid; place-items:center; width:50px; height:50px; border-radius:15px; color:#fff; background:linear-gradient(135deg,#E79AAA,#BA6EA4); }
.instagram-card__icon svg{ width:27px; height:27px; }
.instagram-card__handle{ font-family:var(--serif); font-size:1.55rem; font-weight:500; }
.instagram-card__copy{ color:var(--muted); max-width:250px; }
.instagram-card__link{ margin-top:auto; font-weight:600; color:var(--primary-d); }
.instagram-gallery{ grid-column:1 / -1; display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:.5rem; }
.instagram-gallery img{ width:100%; aspect-ratio:1; object-fit:cover; border-radius:var(--radius-sm); box-shadow:var(--shadow); transition:transform .2s ease; }
.instagram-gallery img:hover{ transform:translateY(-4px); }

/* ---------- FAQ ---------- */
.faq{ display:grid; gap:.75rem; }
.faq__item{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-sm); overflow:hidden; }
.faq__item summary{
  cursor:pointer; list-style:none; padding:1.15rem 3.25rem 1.15rem 1.4rem;
  font-weight:600; color:var(--deep); position:relative;
}
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary::after{
  content:""; position:absolute; right:1.4rem; top:50%; width:12px; height:12px;
  margin-top:-6px; border-right:2px solid var(--primary); border-bottom:2px solid var(--primary);
  transform:rotate(45deg); transition:transform .22s ease; transform-origin:60% 60%;
}
.faq__item[open] summary::after{ transform:rotate(-135deg); }
.faq__item[open]{ border-color:var(--primary); }
.faq__body{ padding:0 1.4rem 1.25rem; color:var(--muted); font-size:.96rem; }
.faq__body p{ margin:0; }

/* ---------- Contato ---------- */
.contato__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
.form{ display:grid; gap:1rem; margin-top:1.75rem; }
.field{ display:grid; gap:.4rem; }
.field label{ font-size:.86rem; font-weight:600; color:#CFDEDB; }
.opt{ font-weight:400; color:#8FA5A0; }
.field input,.field select,.field textarea{
  width:100%; padding:.85rem 1rem; border-radius:var(--radius-sm);
  border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.06);
  color:#fff; font-size:.95rem; transition:border-color .18s ease, background .18s ease;
}
.field textarea{ resize:vertical; }
.field input::placeholder,.field textarea::placeholder{ color:#8FA5A0; }
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--accent); background:rgba(255,255,255,.1);
}
.field select option{ color:var(--ink); background:#fff; }
.field.is-invalid input{ border-color:#E8836F; }
.form__note{ font-size:.8rem; color:#8FA5A0; margin:0; text-align:center; }

.contatos{ display:grid; gap:1rem; padding-bottom:1.75rem; border-bottom:1px solid rgba(255,255,255,.14); }
.contatos li{ display:grid; gap:.15rem; }
.contatos__k{ font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; color:var(--accent); }
.contatos a,.contatos span:not(.contatos__k){ color:#fff; font-weight:500; }
.contatos a:hover{ color:var(--accent); }

.mapa{ margin-top:1.75rem; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-lg); }
.mapa iframe{ width:100%; height:300px; border:0; filter:grayscale(.25); }
.mapa--placeholder{ min-height:180px; display:grid; place-items:center; padding:2rem; text-align:center; background:linear-gradient(135deg,rgba(90,159,157,.18),rgba(231,154,170,.16)); color:#fff; }
.mapa--link{ transition:transform .2s ease, box-shadow .2s ease; }
.mapa--link:hover{ transform:translateY(-3px); color:#fff; box-shadow:0 24px 48px -20px rgba(0,0,0,.55); }
.mapa--link p{ margin:0; line-height:1.7; }
.mapa--link span{ color:var(--accent); font-weight:600; }

/* ---------- Rodapé ---------- */
.footer{ background:#0A2521; color:#96AAA6; padding:3rem 0 2.25rem; font-size:.88rem; }
.footer__grid{ display:grid; gap:1.25rem; text-align:center; }
.footer__name{ font-family:var(--serif); font-size:1.25rem; color:#fff; margin:0; }
.footer__crm{ margin:.2rem 0 0; }
.footer__nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:1.25rem; }
.footer__nav a{ color:#C4D3D0; }
.footer__nav a:hover{ color:var(--accent); }
.footer__legal{ max-width:620px; margin-inline:auto; font-size:.8rem; line-height:1.6; opacity:.8; }
.footer__copy{ margin:0; font-size:.8rem; opacity:.65; }

/* ---------- WhatsApp flutuante ---------- */
.whats-float{
  position:fixed; right:1.15rem; bottom:1.15rem; z-index:90;
  display:inline-flex; align-items:center; gap:.55rem;
  background:#25D366; color:#06331A; font-weight:600; font-size:.92rem;
  padding:.85rem 1.25rem; border-radius:999px;
  box-shadow:0 12px 30px -8px rgba(37,211,102,.6);
  transition:transform .2s ease, box-shadow .2s ease;
}
.whats-float:hover{ transform:translateY(-3px); color:#06331A; }
.whats-float svg{ width:22px; height:22px; }

/* ---------- Animação de entrada ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible{ opacity:1; transform:none; }

/* ---------- Responsivo ---------- */
@media (max-width:960px){
  .hero__grid{ display:flex; flex-direction:column; gap:0; }
  .hero__text{ display:contents; }
  .hero__photo{ order:2; max-width:440px; margin-inline:auto; margin-bottom:2.5rem; }
  .hero__badges{ order:3; }
  .sobre__grid,.contato__grid,.instagram-section__grid,.credentials{ grid-template-columns:1fr; }
  .sobre__photo{ max-width:460px; margin-inline:auto; }
  .strip__grid{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:820px){
  .burger{ display:block; }
  .nav{
    position:fixed; inset:var(--header-h) 0 auto; flex-direction:column; align-items:stretch;
    gap:0; background:var(--paper); border-bottom:1px solid var(--line);
    padding:.5rem var(--pad) 1.5rem; box-shadow:var(--shadow);
    transform:translateY(-120%); transition:transform .3s ease; visibility:hidden;
  }
  .nav.is-open{ transform:none; visibility:visible; }
  .nav a{ padding:.95rem 0; border-bottom:1px solid var(--line); font-size:1.05rem; }
  .nav a:not(.btn)::after{ display:none; }
  .nav__cta{ margin-top:1.1rem; border-bottom:0; }
  .cta-band{ flex-direction:column; align-items:flex-start; }
  .cta-band .btn{ width:100%; }
  .whats-float span{ display:none; }
  .whats-float{ padding:.95rem; }
}

@media (max-width:560px){
  body{ font-size:16px; }
  .strip__grid{ grid-template-columns:1fr; gap:1rem; }
  .hero__badges{ gap:1.25rem 2rem; }
  .hero__cta .btn{ width:100%; }
  .hero__photo img{ border-radius:140px 140px var(--radius) var(--radius); }
  .instagram-gallery{ grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .reveal{ opacity:1; transform:none; }
}

/* ---------- Impressão ---------- */
@media print{
  .header,.whats-float,.mapa,.form,.hero__cta,.cta-band{ display:none !important; }
  body{ background:#fff; color:#000; }
  .section--dark,.strip,.footer{ background:#fff !important; color:#000 !important; }
}
