/* ==========================================================================
   THEME.CSS — t09-mental-health · Instituto Multidisciplinar Terapêutico
   Identidade Inovar (tema claro). Toda a camada visual do template mora aqui.
   Ordem de carga: reset → variables → theme → base → components → utilities.
   Todos os valores de cor, espaçamento, tipografia, raio e duração vêm de
   css/variables.css (camada de tokens).
   ========================================================================== */

/* ── Base do tema ───────────────────────────────────────────────────── */
:root{ color-scheme: light; }
body{ margin:0; background:var(--bg); color:var(--ink); font:var(--weight-regular) var(--text-body)/var(--leading-normal) var(--font-body); -webkit-font-smoothing:antialiased; overflow-x:clip; }
.wrap{ width:100%; max-width:var(--container-max); margin-inline:auto; padding-inline:var(--container-pad); }
.section{ padding-block:clamp(64px,9vw,108px); }
.lead{ font-size:var(--text-lead); color:var(--ink-2); max-width:56ch; }
h1,h2,h3{ font-family:var(--font-display); font-style:italic; color:var(--ink); margin:0; font-weight:var(--weight-bold); letter-spacing:var(--tracking-tight); }
h1{ font-size:var(--text-hero); line-height:1.05; font-weight:var(--weight-black); }
h2{ font-size:var(--text-4xl); line-height:1.12; }
h3{ font-size:var(--text-h3); line-height:1.25; }
p{ margin:0; }
a{ color:inherit; }
img,svg{ max-width:100%; }
:focus-visible{ outline:3px solid var(--primary); outline-offset:3px; border-radius:var(--radius-sm); }

.skip-link{ position:fixed; top:-4rem; left:1rem; z-index:var(--z-toast); padding:.7rem 1rem; background:var(--primary); color:var(--on-primary); border-radius:var(--radius-sm); transition:top .2s; }
.skip-link:focus{ top:1rem; }

/* Anéis (assinatura visual do flyer) */
.ring{ --s:var(--size-ring-lg); width:var(--s); height:var(--s); flex:none; border-radius:50%; border:3px solid transparent;
  background:linear-gradient(var(--surface),var(--surface)) padding-box, var(--rb) border-box;
  display:grid; place-items:center; }
.ring svg{ width:56%; height:56%; fill:none; stroke:url(#rb); }

/* Botões */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:var(--space-2); padding:.85rem 1.6rem; border-radius:var(--radius-full); font:var(--weight-bold) var(--text-base)/1.2 var(--font-body); font-style:italic; text-decoration:none; border:3px solid transparent; cursor:pointer; transition:filter .2s; }
.btn-primary{ background:var(--primary); color:var(--on-primary); }
.btn-primary:hover{ filter:brightness(1.12); }
.btn-line{ color:var(--ink); background:linear-gradient(var(--surface),var(--surface)) padding-box, var(--rb) border-box; }
.btn-line:hover{ filter:brightness(.97); }
.btn-sun{ background:var(--y); color:var(--ink); }
.btn-sun:hover{ filter:brightness(1.05); }

/* ── Cabeçalho ──────────────────────────────────────────────────────── */
.site-header{ position:sticky; top:env(safe-area-inset-top,0px); z-index:var(--z-nav); background:color-mix(in srgb,var(--bg) 90%,transparent); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.site-header::after{ content:""; display:block; height:var(--space-1); background:var(--rb); }
.bar{ display:flex; align-items:center; gap:var(--space-6); min-height:var(--space-72px); }
.logo{ display:inline-flex; align-items:center; text-decoration:none; color:var(--ink); font:var(--weight-black) italic var(--text-logo)/1 var(--font-display); letter-spacing:var(--tracking-wide); }
.logo .ring{ --s:1.2em; border-width:2px; margin:0 .08em; }
.nav{ margin-left:auto; display:flex; align-items:center; gap:var(--space-5); }
.nav a{ text-decoration:none; font-weight:var(--weight-semibold); font-size:var(--text-nav); color:var(--ink-2); white-space:nowrap; }
.nav a:hover{ color:var(--ink); }
.header-cta{ padding:.55rem 1.15rem; font-size:var(--text-nav); }
.menu-btn{ display:none; margin-left:auto; background:none; border:2px solid var(--line); color:var(--ink); border-radius:var(--radius-md); padding:.5rem .8rem; font:var(--weight-bold) var(--text-nav) var(--font-body); cursor:pointer; }
@media (max-width:900px){
  .menu-btn{ display:inline-block; }
  .header-cta{ display:none; }
  .nav{ display:none; position:absolute; left:0; right:0; top:100%; flex-direction:column; align-items:flex-start; gap:0; background:var(--bg); border-bottom:1px solid var(--line); padding:var(--space-2) var(--container-pad) var(--space-5); box-shadow:var(--shadow-md); }
  .nav.open{ display:flex; }
  .nav a{ padding:var(--space-3) 0; width:100%; font-size:var(--text-h4); }
}

/* ── Hero ───────────────────────────────────────────────────────────── */
.hero{ background:var(--wash); padding-block:clamp(40px,7vw,88px) clamp(56px,8vw,96px); overflow:hidden; }
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(24px,5vw,64px); align-items:center; }
.hero h1{ max-width:13ch; }
.hero .lead{ margin-top:var(--space-6); color:var(--ink); opacity:.85; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:var(--space-3); margin-top:var(--space-8); }
.badge{ display:inline-block; margin-top:var(--space-22px); font-weight:var(--weight-bold); font-style:italic; color:var(--ink-2); }
.orbs{ position:relative; width:100%; max-width:560px; aspect-ratio:1/1.1; margin-inline:auto; }
.orb-lines{ position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; overflow:visible; }
.neuron{ opacity:.7; transition:opacity .25s var(--ease-out), filter .25s var(--ease-out); }
.neuron path{ fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; transition:stroke-width .25s var(--ease-out); }
.neuron.is-lit{ opacity:1; filter:drop-shadow(0 0 3px var(--white)) drop-shadow(0 0 8px var(--nc)) drop-shadow(0 0 18px var(--nc)); }
.neuron.is-lit path{ stroke-width:3; }
@media (prefers-reduced-motion:no-preference){
  .neuron.is-lit{ animation:neonPulse 1.8s ease-in-out infinite; }
  .hub.is-lit .brain-free{ animation:brainPulse 1.8s ease-in-out infinite; }
  @keyframes neonPulse{
    0%,100%{ opacity:.68; filter:drop-shadow(0 0 1px var(--white)) drop-shadow(0 0 4px var(--nc)) drop-shadow(0 0 9px var(--nc)); }
    50%{ opacity:1; filter:drop-shadow(0 0 3px var(--white)) drop-shadow(0 0 10px var(--nc)) drop-shadow(0 0 24px var(--nc)); }
  }
  @keyframes brainPulse{
    0%,100%{ filter:drop-shadow(0 12px 22px var(--shadow-brain)) drop-shadow(0 0 6px var(--white)) drop-shadow(0 0 12px var(--primary)) saturate(1.12) brightness(1.03); transform:scale(1.03); }
    50%{ filter:drop-shadow(0 12px 22px var(--shadow-brain)) drop-shadow(0 0 10px var(--white)) drop-shadow(0 0 30px var(--primary)) saturate(1.3) brightness(1.1); transform:scale(1.06); }
  }
}
.hub{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:2; display:grid; justify-items:center; text-align:center; }
.hub .brain-free{ width:clamp(118px,22vw,164px); height:auto; display:block; filter:drop-shadow(0 12px 22px var(--shadow-brain)); transition:filter .25s var(--ease-out), transform .25s var(--ease-out); }
.hub.is-lit .brain-free{ transform:scale(1.04); filter:drop-shadow(0 12px 22px var(--shadow-brain)) drop-shadow(0 0 6px var(--white)) drop-shadow(0 0 18px var(--primary)) saturate(1.18) brightness(1.05); }
.nodes{ display:contents; }
.node{ position:absolute; z-index:1; display:grid; justify-items:center; gap:var(--space-6px); width:var(--size-node); text-align:center; transform:translate(-50%,-50%); }
.node .ring{ --s:var(--size-ring-sm); background:var(--surface); border:3px solid var(--nc); }
.node .ring svg{ stroke:var(--nc); }
.node b{ font:var(--weight-bold) italic var(--text-node)/1.2 var(--font-body); color:var(--ink); }
.n1{ left:50%; top:10%; }
.n2{ left:76.9%; top:21.7%; }
.n3{ left:88%; top:50%; }
.n4{ left:76.9%; top:78.3%; }
.n5{ left:50%; top:90%; }
.n6{ left:23.1%; top:78.3%; }
.n7{ left:12%; top:50%; }
.n8{ left:23.1%; top:21.7%; }
@media (min-width:601px){
  .n1 b, .n2 b, .n8 b{ order:-1; }
  .node{ transition:transform .25s var(--ease-out); }
  .node:hover, .node.is-lit{ transform:translate(-50%,-50%) scale(1.12); z-index:3; }
  .node:hover .ring, .node.is-lit .ring{ box-shadow:0 0 0 7px color-mix(in srgb,var(--nc) 22%,transparent); }
  .node:hover b, .node.is-lit b{ color:var(--nc); }
}
@media (prefers-reduced-motion:no-preference) and (min-width:601px){
  .hub{ animation:popIn .6s cubic-bezier(.2,.7,.2,1) both; }
  .node{ animation:popInNode .6s cubic-bezier(.2,.7,.2,1) both; }
  .n2{ animation-delay:.06s; } .n3{ animation-delay:.12s; } .n4{ animation-delay:.18s; } .n5{ animation-delay:.24s; }
  .n6{ animation-delay:.3s; } .n7{ animation-delay:.36s; } .n8{ animation-delay:.42s; }
  @keyframes popIn{ from{ opacity:0; transform:translate(-50%,-50%) scale(.85); } to{ opacity:1; transform:translate(-50%,-50%) scale(1); } }
  @keyframes popInNode{ from{ opacity:0; } to{ opacity:1; } }
}
@media (max-width:860px){ .hero-grid{ grid-template-columns:1fr; } }
@media (max-width:600px){
  .orbs{ position:static; aspect-ratio:auto; max-width:420px; margin-inline:auto; }
  .orb-lines{ display:none; }
  .hub{ position:static; transform:none; margin-bottom:var(--space-5); }
  .nodes{ display:flex; flex-wrap:wrap; justify-content:center; gap:var(--space-14px) var(--space-18px); }
  .node{ position:static; transform:none; }
}

/* ── Áreas de atuação ───────────────────────────────────────────────── */
.filter{ margin-top:var(--space-8); }
.filter p{ font-weight:var(--weight-bold); font-style:italic; margin-bottom:var(--space-10px); }
.chips{ display:flex; flex-wrap:wrap; gap:var(--space-2); }
.fchip, .tchip{ border:2px solid var(--ink); background:transparent; color:var(--ink); border-radius:var(--radius-full); padding:.5rem 1.1rem; font:var(--weight-bold) var(--text-chip) var(--font-body); cursor:pointer; }
.fchip[aria-pressed="true"], .tchip[aria-pressed="true"]{ background:var(--ink); color:var(--bg); }
.count{ margin-top:var(--space-14px); font-size:var(--text-nav); color:var(--ink-2); }
.svc-list{ display:grid; grid-template-columns:1fr 1fr; column-gap:clamp(28px,5vw,64px); margin-top:var(--space-28px); }
.svc{ display:grid; grid-template-columns:auto 1fr; gap:var(--space-5); padding:var(--space-28px) 0; border-top:1px solid var(--line); }
.svc[hidden]{ display:none; }
.svc h3{ margin-bottom:var(--space-6px); }
.svc .desc{ color:var(--ink-2); }
.svc .meta{ margin-top:var(--space-10px); font-size:var(--text-chip); }
.svc .meta b{ font-weight:var(--weight-bold); }
.svc-badge{ display:inline-block; margin-left:var(--space-2); padding:.15rem .55rem; border-radius:var(--radius-full); background:var(--wash2); color:var(--ink-2); font:var(--weight-semibold) var(--text-meta)/1.2 var(--font-body); font-style:normal; vertical-align:middle; }
@media (max-width:860px){ .svc-list{ grid-template-columns:1fr; } }

/* ── Autismo ────────────────────────────────────────────────────────── */
.tea{ background:var(--wash); border-radius:var(--radius-48); margin-inline:clamp(8px,2vw,24px); }
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,72px); align-items:center; }
@media (max-width:860px){ .split{ grid-template-columns:1fr; } }
.tea .lead{ margin-top:var(--space-4); color:var(--ink); opacity:.85; }
.tea ul{ list-style:none; margin:var(--space-26px) 0 0; padding:0; display:grid; gap:var(--space-3); }
.tea li{ display:grid; grid-template-columns:22px 1fr; gap:var(--space-10px); }
.tea li::before{ content:""; width:var(--space-14px); height:var(--space-14px); margin-top:.5rem; border-radius:50%; background:var(--rb); }
.fronts-box{ background:var(--surface); border-radius:var(--radius-2xl); padding:clamp(22px,3vw,36px); box-shadow:var(--shadow-sm); }
.fronts-box h3{ margin-bottom:var(--space-22px); }
.fronts{ display:grid; grid-template-columns:1fr; gap:var(--space-22px); }
@media (min-width:620px){ .fronts{ grid-template-columns:1fr 1fr; gap:var(--space-26px) var(--space-5); } }
.front{ display:grid; grid-template-columns:var(--size-ring-md) 1fr; align-items:center; gap:var(--space-14px); }
.front .ring{ --s:var(--size-ring-md); }
.front b{ display:block; font:var(--weight-bold) italic var(--text-base)/1.25 var(--font-body); }
.front span{ display:block; font-size:var(--text-caption); color:var(--ink-2); line-height:1.35; margin-top:var(--space-2px); }
.fronts-tabs{ display:flex; flex-wrap:wrap; gap:var(--space-2); margin-bottom:var(--space-18px); }
.ftab{ border:2px solid var(--ink); background:transparent; color:var(--ink); border-radius:var(--radius-full); padding:.45rem 1rem; font:var(--weight-bold) var(--text-caption) var(--font-body); cursor:pointer; }
.ftab[aria-selected="true"]{ background:var(--ink); color:var(--bg); }
.fronts[hidden]{ display:none; }

/* ── Como funciona ──────────────────────────────────────────────────── */
.how h2{ max-width:20ch; }
.flow{ list-style:none; margin:var(--space-12) 0 0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:var(--space-5); counter-reset:f; }
.flow li{ position:relative; padding-top:var(--size-ring-md); counter-increment:f; }
.flow li::before{ content:counter(f); position:absolute; top:0; left:0; width:var(--space-44px); height:var(--space-44px); border-radius:50%; border:3px solid transparent; background:linear-gradient(var(--surface),var(--surface)) padding-box, var(--rb) border-box; display:grid; place-items:center; font:var(--weight-bold) italic var(--text-quote) var(--font-body); }
.flow li::after{ content:""; position:absolute; top:21px; left:58px; right:-8px; border-top:2px dotted var(--ink-2); opacity:.4; }
.flow li:last-child::after{ display:none; }
.flow h3{ font-size:var(--text-h4); margin-bottom:var(--space-6px); }
.flow p{ font-size:var(--text-chip); color:var(--ink-2); }
@media (max-width:900px){
  .flow{ grid-template-columns:1fr; gap:0; margin-top:var(--space-8); }
  .flow li{ padding:0 0 var(--space-28px) var(--space-16); }
  .flow li::after{ top:48px; bottom:var(--space-1); left:21px; right:auto; border-top:0; border-left:2px dotted var(--ink-2); }
}

/* ── Equipe ─────────────────────────────────────────────────────────── */
.team{ background:var(--wash2); }
.team .wrap{ max-width:1280px; }
.team-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:var(--space-4); margin-top:var(--space-8); }
@media (min-width:1024px){ .team-grid{ grid-template-columns:repeat(8,minmax(0,1fr)); } }
.person{ display:grid; align-content:start; }
.person[hidden]{ display:none; }
.person:nth-child(4n+1){ --avc:var(--g); }
.person:nth-child(4n+2){ --avc:var(--p); }
.person:nth-child(4n+3){ --avc:var(--o); }
.person:nth-child(4n+4){ --avc:var(--b); }
.person .av{ width:100%; aspect-ratio:1/1; display:grid; place-items:center; font:var(--weight-bold) italic clamp(1.2rem,3.2vw,1.7rem) var(--font-body); color:var(--ink); margin-bottom:var(--space-10px); border-radius:var(--radius-20); background:color-mix(in srgb,var(--avc) 45%,var(--white)); }
.person .av-img{ object-fit:cover; display:block; }
.person h3{ font-size:var(--text-sub); line-height:1.25; }
.person p{ font-size:var(--text-person); line-height:1.35; color:var(--ink-2); }
.person .reg{ font-size:var(--text-meta); margin-top:var(--space-3px); }
.person .note{ font-size:var(--text-meta); margin-top:var(--space-3px); color:var(--ink-2); opacity:.9; }
.person .tags{ display:flex; flex-wrap:wrap; gap:var(--space-1); margin-top:7px; margin-bottom:var(--space-2); }
.person .tags:empty{ display:none; }
.person .tags span{ display:inline-block; white-space:nowrap; padding:.16rem .5rem; border-radius:var(--radius-full); background:color-mix(in srgb,var(--avc) 45%,var(--white)); color:var(--ink); font:var(--weight-semibold) var(--text-tag)/1.1 var(--font-body); }
.team-empty{ margin-top:var(--space-28px); font-weight:var(--weight-semibold); color:var(--ink-2); }
.team-empty[hidden]{ display:none; }
@media (max-width:560px){ .team-grid{ grid-template-columns:repeat(2,1fr); gap:var(--space-5) var(--space-3); } .person .av{ border-radius:var(--radius-lg); } }

/* ── Depoimentos ────────────────────────────────────────────────────── */
.testimonials{ background:var(--wash); }
.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); margin-top:var(--space-44px); }
@media (max-width:900px){ .testi-grid{ grid-template-columns:1fr; } }
.testi{ background:var(--surface); border-radius:var(--radius-card); padding:clamp(22px,3vw,30px); display:grid; gap:var(--space-4); box-shadow:var(--shadow-sm); }
.testi blockquote{ margin:0; font-size:var(--text-quote); line-height:1.6; color:var(--ink); }
.testi .mark{ font:var(--weight-black) italic var(--text-mark)/1 var(--font-display); color:var(--primary); opacity:.35; }
.testi figcaption{ font-size:var(--text-sub); color:var(--ink-2); }
.testi figcaption b{ color:var(--ink); }
.testi-note{ margin-top:var(--space-6); font-size:var(--text-caption); color:var(--ink-2); }

/* ── Nossa estrutura + mapa ─────────────────────────────────────────── */
.structure-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:center; margin-top:var(--space-10); }
@media (max-width:860px){ .structure-grid{ grid-template-columns:1fr; } }
.gallery{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-14px); }
.photo{ aspect-ratio:4/3; border-radius:var(--radius-20); display:grid; place-items:center; text-align:center; padding:var(--space-14px); font:var(--weight-bold) italic var(--text-nav) var(--font-body); color:var(--ink); background:linear-gradient(135deg,var(--wash),var(--wash2)); border:1px solid var(--line); }
.photo:nth-child(1){ grid-column:1 / -1; aspect-ratio:16/9; }
.photo img{ width:100%; height:100%; object-fit:cover; border-radius:var(--radius-20); }
.structure-info dl{ margin:var(--space-6) 0 0; display:grid; gap:var(--space-4); }
.structure-info dt{ font-weight:var(--weight-bold); font-style:italic; }
.structure-info dd{ margin:0; color:var(--ink-2); }
.map-embed{ margin-top:var(--space-26px); border-radius:var(--radius-20); overflow:hidden; border:1px solid var(--line); aspect-ratio:16/9; }
.map-embed iframe{ width:100%; height:100%; border:0; display:block; }

/* ── Condições que atendemos ────────────────────────────────────────── */
.conditions{ background:var(--surface); }
.cond-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-5); margin-top:var(--space-10); }
@media (max-width:900px){ .cond-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .cond-grid{ grid-template-columns:1fr; } }
.cond{ border:1px solid var(--line); border-radius:var(--radius-20); padding:var(--space-22px); background:var(--bg); }
.cond h3{ font-size:var(--text-h4); margin-bottom:var(--space-6px); }
.cond p{ font-size:var(--text-nav); color:var(--ink-2); }

/* ── Dúvidas ────────────────────────────────────────────────────────── */
.faq-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(28px,5vw,72px); align-items:start; }
@media (max-width:860px){ .faq-grid{ grid-template-columns:1fr; } }
.faq-grid .lead{ margin-top:var(--space-4); }
.faq details{ border-top:1px solid var(--line); }
.faq details:last-child{ border-bottom:1px solid var(--line); }
.faq summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:var(--space-4); align-items:center; padding:var(--space-5) 0; font:var(--weight-bold) italic var(--text-faq)/1.3 var(--font-body); }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; font-size:var(--text-plus); line-height:1; flex:none; font-style:normal; transition:transform .25s; }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details p{ padding:0 0 var(--space-22px); max-width:62ch; color:var(--ink-2); }

/* ── Contato ────────────────────────────────────────────────────────── */
.contact{ background:var(--contact); color:var(--on-contact); }
.contact h2{ color:var(--on-contact); }
.contact .lead{ color:inherit; opacity:.92; margin-top:var(--space-14px); }
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,72px); align-items:start; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }
.contact .btn-sun{ margin-top:var(--space-28px); }
.contact dl{ margin:var(--space-8) 0 0; display:grid; gap:var(--space-4); }
.contact dt{ font-weight:var(--weight-bold); font-style:italic; }
.contact dd{ margin:0; opacity:.92; }
.form{ background:var(--surface); color:var(--ink); border-radius:var(--radius-media); padding:clamp(22px,3vw,34px); display:grid; gap:var(--space-4); }
.form h3{ color:var(--ink); }
.form label{ display:grid; gap:var(--space-6px); font-weight:var(--weight-semibold); font-size:var(--text-chip); }
.form input,.form select,.form textarea{ font:var(--weight-regular) var(--text-base) var(--font-body); color:var(--ink); background:var(--bg); border:2px solid var(--line); border-radius:var(--radius-14); padding:.7rem .9rem; width:100%; }
.form textarea{ min-height:100px; resize:vertical; }
.form small{ color:var(--ink-2); font-size:var(--text-note); }
.form .is-invalid{ border-color:var(--color-error); }
.form .form-message{ display:none; padding:var(--space-3) var(--space-14px); border-radius:var(--radius-md); font-size:var(--text-nav); }
.form .form-message--success{ display:block; background:color-mix(in srgb,var(--g) 18%,var(--white)); color:var(--color-success-deep); }
.form .form-message--error{ display:block; background:color-mix(in srgb,var(--r) 15%,var(--white)); color:var(--color-error-deep); }

/* ── Rodapé ─────────────────────────────────────────────────────────── */
.footer{ padding-block:var(--space-44px); font-size:var(--text-nav); color:var(--ink-2); }
.footer .row{ display:flex; flex-wrap:wrap; gap:var(--space-6) var(--space-12); justify-content:space-between; align-items:flex-start; }
.footer .sub{ margin-top:var(--space-10px); font-size:var(--text-mini); }
.footer small{ display:block; margin-top:var(--space-28px); font-size:var(--text-mini); }
.footer .footer-links{ margin-top:var(--space-14px); display:flex; flex-wrap:wrap; gap:var(--space-2) var(--space-18px); }
.footer .footer-links a{ font-weight:var(--weight-semibold); text-decoration:underline; text-underline-offset:3px; }

/* ── WhatsApp flutuante (único CTA fixo) ─────────────────────────────── */
.wa-float{ position:fixed; right:18px; bottom:calc(18px + env(safe-area-inset-bottom,0px)); z-index:var(--z-float); width:var(--size-ring-md); height:var(--size-ring-md); border-radius:50%; background:var(--color-whatsapp-deep); color:var(--white); display:grid; place-items:center; box-shadow:0 12px 30px var(--shadow-whatsapp); text-decoration:none; transition:transform .2s, opacity .2s, visibility .2s; }
.wa-float:hover{ transform:scale(1.06); }
.wa-float svg{ width:var(--space-8); height:var(--space-8); fill:currentColor; }
.wa-float.is-hidden{ opacity:0; visibility:hidden; pointer-events:none; }
@media (prefers-reduced-motion:no-preference){
  .wa-float{ animation:waPulse 2.6s ease-in-out infinite; }
  @keyframes waPulse{ 0%,100%{ box-shadow:0 12px 30px var(--shadow-whatsapp); } 50%{ box-shadow:0 12px 30px var(--shadow-whatsapp), 0 0 0 12px var(--shadow-whatsapp-ring); } }
}
@media (max-width:600px){
  body{ padding-bottom:calc(var(--space-72px) + env(safe-area-inset-bottom,0px)); }
}

/* ── Banner de cookies (tema claro) ─────────────────────────────────── */
.cookie-banner{ background:var(--surface) !important; color:var(--ink) !important; border:1px solid var(--line) !important; box-shadow:var(--shadow-lg) !important; }
.cookie-banner__text{ color:var(--ink) !important; }
.cookie-banner__link{ color:var(--primary) !important; }
.cookie-banner__btn--accept{ background:var(--primary) !important; color:var(--on-primary) !important; }
.cookie-banner__btn--manage{ color:var(--primary) !important; border-color:var(--line) !important; background:transparent !important; }
.cookie-banner__btn:not(.cookie-banner__btn--accept):not(.cookie-banner__btn--manage){ background:transparent !important; color:var(--ink-2) !important; border-color:var(--line) !important; }
.cookie-modal{ background:var(--surface) !important; color:var(--ink) !important; }
.cookie-modal__title{ color:var(--ink) !important; }
.cookie-modal__desc,.cookie-modal__desc-small{ color:var(--ink-2) !important; }
.cookie-modal__item{ border-color:var(--line) !important; }
.cookie-modal__btn--save{ color:var(--ink) !important; border-color:var(--line) !important; }
.cookie-modal__btn--accept{ background:var(--primary) !important; color:var(--on-primary) !important; }

@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } *{ transition:none !important; animation:none !important; } }

/* ==========================================================================
   HOME — Etapa 3 (estrutura e hierarquia)
   ========================================================================== */

/* ── Menu com submenu de áreas ──────────────────────────────────────── */
.nav-item{ position:relative; display:flex; align-items:center; }
.nav-sub{ display:none; position:absolute; top:100%; left:0; min-width:240px; margin:0; padding:var(--space-2) 0; list-style:none; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow-lg); z-index:var(--z-overlay); }
.nav-sub a{ display:block; padding:var(--space-2) var(--space-4); font-size:var(--text-nav); }
@media (min-width:901px){
  .nav-item:hover .nav-sub, .nav-item:focus-within .nav-sub{ display:block; }
}
@media (max-width:900px){
  .nav-item{ display:block; width:100%; }
  .nav-sub{ display:none; position:static; min-width:0; padding:0 0 0 var(--space-4); border:0; box-shadow:none; background:transparent; }
  .nav-sub.is-open{ display:block; }
  .nav-sub a{ padding:var(--space-2) 0; }
}

/* ── Hero em 2 colunas ──────────────────────────────────────────────── */
.hero-layout{ display:grid; grid-template-columns:1fr; gap:var(--space-8); align-items:center; }
.hero-main{ display:grid; gap:var(--space-4); }
.hero-photo{ margin:0; border-radius:var(--radius-media); overflow:hidden; aspect-ratio:16/10; background:linear-gradient(135deg,var(--wash),var(--wash2)); }
.hero-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.hero-photo__fallback{ width:100%; height:100%; display:grid; place-items:center; color:var(--primary); opacity:.55; }
.hero-photo__fallback svg{ width:64px; height:64px; fill:none; stroke:currentColor; stroke-width:2; }
.hero-kicker{ margin:0; font:var(--weight-bold) italic var(--text-lead)/1.3 var(--font-display); color:var(--primary); }
.hero h1{ font-size:var(--text-4xl); max-width:20ch; }
.hero .lead{ margin:0; max-width:52ch; }
.hero-tel{ align-self:center; font-weight:var(--weight-semibold); color:var(--primary); text-decoration:underline; text-underline-offset:3px; }
.hero-illustration{ position:relative; width:100%; max-width:560px; margin-inline:auto; aspect-ratio:1/1; }
.hero-brand{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:clamp(150px,42%,220px); height:auto; }
.hero-areas{ position:absolute; inset:0; }
.hero-area{ position:absolute; display:grid; justify-items:center; gap:var(--space-1); width:96px; text-align:center; text-decoration:none; color:var(--ink); transform:translate(-50%,-50%); }
.hero-area .ring{ --s:46px; background:var(--surface); border:3px solid var(--nc); }
.hero-area .ring svg{ stroke:var(--nc); }
.hero-area b{ font:var(--weight-bold) italic var(--text-node)/1.2 var(--font-body); }
.hero-area__badge{ font:var(--weight-semibold) var(--text-tag)/1.1 var(--font-body); color:var(--ink-2); font-style:normal; }
.hero-area:hover b, .hero-area:focus-visible b{ color:var(--nc); }
.ha1{ left:50%; top:8%; }
.ha2{ left:79%; top:24%; }
.ha3{ left:90%; top:55%; }
.ha4{ left:74%; top:84%; }
.ha5{ left:26%; top:84%; }
.ha6{ left:10%; top:55%; }
.ha7{ left:21%; top:24%; }
@media (max-width:959px){
  .hero-layout{ gap:var(--space-6); }
  .hero-photo{ aspect-ratio:auto; height:36svh; min-height:200px; max-height:300px; }
  .hero-illustration{ aspect-ratio:auto; display:grid; gap:var(--space-4); }
  .hero-brand{ position:static; transform:none; justify-self:center; width:clamp(120px,34vw,170px); }
  .hero-areas{ position:static; display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); }
  .hero-area{ position:static; transform:none; width:auto; display:flex; align-items:center; gap:var(--space-2); text-align:left; }
}
@media (min-width:960px){
  .hero-layout{ grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); }
  .hero h1{ font-size:var(--text-5xl); }
}

/* ── Áreas de atuação — 9 cards ─────────────────────────────────────── */
.svc-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-5); margin-top:var(--space-8); }
@media (min-width:640px){ .svc-grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:1024px){ .svc-grid{ grid-template-columns:repeat(3,1fr); } }
.svc-card{ display:grid; align-content:start; gap:var(--space-2); padding:var(--space-6); background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-card); }
.svc-card h3{ font-size:var(--text-h3); }
.svc-card h3 a{ text-decoration:none; }
.svc-card h3 a:hover{ color:var(--primary); }
.svc-card .ring{ --s:48px; background:var(--bg); border:3px solid var(--line); margin-bottom:var(--space-1); }
.svc-card .ring svg{ stroke:var(--primary); }
.svc-card .desc{ color:var(--ink-2); }
.svc-info{ font-size:var(--text-nav); color:var(--ink-2); }
.svc-info b{ color:var(--ink); font-weight:var(--weight-bold); }
.svc-more{ margin-top:var(--space-2); font-weight:var(--weight-bold); color:var(--primary); text-decoration:none; }
.svc-more:hover{ text-decoration:underline; }

/* ── Condições (cards linkáveis) ────────────────────────────────────── */
.cond{ display:block; color:inherit; text-decoration:none; transition:border-color var(--transition-fast); }
.cond:hover{ border-color:var(--primary); }

/* ── Como funciona: tempo + CTA ─────────────────────────────────────── */
.flow-time{ margin-top:var(--space-1); font-size:var(--text-meta); color:var(--ink-2); font-weight:var(--weight-semibold); }
.flow-cta{ margin-top:var(--space-8); }

/* ── Equipe: painel + grade/carrossel ───────────────────────────────── */
.team-panel{ display:grid; gap:var(--space-4); margin-top:var(--space-6); }
@media (min-width:640px){ .team-panel{ grid-template-columns:1fr 1fr; } }
@media (min-width:1024px){ .team-panel{ grid-template-columns:repeat(3,1fr); } }
.team-area h3{ font-size:var(--text-h4); }
.team-area h3 a{ text-decoration:none; }
.team-area p{ font-size:var(--text-caption); color:var(--ink-2); }
.person-actions{ display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:var(--space-2); }
.person-bio, .person-wa{ font-size:var(--text-meta); font-weight:var(--weight-bold); text-decoration:none; }
.person-bio{ color:var(--primary); }
.person-wa{ color:var(--ink); border-bottom:1px solid var(--line); }
.team-all{ margin-top:var(--space-6); text-align:center; }
.team--carrossel .team-panel{ display:none; }
.team--carrossel .team-grid{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:var(--space-4); margin-top:var(--space-6); padding-bottom:var(--space-2); }
.team--carrossel .person{ flex:0 0 100%; scroll-snap-align:start; }
@media (min-width:640px){ .team--carrossel .person{ flex-basis:calc(50% - var(--space-2)); } }
@media (min-width:900px){ .team--carrossel .person{ flex-basis:calc(33.333% - var(--space-3)); } }
@media (min-width:1100px){ .team--carrossel .person{ flex-basis:calc(25% - var(--space-3)); } }

/* ── Depoimentos: carrossel com rolagem nativa ──────────────────────── */
.testi-track{ display:flex; gap:var(--space-4); margin-top:var(--space-8); overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:var(--space-2); }
.testi-track .testi{ flex:0 0 100%; scroll-snap-align:start; }
@media (min-width:640px){ .testi-track .testi{ flex-basis:calc(50% - var(--space-2)); } }
@media (min-width:1024px){ .testi-track .testi{ flex-basis:calc(33.333% - var(--space-3)); } }

/* ── Nossa estrutura: mosaico, sem endereço ─────────────────────────── */
.gallery{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); margin-top:var(--space-8); }
.photo{ aspect-ratio:4/3; border-radius:var(--radius-20); overflow:hidden; background:linear-gradient(135deg,var(--wash),var(--wash2)); border:1px solid var(--line); }
.photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.photo--empty{ min-height:120px; }
@media (min-width:860px){
  .gallery{ grid-template-columns:repeat(4,1fr); grid-auto-rows:180px; }
  .gallery .photo{ aspect-ratio:auto; }
  .gallery .photo:nth-child(1){ grid-column:span 2; grid-row:span 2; }
  .gallery .photo:nth-child(2){ grid-column:span 2; }
}

/* ── Contato em 2 colunas (info, form, mapa) ────────────────────────── */
.contact-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-8); align-items:start; }
.contact-info dl{ margin:var(--space-6) 0 0; display:grid; gap:var(--space-4); }
.contact-info dt{ font-weight:var(--weight-bold); font-style:italic; }
.contact-info dd{ margin:0; opacity:.95; }
.contact-info dd a{ color:inherit; }
.contact-map{ min-width:0; }
.map-embed{ border-radius:var(--radius-20); overflow:hidden; border:1px solid var(--line); aspect-ratio:16/9; background:linear-gradient(135deg,var(--wash),var(--wash2)); }
.map-embed iframe{ width:100%; height:100%; border:0; display:block; }
.form-note{ font-size:var(--text-note); color:var(--ink-2); }
.form-consent{ display:flex; align-items:flex-start; gap:var(--space-2); font-size:var(--text-caption); }
.form-consent input{ width:auto; margin-top:3px; }
.form-consent a{ color:var(--primary); }
@media (min-width:860px){
  .contact-grid{ grid-template-columns:1fr 1fr; grid-template-areas:"info form" "map form"; }
  .contact-info{ grid-area:info; }
  .contact-grid .form{ grid-area:form; }
  .contact-map{ grid-area:map; }
}

/* ── Rodapé ─────────────────────────────────────────────────────────── */
.footer-grid{ display:grid; gap:var(--space-6); }
@media (min-width:860px){ .footer-grid{ grid-template-columns:1.2fr 1fr 1fr; align-items:start; } }
.footer-brand .sub{ margin-top:var(--space-2); }
.footer-nap{ margin-top:var(--space-3); font-size:var(--text-caption); line-height:1.6; }
.footer-nap a{ color:inherit; }
.footer-services ul{ list-style:none; margin:0; padding:0; display:grid; gap:var(--space-1); }
.footer-services a{ text-decoration:none; font-size:var(--text-caption); }
.footer-services em{ font-style:normal; color:var(--ink-2); }
.footer-grid .footer-links{ margin-top:0; display:flex; flex-direction:column; gap:var(--space-2); }
.footer-grid .footer-links a{ font-size:var(--text-caption); }

/* ── Modal "Ver bio" do profissional (dialogs.js) ───────────────────── */
.bio-dialog{ border:0; padding:0; width:min(92vw,520px); max-height:85dvh; border-radius:var(--radius-20); background:var(--surface); color:var(--ink); box-shadow:0 24px 64px rgba(29,26,43,.28); }
.bio-dialog::backdrop{ background:rgba(29,26,43,.55); }
.bio-dialog__inner{ position:relative; display:grid; gap:var(--space-2); padding:var(--space-8) var(--space-6) var(--space-6); overflow-y:auto; max-height:85dvh; }
.bio-dialog__close{ position:absolute; top:var(--space-2); right:var(--space-2); width:2.4rem; height:2.4rem; border:1px solid var(--line); border-radius:var(--radius-full); background:var(--surface); color:var(--ink); font-size:1.3rem; line-height:1; cursor:pointer; }
.bio-dialog__close:hover{ background:var(--wash); }
.bio-dialog__role{ margin:0; font:var(--weight-semibold) var(--text-caption) var(--font-body); color:var(--primary); text-transform:uppercase; letter-spacing:.04em; }
.bio-dialog__name{ margin:0; font-size:var(--text-h3); }
.bio-dialog__reg{ margin:0; font-size:var(--text-meta); color:var(--ink-2); }
.bio-dialog__tags{ display:flex; flex-wrap:wrap; gap:var(--space-1); }
.bio-dialog__tags span{ padding:.16rem .5rem; border-radius:var(--radius-full); background:var(--wash2); color:var(--ink); font:var(--weight-semibold) var(--text-tag)/1.1 var(--font-body); }
.bio-dialog__text{ margin:var(--space-2) 0 0; color:var(--ink-2); line-height:1.6; }
.bio-dialog__cta{ margin-top:var(--space-4); justify-self:start; }

/* ── Rolagem ancorada com header fixo (scroll.js) ───────────────────── */
html{ scroll-padding-top:calc(var(--header-h,74px) + var(--space-3)); }

/* ── Trava de rolagem do fundo (menu e diálogos) ────────────────────── */
body.is-locked{ overflow:hidden; }

/* ── Formulário sem JS: link de WhatsApp no lugar do form ───────────── */
.form-nojs{ display:none; }
.no-js .form{ display:none; }
.no-js .form-nojs{ display:inline-flex; justify-self:start; }
@media (min-width:860px){ .contact-grid .form-nojs{ grid-area:form; align-self:start; } }

/* ── Carrossel com controles (carousel.js) ──────────────────────────── */
.carousel{ position:relative; }
.testi-track{ --per-view:1; }
@media (min-width:640px){ .testi-track{ --per-view:2; } }
@media (min-width:1024px){ .testi-track{ --per-view:3; } }
.team--carrossel .team-grid{ --per-view:1; }
@media (min-width:640px){ .team--carrossel .team-grid{ --per-view:2; } }
@media (min-width:900px){ .team--carrossel .team-grid{ --per-view:3; } }
@media (min-width:1100px){ .team--carrossel .team-grid{ --per-view:4; } }
.carousel__controls{ display:flex; align-items:center; justify-content:center; gap:var(--space-3); margin-top:var(--space-4); }
.carousel__controls[hidden]{ display:none; }
.carousel__btn{ display:grid; place-items:center; width:44px; height:44px; min-width:44px; min-height:44px; padding:0; border:2px solid var(--ink); border-radius:50%; background:var(--surface); color:var(--ink); font-size:1.4rem; line-height:1; cursor:pointer; }
.carousel__btn:hover:not(:disabled){ background:var(--ink); color:var(--bg); }
.carousel__btn:disabled{ opacity:.35; cursor:default; }
.carousel__status{ margin:0; min-width:9ch; text-align:center; font-size:var(--text-nav); color:var(--ink-2); }

/* ── Estado vazio dos filtros ───────────────────────────────────────── */
.empty-cta{ font-weight:var(--weight-bold); color:var(--primary); text-decoration:underline; text-underline-offset:3px; }

/* ── Elementos escondidos por JS precisam de regra explícita ────────── */
.svc-card[hidden], .team-panel[hidden]{ display:none; }

/* ── Bio do profissional: cabeçalho e foto ──────────────────────────── */
.bio-dialog__head{ display:flex; align-items:center; gap:var(--space-3); }
.bio-dialog__photo{ width:64px; height:64px; flex:0 0 64px; border-radius:50%; object-fit:cover; }
.bio-dialog__photo--initials{ display:grid; place-items:center; background:var(--wash2); color:var(--ink); font:var(--weight-bold) 1.3rem var(--font-body); }
.bio-dialog__tags[hidden], .bio-dialog__cta[hidden]{ display:none; }

/* ── Galeria ampliada (visor de imagens) ────────────────────────────── */
.gallery .photo img{ cursor:zoom-in; }
.gallery .photo img:focus-visible{ outline:2px solid var(--color-primary); outline-offset:3px; }
.lightbox{ border:0; padding:0; background:transparent; max-width:96vw; max-height:92dvh; }
.lightbox::backdrop{ background:rgba(20,16,30,.86); }
.lightbox__figure{ position:relative; margin:0; display:grid; gap:var(--space-2); justify-items:center; }
.lightbox__img{ display:block; width:auto; height:auto; max-width:92vw; max-height:74dvh; border-radius:var(--radius-md); }
.lightbox__cap{ margin:0; max-width:70ch; text-align:center; color:var(--white); font-size:var(--text-nav); }
.lightbox__controls{ display:flex; align-items:center; justify-content:center; gap:var(--space-3); margin-top:var(--space-2); }
.lightbox__btn{ display:grid; place-items:center; width:44px; height:44px; padding:0; border:2px solid rgba(255,255,255,.7); border-radius:50%; background:transparent; color:var(--white); font-size:1.4rem; line-height:1; cursor:pointer; }
.lightbox__btn:disabled{ opacity:.35; cursor:default; }
.lightbox__close{ position:absolute; top:var(--space-2); right:var(--space-2); }

/* ── Mapa: fachada com "Ver mapa" (map.js) ──────────────────────────── */
.map-facade{ position:relative; display:grid; place-items:center; align-content:center; gap:var(--space-3); aspect-ratio:16/9; padding:var(--space-6); border:1px solid var(--line); border-radius:var(--radius-20); background:linear-gradient(135deg,var(--wash),var(--wash2)); text-align:center; overflow:hidden; }
.map-facade iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.map-facade__directions{ font-weight:var(--weight-bold); color:var(--primary); }

/* ==========================================================================
   ETAPA 7 — UI/mobile e acessibilidade (WCAG AA)
   Só CSS + atributos: nada de copy, SEO, estrutura de seção ou lógica de JS.
   Complementa (não substitui) as regras acima — carrega depois e vence no
   empate de especificidade.
   ========================================================================== */

/* ── Alvos de toque ≥44×44px (WCAG 2.5.5) ─────────────────────────────── */
.menu-btn{ min-height:44px; min-width:44px; }
.logo{ min-height:44px; }
.header-cta{ min-height:44px; }
.ftab{ min-height:44px; }
.fchip,.tchip{ min-height:44px; padding-block:.55rem; }
.hero-tel{ display:inline-flex; align-items:center; min-height:44px; }
.svc-more{ display:inline-flex; align-items:center; min-height:44px; }
.map-facade__directions{ display:inline-flex; align-items:center; min-height:44px; }
.team-area h3 a{ display:inline-flex; align-items:center; min-height:44px; min-width:44px; }
.svc-card h3 a{ display:inline-flex; align-items:center; min-height:44px; }
.person-bio,.person-wa{ display:inline-flex; align-items:center; min-height:44px; }
.nav a{ display:inline-flex; align-items:center; min-height:44px; }
.nav-sub a{ display:flex; align-items:center; min-height:44px; }
.footer-services ul{ gap:var(--space-2); }
.footer-services a,.footer-grid .footer-links a,.footer-nap a{ display:inline-flex; align-items:center; min-height:44px; }
.form-consent{ align-items:center; min-height:44px; }
.form-consent input{ width:24px; height:24px; flex:none; margin-top:0; }

/* ── Chips de filtro: linha única com rolagem + fade nas bordas (mobile) ── */
@media (max-width:640px){
  .chips{ flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; padding-block:4px; scrollbar-width:none;
    -webkit-mask-image:linear-gradient(to right, #000 calc(100% - 28px), transparent); mask-image:linear-gradient(to right, #000 calc(100% - 28px), transparent); }
  .chips::-webkit-scrollbar{ display:none; }
  .fchip,.tchip{ flex:0 0 auto; scroll-snap-align:start; }
}

/* ── Hero: CTA visível sem rolar em 360×640 ───────────────────────────── */
@media (max-width:600px){
  .hero{ padding-block-start:clamp(20px,5vw,36px); }
  .hero-photo{ aspect-ratio:21/9; height:auto; min-height:0; max-height:none; }
  .hero h1{ font-size:clamp(1.9rem,7.6vw,2.4rem); }
  .hero-actions{ margin-top:var(--space-5); }
  .badge{ margin-top:var(--space-4); }
}

/* ── Contraste: rótulo do hero no hover (a cor da área reprova AA) ────── */
.hero-area:hover b, .hero-area:focus-visible b{ color:var(--primary-dark); }

/* ── Dialog de bio: alvo de fechar ≥44px + safe area ──────────────────── */
.bio-dialog__close{ width:44px; height:44px; }
.bio-dialog__inner{ padding-bottom:calc(var(--space-6) + env(safe-area-inset-bottom,0px)); }

/* ── Rodapé: safe area ────────────────────────────────────────────────── */
.footer{ padding-bottom:calc(var(--space-44px) + env(safe-area-inset-bottom,0px)); }

/* ── Foco visível em superfícies escuras (o roxo do foco desaparece) ──── */
.lightbox__btn:focus-visible, .lightbox__close:focus-visible,
.contact :focus-visible, .footer :focus-visible{ outline-color:var(--white); }

/* ── Estados padronizados (hover/active/disabled/erro) ────────────────── */
.btn:active{ filter:brightness(.92); }
.btn:disabled,.btn[aria-disabled="true"]{ opacity:.55; cursor:not-allowed; filter:none; }
.fchip:active,.tchip:active,.ftab:active{ transform:translateY(1px); }
.carousel__btn:active:not(:disabled),.lightbox__btn:active:not(:disabled){ transform:scale(.94); }
.form .is-invalid{ background:color-mix(in srgb, var(--color-error) 6%, var(--surface)); }

/* ── Card de serviço: tags de público/modalidade + descrição recolhível ── */
.svc-tags{ display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:var(--space-2); }
.svc-tags:empty{ display:none; }
.svc-tag{ display:inline-flex; align-items:center; gap:.35rem; margin:0; padding:.28rem .6rem; border:1px solid var(--line); border-radius:var(--radius-full); background:var(--bg); font-size:var(--text-nav); color:var(--ink-2); }
.svc-tag b{ color:var(--ink); font-weight:var(--weight-bold); }
.svc-details{ margin-top:var(--space-1); }
.svc-details > summary{ list-style:none; cursor:pointer; display:inline-flex; align-items:center; gap:.35rem; min-height:44px; font-weight:var(--weight-bold); color:var(--primary); }
.svc-details > summary::-webkit-details-marker{ display:none; }
.svc-details > summary::after{ content:"›"; font-size:1.2em; line-height:1; transition:transform .2s; }
.svc-details[open] > summary::after{ transform:rotate(90deg); }
@media (min-width:600px){
  .svc-details > summary{ display:none; }
  .svc-details::details-content{ content-visibility:visible; }
  .svc-details:not([open]) > *:not(summary){ display:block; }
}
