/* =========================================================
   PEQUENO AMORE — PEDIATRIA  |  Design System
   Dra. Maracheila Drumond — Pediatria & Neonatologia
   Paleta e tipografia conforme Manual da Marca v1.0
   ========================================================= */

/* ---------- Tokens ---------- */
:root{
  /* Cores da marca (pastéis oficiais) */
  --azul:      #A7D3D8;   /* tranquilidade e confiança */
  --rosa:      #F7BFC7;   /* carinho e acolhimento */
  --lilas:     #C8A6D9;   /* sensibilidade e cuidado */
  --mist:      #EAF1F6;   /* leveza e limpeza */
  --creme:     #FDEEEB;   /* aconchego e delicadeza */

  /* Tons profundos (contraste / texto / hover) */
  --azul-700:  #4f9aa3;
  --azul-800:  #3d818a;
  --rosa-700:  #e07f93;
  --rosa-800:  #c9647a;
  --lilas-700: #a074c4;
  --lilas-800: #8a5cb0;

  /* Neutros */
  --tinta:     #4c4c66;   /* corpo de texto */
  --tinta-sua: #6c6c86;   /* texto suave */
  --branco:    #ffffff;
  --nevoa:     #f7fafc;
  --linha:     #eceef4;

  /* Superfícies */
  --bg:        #fdfcff;
  --bg-suave:  #f6f4fb;

  /* Gradientes */
  --grad-cta:   linear-gradient(135deg, var(--lilas) 0%, #b98fd0 55%, var(--rosa) 130%);
  --grad-cta-h: linear-gradient(135deg, #b98fd0 0%, var(--lilas-700) 60%, var(--rosa-700) 130%);
  --grad-soft:  linear-gradient(160deg, var(--creme) 0%, var(--mist) 100%);
  --grad-hero:  radial-gradient(1200px 600px at 12% -5%, var(--creme) 0%, transparent 55%),
                radial-gradient(1000px 700px at 105% 20%, #eef4f5 0%, transparent 60%);

  /* Tipografia */
  --f-titulo: 'Fredoka', 'Baloo 2', 'Segoe UI', sans-serif;
  --f-corpo:  'Nunito', 'Segoe UI', system-ui, sans-serif;

  /* Raio / sombra / espaço */
  --r-sm: 12px;  --r-md: 20px;  --r-lg: 28px;  --r-xl: 40px;  --r-pill: 999px;
  --sombra-sm: 0 4px 14px rgba(120,110,150,.10);
  --sombra-md: 0 14px 40px rgba(120,110,150,.14);
  --sombra-lg: 0 30px 70px rgba(120,110,150,.20);
  --sombra-cta: 0 12px 26px rgba(169,124,201,.38);
  --container: 1200px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:clip; }
body{
  margin:0; font-family:var(--f-corpo); color:var(--tinta);
  background:var(--bg); line-height:1.7; font-size:17px;
  overflow-x:clip; -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ font-family:var(--f-titulo); font-weight:600; line-height:1.12; color:var(--azul-800); margin:0 0 .4em; }
h1{ font-size:clamp(2.3rem,5.2vw,4rem); letter-spacing:-.5px; }
h2{ font-size:clamp(1.9rem,3.8vw,2.9rem); }
h3{ font-size:clamp(1.25rem,2vw,1.6rem); }
p{ margin:0 0 1rem; }
::selection{ background:var(--rosa); color:#fff; }

/* ---------- Utilitários ---------- */
.container{ width:min(92%,var(--container)); margin-inline:auto; }
.container-sm{ width:min(92%,860px); margin-inline:auto; }
.section{ padding:clamp(3.5rem,7vw,6.5rem) 0; position:relative; }
.section--tint{ background:var(--grad-soft); }
.section--mist{ background:var(--mist); }
.text-center{ text-align:center; }
.mt-0{ margin-top:0; } .mb-0{ margin-bottom:0; }
.rosa{ color:var(--rosa-700); } .lilasc{ color:var(--lilas-700); } .azulc{ color:var(--azul-700); }
.grid{ display:grid; gap:clamp(1.2rem,2.5vw,2rem); }

/* Eyebrow / rótulo com coração */
.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--f-titulo); font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; font-size:.8rem; color:var(--lilas-700);
  margin-bottom:.9rem;
}
.eyebrow::before{ content:""; width:16px; height:14px;
  background:no-repeat center/contain
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f7bfc7'%3E%3Cpath d='M12 21s-8-4.6-8-10.3A4.7 4.7 0 0 1 12 7a4.7 4.7 0 0 1 8 3.7C20 16.4 12 21 12 21z'/%3E%3C/svg%3E"); }

.section-head{ max-width:660px; margin:0 auto clamp(2rem,4vw,3.2rem); text-align:center; }
.section-head p{ color:var(--tinta-sua); font-size:1.06rem; }

/* Divisor com coração */
.divisor{ display:flex; align-items:center; justify-content:center; gap:.8rem; margin:.4rem auto 0; color:var(--rosa); }
.divisor::before,.divisor::after{ content:""; height:2px; width:70px;
  background:linear-gradient(90deg,transparent,var(--azul)); border-radius:2px; }
.divisor::after{ background:linear-gradient(90deg,var(--azul),transparent); }

/* ---------- Botões ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6rem; justify-content:center;
  font-family:var(--f-titulo); font-weight:600; font-size:1.02rem;
  padding:.85rem 1.7rem; border-radius:var(--r-pill);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .3s;
  will-change:transform;
}
.btn svg{ width:1.15em; height:1.15em; }
.btn--cta{ background:var(--grad-cta); color:#fff; box-shadow:var(--sombra-cta); }
.btn--cta:hover{ background:var(--grad-cta-h); transform:translateY(-3px); box-shadow:0 18px 34px rgba(169,124,201,.46); }
.btn--rosa{ background:var(--rosa); color:#fff; box-shadow:0 10px 22px rgba(224,127,147,.32); }
.btn--rosa:hover{ background:var(--rosa-700); transform:translateY(-3px); }
.btn--ghost{ background:#fff; color:var(--lilas-800); box-shadow:var(--sombra-sm); }
.btn--ghost:hover{ transform:translateY(-3px); box-shadow:var(--sombra-md); }
.btn--outline{ border:2px solid var(--azul); color:var(--azul-800); background:transparent; }
.btn--outline:hover{ background:var(--azul); color:#fff; transform:translateY(-3px); }
.btn--lg{ padding:1.05rem 2.2rem; font-size:1.1rem; }
.btn--block{ width:100%; }
.link-arrow{ font-family:var(--f-titulo); font-weight:600; color:var(--lilas-700);
  display:inline-flex; gap:.45rem; align-items:center; transition:gap .25s; }
.link-arrow:hover{ gap:.85rem; color:var(--lilas-800); }

/* ---------- Blobs decorativos ---------- */
.blob{ position:absolute; z-index:0; filter:blur(2px); opacity:.6; pointer-events:none; }
.blob-1{ width:340px;height:340px;left:-120px;top:-80px;
  background:radial-gradient(circle at 40% 40%,var(--creme),transparent 70%); }
.blob-2{ width:420px;height:420px;right:-160px;top:20%;
  background:radial-gradient(circle at 50% 50%,var(--mist),transparent 70%); }
.blob-3{ width:300px;height:300px;left:-100px;bottom:-60px;
  background:radial-gradient(circle at 50% 50%,#f2e7f6,transparent 70%); }
.floaty{ animation:floaty 7s ease-in-out infinite; }
@keyframes floaty{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-16px);} }

/* =========================================================
   HEADER / NAV
   ========================================================= */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.82); backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(200,166,217,.18);
  transition:box-shadow .3s, background .3s;
}
.site-header.scrolled{ box-shadow:0 8px 30px rgba(120,110,150,.10); background:rgba(255,255,255,.94); }
.site-header .container.nav{ width:min(96%,1340px); max-width:none; }
.nav{ display:flex; align-items:center; gap:.7rem; padding:.7rem 0; }
.nav__logo{ flex:0 0 auto; }
.nav__logo img{ height:52px; width:auto; flex:0 0 auto; transition:transform .3s; }
.nav__logo:hover img{ transform:scale(1.04) rotate(-1deg); }
.nav__menu{ display:flex; align-items:center; gap:.15rem; margin-left:auto; }
.nav__link{
  font-family:var(--f-titulo); font-weight:500; font-size:.9rem; color:var(--tinta);
  padding:.4rem .5rem; border-radius:var(--r-pill); position:relative; transition:color .25s, background .25s;
}
.nav__link:hover{ color:var(--lilas-800); background:rgba(200,166,217,.12); }
.nav__link.is-active{ color:var(--lilas-800); }
.nav__link.is-active::after{ content:""; position:absolute; left:.85rem; right:.85rem; bottom:.15rem; height:3px;
  background:var(--rosa); border-radius:3px; }
.nav__actions{ display:flex; align-items:center; gap:.55rem; }
.nav__actions .btn{ white-space:nowrap; }   /* CTA não quebra em 2 linhas (EN/ES mais longos) */
#langSwitch button{ white-space:nowrap; }
/* Foto do paciente (Área do Cliente + prontuário) */
.patient-photo{ width:56px; height:56px; border-radius:50%; background:var(--grad-cta); background-size:cover; background-position:center;
  display:grid; place-items:center; color:#fff; font-family:var(--f-titulo); font-weight:700; font-size:1.25rem; flex:none;
  box-shadow:0 4px 14px rgba(120,110,150,.25); overflow:hidden; }
.patient-photo.has-photo{ color:transparent; }
.patient-photo.has-photo span{ display:none; }
/* Álbum de fotos */
.album-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:.8rem; }
.album-item{ margin:0; border-radius:14px; overflow:hidden; border:1px solid var(--linha); background:#fff; box-shadow:var(--sombra-sm,0 6px 18px rgba(20,20,50,.05)); }
.album-item img{ width:100%; aspect-ratio:1/1; object-fit:cover; display:block; }
.album-item figcaption{ display:flex; align-items:center; justify-content:space-between; padding:.4rem .55rem; gap:.3rem; }
.album-badge{ font-size:.7rem; color:var(--tinta-sua); }
.album-actions button{ border:0; background:transparent; cursor:pointer; font-size:1rem; padding:.1rem .25rem; line-height:1; }
.album-actions button:hover{ transform:scale(1.15); }
.nav__cliente{ font-family:var(--f-titulo); font-weight:500; color:var(--azul-800); white-space:nowrap;
  display:inline-flex; align-items:center; gap:.35rem; padding:.45rem .55rem; border-radius:var(--r-pill); transition:background .25s;}
.nav__cliente:hover{ background:var(--mist); }
.nav__cliente svg{ width:1.25em; height:1.25em; flex:none; }
.nav__toggle{ display:none; width:46px;height:46px; border-radius:14px; background:var(--mist);
  align-items:center; justify-content:center; }
.nav__toggle span,.nav__toggle span::before,.nav__toggle span::after{
  content:""; display:block; width:22px; height:2.5px; background:var(--lilas-800); border-radius:2px; transition:.3s; position:relative; }
.nav__toggle span::before{ position:absolute; top:-7px; } .nav__toggle span::after{ position:absolute; top:7px; }
body.menu-open .nav__toggle span{ background:transparent; }
body.menu-open .nav__toggle span::before{ top:0; transform:rotate(45deg); }
body.menu-open .nav__toggle span::after{ top:0; transform:rotate(-45deg); }

@media(max-width:1100px){
  /* menu vira drawer fixo (sai do fluxo): o margin-left:auto dele nao empurra mais nada,
     entao o proprio botao ganha o auto para ir para a direita, longe do logo */
  .nav__toggle{ display:flex; margin-left:auto; }
  /* remove backdrop-filter no mobile: senão o header vira containing block
     e prende o menu position:fixed dentro da própria faixa do header */
  .site-header{ backdrop-filter:none; -webkit-backdrop-filter:none; background:rgba(255,255,255,.97); }
  .nav__menu{
    position:fixed; inset:0 0 0 auto; width:min(84%,360px);
    flex-direction:column; align-items:stretch; gap:.2rem;
    background:#fff; padding:6rem 1.6rem 2rem; box-shadow:var(--sombra-lg);
    transform:translateX(100%); transition:transform .4s var(--ease); z-index:99;
  }
  body.menu-open .nav__menu{ transform:translateX(0); }
  .nav__link{ font-size:1.15rem; padding:.85rem 1rem; }
  .nav__link.is-active::after{ display:none; }
  .nav__actions .nav__cliente{ order:-1; }
  .nav__menu .nav__actions{ flex-direction:column; align-items:stretch; margin-top:1rem; gap:.7rem; }
  .nav__menu .btn{ width:100%; }
  .nav-overlay{ position:fixed; inset:0; background:rgba(60,50,80,.35); opacity:0; visibility:hidden; transition:.3s; z-index:98; }
  body.menu-open .nav-overlay{ opacity:1; visibility:visible; }
}

/* =========================================================
   HERO
   ========================================================= */
.hero{ position:relative; background:var(--grad-hero); overflow:hidden; }
.hero__grid{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1.1fr); gap:clamp(1.5rem,4vw,3.5rem);
  align-items:center; padding:clamp(2.5rem,6vw,5rem) 0 clamp(3rem,6vw,5.5rem); }
.hero__content,.hero__media{ min-width:0; }
.hero__title{ margin-bottom:1.1rem; }
.hero__title .t-azul{ color:var(--azul-700); }
.hero__title .t-rosa{ color:var(--rosa-700); }
.hero__lead{ font-size:1.18rem; color:var(--tinta-sua); max-width:34ch; margin-bottom:1.8rem; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.9rem; align-items:center; }
.hero__media{ position:relative; }
.hero__photo{ border-radius:36px 36px 36px 90px; box-shadow:var(--sombra-lg);
  object-fit:cover; object-position:50% 8%; width:100%; aspect-ratio:1/1; border:6px solid #fff; }
.hero__tags{ position:absolute; left:5%; right:5%; bottom:-30px;
  background:rgba(255,255,255,.96); backdrop-filter:blur(6px);
  border-radius:22px; box-shadow:var(--sombra-md); padding:1.1rem 1.3rem;
  display:grid; grid-template-columns:1fr 1fr; gap:.6rem 1.4rem; }
.hero__tag{ display:flex; gap:.7rem; align-items:flex-start; min-width:0; }
.hero__tag > div{ min-width:0; }
.hero__tag .ico{ flex:none; width:42px;height:42px; border-radius:50%; display:grid; place-items:center; }
.hero__tag h4{ margin:0; font-size:1.02rem; }
.hero__tag p{ margin:0; font-size:.82rem; color:var(--tinta-sua); line-height:1.4; overflow-wrap:anywhere; }
.hero__badge{ position:absolute; top:14px; right:-6px; background:#fff; border-radius:var(--r-pill);
  box-shadow:var(--sombra-md); padding:.5rem .95rem; display:flex; align-items:center; gap:.5rem;
  font-family:var(--f-titulo); font-weight:600; color:var(--azul-800); font-size:.9rem; }
.hero__badge b{ color:var(--rosa-700); }
@media(max-width:900px){
  .hero__grid{ grid-template-columns:1fr; text-align:center; }
  .hero__lead{ margin-inline:auto; }
  .hero__cta{ justify-content:center; }
  .hero__media{ max-width:520px; margin:1.5rem auto 2.5rem; }
  .hero__tags{ position:static; left:auto; right:auto; margin-top:1.4rem; }
  .hero__grid{ grid-template-columns:minmax(0,1fr); }
}
@media(max-width:560px){
  .hero__title{ font-size:2.05rem; letter-spacing:-.3px; }
  .hero__lead{ font-size:1.06rem; }
  .hero__cta{ flex-direction:column; align-items:stretch; }
  .hero__cta .btn{ width:100%; }
  .hero__cta .link-arrow{ justify-content:center; }
  .hero__tags{ grid-template-columns:1fr; }
  .hero__badge{ right:8px; top:8px; font-size:.82rem; padding:.4rem .7rem; }
  .eyebrow{ flex-wrap:wrap; justify-content:center; font-size:.72rem; letter-spacing:.08em; }
  h1{ overflow-wrap:anywhere; }
}

/* =========================================================
   HISTÓRIAS (stories bar)
   ========================================================= */
.stories{ padding:1.6rem 0; }
.stories__track{ display:flex; gap:1.1rem; justify-content:space-between; overflow-x:auto; padding:.6rem .2rem 1rem; scroll-snap-type:x mandatory; margin-top:1.2rem; }
.stories__track::-webkit-scrollbar{ height:6px; } .stories__track::-webkit-scrollbar-thumb{ background:var(--mist); border-radius:6px; }
.story{ flex:1 1 0; min-width:78px; max-width:150px; text-align:center; scroll-snap-align:start; }
.story__ring{ width:clamp(78px,9vw,112px); aspect-ratio:1; height:auto; margin:0 auto .55rem; border-radius:50%; padding:3px;
  background:conic-gradient(from 210deg,var(--rosa),var(--lilas),var(--azul),var(--rosa));
  transition:transform .25s; }
.story:hover .story__ring{ transform:scale(1.06) rotate(3deg); }
/* sem retângulo de foco: o hover já destaca; realce circular só p/ teclado */
.story:focus{ outline:none; } .story:focus-visible{ outline:none; }
.story:focus-visible .story__ring{ box-shadow:0 0 0 3px var(--lilas-800); }
.story.seen .story__ring{ background:var(--linha); }
.story__ring img{ width:100%;height:100%; border-radius:50%; object-fit:cover; border:3px solid #fff; }
.story__label{ font-size:.82rem; color:var(--tinta-sua); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media(max-width:640px){ .stories__track{ justify-content:flex-start; gap:.9rem; } .story{ flex:none; } }

/* Carrossel automatico (Historias e Instagram): rola sozinho e para com o mouse em cima.
   A classe .is-carousel e ligada por JS so quando ha movimento (respeita prefers-reduced-motion). */
.is-carousel{ display:flex!important; flex-wrap:nowrap!important; overflow-x:auto;
  scrollbar-width:none; -ms-overflow-style:none; scroll-snap-type:none; }
.is-carousel::-webkit-scrollbar{ display:none; }
.is-carousel>*{ flex:0 0 auto!important; scroll-snap-align:none; }
.is-carousel .story{ width:118px; }
.is-carousel .ig-item{ width:210px; }
.is-carousel .is-clone{ pointer-events:auto; }

/* Stories viewer (lightbox) */
.viewer{ position:fixed; inset:0; z-index:200; background:rgba(40,30,55,.82); backdrop-filter:blur(6px);
  display:none; place-items:center; }
.viewer.open{ display:grid; }
.viewer__card{ width:min(94%,420px); aspect-ratio:9/16; max-height:92vh; background:#fff; border-radius:26px;
  overflow:hidden; position:relative; box-shadow:var(--sombra-lg); }
.viewer__card img{ width:100%;height:100%; object-fit:cover; }
/* história: mostrar a imagem inteira, sem cortar/desenquadrar */
.viewer__card #svImg{ object-fit:contain; background:var(--nevoa,#f6f5fb); }
.viewer__bars{ position:absolute; top:12px; left:12px; right:12px; display:flex; gap:5px; z-index:3; }
.viewer__bar{ flex:1; height:4px; border-radius:3px; background:rgba(255,255,255,.4); overflow:hidden; }
.viewer__bar i{ display:block; height:100%; width:0; background:#fff; border-radius:3px; }
.viewer__bar.active i{ animation:storyProg 5s linear forwards; }
.viewer__bar.done i{ width:100%; }
@keyframes storyProg{ from{width:0} to{width:100%} }
.viewer__top{ position:absolute; top:26px; left:14px; right:14px; z-index:3; display:flex; align-items:center; gap:.6rem; color:#fff; }
.viewer__top img{ width:36px;height:36px; border-radius:50%; border:2px solid #fff; }
.viewer__top b{ font-family:var(--f-titulo); font-size:.95rem; }
.viewer__close{ margin-left:auto; color:#fff; font-size:1.8rem; line-height:1; width:40px;height:40px; }
.viewer__nav{ position:absolute; inset:0; display:flex; z-index:2; }
.viewer__nav button{ flex:1; }
.viewer__cap{ position:absolute; left:0; right:0; bottom:0; z-index:3; color:#fff;
  padding:2.4rem 1.2rem 1.2rem; background:linear-gradient(transparent,rgba(30,20,45,.7)); font-weight:600; }

/* =========================================================
   CARDS genéricos
   ========================================================= */
.card{ background:#fff; border-radius:var(--r-lg); box-shadow:var(--sombra-sm);
  padding:1.8rem; transition:transform .3s var(--ease), box-shadow .3s; border:1px solid rgba(236,238,244,.9); position:relative; z-index:1;}
.card:hover{ transform:translateY(-7px); box-shadow:var(--sombra-md); }
.card__ico{ width:60px;height:60px; border-radius:20px; display:grid; place-items:center; margin-bottom:1.1rem; }
.card h3{ margin-bottom:.5rem; }
.card p{ color:var(--tinta-sua); font-size:.97rem; margin:0; }

/* ícones circulares coloridos */
.ic{ display:grid; place-items:center; border-radius:50%; }
.ic svg{ width:55%; height:55%; }
.ic--azul{ background:var(--mist); color:var(--azul-700); }
.ic--rosa{ background:var(--creme); color:var(--rosa-700); }
.ic--lilas{ background:#f1e9f7; color:var(--lilas-700); }
.bg-azul{ background:var(--azul); } .bg-rosa{ background:var(--rosa); } .bg-lilas{ background:var(--lilas); }

/* Pilares (grid pequeno) */
.pilares{ grid-template-columns:repeat(4,1fr); }
.pilar{ text-align:center; padding:1.6rem 1.1rem; }
.pilar .ic{ width:64px;height:64px; margin:0 auto 1rem; }
.pilar h3{ font-size:1.12rem; }
@media(max-width:900px){ .pilares{ grid-template-columns:repeat(2,1fr);} }
@media(max-width:520px){ .pilares{ grid-template-columns:1fr;} }

/* Serviços 3 col */
.cols-3{ grid-template-columns:repeat(3,1fr); }
.cols-2{ grid-template-columns:repeat(2,1fr); }
@media(max-width:900px){ .cols-3{ grid-template-columns:repeat(2,1fr);} }
@media(max-width:620px){ .cols-3,.cols-2{ grid-template-columns:1fr;} }

/* =========================================================
   JORNADA (timeline faixas etárias)
   ========================================================= */
.jornada{ display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; margin-top:2rem; }
.fase{ text-align:center; position:relative; }
.fase__dot{ width:86px;height:86px; margin:0 auto 1rem; border-radius:50%; display:grid; place-items:center;
  background:#fff; box-shadow:var(--sombra-md); color:var(--lilas-700); position:relative; z-index:1;
  border:5px solid #fff; transition:transform .3s var(--ease); }
.fase:hover .fase__dot{ transform:translateY(-5px) scale(1.05); }
.fase__dot svg{ width:52px;height:52px; }
.fase:not(:last-child)::after{ content:""; position:absolute; top:43px; left:62%; right:-38%; height:3px;
  background:repeating-linear-gradient(90deg,var(--lilas) 0 7px,transparent 7px 15px); z-index:0; opacity:.5; }
.fase b{ display:block; font-family:var(--f-titulo); color:var(--azul-800); font-size:1.05rem; }
.fase p{ font-size:.85rem; color:var(--tinta-sua); margin:.3rem 0 0; }
@media(max-width:820px){ .jornada{ grid-template-columns:repeat(2,1fr); gap:1.6rem;} .fase::after{ display:none;} }
@media(max-width:460px){ .jornada{ grid-template-columns:1fr;} }

/* =========================================================
   SOBRE / SPLIT genérico
   ========================================================= */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center; }
.split--rev .split__media{ order:2; }
.split__media img{ border-radius:30px 30px 30px 80px; box-shadow:var(--sombra-md); width:100%; object-fit:cover; object-position:50% 10%; aspect-ratio:4/4.6; border:6px solid #fff; }
.split__media.plain img{ border-radius:28px; aspect-ratio:4/3; }
@media(max-width:820px){ .split{ grid-template-columns:1fr;} .split--rev .split__media{ order:0;} }

.checklist li{ display:block; position:relative; padding-left:2rem; margin-bottom:.7rem; color:var(--tinta); }
.checklist li::before{ content:""; position:absolute; left:0; top:1px; width:24px;height:24px; border-radius:50%;
  background:var(--mist) no-repeat center/14px
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234f9aa3' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E"); }

/* Credenciais (CRM/RQE) */
.creds{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:1.6rem 0; }
.cred{ display:flex; align-items:center; gap:.8rem; background:#fff; border-radius:18px; padding:.9rem 1.1rem; box-shadow:var(--sombra-sm); min-width:0; }
.cred > div{ min-width:0; }
@media(max-width:1050px){ .creds{ grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .creds{ grid-template-columns:1fr;} }
.cred .ic{ width:44px;height:44px; }
.cred small{ display:block; color:var(--tinta-sua); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; }
.cred b{ font-family:var(--f-titulo); color:var(--azul-800); font-size:1.05rem; }

/* Timeline formação */
.timeline{ position:relative; padding-left:0; }
.tl{ display:grid; grid-template-columns:auto 1fr; gap:1.1rem; padding-bottom:1.5rem; position:relative; }
.tl__year{ font-family:var(--f-titulo); font-weight:600; color:var(--lilas-700); background:#fff;
  border:2px solid var(--mist); border-radius:var(--r-pill); padding:.25rem .8rem; height:fit-content; box-shadow:var(--sombra-sm); }
.tl:not(:last-child)::before{ content:""; position:absolute; left:32px; top:38px; bottom:-6px; width:2px; background:var(--mist); }
.tl h4{ margin:.1rem 0 .2rem; color:var(--azul-800); font-size:1.08rem; }
.tl p{ margin:0; color:var(--tinta-sua); font-size:.92rem; }

/* =========================================================
   DEPOIMENTOS (slider)
   ========================================================= */
.depo{ position:relative; }
.depo__track{ display:flex; transition:transform .5s var(--ease); }
.depo__item{ flex:0 0 100%; padding:0 .5rem; }
.depo__card{ background:#fff; border-radius:var(--r-lg); box-shadow:var(--sombra-md); padding:clamp(1.6rem,4vw,2.6rem); max-width:760px; margin:0 auto; text-align:center; position:relative; }
.depo__quote{ font-size:1.2rem; color:var(--tinta); font-style:italic; }
.depo__mark{ font-family:var(--f-titulo); font-size:3.5rem; color:var(--rosa); line-height:.5; }
.depo__stars{ color:#f4b942; letter-spacing:.15em; margin:.6rem 0; }
.depo__author{ font-family:var(--f-titulo); font-weight:600; color:var(--lilas-800); }
.depo__author small{ display:block; color:var(--tinta-sua); font-weight:400; font-family:var(--f-corpo); }
.depo__dots{ display:flex; gap:.5rem; justify-content:center; margin-top:1.6rem; }
.depo__dots button{ width:11px;height:11px; border-radius:50%; background:var(--mist); transition:.3s; }
.depo__dots button.active{ background:var(--lilas); width:30px; border-radius:6px; }
.depo__arrows{ display:flex; gap:.6rem; justify-content:center; margin-top:1rem; }
.depo__arrows button{ width:46px;height:46px; border-radius:50%; background:#fff; box-shadow:var(--sombra-sm); color:var(--lilas-800); display:grid; place-items:center; transition:.25s; }
.depo__arrows button:hover{ background:var(--lilas); color:#fff; }

/* =========================================================
   BLOG
   ========================================================= */
.post-card{ background:#fff; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sombra-sm);
  transition:transform .3s var(--ease), box-shadow .3s; display:flex; flex-direction:column; }
.post-card:hover{ transform:translateY(-7px); box-shadow:var(--sombra-md); }
.post-card__img{ aspect-ratio:1/1; overflow:hidden; background:var(--nevoa,#f6f5fb); }
.post-card__img img{ width:100%;height:100%; object-fit:contain; transition:transform .5s; }
.post-card:hover .post-card__img img{ transform:scale(1.06); }
.post-card__body{ padding:1.4rem 1.5rem 1.7rem; display:flex; flex-direction:column; flex:1; }
.tag{ display:inline-block; font-family:var(--f-titulo); font-weight:500; font-size:.72rem; text-transform:uppercase;
  letter-spacing:.08em; padding:.28rem .8rem; border-radius:var(--r-pill); margin-bottom:.7rem; align-self:flex-start; }
.tag--rosa{ background:var(--creme); color:var(--rosa-800); }
.tag--azul{ background:var(--mist); color:var(--azul-800); }
.tag--lilas{ background:#f1e9f7; color:var(--lilas-800); }
.post-card__body h3{ font-size:1.2rem; margin-bottom:.5rem; }
.post-card__body p{ color:var(--tinta-sua); font-size:.94rem; }
.post-card__meta{ margin-top:auto; padding-top:1rem; display:flex; align-items:center; gap:.5rem; color:var(--tinta-sua); font-size:.82rem; }
.post-card--feature{ grid-row:span 2; }
.post-card--feature .post-card__img{ aspect-ratio:16/12; }

/* Categorias filtro */
.chips{ display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin-bottom:2.4rem; }
.chip{ font-family:var(--f-titulo); font-weight:500; padding:.5rem 1.15rem; border-radius:var(--r-pill);
  background:#fff; box-shadow:var(--sombra-sm); color:var(--tinta); transition:.25s; }
.chip:hover{ color:var(--lilas-800); }
.chip.active{ background:var(--grad-cta); color:#fff; box-shadow:var(--sombra-cta); }

/* Artigo */
.article{ max-width:760px; margin:0 auto; }
.article h2{ margin-top:2.2rem; font-size:1.7rem; }
.article h3{ margin-top:1.6rem; }
.article p, .article li{ color:#565672; font-size:1.06rem; }
.article ul{ list-style:none; margin:0 0 1.2rem; }
.article ul li{ position:relative; padding-left:1.6rem; margin-bottom:.5rem; }
.article ul li::before{ content:"🦋"; position:absolute; left:0; font-size:.9rem; }
.article img{ border-radius:var(--r-md); margin:1.6rem 0; box-shadow:var(--sombra-sm); }
.article blockquote{ border-left:4px solid var(--rosa); background:var(--creme); margin:1.6rem 0;
  padding:1.2rem 1.5rem; border-radius:0 var(--r-md) var(--r-md) 0; font-style:italic; color:var(--tinta); }
.callout{ background:var(--mist); border-radius:var(--r-md); padding:1.4rem 1.6rem; margin:1.8rem 0;
  display:flex; gap:1rem; }
.callout .ic{ width:46px;height:46px; flex:none; }

/* =========================================================
   INSTAGRAM FEED
   ========================================================= */
.ig-head{ display:flex; align-items:center; justify-content:center; gap:.7rem; }
.ig-grid{ grid-template-columns:repeat(6,1fr); gap:.7rem; }
.ig-item{ position:relative; aspect-ratio:1; border-radius:16px; overflow:hidden; display:block; box-shadow:var(--sombra-sm); }
.ig-item img{ width:100%;height:100%; object-fit:cover; transition:transform .5s; }
.ig-item::after{ content:""; position:absolute; inset:0; background:rgba(169,124,201,.0)
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M12 21s-8-4.6-8-10.3A4.7 4.7 0 0 1 12 7a4.7 4.7 0 0 1 8 3.7C20 16.4 12 21 12 21z'/%3E%3C/svg%3E") center/0 no-repeat; transition:.35s; }
.ig-item:hover img{ transform:scale(1.08); }
.ig-item:hover::after{ background-color:rgba(169,124,201,.45); background-size:30px; }
@media(max-width:900px){ .ig-grid{ grid-template-columns:repeat(3,1fr);} }

/* =========================================================
   CTA banner
   ========================================================= */
.cta-banner{ background:var(--grad-cta); border-radius:var(--r-xl); color:#fff; text-align:center;
  padding:clamp(2.5rem,6vw,4.5rem) 1.5rem; position:relative; overflow:hidden; box-shadow:var(--sombra-lg); }
.cta-banner h2{ color:#fff; } .cta-banner p{ color:rgba(255,255,255,.9); max-width:52ch; margin-inline:auto; }
.cta-banner .btn--ghost{ color:var(--lilas-800); }
.cta-banner .blob{ opacity:.18; filter:blur(0); }

/* =========================================================
   FORMULÁRIOS
   ========================================================= */
.field{ margin-bottom:1.1rem; }
.field label{ display:block; font-family:var(--f-titulo); font-weight:500; color:var(--azul-800); margin-bottom:.35rem; font-size:.95rem; }
.field input,.field select,.field textarea{
  width:100%; padding:.85rem 1.1rem; border:2px solid var(--linha); border-radius:14px;
  font-family:inherit; font-size:1rem; color:var(--tinta); background:#fff; transition:border .25s, box-shadow .25s; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--lilas); box-shadow:0 0 0 4px rgba(200,166,217,.18); }
.field textarea{ resize:vertical; min-height:120px; }
.form-card{ background:#fff; border-radius:var(--r-lg); box-shadow:var(--sombra-md); padding:clamp(1.6rem,4vw,2.6rem); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media(max-width:560px){ .form-row{ grid-template-columns:1fr;} }

/* =========================================================
   AGENDA (wizard)
   ========================================================= */
.wizard{ max-width:720px; margin:0 auto; }
.steps{ display:flex; justify-content:space-between; margin-bottom:2rem; position:relative; }
.steps::before{ content:""; position:absolute; top:19px; left:8%; right:8%; height:3px; background:var(--linha); z-index:0; }
.steps__bar{ position:absolute; top:19px; left:8%; height:3px; background:var(--lilas); z-index:0; transition:width .4s var(--ease); border-radius:3px; }
.step{ position:relative; z-index:1; text-align:center; flex:1; }
.step__n{ width:40px;height:40px; margin:0 auto .4rem; border-radius:50%; background:#fff; border:2px solid var(--linha);
  display:grid; place-items:center; font-family:var(--f-titulo); font-weight:600; color:var(--tinta-sua); transition:.3s; }
.step.active .step__n{ background:var(--grad-cta); color:#fff; border-color:transparent; box-shadow:var(--sombra-cta); }
.step.done .step__n{ background:var(--azul); color:#fff; border-color:transparent; }
.step small{ font-size:.78rem; color:var(--tinta-sua); }
.step.active small{ color:var(--lilas-800); font-weight:700; }
.wpane{ display:none; animation:fade .4s var(--ease); }
.wpane.active{ display:block; }
@keyframes fade{ from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;} }

.opt-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media(max-width:560px){ .opt-grid{ grid-template-columns:1fr;} }
.opt{ border:2px solid var(--linha); border-radius:var(--r-md); padding:1.2rem 1.3rem; cursor:pointer; transition:.25s; display:flex; gap:.9rem; align-items:center; background:#fff; }
.opt:hover{ border-color:var(--lilas); transform:translateY(-2px); }
.opt.sel{ border-color:var(--lilas); background:#faf6fd; box-shadow:var(--sombra-sm); }
.opt .ic{ width:48px;height:48px; flex:none; }
.opt b{ font-family:var(--f-titulo); color:var(--azul-800); display:block; }
.opt small{ color:var(--tinta-sua); }

/* calendário */
.cal{ background:#fff; border-radius:var(--r-md); box-shadow:var(--sombra-sm); padding:1.2rem; }
.cal__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:.8rem; }
.cal__head b{ font-family:var(--f-titulo); color:var(--azul-800); text-transform:capitalize; }
.cal__nav{ width:36px;height:36px; border-radius:50%; background:var(--mist); color:var(--lilas-800); display:grid; place-items:center; }
.cal__grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:.3rem; text-align:center; }
.cal__grid span{ font-size:.72rem; color:var(--tinta-sua); font-weight:700; padding:.3rem 0; }
.cal__day{ aspect-ratio:1; border-radius:12px; display:grid; place-items:center; font-weight:600; color:var(--tinta); transition:.2s; }
.cal__day:not(.empty):not(.off):hover{ background:var(--mist); }
.cal__day.off{ color:#c9cbd6; cursor:not-allowed; }
.cal__day.sel{ background:var(--grad-cta); color:#fff; box-shadow:var(--sombra-cta); }
.cal__day.today{ border:2px solid var(--rosa); }
.slots{ display:grid; grid-template-columns:repeat(auto-fill,minmax(90px,1fr)); gap:.6rem; }
.slot{ border:2px solid var(--linha); border-radius:12px; padding:.6rem; text-align:center; font-weight:700; color:var(--tinta); cursor:pointer; transition:.2s; background:#fff; }
.slot:hover{ border-color:var(--azul); }
.slot.sel{ background:var(--azul); color:#fff; border-color:transparent; }
.wnav{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; margin-top:1.8rem; }
.confirm-ok{ text-align:center; padding:1rem; }
.confirm-ok .tick{ width:88px;height:88px; margin:0 auto 1.2rem; border-radius:50%; background:var(--grad-cta); display:grid; place-items:center; color:#fff; box-shadow:var(--sombra-cta); animation:pop .5s var(--ease); }
.confirm-ok .tick svg{ width:44px;height:44px; }
@keyframes pop{ 0%{ transform:scale(.4); opacity:0;} 60%{ transform:scale(1.1);} 100%{ transform:scale(1); opacity:1;} }
.resumo{ background:var(--mist); border-radius:var(--r-md); padding:1.2rem 1.4rem; text-align:left; max-width:420px; margin:1.4rem auto 0; }
.resumo div{ display:flex; justify-content:space-between; padding:.35rem 0; border-bottom:1px dashed rgba(160,116,196,.25); }
.resumo div:last-child{ border:0; } .resumo b{ color:var(--azul-800); font-family:var(--f-titulo); }

/* =========================================================
   ÁREA DO CLIENTE
   ========================================================= */
.login-wrap{ min-height:70vh; display:grid; place-items:center; padding:3rem 0; }
.login-card{ width:min(94%,440px); background:#fff; border-radius:var(--r-lg); box-shadow:var(--sombra-lg); padding:clamp(1.8rem,4vw,2.6rem); text-align:center; }
.login-card .nav__logo img{ height:64px; margin:0 auto 1.2rem; }
.portal{ display:grid; grid-template-columns:260px 1fr; gap:1.6rem; align-items:start; }
.portal__side{ background:#fff; border-radius:var(--r-lg); box-shadow:var(--sombra-sm); padding:1.3rem; position:sticky; top:90px; }
.portal__user{ display:flex; align-items:center; gap:.8rem; padding-bottom:1rem; margin-bottom:1rem; border-bottom:1px solid var(--linha); }
.portal__user .av{ width:52px;height:52px; border-radius:50%; background:var(--grad-cta); color:#fff; display:grid; place-items:center; font-family:var(--f-titulo); font-size:1.3rem; }
.portal__user b{ font-family:var(--f-titulo); color:var(--azul-800); display:block; }
.portal__user small{ color:var(--tinta-sua); }
.ptab{ display:flex; align-items:center; gap:.7rem; width:100%; padding:.75rem .9rem; border-radius:14px; color:var(--tinta); font-family:var(--f-titulo); font-weight:500; text-align:left; transition:.2s; }
.ptab svg{ width:20px;height:20px; color:var(--lilas-700); }
.ptab:hover{ background:var(--nevoa); }
.ptab.active{ background:var(--mist); color:var(--azul-800); }
.portal__main{ background:#fff; border-radius:var(--r-lg); box-shadow:var(--sombra-sm); padding:clamp(1.4rem,3vw,2.2rem); min-height:400px; }
.ppane{ display:none; } .ppane.active{ display:block; animation:fade .4s var(--ease); }
.appt{ display:flex; gap:1rem; align-items:center; padding:1.1rem 1.2rem; border:1px solid var(--linha); border-radius:var(--r-md); margin-bottom:1rem; transition:.25s; }
.appt:hover{ box-shadow:var(--sombra-sm); }
.appt__date{ text-align:center; background:var(--mist); border-radius:14px; padding:.6rem .9rem; flex:none; }
.appt__date b{ display:block; font-family:var(--f-titulo); font-size:1.5rem; color:var(--lilas-800); line-height:1; }
.appt__date small{ text-transform:uppercase; font-size:.7rem; color:var(--tinta-sua); }
.appt__info{ flex:1; } .appt__info b{ color:var(--azul-800); font-family:var(--f-titulo); }
.appt__info small{ color:var(--tinta-sua); display:block; }
.badge{ font-size:.72rem; font-weight:700; padding:.25rem .7rem; border-radius:var(--r-pill); font-family:var(--f-titulo); }
.badge--ok{ background:#e4f4ec; color:#3a9c6d; } .badge--wait{ background:var(--creme); color:var(--rosa-800); }
.doc-row{ display:flex; align-items:center; gap:.9rem; padding:.9rem 1rem; border-radius:14px; transition:.2s; }
.doc-row:hover{ background:var(--nevoa); }
.doc-row .ic{ width:42px;height:42px; }
.vac-item{ display:flex; align-items:center; gap:.9rem; padding:.8rem 0; border-bottom:1px dashed var(--linha); }
.vac-item .dot{ width:14px;height:14px; border-radius:50%; flex:none; }
.portal__side, .portal__main{ min-width:0; }
@media(max-width:820px){ .portal{ grid-template-columns:1fr; } .portal__side{ position:static; }
  .portal__nav{ display:flex; flex-wrap:wrap; gap:.4rem; } .portal__nav .ptab{ width:auto; white-space:nowrap; } }
@media(max-width:420px){ .portal__nav .ptab{ white-space:normal; } }
@media(max-width:400px){ .cal__day{ min-height:40px; } .step small{ font-size:.72rem; hyphens:auto; } }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background:linear-gradient(180deg,#fff, #f6f2fa); padding:clamp(3rem,6vw,4.5rem) 0 1.5rem; margin-top:2rem; border-top:1px solid rgba(200,166,217,.16); }
.footer__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2rem; }
.footer__logo img{ height:74px; margin-bottom:1rem; }
.footer__tag{ color:var(--tinta-sua); max-width:30ch; font-size:.95rem; }
.footer h4{ font-size:1.05rem; color:var(--lilas-800); margin-bottom:1rem; }
.footer a, .footer li{ color:var(--tinta-sua); font-size:.94rem; margin-bottom:.6rem; display:block; transition:color .2s; }
.footer a:hover{ color:var(--lilas-800); }
.foot-contact li{ display:flex; gap:.6rem; align-items:flex-start; }
.foot-contact svg{ width:18px;height:18px; color:var(--rosa-700); flex:none; margin-top:3px; }
.socials{ display:flex; gap:.7rem; margin-top:.4rem; }
.socials a{ width:42px;height:42px; border-radius:50%; display:grid; place-items:center; color:#fff; margin:0; transition:transform .25s; }
.socials a:hover{ transform:translateY(-3px) scale(1.05); }
.s-ig{ background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); }
.s-fb{ background:#4267B2; } .s-wa{ background:#25D366; }
.footer__bottom{ margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid var(--linha);
  display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; color:var(--tinta-sua); font-size:.85rem; }
@media(max-width:820px){ .footer__grid{ grid-template-columns:1fr 1fr;} }
@media(max-width:520px){ .footer__grid{ grid-template-columns:1fr;} }

/* Page hero (interno) */
.page-hero{ background:var(--grad-soft); padding:clamp(2.5rem,5vw,4rem) 0 clamp(2rem,4vw,3rem); position:relative; overflow:hidden; }
.breadcrumb{ font-size:.85rem; color:var(--tinta-sua); margin-bottom:.6rem; display:flex; gap:.4rem; align-items:center; }
.breadcrumb a:hover{ color:var(--lilas-800); }

/* WhatsApp flutuante */
.wa-float{ position:fixed; right:20px; bottom:20px; z-index:90; width:58px;height:58px; border-radius:50%;
  background:#25D366; color:#fff; display:grid; place-items:center; box-shadow:0 12px 30px rgba(37,211,102,.45);
  transition:transform .25s; animation:floaty 4s ease-in-out infinite; }
.wa-float:hover{ transform:scale(1.08); }
.wa-float svg{ width:30px;height:30px; }

/* Reveal on scroll */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; } .reveal.d3{ transition-delay:.24s; } .reveal.d4{ transition-delay:.32s; }

/* Stat mini */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.stat{ text-align:center; }
.stat b{ font-family:var(--f-titulo); font-size:clamp(1.8rem,4vw,2.6rem); color:var(--lilas-700); display:block; }
.stat small{ color:var(--tinta-sua); font-weight:600; }
@media(max-width:620px){ .stats{ grid-template-columns:repeat(2,1fr); gap:1.5rem;} }

/* FAQ */
.faq__item{ background:#fff; border-radius:var(--r-md); box-shadow:var(--sombra-sm); margin-bottom:.9rem; overflow:hidden; }
.faq__q{ width:100%; text-align:left; padding:1.1rem 1.4rem; font-family:var(--f-titulo); font-weight:500; color:var(--azul-800); display:flex; justify-content:space-between; align-items:center; gap:1rem; font-size:1.05rem; }
.faq__q span{ flex:none; width:28px;height:28px; border-radius:50%; background:var(--mist); color:var(--lilas-800); display:grid; place-items:center; transition:.3s; font-size:1.3rem; }
.faq__item.open .faq__q span{ transform:rotate(45deg); background:var(--lilas); color:#fff; }
.faq__a{ max-height:0; overflow:hidden; transition:max-height .35s var(--ease); }
.faq__a p{ padding:0 1.4rem 1.2rem; color:var(--tinta-sua); margin:0; }

/* Gallery */
.gallery{ grid-template-columns:repeat(3,1fr); gap:1rem; }
.gallery a{ border-radius:var(--r-md); overflow:hidden; aspect-ratio:4/3; box-shadow:var(--sombra-sm); }
.gallery img{ width:100%;height:100%; object-fit:cover; transition:transform .5s; }
.gallery a:hover img{ transform:scale(1.07); }
@media(max-width:700px){ .gallery{ grid-template-columns:repeat(2,1fr);} }

/* helpers spacing */
.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mb-1{margin-bottom:1rem}.mb-2{margin-bottom:2rem}


/* ---- A11y: skip-link + foco visível ---- */
.skip-link{position:absolute;left:-999px;top:0;z-index:9999;background:var(--azul-800,#2a4d8f);color:#fff;padding:.7rem 1.1rem;border-radius:0 0 12px 0;font-weight:700;text-decoration:none}
.skip-link:focus{left:0}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.btn:focus-visible,.ptab:focus-visible{outline:3px solid var(--lilas-800,#7a5cc0);outline-offset:2px;border-radius:8px}

/* ---- Consentimento LGPD (checkboxes) ---- */
.consent{margin:.4rem 0 .2rem;display:grid;gap:.6rem}
.consent label{display:block;font-size:.86rem;color:var(--tinta-sua,#6c6c86);line-height:1.55;cursor:pointer}
.consent input[type=checkbox]{width:18px;height:18px;margin-right:.5rem;vertical-align:-4px;accent-color:var(--lilas-800,#7a5cc0)}
.consent a{color:var(--lilas-800,#7a5cc0);font-weight:700;white-space:nowrap}
