/* Refino boutique — carregado por último.
   1) Um só raio de canto no site inteiro: 3px (2px nos itens pequenos).
   2) Títulos em Sora Light, frase normal; destaque em Medium. */
:root { --r: 3px; --r-s: 2px; }

/* ---------- 1. cantos ---------- */
.btn, .hd-cta, .form-card .btn { border-radius: var(--r); }
.split-img, .fr-img, .case, .crm-card, .measure, .fronts, .cta-row, .form-card, .eq, .lap-scr { border-radius: var(--r); }
.crm-win, .form-card input, .form-card select, .form-card .form-msg, .funnel li, .selo { border-radius: var(--r); }
.mq-row img, .logos li, .case-nav, .ft-social a { border-radius: var(--r); }
.case-nav button, .tags li, .crm-feats li, .crm-logo span, .case-plano { border-radius: var(--r-s); }
.lap-base { border-radius: 0 0 var(--r) var(--r); }
.form-card::before { border-radius: 0; left: 0; right: 0; }

/* ---------- 2. tipografia ---------- */
.t0, .t1, .t2, .h2, .crm-card .h2, .case-name, .cta-t, .form-t, .outras b, .mega, .nums dt, .kpis dt, .case-metrics b, .bt-preco-v, .preco-v .mega {
  font-weight: 300; text-transform: none;
}
.t0 { font-size: clamp(36px, 4.6vw, 64px); line-height: 1.06; letter-spacing: -.035em; max-width: 15ch; }
.t1 { font-size: clamp(28px, 3vw, 42px); line-height: 1.1; letter-spacing: -.03em; }
.t2, .h2 { font-size: clamp(26px, 2.7vw, 38px); line-height: 1.12; letter-spacing: -.03em; }
.crm-card .h2 { font-size: clamp(24px, 2.5vw, 34px); }
.case-name { font-size: clamp(22px, 2.1vw, 30px); letter-spacing: -.025em; line-height: 1.15; }
.cta-t { font-size: clamp(18px, 1.7vw, 23px); letter-spacing: -.02em; }
.form-t { font-size: clamp(20px, 1.8vw, 24px); letter-spacing: -.02em; }
.outras b { font-size: clamp(20px, 1.9vw, 26px); }
.nums dt, .kpis dt { font-weight: 400; }
.case-metrics b { font-weight: 400; }
/* destaque dentro de títulos em Medium */
.t0 strong, .t1 strong, .t2 strong, .h2 strong, .t0 .hl, .t1 .hl, .t2 .hl, .h2 .hl, .t1 .az, .t2 .az, .mega .az { font-weight: 500; }
.t0 strong { color: #fff; }
.dot { font-weight: 500; }
/* títulos menores de cards e listas: Medium, sem caixa alta */
.fronts h3, .grade h3, .timeline h3, .funnel b, .measure li, .depois b, .linhas b, .escada b, .faq summary, .tabs button { font-weight: 500; text-transform: none; letter-spacing: -.01em; }
.timeline h3 { font-size: 16.5px; }
.funnel b { font-size: 15.5px; letter-spacing: 0; }
.linhas b { font-size: 14px; letter-spacing: 0; }
.tabs button { font-size: clamp(16px, 1.5vw, 20px); letter-spacing: -.015em; }
.eq figcaption b { font-weight: 500; text-transform: none; font-size: clamp(14px, 1.2vw, 17px); }
.measure li { font-weight: 400; }
.measure-col.on li { font-weight: 500; }

/* abas das frentes no formato de sub-marca: "bravint" + plano */
.tabs { gap: 8px; border-bottom: 1px solid var(--fio-d); }
.tabs button { flex-direction: column; align-items: flex-start; gap: 6px; padding: 14px 18px 16px; border: 1px solid transparent; border-bottom: 0; border-radius: var(--r) var(--r) 0 0; color: #4E586F; cursor: pointer; transition: color .25s, background-color .25s, border-color .25s; }
.tabs .tb-marca { font: 600 clamp(22px, 2vw, 28px)/.9 var(--f-t); letter-spacing: -.045em; text-transform: none; }
.tabs .tb-plano { font: 500 10.5px/1 var(--f-m); letter-spacing: .22em; text-transform: uppercase; }
.tabs button:hover { color: #C9CFDA; background: rgba(255,255,255,.03); border-color: var(--fio-d); }
.tabs button[aria-selected="true"] { color: #fff; background: rgba(46,107,240,.06); border-color: var(--fio-d); }
.tabs button[aria-selected="true"] .tb-plano { color: var(--azul-c); }
.tabs button i { left: 0; right: 0; height: 2px; }

/* Capa das frentes: promessa em 2 linhas e prova de case logo abaixo dos botões */
.t0.t0-prom { max-width: 22ch; }
.capa .t0-prom + .lead { max-width: 54ch; }
.capa-prova { margin: 22px 0 0; display: flex; align-items: baseline; gap: 10px; font: 400 14px/1.4 var(--f-c); color: #C9CFDA; }
.capa-prova b { font: 500 11px/1 var(--f-m); letter-spacing: .2em; text-transform: uppercase; color: var(--azul-c); }

/* Frentes: "É para você se / Ainda não é o momento se" em dois cartões contrastantes */
.fit { display: grid; grid-template-columns: 1.15fr 1fr; gap: 18px; margin-top: clamp(28px, 3vw, 44px); align-items: stretch; }
.fit-c { border-radius: var(--r); padding: clamp(26px, 3vw, 40px); }
.fit-sim { background: var(--navy); color: #fff; box-shadow: 0 34px 60px -34px rgba(10,15,30,.55); position: relative; overflow: hidden; }
.fit-sim::before { content: ""; position: absolute; inset: -40% -20% auto auto; width: 70%; aspect-ratio: 1; background: radial-gradient(closest-side, rgba(46,107,240,.28), transparent); pointer-events: none; }
.fit-nao { background: #fff; border: 1px solid var(--fio-l); }
.fit-t { position: relative; margin: 0 0 22px; font: 300 clamp(20px, 1.9vw, 26px)/1.2 var(--f-t); letter-spacing: -.02em; }
.fit-sim .fit-t { color: #fff; }
.fit-nao .fit-t { color: var(--cinza-2); }
.fit ul { position: relative; list-style: none; margin: 0; padding: 0; display: grid; }
.fit li { display: grid; grid-template-columns: 28px 1fr; gap: 14px; align-items: start; padding: 16px 0; border-top: 1px solid var(--fio-l); font: 500 clamp(15.5px, 1.25vw, 18px)/1.45 var(--f-c); }
.fit-sim li { border-color: rgba(255,255,255,.1); color: #fff; }
.fit-nao li { color: var(--cinza-2); font-weight: 400; }
.fit svg { width: 28px; height: 28px; border-radius: 50%; padding: 5px; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; margin-top: -2px; }
.fit-sim svg { background: var(--azul); stroke: #fff; }
.fit-nao svg { background: #EEF0F4; stroke: var(--cinza); }
@media (max-width: 900px) { .fit { grid-template-columns: 1fr; } }

/* Garantia em seção própria: número grande à esquerda, promessa à direita */
.gar { display: grid; grid-template-columns: auto 1fr; gap: clamp(32px, 6vw, 96px); align-items: center; }
.gar-n { margin: 0; padding-right: clamp(32px, 6vw, 96px); border-right: 1px solid var(--fio-l); display: grid; justify-items: center; gap: 10px; }
.gar-n b { font: 300 clamp(110px, 12vw, 180px)/.85 var(--f-t); letter-spacing: -.06em; color: var(--azul); }
.gar-n span { font: 400 11px/1 var(--f-m); letter-spacing: .24em; text-transform: uppercase; color: var(--cinza); }
.gar-txt { display: grid; gap: 14px; max-width: 640px; }
.gar-txt .t1 { max-width: 18ch; }
.gar-txt hr.fio { margin: 6px 0; }
@media (max-width: 700px) { .gar { grid-template-columns: 1fr; } .gar-n { border-right: 0; padding: 0 0 24px; border-bottom: 1px solid var(--fio-l); justify-items: start; } }

/* Depoimentos com 2 vídeos (páginas das frentes): duas colunas iguais em vez de 3 */
@media (min-width: 901px) { .deps:has(> .dep:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Rótulos azuis acima dos títulos: mesmo espaçamento do antigo .rot nesses blocos */
.split-txt .lbl, .gar-txt .lbl { margin-bottom: 0; }
.cab .lbl, .faq .lbl { margin-bottom: 10px; }

/* Logos fixos (frente com poucas marcas do segmento) */
.logos-fixos { display: flex; flex-wrap: wrap; gap: 16px; }
.logos-fixos img { width: 112px; height: 112px; object-fit: cover; border-radius: var(--r); }
/* Promessa com linha longa: fonte menor para manter 2 linhas, sem quebra extra */
.t0.t0-longo { max-width: none; font-size: clamp(30px, 3.75vw, 54px); }
@media (min-width: 901px) { .t0.t0-longo { white-space: nowrap; } }
/* Destaque dentro do subtítulo da capa das frentes */
.capa .lead b { font-weight: 600; color: #fff; }

/* Outras frentes: seta logo depois do nome, avançando no hover */
.outras a { grid-template-columns: 1fr; }
.outras b { display: inline-flex; align-items: center; gap: 12px; }
.outras b .ar { grid-row: auto; grid-column: auto; width: 20px; height: 20px; transition: transform .25s; }
.outras a:hover b .ar { transform: translateX(4px); }

/* Frentes: uma fileira só de logos em carrossel, um pouco maiores */
.mq-uma .mq-row { animation-duration: 45s; }
.mq-uma .mq-row img { width: 112px; height: 112px; }

/* Formulário enviado */
.form-ok { display: grid; gap: 14px; padding: 8px 0; }
.form-ok .btn { margin-top: 8px; justify-content: center; }

/* Depoimentos com 4 vídeos (matriz): grade 2 × 2 */
@media (min-width: 901px) { .deps:has(> .dep:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
