/* Bravi — Tráfego pago para médicos */
@font-face{font-family:'Swift Sage';src:url('../fonts/SwiftSage.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Swift Sage';src:url('../fonts/SwiftSageItalic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Arial Nova';src:url('../fonts/ArialNova-Light.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Arial Nova';src:url('../fonts/ArialNova-LightItalic.woff2') format('woff2');font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:'Arial Nova';src:url('../fonts/ArialNova.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Arial Nova';src:url('../fonts/ArialNova-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Arial Nova Cond';src:url('../fonts/ArialNovaCond.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Arial Nova Cond';src:url('../fonts/ArialNovaCond-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}

:root{
/* Brand palette (source: brand brief) */
--bravi-espresso:#4e2b1b;
--bravi-linen:#e7e1d9;
--bravi-ink:#17130f;
--bravi-sand:#b9997e;
--bravi-cocoa:#866951;
/* Derived tints/shades (oklch steps from the brand palette) */
--bravi-espresso-700:#3c2014;
--bravi-espresso-600:#5f3726;
--bravi-linen-50:#f6f3ef;
--bravi-linen-100:#efebe5;
--bravi-linen-300:#d9d0c5;
--bravi-sand-200:#d6c3b1;
--bravi-white:#fdfcfa;
/* Earth-toned semantic */
--bravi-moss:#5d6b48;
--bravi-rust:#9a3b22;
--bravi-ochre:#a87b2f;

/* Semantic aliases */
--surface-page:var(--bravi-linen);
--surface-raised:var(--bravi-linen-50);
--surface-card:var(--bravi-white);
--surface-sunken:var(--bravi-linen-100);
--surface-inverse:var(--bravi-espresso);
--surface-ink:var(--bravi-ink);
--text-primary:var(--bravi-ink);
--text-brand:var(--bravi-espresso);
--text-secondary:var(--bravi-cocoa);
--text-muted:#7a6553;
--text-on-brand:var(--bravi-linen);
--text-accent:var(--bravi-sand);
--border-subtle:var(--bravi-linen-300);
--border-default:var(--bravi-sand-200);
--border-strong:var(--bravi-cocoa);
--border-brand:var(--bravi-espresso);
--action-primary:var(--bravi-espresso);
--action-primary-hover:var(--bravi-espresso-600);
--action-primary-press:var(--bravi-espresso-700);
--action-secondary:var(--bravi-sand);
--focus-ring:var(--bravi-sand);
--status-success:var(--bravi-moss);
--status-error:var(--bravi-rust);
--status-warning:var(--bravi-ochre);
--overlay-scrim:rgba(23,19,15,.48);
--overlay-photo:linear-gradient(180deg,rgba(78,43,27,.55) 0%,rgba(78,43,27,.15) 45%,rgba(78,43,27,.35) 100%); /* @kind other */
--text-highlight:#d9cbbd;
}

:root{
--font-display:'Swift Sage','Cormorant Garamond',Georgia,serif;
--font-sans:'Arial Nova','Helvetica Neue',Arial,sans-serif;
--font-script:'Swift Sage',Georgia,serif;
--font-mono:'Courier Prime','Courier New',monospace;
--font-sans-cond:'Arial Nova Cond','Arial Narrow',sans-serif;
--fw-light:300;
--fw-regular:400;
--fw-bold:700;
--fs-display-xl:96px;--fs-display-l:72px;--fs-display-m:56px;
--fs-h1:44px;--fs-h2:34px;--fs-h3:26px;--fs-h4:20px;
--fs-body-l:18px;--fs-body:16px;--fs-body-s:14px;--fs-caption:12px;--fs-overline:11px;
--lh-tight:1.04;
--lh-display:0.9;
--lh-heading:1.15;
--lh-body:1.55;
--ls-display:-0.02em;
--ls-display-tight:-0.045em;
--ls-heading:-0.01em;
--ls-body:0;
--ls-overline:0.16em;
--text-display-family:var(--font-display);
--text-body-family:var(--font-sans);
}

:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:144px;
--radius-0:0;--radius-xs:2px;--radius-s:4px;--radius-m:8px;--radius-l:16px;--radius-xl:24px;--radius-pill:999px;
--border-hair:1px;--border-thick:1.5px;
--shadow-0:none;
--shadow-1:0 1px 2px rgba(23,19,15,.06),0 2px 8px rgba(78,43,27,.06);
--shadow-2:0 4px 16px rgba(78,43,27,.10),0 1px 3px rgba(23,19,15,.06);
--shadow-3:0 16px 48px rgba(23,19,15,.18);
--ease-out:cubic-bezier(.22,.61,.36,1);
--ease-inout:cubic-bezier(.65,0,.35,1);
--dur-fast:140ms;
--dur-base:240ms;
--dur-slow:480ms;
--container-max:1240px;--gutter:24px;
}

a{color:var(--text-brand);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--bravi-cocoa)}
::selection{background:var(--bravi-sand-200);color:var(--bravi-ink)}

@keyframes tpPulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.6}100%{transform:translate(-50%,-50%) scale(2.6);opacity:0}}
@keyframes tpType{0%,100%{opacity:.25}50%{opacity:1}}
body{margin:0;background:#e7e1d9}
html{scroll-behavior:smooth}
a{color:#4e2b1b}
a:hover{color:#866951}
details>summary{list-style:none}
details>summary::-webkit-details-marker{display:none}
details[open] .tp-sign{transform:rotate(45deg)}
input::placeholder{color:#a8988a}
:root{--hdr-note:inline;--sticky:sticky;--etapa-cols:repeat(4,minmax(0,1fr))}
@media (max-width:999px){:root{--etapa-cols:repeat(2,minmax(0,1fr))}}
@media (max-width:719px){:root{--sticky:static}}
@media (max-width:599px){:root{--hdr-note:none}}
@media (max-width:559px){:root{--etapa-cols:minmax(0,1fr)}}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--focus-ring,#b9997e);outline-offset:4px}
details>summary{list-style:none}
/* formulário */
.tpf{display:flex;flex-direction:column;gap:24px;flex:1}
.tpf-head{display:none;flex-direction:column;gap:14px}
.js .tpf-head{display:flex}
.tpf-meta{display:flex;justify-content:space-between;gap:16px;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--bravi-cocoa)}
.tpf-dots{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.tpf-dot{height:4px;border-radius:999px;background:rgba(78,43,27,.15);transition:background 480ms cubic-bezier(.22,.61,.36,1)}
.tpf-dot.done{background:var(--bravi-espresso)}.tpf-dot.cur{background:var(--bravi-sand)}
.tpf-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.tpf-body{display:flex;flex-direction:column;gap:36px}
.tpf-step{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:10px}
.js .tpf-step{display:none}
.js .tpf-step.on{display:flex;animation:tpfIn 320ms cubic-bezier(.22,.61,.36,1)}
@keyframes tpfIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.tpf-q{padding:0;font-family:var(--font-display);font-size:clamp(28px,3.2vw,44px);line-height:1;letter-spacing:-0.025em;color:var(--bravi-espresso);text-wrap:balance}
.tpf-hint{font-size:15px;font-weight:300;color:var(--bravi-cocoa);margin-bottom:6px}
.tpf-input{font:inherit;font-family:var(--font-display);font-size:clamp(24px,2.6vw,32px);letter-spacing:-0.01em;color:var(--bravi-ink);background:transparent;border:0;border-bottom:1.5px solid var(--border-strong);border-radius:0;padding:10px 0 14px;outline:none;width:100%}
.tpf-input:focus{border-bottom-color:var(--bravi-espresso)}
.tpf-input::placeholder{color:#a8988a}
.tpf-opts{display:flex;flex-direction:column;gap:10px}
.tpf-opt{position:relative;cursor:pointer;display:grid;grid-template-columns:32px 1fr;gap:14px;align-items:center;padding:16px 18px;border-radius:16px;border:1px solid var(--border-subtle);background:var(--bravi-white);color:var(--bravi-ink);font-size:16px;line-height:1.4;transition:background 240ms cubic-bezier(.22,.61,.36,1),color 240ms,border-color 240ms}
.tpf-opt:hover{border-color:var(--bravi-espresso)}
.tpf-opt input{position:absolute;opacity:0;width:1px;height:1px}
.tpf-k{width:32px;height:32px;border-radius:8px;border:1px solid var(--border-strong);display:grid;place-items:center;font-family:var(--font-mono);font-size:12px}
.tpf-opt:has(input:checked){background:var(--bravi-espresso);color:var(--bravi-linen);border-color:var(--bravi-espresso)}
.tpf-opt:has(input:checked) .tpf-k{border-color:var(--bravi-sand)}
.tpf-opt:has(input:focus-visible){outline:2px solid var(--bravi-sand);outline-offset:3px}
.tpf-err{margin:0;font-size:14px;color:var(--bravi-espresso);background:rgba(185,153,126,.3);border-radius:12px;padding:12px 14px}
.tpf-nav{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.tpf-back{all:unset;cursor:pointer;font-family:var(--font-sans-cond);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--bravi-espresso);padding:12px 0}
.tpf-back:hover{color:var(--bravi-cocoa)}.tpf-back[hidden]{display:none}
.tpf-keyhint{display:none;font-size:13px;font-weight:300;color:var(--bravi-cocoa)}
@media (min-width:720px){.js .tpf-keyhint{display:inline}}
.tpf-next,.tpf-btn{all:unset;box-sizing:border-box;cursor:pointer;margin-left:auto;display:inline-flex;justify-content:center;align-items:center;gap:12px;text-align:center;background:var(--bravi-espresso);color:var(--bravi-linen);padding:18px 26px;border-radius:2px;font-family:var(--font-sans-cond);font-size:clamp(12px,3.2vw,14px);letter-spacing:.14em;text-transform:uppercase;line-height:1.4;text-decoration:none}
.tpf-next:hover,.tpf-btn:hover{background:var(--bravi-espresso-600);color:var(--bravi-linen)}
.tpf-next:active{transform:scale(.98)}
.tpf-next[aria-busy="true"]{opacity:.6;pointer-events:none}
.tpf-legal{margin:0;font-size:13px;line-height:1.5;font-weight:300;color:var(--bravi-cocoa)}
.tpf-done{display:flex;flex-direction:column;gap:20px;margin:auto 0}
.tpf-done[hidden]{display:none}
.tpf-check{width:56px;height:56px;border-radius:50%;background:var(--bravi-espresso);color:var(--bravi-linen);display:grid;place-items:center}
.tpf-done-t{margin:0;font-family:var(--font-display);font-size:clamp(30px,3.4vw,46px);line-height:1;letter-spacing:-0.025em;color:var(--bravi-espresso)}
.tpf-done-t i{color:var(--bravi-cocoa)}
.tpf-done-p{margin:0;font-size:16px;line-height:1.6;font-weight:300;max-width:460px}
.tpf-done .tpf-btn{margin-left:0;align-self:flex-start}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* estados */
.hv1:hover{background:var(--bravi-espresso)!important;color:var(--bravi-linen)!important}
.hv2:hover{background:var(--bravi-espresso-600)!important;color:var(--bravi-linen)!important}
.hv3:hover{background:var(--bravi-linen)!important;color:var(--bravi-espresso)!important}
.hv4:hover{transform:translateY(-2px)!important;color:var(--bravi-linen)!important}

.tpf[hidden]{display:none}
