/* =====================================================================
   Jaqueline Sousa — Psicóloga · styles.css
   Design system: variáveis CSS em :root (cores, raios, sombra, largura).
   Para mudar uma cor do site, altere só os tokens em ":root" (e o bloco
   do modo escuro logo abaixo).

   Seções (nesta ordem):
     Tokens e modo escuro · Reset · Tipografia e botões · Cabeçalho/menu ·
     Hero · Sobre · Motivos e especialidades · Processo · Detalhes práticos ·
     Consultório · Depoimentos · Instagram · FAQ · CTA final · Rodapé ·
     Botão flutuante · Movimento reduzido · Acessibilidade · Páginas internas
   ===================================================================== */

:root{
    --bg:#ffffff;
    --surface:#faf5e4;
    --surface-2:#f3e6ba;
    --ink:#121110;
    --ink-soft:#4b4740;
    --ink-faint:#6b6657;
    --accent:#e3ac0a;
    --accent-deep:#7a5606;
    --accent-ink:#1c1608;
    --line:#e7e2d2;
    --danger:#a1260f;
    --shadow: 22px 18px 0 rgba(18,17,16,0.05);
    --radius-lg: 18px;
    --radius-sm: 8px;
    --maxw: 1120px;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg:#121110;
      --surface:#1c1a12;
      --surface-2:#262110;
      --ink:#f7f4ea;
      --ink-soft:#c9c2ac;
      --ink-faint:#8f8877;
      --accent:#eec84a;
      --accent-deep:#f6db85;
      --accent-ink:#1c1608;
      --line:#332c17;
    --danger:#ff9d8a;
      --shadow: 22px 18px 0 rgba(0,0,0,0.32);
    }
  }
  :root[data-theme="dark"]{
    --bg:#121110;
    --surface:#1c1a12;
    --surface-2:#262110;
    --ink:#f7f4ea;
    --ink-soft:#c9c2ac;
    --ink-faint:#8f8877;
    --accent:#eec84a;
    --accent-deep:#f6db85;
    --accent-ink:#1c1608;
    --line:#332c17;
    --danger:#ff9d8a;
    --shadow: 22px 18px 0 rgba(0,0,0,0.32);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:"Work Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;
    -webkit-font-smoothing:antialiased;
    padding-inline:24px;
  }

  .scroll-progress{
    position:fixed; top:0; left:0; height:3px; width:0%;
    background:linear-gradient(90deg, var(--accent-deep), var(--accent));
    z-index:60;
    transition:width .12s linear;
  }
  @media (prefers-reduced-motion: reduce){
    *, *::before, *::after{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
  }

  h1,h2,h3,.serif{
    font-family:"Fraunces", Georgia, "Times New Roman", serif;
    font-weight:600;
    letter-spacing:-0.01em;
    text-wrap:balance;
    margin:0;
  }

  .wrap{max-width:var(--maxw); margin-inline:auto;}
  .eyebrow{
    font-size:0.78rem;
    font-weight:600;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--accent-deep);
  }
  p{line-height:1.65; color:var(--ink-soft); max-width:62ch; font-size:1.08rem;}

  a{color:inherit;}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:14px 26px;
    border-radius:var(--radius-sm);
    font-weight:600;
    font-size:0.98rem;
    text-decoration:none;
    border:1.5px solid transparent;
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  }
  .btn-primary{
    background:var(--accent);
    color:var(--accent-ink);
  }
  .btn-primary:hover{ transform:translateY(-2px); box-shadow:0 10px 0 -4px var(--accent-deep); }
  .btn-ghost{
    border-color:var(--line);
    color:var(--ink);
  }
  .btn-ghost:hover{ border-color:var(--accent-deep); transform:translateY(-2px); }

  /* ---- header ---- */
  header{
    position:sticky; top:0; z-index:40;
    background:color-mix(in srgb, var(--bg) 88%, transparent);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    position:relative;
    display:flex; align-items:center; justify-content:space-between;
    padding-block:16px;
    gap:16px;
  }
  .brandmark{ display:flex; align-items:center; gap:14px; text-decoration:none; }
  .brand-icon{
    display:flex; align-items:center; justify-content:center; flex:none;
    width:60px; height:60px; border-radius:50%;
    background:var(--surface);
    transition:background .2s ease;
  }
  .brandmark:hover .brand-icon{ background:var(--surface-2); }
  .brand-icon img{ width:46px; height:auto; display:block; }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]) .brand-icon img{ filter:invert(1) brightness(1.15); }
  }
  :root[data-theme="dark"] .brand-icon img{ filter:invert(1) brightness(1.15); }
  .brand-divider{ width:1px; height:28px; background:var(--line); flex:none; }
  .brand-text{ display:flex; flex-direction:column; gap:3px; line-height:1; }
  .brand-name{
    font-family:"Work Sans", sans-serif; font-weight:700; font-size:0.92rem;
    letter-spacing:0.04em; text-transform:uppercase; color:var(--ink);
  }
  .brand-role{
    font-family:"Work Sans", sans-serif; font-weight:600; font-size:0.66rem;
    letter-spacing:0.09em; text-transform:uppercase; color:var(--accent-deep);
  }
  @media (max-width:600px){
    .nav{ flex-wrap:wrap; gap:10px 12px; }
    .brandmark{ gap:9px; }
    .brand-icon{ width:42px; height:42px; }
    .brand-icon img{ width:32px; }
    .brand-divider{ height:20px; }
    .brand-text{ gap:2px; }
    .brand-name{ font-size:0.66rem; letter-spacing:0.02em; }
    .brand-role{ font-size:0.56rem; letter-spacing:0.05em; white-space:normal; max-width:150px; line-height:1.25; }
  }
  @media (max-width:400px){
    .brand-role{ max-width:120px; }
  }
  .navcta{display:flex; align-items:center; gap:14px;}
  .nav-tools{display:flex; align-items:center; gap:14px;}

  .menu-btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:11px 18px 11px 16px;
    border-radius:var(--radius-sm);
    border:1.5px solid var(--line);
    background:transparent;
    color:var(--ink);
    font-family:inherit; font-weight:600; font-size:0.95rem;
    cursor:pointer;
    transition:border-color .18s ease, transform .18s ease;
  }
  .menu-btn:hover{ border-color:var(--accent-deep); transform:translateY(-2px); }
  .menu-btn-lines{ display:inline-flex; flex-direction:column; gap:4px; width:18px; }
  .menu-btn-lines span{
    display:block; height:1.5px; width:100%; background:var(--ink);
    transition:transform .25s ease, opacity .25s ease;
  }
  .menu-btn[aria-expanded="true"] .menu-btn-lines span:nth-child(1){ transform:translateY(5.5px) rotate(45deg); }
  .menu-btn[aria-expanded="true"] .menu-btn-lines span:nth-child(2){ opacity:0; }
  .menu-btn[aria-expanded="true"] .menu-btn-lines span:nth-child(3){ transform:translateY(-5.5px) rotate(-45deg); }

  /* Botão de tema (claro/escuro). O JS define data-next: "dark" mostra a lua, "light" mostra o sol. */
  .theme-btn{
    display:inline-flex; align-items:center; justify-content:center;
    width:44px; height:44px; padding:0;
    border-radius:var(--radius-sm);
    border:1.5px solid var(--line);
    background:transparent; color:var(--ink);
    cursor:pointer;
    transition:border-color .18s ease, transform .18s ease;
  }
  .theme-btn:hover{ border-color:var(--accent-deep); transform:translateY(-2px); }
  .theme-btn:focus-visible{ outline:3px solid var(--accent-deep); outline-offset:3px; }
  .theme-btn svg{ width:20px; height:20px; display:block; }
  .theme-btn .ico-sun{ display:none; }
  .theme-btn[data-next="light"] .ico-sun{ display:block; }
  .theme-btn[data-next="light"] .ico-moon{ display:none; }
  :root[data-theme="dark"]{ color-scheme:dark; }
  :root[data-theme="light"]{ color-scheme:light; }

  .nav-menu{
    position:absolute; right:24px; top:calc(100% + 8px);
    display:flex; flex-direction:column;
    min-width:230px;
    background:var(--bg);
    border:1px solid var(--line);
    border-radius:var(--radius-sm);
    box-shadow:0 18px 40px -18px rgba(18,17,16,0.28);
    padding:8px;
    z-index:50;
    animation:menuIn .18s ease both;
  }
  .nav-menu[hidden]{ display:none; }
  @keyframes menuIn{ from{ opacity:0; transform:translateY(-6px);} to{ opacity:1; transform:none;} }
  .nav-menu a{
    text-decoration:none; color:var(--ink-soft); font-weight:500; font-size:0.98rem;
    padding:12px 14px; border-radius:6px;
    transition:background .15s ease, color .15s ease;
  }
  .nav-menu a:hover{ background:var(--surface); color:var(--ink); }

  @media (max-width:480px){
    .navcta{ gap:8px; }
    .navcta .btn-primary{ padding:11px 16px; font-size:0.88rem; white-space:nowrap; }
    #menuBtnLabel{ display:none; }
    .menu-btn{ padding:11px 14px; gap:0; justify-content:center; }
    .nav-menu{ right:16px; left:16px; min-width:0; }
  }
  /* Celular: "Agendar conversa" no canto superior direito; modo claro/escuro e menu logo abaixo, à direita. */
  @media (max-width:600px){
    .nav{ flex-wrap:nowrap; align-items:center; }
    .navcta{ flex-direction:column; align-items:flex-end; gap:8px; }
    .nav-tools{ gap:8px; }
  }

  /* ---- highlight squiggle ---- */
  .hl{ position:relative; white-space:nowrap; }
  .hl svg{
    position:absolute; left:-2%; right:-2%; bottom:-0.08em;
    width:104%; height:0.5em;
    overflow:visible;
  }
  .hl path{
    fill:none;
    stroke:var(--accent);
    stroke-width:9;
    stroke-linecap:round;
    opacity:0.65;
  }
  [data-theme="dark"] .hl path, @media (prefers-color-scheme:dark){ .hl path { opacity:0.4; } }
  .hl-draw path{
    stroke-dasharray:600;
    stroke-dashoffset:600;
    animation:draw 1.1s 0.35s cubic-bezier(.3,.8,.3,1) forwards;
  }
  @keyframes draw{ to{ stroke-dashoffset:0; } }

  /* ---- hero ---- */
  .hero{
    position:relative;
    display:grid;
    grid-template-columns:1.1fr 0.9fr;
    gap:56px;
    align-items:center;
    padding-block:72px 88px;
  }
  @media (max-width:880px){ .hero{ grid-template-columns:1fr; padding-block:44px 56px; } }
  .hero-blobs{ position:absolute; inset:-20px; z-index:-1; overflow:hidden; pointer-events:none; }
  .hero-blob{ position:absolute; border-radius:50%; filter:blur(50px); opacity:0.32; background:var(--accent); }
  .hero-blob.b1{ width:260px; height:260px; top:-50px; right:6%; animation:heroFloat1 17s ease-in-out infinite; }
  .hero-blob.b2{ width:200px; height:200px; left:2%; bottom:-30px; background:var(--accent-deep); animation:heroFloat2 21s ease-in-out infinite; }
  @keyframes heroFloat1{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-22px,20px) scale(1.08); } }
  @keyframes heroFloat2{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(18px,-16px) scale(0.93); } }
  .hero h1{ font-size:clamp(2.3rem, 4.6vw, 3.6rem); line-height:1.08; margin-top:14px; }
  .hero p.lede{ font-size:1.1rem; margin-top:22px; }
  .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-top:34px; }

  .portrait{
    position:relative;
    max-width:400px;
    margin-inline:auto;
  }
  .portrait-frame{
    aspect-ratio:4/5;
    border-radius:var(--radius-lg);
    overflow:hidden;
    box-shadow:var(--shadow);
    border:1px solid var(--line);
  }
  .portrait-frame img{
    width:100%; height:100%;
    object-fit:cover;
    display:block;
    transition:transform .7s cubic-bezier(.2,.7,.3,1);
  }
  .portrait-frame:hover img{ transform:scale(1.045); }
  .credential-tag{
    margin-top:18px;
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    border-top:1px solid var(--line);
    padding-top:14px;
    font-size:0.82rem;
    font-weight:600;
    color:var(--ink-soft);
  }
  .credential-tag b{ color:var(--ink); font-weight:600; }

  section{ padding-block:64px; border-top:1px solid var(--line); }
  section:first-of-type{ border-top:none; }
  .section-head{ max-width:640px; margin-bottom:44px; }
  .section-head h2{ font-size:clamp(1.7rem,3vw,2.3rem); margin-top:10px; }

  /* gentle entrance for whichever section is in view; page is fully legible at rest either way */
  .reveal{ opacity:1; transform:none; }
  .reveal.in{ animation:rise .6s ease both; }
  @keyframes rise{ from{ opacity:0.4; transform:translateY(14px);} to{ opacity:1; transform:none;} }

  /* cascading entrance for grid/list items once their section is in view */
  .reveal.in .reason,
  .reveal.in .spec-row,
  .reveal.in .step,
  .reveal.in .logi,
  .reveal.in .faq details{
    animation:rise .5s ease both;
  }
  .reveal.in .reason:nth-child(1), .reveal.in .step:nth-child(1), .reveal.in .logi:nth-child(1), .reveal.in .spec-row:nth-child(1), .reveal.in .faq details:nth-child(1){ animation-delay:.02s; }
  .reveal.in .reason:nth-child(2), .reveal.in .step:nth-child(2), .reveal.in .logi:nth-child(2), .reveal.in .spec-row:nth-child(2), .reveal.in .faq details:nth-child(2){ animation-delay:.09s; }
  .reveal.in .reason:nth-child(3), .reveal.in .step:nth-child(3), .reveal.in .logi:nth-child(3), .reveal.in .spec-row:nth-child(3), .reveal.in .faq details:nth-child(3){ animation-delay:.16s; }
  .reveal.in .reason:nth-child(4), .reveal.in .spec-row:nth-child(4), .reveal.in .faq details:nth-child(4){ animation-delay:.23s; }
  .reveal.in .spec-row:nth-child(5), .reveal.in .faq details:nth-child(5){ animation-delay:.30s; }
  .reveal.in .faq details:nth-child(6){ animation-delay:.37s; }
  .reveal.in .faq details:nth-child(7){ animation-delay:.44s; }

  /* hero: plays once on load, independent of scroll */
  .hero .eyebrow{ animation:rise .6s ease .05s both; }
  .hero h1{ animation:rise .6s ease .12s both; }
  .hero p.lede{ animation:rise .6s ease .2s both; }
  .hero-ctas{ animation:rise .6s ease .28s both; }
  .hero .portrait{ animation:rise .7s ease .18s both; }

  /* ---- reasons list ---- */
  .reasons{ display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
  @media (max-width:700px){ .reasons{ grid-template-columns:1fr; } }
  .reason{ background:var(--bg); padding:30px 28px; transition:background .25s ease; }
  .reason:hover{ background:var(--surface); }
  .reason h3{ font-size:1.1rem; font-weight:600; }
  .reason p{ margin-top:8px; font-size:1.08rem; }

  .icon-frame{
    position:relative; width:58px; height:58px;
    display:flex; align-items:center; justify-content:center;
    margin-bottom:16px;
  }
  .icon-frame .corner{ position:absolute; width:12px; height:12px; border:1.5px solid var(--accent-deep); opacity:.6; }
  .icon-frame .corner.tl{ top:0; left:0; border-right:none; border-bottom:none; }
  .icon-frame .corner.tr{ top:0; right:0; border-left:none; border-bottom:none; }
  .icon-frame .corner.bl{ bottom:0; left:0; border-right:none; border-top:none; }
  .icon-frame .corner.br{ bottom:0; right:0; border-left:none; border-top:none; }
  .reason-icon{ width:30px; height:30px; stroke:var(--ink); fill:none; }
  .reason-icon path{ stroke-dasharray:200; stroke-dashoffset:0; }
  .reveal.in .reason-icon path{ animation:drawIcon .9s ease both; }
  .reveal.in .reason-icon path:nth-of-type(2){ animation-delay:.15s; }
  @keyframes drawIcon{ from{ stroke-dashoffset:200; } to{ stroke-dashoffset:0; } }
  .icon-frame .spark{ position:absolute; top:-6px; right:-6px; width:13px; height:13px; color:var(--accent); }
  .reveal.in .icon-frame .spark{ animation:sparkIn .5s ease .55s both; }
  @keyframes sparkIn{ from{ opacity:0.35; transform:scale(0.5) rotate(-15deg); } to{ opacity:1; transform:scale(1) rotate(0); } }
  .reason:hover .icon-frame .corner{ opacity:1; }

  /* ---- about ---- */
  .about{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:52px; align-items:start; }
  @media (max-width:820px){ .about{ grid-template-columns:1fr; } }
  .about-photo{
    max-width:300px;
    margin-bottom:46px;
    aspect-ratio:4/5;
    border-radius:var(--radius-lg);
    overflow:hidden;
    box-shadow:var(--shadow);
    border:1px solid var(--line);
  }
  @media (min-width:821px){ .about-photo{ margin-left:58px; } }
  .about-photo img{
    width:100%; height:100%;
    object-fit:cover;
    display:block;
  }
  .pullquote{
    font-family:"Fraunces", serif;
    font-size:1.5rem;
    font-weight:500;
    line-height:1.55;
    color:var(--ink);
    border-left:3px solid var(--accent);
    padding-left:22px;
  }
  .pullquote cite{ display:block; margin-top:55px; font-style:normal; font-size:0.85rem; color:var(--ink-faint); }
  .signature{
    font-family:"Alex Brush", cursive;
    font-weight:400;
    color:var(--accent-deep);
    line-height:1;
  }
  .creds{ list-style:none; margin:34px 0 0; padding:0; display:grid; gap:15px; }
  .creds li{ display:flex; gap:10px; font-size:1.08rem; line-height:1.5; color:var(--ink-soft); }
  .creds li::before{ content:"—"; color:var(--accent-deep); flex:none; }

  /* ---- specialties ---- */
  .spec-list{ border-top:1px solid var(--line); }
  .spec-row{
    display:grid; grid-template-columns:78px 1.2fr 1.8fr; gap:24px;
    padding:32px 0; border-bottom:1px solid var(--line);
    align-items:baseline;
    transition:padding-left .25s ease;
  }
  .spec-row:hover{ padding-left:10px; }
  @media (max-width:700px){ .spec-row{ grid-template-columns:48px 1fr; } .spec-row p{ grid-column:1/-1; margin-top:6px; } }
  .spec-num{ font-family:"Fraunces", serif; font-size:1.7rem; color:var(--accent-deep); transition:color .25s ease; }
  .spec-row:hover .spec-num{ color:var(--ink); }
  .spec-row h3{ font-size:1.32rem; font-weight:600; font-family:"Work Sans", sans-serif; }
  .spec-row p{ font-size:1.08rem; line-height:1.6; }

  /* ---- process ---- */
  .process{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; counter-reset:step; }
  @media (max-width:820px){ .process{ grid-template-columns:1fr; } }
  .step{ position:relative; padding-top:8px; }
  .step .num{
    display:inline-block;
    font-family:"Fraunces", serif; font-size:2.6rem; color:var(--accent);
    line-height:1;
    transition:transform .3s ease;
  }
  .step:hover .num{ transform:translateX(4px); }
  .step h3{ margin-top:14px; font-size:1.1rem; font-weight:600; }
  .step p{ margin-top:8px; font-size:1.08rem; }

  /* ---- logistics grid: cards side by side ---- */
  .logi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; max-width:1000px; margin-inline:auto; }
  @media (max-width:820px){ .logi-grid{ grid-template-columns:1fr; max-width:420px; } }
  .logi{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow);
    padding:34px 30px;
  }
  .logi-arrow{
    display:flex; align-items:center; justify-content:center; flex:none;
    width:36px; height:36px; border-radius:50%;
    border:1.5px solid var(--line); background:transparent; color:var(--ink);
    cursor:pointer; font-size:1.15rem; line-height:1; font-family:inherit;
    transition:border-color .18s ease, transform .18s ease;
  }
  .logi-arrow:hover{ border-color:var(--accent-deep); transform:translateY(-1px); }
  .logi-dots{ display:flex; align-items:center; gap:9px; }
  .logi-dot{ position:relative; width:8px; height:8px; border-radius:50%; border:none; padding:0; background:var(--line); cursor:pointer; transition:background .2s ease, transform .2s ease; }
  .logi-dot.active{ background:var(--accent-deep); transform:scale(1.35); }
  .logi .eyebrow{ display:block; margin-bottom:8px; }
  .logi strong{ display:block; font-size:1.18rem; margin-bottom:6px; }
  .logi p{ font-size:1.08rem; margin:0; }


  /* ---- consultório ---- */
  .office{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:56px; align-items:center; max-width:980px; margin-inline:auto; }
  @media (max-width:820px){ .office{ grid-template-columns:1fr; gap:30px; } }
  .office-photo{
    margin:0;
    aspect-ratio:3/4;
    border-radius:var(--radius-lg);
    overflow:hidden;
    box-shadow:var(--shadow);
    border:1px solid var(--line);
    max-width:380px;
    width:100%;
    justify-self:center;
  }
  .office-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  .office-text h2{ margin:10px 0 16px; }
  .office-text p{ font-size:1.08rem; margin:0 0 14px; max-width:50ch; }
  .office-text .btn{ margin-top:10px; }

  /* ---- testimonials carousel ---- */
  .section-note{ margin-top:10px; font-size:1.08rem; color:var(--ink-faint); }
  .testi-carousel{ max-width:640px; }
  .testi-track{
    display:flex;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    -ms-overflow-style:none; scrollbar-width:none;
  }
  .testi-track::-webkit-scrollbar{ display:none; }
  .testi-card{
    position:relative;
    flex:0 0 100%;
    scroll-snap-align:start;
    background:var(--surface);
    border:1.5px solid var(--accent-deep);
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow);
    padding:40px 42px 34px;
    min-height:210px;
  }
  /* Telas largas: dois depoimentos lado a lado. A página de rolagem tem uma largura de track por "página". */
  @media (min-width:821px){
    .testi-carousel{ max-width:900px; }
    .testi-track{ gap:20px; }
    .testi-card{ flex:0 0 calc((100% - 20px) / 2); padding:34px 30px 30px; }
  }
  .logi-dot[hidden]{ display:none; }
  .map-link{ color:var(--accent-deep); font-weight:600; text-underline-offset:3px; }
  .footer-tagline{ max-width:300px; margin-top:6px; text-align:center; }
  .footer-card{ display:block; width:300px; max-width:100%; height:auto; border-radius:6px; margin-bottom:14px; }
  .testi-quote{ width:24px; height:24px; stroke:var(--accent-deep); fill:none; stroke-width:1.6; margin-bottom:14px; }
  .testi-stars{ display:flex; gap:3px; color:var(--accent); margin-bottom:14px; }
  .testi-stars svg{ width:15px; height:15px; }
  .testi-text{ font-size:1.08rem; font-style:italic; color:var(--ink-soft); margin:0 0 18px; max-width:52ch; }
  .testi-who strong{ display:block; font-size:1.1rem; }
  .testi-who span{ font-size:0.98rem; color:var(--ink-faint); }
  .testi-nav{ display:flex; align-items:center; justify-content:center; gap:20px; margin-top:22px; }

  /* ---- instagram teaser (placeholder until real posts are supplied) ---- */
  .insta-band{
    background:linear-gradient(150deg, var(--surface-2), var(--surface));
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow);
    padding:52px 40px 46px;
  }
  @media (max-width:600px){ .insta-band{ padding:36px 22px 34px; } }
  .insta-band .section-head{ margin-inline:auto; text-align:center; margin-bottom:34px; }
  .insta-band .section-head p{ margin-inline:auto; }
  .insta-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:18px;
    max-width:1100px;
    margin-inline:auto;
  }
  @media (max-width:900px){ .insta-grid{ grid-template-columns:1fr 1fr; max-width:640px; } }
  @media (max-width:520px){ .insta-grid{ grid-template-columns:1fr; max-width:380px; } }
  .insta-tile{
    position:relative;
    background:var(--bg);
    border:1.5px dashed var(--accent-deep);
    border-radius:var(--radius-sm);
    padding:24px 22px;
    min-height:230px;
    display:flex; flex-direction:column;
  }
  .insta-tile--post{
    padding:0;
    border:1px solid var(--line);
    border-radius:var(--radius-sm);
    overflow:hidden;
    min-height:0;
    text-decoration:none;
    transition:box-shadow .2s ease, transform .2s ease;
  }
  .insta-tile--post:hover{ box-shadow:var(--shadow); transform:translateY(-2px); }
  .insta-tile--post,
  .insta-tile--post *{ text-decoration:none; }
  .insta-tile-media{ aspect-ratio:1/1; overflow:hidden; background:var(--surface-2); }
  .insta-tile-media img{ width:100%; height:100%; object-fit:cover; display:block; }
  .insta-tile-body{ padding:16px 18px 18px; }
  .insta-tile--post .insta-tile-title{ font-size:1.02rem; }
  .insta-tile--post .insta-tile-sub{ margin-top:6px; padding-top:0; display:block; }
  .insta-handle-mini{ font-size:0.76rem; font-weight:600; color:var(--ink-faint); margin-bottom:18px; }
  .insta-tile-title{ font-family:"Fraunces", serif; font-size:1.15rem; font-weight:600; line-height:1.32; margin:0; color:var(--ink); }
  .insta-tile-sub{ margin-top:auto; padding-top:14px; font-size:0.8rem; color:var(--ink-faint); }
  .insta-handle-btn{ margin:34px auto 0; display:flex; width:fit-content; }

  /* ---- centered layout variant (Detalhes práticos + Depoimentos) ---- */
  .section-centered .section-head{ margin-inline:auto; text-align:center; }
  .section-centered .section-head p{ margin-inline:auto; }
  .section-centered .logi-carousel,
  .section-centered .testi-carousel{ margin-inline:auto; }

  /* ---- faq ---- */
  .faq{ max-width:760px; }
  details{ border-bottom:1px solid var(--line); padding-block:18px; }
  details:first-child{ border-top:1px solid var(--line); }
  summary{
    cursor:pointer; list-style:none;
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    font-weight:600; font-size:1.02rem;
    transition:color .2s ease;
  }
  summary::-webkit-details-marker{ display:none; }
  summary:hover{ color:var(--accent-deep); }
  summary .plus{ font-family:"Fraunces", serif; font-size:1.4rem; color:var(--accent-deep); transition:transform .25s ease; flex:none; }
  details[open] summary .plus{ transform:rotate(45deg); }
  details p{ margin-top:12px; font-size:1.08rem; max-width:60ch; animation:rise .35s ease both; }

  /* ---- cta band ---- */
  .cta-band{
    border-radius:var(--radius-lg);
    background:linear-gradient(150deg, var(--surface-2), var(--surface));
    padding:56px 48px;
    display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
    box-shadow:var(--shadow);
  }
  .cta-band h2{ font-size:clamp(1.5rem,3vw,2rem); max-width:20ch; }
  @media (max-width:600px){ .cta-band{ padding:36px 26px; } }

  /* ---- formulário de contato ---- */
  .sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .contact-split{ margin-top:48px; display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:48px; align-items:start; }
  @media (max-width:820px){ .contact-split{ grid-template-columns:minmax(0,1fr); gap:28px; margin-top:36px; } }
  .contact-intro h3{ font-size:clamp(1.4rem,2.6vw,1.8rem); margin:10px 0 14px; }
  .contact-intro p{ max-width:46ch; }
  .form-guard{ margin-top:14px; font-size:0.92rem; color:var(--ink-soft); border-left:3px solid var(--accent); padding-left:14px; }
  .contact-form{ display:grid; gap:20px; min-width:0; }
  .field{ display:grid; gap:6px; min-width:0; }
  .field label{ font-weight:600; font-size:0.95rem; }
  .field input[type="text"], .field input[type="email"], .field textarea{
    width:100%; box-sizing:border-box;
    font:inherit; font-size:1rem; color:var(--ink);
    background:var(--bg);
    border:1.5px solid var(--ink-faint); border-radius:var(--radius-sm);
    padding:13px 14px; min-height:48px;
  }
  .field textarea{ resize:vertical; min-height:140px; line-height:1.55; }
  .field input:focus-visible, .field textarea:focus-visible{ outline:3px solid var(--accent); outline-offset:1px; border-color:var(--accent-deep); }
  .field [aria-invalid="true"]{ border-color:var(--danger); }
  .field-hint{ margin:0; font-size:0.86rem; color:var(--ink-faint); display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; }
  .field-hint span:first-child{ flex:1 1 22ch; }
  .field-hint #cf-contador{ white-space:nowrap; }
  .field-error{ margin:0; font-size:0.88rem; font-weight:600; color:var(--danger); }
  .field-consent{ grid-template-columns:auto minmax(0,1fr); column-gap:12px; align-items:start; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-sm); padding:16px; }
  .field-consent input{ width:22px; height:22px; margin:2px 0 0; accent-color:var(--accent-deep); }
  .field-consent label{ font-weight:400; font-size:0.92rem; line-height:1.55; color:var(--ink-soft); }
  .field-consent label a{ color:var(--accent-deep); text-underline-offset:3px; }
  .field-consent .field-error{ grid-column:2; }
  .hp{ position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; }
  .form-actions{ display:flex; }
  .form-actions .btn{ cursor:pointer; font-family:inherit; }
  .form-actions .btn:disabled{ opacity:0.6; cursor:progress; transform:none; box-shadow:none; }
  .form-status{ padding:14px 16px; border-radius:var(--radius-sm); border:1px solid var(--line); background:var(--surface); font-weight:600; font-size:0.95rem; }
  .form-status.is-error{ border-color:var(--danger); color:var(--danger); background:var(--bg); }
  .form-fallback{ margin:0; font-size:0.92rem; color:var(--ink-soft); }
  .form-fallback a{ color:var(--accent-deep); text-underline-offset:3px; }

  footer{ padding-block:56px 40px; border-top:1px solid var(--line); }
  .foot-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:36px; }
  @media (max-width:700px){ .foot-grid{ grid-template-columns:1fr; } }
  .foot-grid h3{ font-family:"Work Sans", sans-serif; font-size:0.85rem; font-weight:600; text-wrap:wrap; text-transform:uppercase; letter-spacing:0.08em; color:var(--ink-faint); margin:0 0 14px; }
  .foot-grid ul{ list-style:none; margin:0; padding:0; display:grid; gap:2px; font-size:0.94rem; }
  .foot-grid a{ display:inline-block; padding-block:3px; text-decoration:none; color:var(--ink-soft); }
  .foot-grid a:hover{ color:var(--ink); }
  .foot-grid .contact-link{ display:flex; min-height:24px; align-items:center; gap:10px; }
  .contact-icon{ display:inline-flex; flex:none; color:var(--accent-deep); }
  .contact-icon svg{ width:18px; height:18px; }
  .contact-link:hover .contact-icon{ color:var(--ink); }
  .foot-note{ margin-top:44px; font-size:0.8rem; color:var(--ink-faint); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
  .placeholder-flag{ color:var(--accent-deep); font-weight:600; }

  /* ---- floating contact button ---- */
  .fab-whatsapp{
    position:fixed; right:max(22px, env(safe-area-inset-right)); bottom:max(22px, env(safe-area-inset-bottom)); z-index:50;
    width:56px; height:56px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:var(--ink); color:var(--bg);
    box-shadow:0 12px 28px -8px rgba(0,0,0,0.38);
    text-decoration:none;
    opacity:0; transform:translateY(14px) scale(0.92);
    pointer-events:none;
    transition:opacity .35s ease, transform .35s ease, background .2s ease, box-shadow .2s ease;
  }
  .fab-whatsapp.show{ opacity:1; transform:none; pointer-events:auto; }
  .fab-whatsapp:hover{ background:var(--accent-deep); box-shadow:0 14px 30px -6px rgba(0,0,0,0.42); }
  .fab-whatsapp svg{ width:25px; height:25px; }
  .fab-whatsapp::before{
    content:""; position:absolute; inset:-7px; border-radius:50%;
    border:1.5px solid var(--accent); opacity:0;
    animation:fabPulse 2.6s ease-out infinite;
  }
  .fab-whatsapp.show::before{ opacity:0.55; }
  @keyframes fabPulse{
    0%{ transform:scale(0.86); opacity:0.5; }
    70%{ transform:scale(1.32); opacity:0; }
    100%{ opacity:0; }
  }
  @media (max-width:600px){ .fab-whatsapp{ right:max(16px, env(safe-area-inset-right)); bottom:max(16px, env(safe-area-inset-bottom)); width:50px; height:50px; } .fab-whatsapp svg{ width:22px; height:22px; } }

/* ---- Acessibilidade ---- */
.skip-link{
  position:absolute; left:16px; top:-120px; z-index:100;
  background:var(--ink); color:var(--bg);
  padding:12px 18px; border-radius:var(--radius-sm);
  font-weight:600; text-decoration:none;
  transition:top .15s ease;
}
.skip-link:focus{ top:12px; }
:focus-visible{ outline:3px solid var(--accent-deep); outline-offset:3px; }
main:focus{ outline:none; }
/* área de toque maior nos indicadores do carrossel (visual inalterado) */
.logi-dot::before{ content:""; position:absolute; inset:-12px; }
/* âncoras não ficam escondidas sob o cabeçalho fixo */
section[id], footer[id]{ scroll-margin-top:72px; }
#formulario{ scroll-margin-top:140px; }

/* ---- Páginas internas (404 e privacidade) ---- */
.page-simple{ padding-block:72px; }
.page-simple h1{ font-size:clamp(2rem,4vw,2.8rem); margin:10px 0 18px; }
.page-simple p, .page-simple li{ font-size:1.08rem; max-width:68ch; color:var(--ink-soft); }
.page-simple h2{ font-size:1.35rem; margin:34px 0 10px; }
.page-simple ul{ padding-left:22px; }
.page-simple .hero-ctas{ margin-top:26px; }
.draft-notice{
  border:1.5px dashed var(--accent-deep); border-radius:var(--radius-sm);
  background:var(--surface); padding:16px 20px; margin:22px 0 8px;
  font-size:1rem; color:var(--ink);
}
.to-review{ background:var(--surface-2); padding:1px 6px; border-radius:4px; font-weight:600; color:var(--ink); }
