/* ==========================================================================
   CaptAI — sistema visual (rebranding)
   Tudo aqui usa o prefixo .cx- para não interferir nas telas de admin,
   que continuam usando style.css.
   ========================================================================== */

:root {
  --cx-pine: #034936;
  --cx-pine-2: #0b5c45;
  --cx-sage: #71AB7E;
  --cx-lime: #E6FF99;
  --cx-lime-soft: #F2FFD1;
  --cx-ivory: #FAFFEC;
  --cx-carbon: #171818;
  --cx-text-2: #3d4a44;
  --cx-text-3: #56645c;
  --cx-line: #e2ecd2;
  --cx-line-2: #d3e0c4;
  --cx-field: #c9dcb8;
  --cx-warn: #C98A00;
  --cx-warn-bg: #FFF6DC;
  --cx-warn-text: #5c4300;
  --cx-err: #B3261E;
  --cx-err-bg: #FBECEA;
  --cx-err-text: #8a2b2b;
  --cx-sans: var(--sans);
  --cx-serif: var(--editorial);
  --cx-r-card: 20px;
  --cx-r-ctl: 12px;
  --cx-r-big: 16px;
  --cx-ease: cubic-bezier(.16, .9, .24, 1);
}

/* ---------- base ---------- */
.cx [hidden] { display: none !important; }
.cx-flow-nav { display: none; }
.cx-js .cx-flow-nav { display: flex; }
body.cx {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  font-family: var(--cx-sans);
  font-stretch: 100%;
  font-variation-settings: normal;
  background: var(--cx-ivory);
  color: var(--cx-carbon);
  border-top: 0;
  line-height: 1.55;
  font-variant-numeric: lining-nums;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
.cx h1, .cx h2, .cx h3 { font-family: var(--cx-sans); font-stretch: 100%; font-variation-settings: normal; font-weight: 600; letter-spacing: -0.03em; color: var(--cx-carbon); }
.cx a { color: var(--cx-pine); text-decoration: none; }
.cx a:hover { color: var(--cx-carbon); text-decoration: none; }
.cx .cx-num, .cx time, .cx .cx-tab { font-variant-numeric: lining-nums tabular-nums; }
.cx :where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--cx-pine); outline-offset: 3px; }
.cx-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- fundo vivo (auroras + granulado) ---------- */
.cx-stage { position: relative; isolation: isolate; overflow: clip; padding-top: 20px; }
.cx-stage > .cx-flashes { margin-top: 0; }
.cx-legal-modal { position: fixed; inset: 0; margin: auto; width: min(900px, calc(100% - 32px)); height: fit-content; max-width: none; max-height: min(90dvh, 900px); padding: 0; border: 1px solid var(--cx-line); border-radius: 22px; background: var(--cx-ivory); color: var(--cx-carbon); box-shadow: 0 24px 80px rgba(3, 35, 25, .25); overflow: hidden; }
.cx-legal-modal::backdrop { background: rgba(5, 25, 18, .65); }
.cx-legal-modal-shell { display: flex; flex-direction: column; max-height: min(90dvh, 900px); }
.cx-legal-modal-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 20px; border-bottom: 1px solid var(--cx-line); flex-shrink: 0; }
.cx-legal-modal-bar strong { font-size: 16px; font-weight: 600; }
.cx-legal-close { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex-shrink: 0; border: 1px solid var(--cx-line); border-radius: 12px; background: #fff; color: var(--cx-pine); font-size: 26px; line-height: 1; cursor: pointer; }
.cx-legal-modal-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 20px clamp(18px, 4vw, 40px) 32px; }
.cx-legal-modal-body .legal-card { max-width: none; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.cx-aurora { position: absolute; border-radius: 50%; filter: blur(70px); pointer-events: none; z-index: -1; animation: cx-drift 18s ease-in-out infinite alternate; }
.cx-aurora.a1 { width: 760px; height: 620px; right: -140px; top: -200px; background: var(--cx-lime); opacity: .85; }
.cx-aurora.a2 { width: 620px; height: 560px; left: -220px; top: 140px; background: #d3e9cc; opacity: .9; animation-duration: 23s; animation-delay: -6s; }
.cx-aurora.a3 { width: 520px; height: 460px; right: 22%; bottom: -240px; background: #bfdcb9; opacity: .7; animation-duration: 27s; animation-delay: -12s; }
.cx-aurora.a4 { width: 380px; height: 380px; left: 38%; top: -140px; background: #F4FFD6; opacity: .95; animation-duration: 31s; animation-delay: -3s; }
@keyframes cx-drift { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(60px,-40px) scale(1.15); } 100% { transform: translate(-40px,30px) scale(.92); } }
.cx-grain { position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .09; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E"); }
.cx-spot { position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(520px circle at var(--mx, 70%) var(--my, 40%), rgba(255,255,255,.75), rgba(255,255,255,0) 65%); }

/* ---------- navegação ---------- */
.cx-nav { position: sticky; top: 0; z-index: 40; display: flex; align-items: center; justify-content: space-between; gap: 24px;
  min-height: 72px; padding: 0 clamp(16px, 4vw, 56px); background: rgba(250,255,236,.82); backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--cx-line); }
.cx-nav-left { display: flex; align-items: stretch; gap: 44px; min-height: 72px; }
.cx-brand { display: flex; align-items: center; }
.cx-brand img { height: 28px; width: auto; display: block; }
.cx-tabs { display: flex; align-items: stretch; gap: 30px; }
.cx-tab { display: flex; align-items: center; font-size: 15px; font-weight: 500; color: var(--cx-text-3) !important; text-decoration: none; transition: color .15s ease; }
.cx-tab:hover { color: var(--cx-carbon) !important; }
.cx-tab[aria-current="page"] { color: var(--cx-carbon) !important; font-weight: 600; box-shadow: inset 0 -2px 0 var(--cx-pine); }
.cx-nav-right { display: flex; align-items: center; gap: 18px; font-size: 15px; }
.cx-user { color: var(--cx-text-2); }
.cx-divider { width: 1px; height: 20px; background: var(--cx-line-2); }
.cx-linkbtn { min-height: 44px; padding: 0; border: 0; background: transparent; font: inherit; font-size: 15px; font-weight: 500; color: var(--cx-text-3); cursor: pointer; }
.cx-linkbtn:hover { color: var(--cx-carbon); }
.cx-nav form { display: inline; margin: 0; }
@media (max-width: 760px) {
  .cx-nav { display: block; padding: 0 16px; min-height: 0; }
  .cx-nav-left { flex-wrap: wrap; min-height: 0; gap: 0; }
  .cx-brand { height: 56px; }
  .cx-brand img { height: 22px; }
  .cx-tabs { width: 100%; gap: 22px; min-height: 44px; overflow-x: auto; }
  .cx-tab { white-space: nowrap; }
  .cx-user, .cx-divider { display: none; }
  .cx-nav-right { position: absolute; right: 16px; top: 0; height: 56px; gap: 14px; }
  .cx-nav-right .cx-btn.sm { min-height: 40px; padding: 0 16px; font-size: 14px; }
}
@media (max-width: 360px) {
  .cx-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; overflow: visible; }
  .cx-tab { justify-content: center; text-align: center; white-space: normal; font-size: 13px; line-height: 1.2; padding: 4px 0; }
  .cx-main .cx-field.xl { font-size: 20px; }
}

/* ---------- containers ---------- */
.cx-main { width: 100%; max-width: 1168px; margin: 0 auto; padding: 48px clamp(16px, 4vw, 56px) 96px; box-sizing: border-box; }
.cx-main.narrow { max-width: 720px; }
.cx-card { background: #fff; border: 1px solid var(--cx-line); border-radius: var(--cx-r-card); }
.cx-glass { background: rgba(255,255,255,.62); border: 1px solid rgba(255,255,255,.9); border-radius: 28px; backdrop-filter: blur(20px); box-shadow: 0 30px 60px -40px rgba(3,73,54,.45); }
.cx-title { margin: 0; font-size: clamp(30px, 4vw, 44px); line-height: 1.05; }
.cx-lead { margin: 0; font-size: clamp(16px, 1.6vw, 18px); line-height: 1.6; color: var(--cx-text-2); max-width: 62ch; }
.cx-lead strong { overflow-wrap: anywhere; }
.cx-small { font-size: 14px; color: var(--cx-text-3); }

/* ---------- botões ---------- */
.cx-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 56px; padding: 0 28px; border: 0; border-radius: var(--cx-r-big);
  background: var(--cx-pine); color: #FAFFEC !important; font: inherit; font-size: 17px; font-weight: 600; text-decoration: none; cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, opacity .25s ease; }
.cx-btn:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 14px 30px -12px rgba(3,73,54,.55); }
.cx-btn:disabled { opacity: .38; cursor: not-allowed; }
.cx-btn.sm { min-height: 48px; font-size: 15px; padding: 0 22px; border-radius: var(--cx-r-ctl); }
.cx-btn.full { width: 100%; }
.cx-btn.lime { background: var(--cx-lime); color: var(--cx-pine) !important; }
.cx-btn-sec { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 56px; padding: 0 24px; border-radius: var(--cx-r-big);
  border: 1.5px solid var(--cx-pine); background: transparent; color: var(--cx-pine) !important; font: inherit; font-size: 16px; font-weight: 600; text-decoration: none; cursor: pointer; }
.cx-btn-sec:hover { background: rgba(255,255,255,.7); }
.cx-textlink { min-height: 44px; padding: 0; border: 0; background: none; font: inherit; font-size: 15px; font-weight: 600; color: var(--cx-pine); text-decoration: none; cursor: pointer; }
.cx-plus svg { transition: transform .3s var(--cx-ease); }
.cx-plus:hover svg { transform: rotate(90deg); }

/* ---------- campos ---------- */
.cx-label { display: flex; flex-direction: column; gap: 8px; font-size: 14px; font-weight: 500; color: var(--cx-text-2); }
.cx-field { width: 100%; box-sizing: border-box; height: 64px; padding: 0 22px; border: 1.5px solid var(--cx-field); border-radius: 18px; background: rgba(255,255,255,.8);
  font: inherit; font-size: 18px; color: var(--cx-carbon); outline: none; transition: border-color .2s ease, box-shadow .2s ease; }
.cx-field.xl { height: 80px; font-size: clamp(22px, 2.6vw, 30px); font-variant-numeric: lining-nums tabular-nums; }
.cx-field::placeholder { color: #8a9a8f; }
.cx-field:focus { border-color: var(--cx-pine); box-shadow: 0 0 0 5px rgba(230,255,153,.95); }
.cx-field[readonly] { background: rgba(255,255,255,.5); }
.cx-field-wrap { position: relative; }
.cx-field-wrap .cx-field { padding-right: 68px; }
.cx-password-wrap .cx-field { padding-right: 116px; }
.cx-field-ok { position: absolute; right: 18px; top: 50%; margin-top: -16px; display: none; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--cx-lime); }
.cx-field-wrap.is-ok .cx-field-ok { display: flex; animation: cx-pop .6s cubic-bezier(.3,1.5,.5,1) both; }
.cx-field-wrap.is-ok .cx-field-ok path { stroke-dasharray: 26; stroke-dashoffset: 26; animation: cx-draw .5s .15s cubic-bezier(.65,0,.35,1) forwards; }
.cx-field-wrap.is-invalid .cx-field { border-color: var(--cx-err-text); }
.cx-field-msg { margin: -14px 0 0; font-size: 14px; line-height: 1.45; color: var(--cx-pine); }
.cx-field-msg.is-error { color: var(--cx-err-text); }
.cx-field-msg.is-pending { color: var(--cx-text-2); }
.cx-reveal { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); min-height: 44px; padding: 0 14px; border-radius: var(--cx-r-ctl);
  border: 1px solid var(--cx-field); background: #fff; font: inherit; font-size: 14px; font-weight: 600; color: var(--cx-pine); cursor: pointer; }
.cx-check { display: flex; align-items: flex-start; gap: 14px; padding: 16px 18px; border-radius: var(--cx-r-big); background: rgba(255,255,255,.8); border: 1px solid #d7e6c6;
  font-size: 16px; line-height: 1.5; color: var(--cx-carbon); cursor: pointer; }
.cx-check input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--cx-pine); flex-shrink: 0; cursor: pointer; }
.cx-opt { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 24px; border-radius: 20px; border: 1.5px solid #d7e6c6; background: rgba(255,255,255,.8);
  cursor: pointer; transition: transform .22s var(--cx-ease), border-color .22s ease, box-shadow .22s ease; }
.cx-opt:hover { transform: translateY(-3px); border-color: var(--cx-pine); box-shadow: 0 22px 44px -24px rgba(3,73,54,.4); }
.cx-opt:has(input:checked) { border-color: var(--cx-pine); background: var(--cx-lime-soft); }
/* O rádio é transparente; o indicador de teclado deve aparecer no cartão. */
.cx-opt:has(input:focus-visible) { outline: 3px solid var(--cx-pine); outline-offset: 3px; }
@supports not selector(:has(input:focus-visible)) {
  .cx-opt:focus-within { outline: 3px solid var(--cx-pine); outline-offset: 3px; }
}
.cx-opt input { position: absolute; opacity: 0; pointer-events: none; }
.cx-opt strong { font-size: 22px; font-weight: 600; font-stretch: 100%; }
.cx-opt span { font-size: 15px; color: var(--cx-text-2); }
.cx-radio { display: flex; align-items: center; gap: 14px; min-height: 56px; padding: 0 18px; border-radius: var(--cx-r-big); border: 1.5px solid #d7e6c6; background: rgba(255,255,255,.8);
  font-size: 16px; font-weight: 600; cursor: pointer; transition: border-color .2s ease, background .2s ease; }
.cx-radio:has(input:checked) { border-color: var(--cx-pine); background: var(--cx-lime-soft); }
.cx-radio input { width: 20px; height: 20px; margin: 0; accent-color: var(--cx-pine); }
.cx-kbd { display: inline-flex; align-items: center; padding: 3px 8px; border-radius: 6px; border: 1px solid var(--cx-line-2); border-bottom-width: 2px; background: #fff; font: inherit; font-size: 12px; font-weight: 600; color: var(--cx-text-2); }

/* ---------- avisos ---------- */
.cx-flash { margin: 0 0 20px; padding: 14px 18px; border-radius: 14px; font-size: 15px; line-height: 1.5; background: var(--cx-lime-soft); color: var(--cx-carbon); }
.cx-flash.erro { background: var(--cx-err-bg); color: var(--cx-err-text); animation: cx-shake .4s cubic-bezier(.36,.07,.19,.97) both; }
.cx-flash.sucesso { background: rgba(230,255,153,.6); color: var(--cx-pine); }
.cx-note { padding: 14px 16px; border-radius: 14px; background: rgba(230,255,153,.55); border: 1px solid var(--cx-lime); font-size: 15px; line-height: 1.5; }
.cx-note.warn { background: var(--cx-warn-bg); border-color: transparent; color: var(--cx-warn-text); }
.cx-flashes { width: 100%; max-width: 1168px; margin: 20px auto 0; padding: 0 clamp(16px, 4vw, 56px); box-sizing: border-box; }

/* ---------- símbolo 3D ---------- */
.cx-sym { position: relative; perspective: 1400px; }
.cx-sym-float { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; animation: cx-float 7s ease-in-out infinite; }
.cx-sym-tilt { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform .5s cubic-bezier(.2,.8,.2,1);
  transform: rotateX(var(--rx, -14deg)) rotateY(var(--ry, 24deg)); }
.cx-sym.sway .cx-sym-tilt { animation: cx-sway 10s ease-in-out infinite; }
.cx-sym-layer { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.cx-sym-shadow { position: absolute; left: 50%; bottom: -4%; width: 70%; height: 10%; transform: translateX(-50%); border-radius: 50%;
  background: radial-gradient(closest-side, rgba(3,73,54,.18), rgba(3,73,54,0)); filter: blur(10px); }
.cx-sym path { transition: transform .9s var(--cx-ease); }
.cx-sym .arm-t { transform: translate(0, calc(var(--off, 0) * -1px)); }
.cx-sym .arm-b { transform: translate(0, calc(var(--off, 0) * 1px)); }
.cx-sym .arm-l { transform: translate(calc(var(--off, 0) * -1px), 0); }
.cx-sym .arm-r { transform: translate(calc(var(--off, 0) * 1px), 0); }
.cx-sym.assemble path { animation: cx-assemble 1.4s var(--cx-ease) both; }
.cx-sym.assemble .arm-t { --dx: 0px; --dy: -20px; }
.cx-sym.assemble .arm-b { --dx: 0px; --dy: 20px; animation-delay: .08s; }
.cx-sym.assemble .arm-l { --dx: -20px; --dy: 0px; animation-delay: .16s; }
.cx-sym.assemble .arm-r { --dx: 20px; --dy: 0px; animation-delay: .24s; }
.cx-sym.sealed .cx-sym-float { filter: drop-shadow(0 0 22px rgba(230,255,153,.95)); transition: filter .8s ease; }
.cx-seal-ring { position: absolute; left: 50%; top: 50%; width: 110%; height: 110%; transform: translate(-50%,-50%); border-radius: 50%; border: 2px solid #b8da93; opacity: 0; }
.cx-sym.sealed .cx-seal-ring { animation: cx-seal 1.6s var(--cx-ease) infinite; }
@keyframes cx-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }
@keyframes cx-sway { 0%,100% { transform: rotateX(-16deg) rotateY(14deg); } 50% { transform: rotateX(-6deg) rotateY(42deg); } }
@keyframes cx-assemble { from { transform: translate(var(--dx), var(--dy)); opacity: 0; } to { transform: translate(0,0); opacity: 1; } }
@keyframes cx-seal { from { opacity: .9; transform: translate(-50%,-50%) scale(.7); } to { opacity: 0; transform: translate(-50%,-50%) scale(1.45); } }

/* ---------- landing ---------- */
.cx-hero { min-height: min(860px, calc(100vh - 72px)); display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); align-items: center; gap: 32px;
  max-width: 1328px; margin: 0 auto; padding: 48px clamp(16px, 5vw, 80px) 64px; box-sizing: border-box; }
.cx-hero-copy { display: flex; flex-direction: column; gap: 30px; transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.cx-hero h1 { margin: 0; font-size: clamp(38px, 4.6vw, 66px); line-height: 1.02; }
.cx-mark { white-space: nowrap; background: var(--cx-lime); color: var(--cx-pine); padding: 0 .16em; border-radius: .22em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.cx-hero-sym { width: min(420px, 90%); aspect-ratio: 1; justify-self: center; margin: 40px 0; perspective: 900px; }
.cx-hero-sym .cx-sym-tilt {
  --rx: -12deg;
  --ry: 20deg;
  transition: transform .16s cubic-bezier(.2,.8,.2,1);
  will-change: transform;
}
.cx-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.cx-choice { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 24px 26px; border-radius: 28px; text-decoration: none;
  transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease; }
.cx-choice:hover { transform: translateY(-5px); box-shadow: 0 26px 50px -26px rgba(3,73,54,.45); }
.cx-choice > span:first-child { min-width: 0; }
.cx-choice strong { display: block; font-size: 22px; overflow-wrap: anywhere; font-weight: 600; font-stretch: 100%; letter-spacing: -.015em; }
.cx-choice small { display: block; margin-top: 6px; font-size: 15px; }
.cx-choice .cx-round { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; flex-shrink: 0; }
.cx-choice.primary { background: var(--cx-pine); color: #FAFFEC !important; box-shadow: 0 22px 44px -26px rgba(3,73,54,.8); }
.cx-choice.primary small { color: var(--cx-lime); }
.cx-choice.primary .cx-round { background: var(--cx-lime); color: var(--cx-pine); }
.cx-choice.ghost { background: rgba(255,255,255,.75); border: 1px solid #d7e6c6; color: var(--cx-carbon) !important; backdrop-filter: blur(14px); }
.cx-choice.ghost small { color: var(--cx-text-2); }
.cx-choice.ghost .cx-round { border: 1.5px solid var(--cx-pine); color: var(--cx-pine); }
.cx-disclosure { margin: 0; max-width: 560px; font-size: 13px; line-height: 1.5; color: var(--cx-text-3); }
.cx-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; max-width: 1328px; margin: 0 auto; padding: 0 clamp(16px, 5vw, 80px) 96px; box-sizing: border-box; }
.cx-steps-heading { grid-column: 1 / -1; margin: 0 0 4px; font-size: clamp(28px, 3vw, 40px); line-height: 1.15; }
.cx-step { display: flex; flex-direction: column; gap: 18px; padding: 32px; border-radius: 28px; background: rgba(255,255,255,.72); border: 1px solid var(--cx-line); backdrop-filter: blur(12px);
  transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease; }
.cx-step:hover { transform: translateY(-5px); box-shadow: 0 26px 50px -26px rgba(3,73,54,.45); }
.cx-step h3 { margin: 0; font-size: 26px; }
.cx-step p { margin: 0; font-size: 16px; line-height: 1.55; color: var(--cx-text-2); }
.cx-step-num { display: flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: 50%; background: var(--cx-lime); color: var(--cx-pine);
  font-size: 26px; font-weight: 650; font-stretch: 100%; line-height: 1; font-variant-numeric: lining-nums tabular-nums; }
.cx-step:last-child .cx-step-num { background: var(--cx-pine); color: var(--cx-lime); }
.cx-overview { max-width: 1328px; margin: 0 auto; padding: 0 clamp(16px, 5vw, 80px) 60px; box-sizing: border-box; }
.cx-overview h2 { margin: 0 0 20px; font-size: clamp(28px, 3vw, 40px); line-height: 1.15; }
.cx-overview p { max-width: 850px; margin: 0 0 18px; font-size: 17px; line-height: 1.7; color: var(--cx-text-2); }
.cx-overview-next { padding-bottom: 96px; }
@media (max-width: 900px) {
  .cx-hero { grid-template-columns: 1fr; padding-top: 16px; }
  .cx-hero-sym { order: -1; width: 220px; margin: 12px auto 0; }
  .cx-choices, .cx-steps { grid-template-columns: 1fr; }
}

/* ---------- rodapé ---------- */
.cx-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; padding: 32px clamp(16px, 5vw, 80px);
  margin-top: auto; background: rgba(220,235,214,.7); border-top: 1px solid #d2e3c4; font-size: 14px; }
.cx-footer-brand { display: flex; align-items: center; gap: 16px; color: var(--cx-text-2); }
.cx-footer-brand img { height: 22px; width: auto; }
.cx-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; color: var(--cx-text-2); }
.cx-footer-signoff { display: inline-flex; align-items: baseline; gap: 6px; padding-left: 16px;
  border-left: 1px solid rgba(3, 73, 54, .24); color: var(--cx-pine); line-height: 1.15; }
.cx-footer-signoff-kicker { color: var(--cx-text-2); font-size: 11px; font-weight: 600; }
.cx-footer-signoff strong { font-size: 17px; font-weight: 700; letter-spacing: -.035em; }
@media (max-width: 760px) {
  .cx-footer-signoff { order: 3; }
  .cx-footer-links { order: 4; }
}

/* ---------- passo a passo (cadastro) ---------- */
.cx-flow { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 72px; max-width: 1328px; margin: 0 auto; padding: 24px clamp(16px, 4vw, 56px) 64px; box-sizing: border-box; min-height: calc(100vh - 72px); }
.cx-flow-main { display: flex; flex-direction: column; justify-content: center; gap: 26px; max-width: 800px; }
.cx-segs { display: flex; gap: 6px; max-width: 1328px; margin: 0 auto; padding: 20px clamp(16px, 4vw, 56px) 0; box-sizing: border-box; }
.cx-seg { flex: 1; height: 6px; border-radius: 999px; background: rgba(3,73,54,.1); overflow: hidden; }
.cx-seg i { display: block; height: 100%; width: 0; border-radius: 999px; background: var(--cx-sage); transition: width .7s var(--cx-ease), background .4s ease; }
.cx-seg.done i { width: 100%; background: var(--cx-pine); }
.cx-seg.now i { width: 38%; }
.cx-counter { display: flex; align-items: baseline; gap: 6px; font-size: 14px; color: var(--cx-text-2); }
.cx-counter strong { font-size: 18px; font-weight: 700; font-stretch: 100%; color: var(--cx-pine); font-variant-numeric: lining-nums tabular-nums; }
.cx-q { display: flex; flex-direction: column; gap: 24px; }
.cx-js .cx-q { display: none; }
.cx-js .cx-q.is-active { display: flex; animation: cx-qin .6s var(--cx-ease) both; }
.cx-q h1, .cx-q h2 { margin: 0; font-size: clamp(30px, 3.6vw, 50px); line-height: 1.06; }
.cx-q-kicker { font-size: 16px; line-height: 1.4; font-weight: 600; color: var(--cx-pine); }
.cx-q-sub { margin: 0; font-size: 18px; line-height: 1.55; color: var(--cx-text-2); max-width: 580px; }
.cx-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.cx-flow-nav { display: flex; align-items: center; gap: 14px; }
.cx-back { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; flex-shrink: 0; border-radius: var(--cx-r-big); border: 1.5px solid var(--cx-field); background: rgba(255,255,255,.8); color: var(--cx-pine); cursor: pointer; }
.cx-back[hidden] { display: none; }
.cx-next { opacity: .55; }
.cx-next.is-ready { opacity: 1; }
.cx-hint { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--cx-text-3); }
.cx-err { margin: 0; font-size: 15px; font-weight: 500; color: var(--cx-err-text); }
.cx-flow-login { margin: 0; font-size: 16px; line-height: 1.5; color: var(--cx-text-2); }
.cx-flow-login a { font-weight: 600; }
.cx-pw { display: flex; gap: 24px; flex-wrap: wrap; color: var(--cx-text-2); font-size: 15px; }
.cx-pw span { display: flex; align-items: center; gap: 10px; }
.cx-pw i { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; box-sizing: border-box; border-radius: 50%; border: 2px solid #b9cdb0; }
.cx-pw .ok i { background: var(--cx-pine); border-color: var(--cx-pine); animation: cx-pop .5s cubic-bezier(.3,1.5,.5,1) both; }
.cx-pw .ok i::after { content: ""; width: 9px; height: 5px; border-left: 2px solid var(--cx-lime); border-bottom: 2px solid var(--cx-lime); transform: rotate(-45deg) translate(1px,-1px); }
.cx-aside { align-self: center; display: flex; flex-direction: column; gap: 16px; padding: 26px; max-height: calc(100vh - 150px); }
.cx-aside-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-width: 0; }
.cx-aside-head h2 { margin: 0; font-size: 22px; line-height: 1.2; }
.cx-pct { display: inline-flex; align-items: baseline; gap: 2px; flex-shrink: 0; white-space: nowrap;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 30px; font-weight: 700; font-stretch: 100%; font-variation-settings: normal; line-height: 1.15; letter-spacing: 0;
  color: var(--cx-pine); font-variant-numeric: lining-nums tabular-nums; }
.cx-pct small { font-size: .55em; font-weight: 600; line-height: 1; }
.cx-dossier { display: flex; flex-direction: column; gap: 8px; overflow-y: auto; min-height: 0; margin: 0; padding: 0; list-style: none; }
.cx-dossier button { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; padding: 11px 16px; border-radius: 14px; border: 1px solid var(--cx-line);
  background: rgba(255,255,255,.7); font: inherit; text-align: left; cursor: pointer; animation: cx-chip .55s var(--cx-ease) both; transition: background .2s, border-color .2s; }
.cx-dossier button:hover { background: #fff; border-color: var(--cx-sage); }
.cx-dossier small { display: block; font-size: 12px; color: var(--cx-text-3); }
.cx-dossier b { display: block; font-size: 15px; font-weight: 600; color: var(--cx-carbon); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 280px; }
.cx-dossier em { font-style: normal; font-size: 13px; font-weight: 600; color: var(--cx-pine); }
.cx-empty { margin: 0; font-size: 15px; line-height: 1.5; color: var(--cx-text-3); }
@media (max-width: 960px) {
  .cx-flow { grid-template-columns: minmax(0, 1fr); gap: 20px; padding-top: 12px; min-height: 0; }
  .cx-flow-main { min-width: 0; }
  .cx-aside { order: -1; max-height: none; padding: 14px 16px; flex-direction: row; align-items: center; border-radius: 20px; }
  .cx-aside .cx-sym { display: none; }
  .cx-aside-head { flex: 1; }
  .cx-aside-head h2 { font-size: 18px; }
  .cx-aside .cx-dossier, .cx-aside .cx-empty { display: none; }
  .cx-grid2 { grid-template-columns: 1fr; }
  .cx-hint { display: none; }
  .cx-flow-nav { position: sticky; bottom: 0; padding: 12px 0 20px; }
  .cx-flow-nav .cx-next { flex: 1; }
}
@media (max-width: 600px) {
  .cx-flow { gap: 22px; }
  .cx-flow .cx-aside { background: var(--cx-ivory); backdrop-filter: none; -webkit-backdrop-filter: none; }
  .cx-flow .cx-pct { font-size: 32px; }
  .cx-flow .cx-counter { font-size: 16px; line-height: 1.4; }
  .cx-flow .cx-counter strong { font-size: 20px; font-stretch: 100%; }
  .cx-flow .cx-q { gap: 20px; min-width: 0; }
  .cx-js .cx-flow .cx-q.is-active { animation: none; }
  .cx-flow .cx-q h1, .cx-flow .cx-q h2 { font-size: clamp(31px, 8vw, 38px); line-height: 1.14; letter-spacing: -.025em; }
  .cx-flow .cx-q-sub { font-size: 17px; line-height: 1.55; }
  .cx-flow .cx-small, .cx-flow .cx-label, .cx-flow .cx-opt span { font-size: 16px; line-height: 1.5; }
  .cx-flow .cx-field.xl { height: 76px; font-size: clamp(18px, 5vw, 21px); }
  .cx-flow .cx-field-wrap .cx-field.xl { padding-right: 58px; }
}

/* ---------- autenticação (entrar) ---------- */
.cx-auth { display: grid; grid-template-columns: minmax(0, 620px) minmax(0, 1fr); min-height: calc(100vh - 72px); }
.cx-auth-art { position: relative; display: flex; flex-direction: column; justify-content: space-between; padding: 40px 56px 48px; background: #F2FAE0; border-right: 1px solid var(--cx-line); overflow: hidden; isolation: isolate; }
.cx-auth-art .cx-sym { width: 340px; height: 340px; margin: 0 auto; }
.cx-tagline { margin: 0; font-family: var(--cx-serif); font-style: italic; font-size: 30px; line-height: 1.25; font-weight: 500; color: var(--cx-pine); }
.cx-auth-form { display: flex; align-items: center; justify-content: center; padding: 48px clamp(16px, 4vw, 48px); }
.cx-auth-box { width: 100%; max-width: 460px; display: flex; flex-direction: column; gap: 22px; }
.cx-row-between { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.cx-caps { display: none; align-items: center; gap: 8px; font-size: 14px; color: var(--cx-warn-text); }
.cx-caps.on { display: flex; }
.cx-center { text-align: center; }
.cx-busy .cx-btn-label { display: none; }
.cx-dots { display: none; gap: 6px; }
.cx-busy .cx-dots { display: inline-flex; }
.cx-dots i { width: 8px; height: 8px; border-radius: 50%; background: var(--cx-lime); animation: cx-dot 1.2s ease-in-out infinite; }
.cx-dots i:nth-child(2) { animation-delay: .15s; } .cx-dots i:nth-child(3) { animation-delay: .3s; }
.cx-dots.dark i { background: var(--cx-pine); }
@media (max-width: 900px) {
  .cx-auth { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  .cx-auth-form { align-items: flex-start; padding-top: 28px; }
  .cx-auth-art { padding: 14px 20px; flex-direction: row; align-items: center; justify-content: center; border-right: 0; border-bottom: 1px solid var(--cx-line); }
  .cx-auth-art .cx-sym { width: 64px; height: 64px; margin: 0; }
  .cx-auth-art .cx-tagline, .cx-auth-art .cx-brand { display: none; }
}

/* ---------- telas centrais (confirmações) ---------- */
.cx-panel { max-width: 640px; margin: 0 auto; display: flex; flex-direction: column; gap: 22px; }
.cx-seal { display: flex; align-items: center; justify-content: center; width: 84px; height: 84px; border-radius: 50%; background: var(--cx-lime); box-shadow: 0 0 0 10px rgba(230,255,153,.45); animation: cx-pop .7s cubic-bezier(.3,1.5,.5,1) both; }
.cx-seal path { stroke-dasharray: 26; stroke-dashoffset: 26; animation: cx-draw .55s .45s cubic-bezier(.65,0,.35,1) forwards; }
.cx-meta { display: flex; flex-wrap: wrap; gap: 16px 40px; margin: 0; }
.cx-meta dt { font-size: 13px; color: var(--cx-text-2); }
.cx-meta dd { margin: 4px 0 0; font-size: 16px; font-weight: 600; font-variant-numeric: lining-nums tabular-nums; }
.cx-info { display: flex; flex-direction: column; padding: 4px 20px 6px; border-radius: var(--cx-r-big); background: rgba(255,255,255,.85); border: 1px solid #d7e6c6; }
.cx-info > div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; }
.cx-info > div + div { border-top: 1px solid #e6eed9; }
.cx-info span { font-size: 14px; color: var(--cx-text-2); }
.cx-info b { min-width: 0; font-size: 15px; font-weight: 600; text-align: right; overflow-wrap: anywhere; }
.cx-list { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0; padding: 0; list-style: none; font-size: 15px; }
.cx-list li { display: flex; align-items: center; gap: 8px; }

/* ---------- Minhas Consultas ---------- */
.cx-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.cx-table-card { border-radius: var(--cx-r-card); background: #fff; border: 1px solid var(--cx-line); overflow: hidden; }
.cx-table { width: 100%; border-collapse: collapse; }
.cx-table th { text-align: left; padding: 14px 12px; font-size: 13px; font-weight: 500; color: var(--cx-text-3); border-bottom: 1px solid var(--cx-line); }
.cx-table td { padding: 16px 12px; border-bottom: 1px solid #edf2e3; font-size: 14px; color: var(--cx-text-2); vertical-align: middle; }
.cx-table tr:last-child td { border-bottom: 0; }
.cx-table th:first-child, .cx-table td:first-child { padding-left: 28px; }
.cx-table th:last-child, .cx-table td:last-child { padding-right: 28px; }
.cx-table tbody tr { transition: background .15s ease; }
.cx-table tbody tr:hover { background: #f7fbec; }
.cx-emp b { display: block; font-size: 15px; font-weight: 600; color: var(--cx-carbon); }
.cx-emp span { display: block; margin-top: 3px; color: var(--cx-text-3); font-variant-numeric: lining-nums tabular-nums; }
.cx-status { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; color: var(--cx-carbon); white-space: nowrap; }
.cx-status::before { content: ""; position: relative; width: 8px; height: 8px; border-radius: 50%; background: #9aa59e; flex-shrink: 0; }
.cx-status.ok::before { background: var(--cx-pine); }
.cx-status.warn::before { background: var(--cx-warn); }
.cx-status.err::before { background: var(--cx-err); }
.cx-status.run::before { background: var(--cx-sage); box-shadow: 0 0 0 0 rgba(113,171,126,.7); animation: cx-ring 1.8s ease-out infinite; }
.cx-acts { display: flex; justify-content: flex-end; gap: 8px; }
.cx-act { display: inline-flex; align-items: center; justify-content: center; width: 196px; height: 44px; box-sizing: border-box; border-radius: var(--cx-r-ctl); border: 1px solid var(--cx-line-2);
  background: #fff; color: var(--cx-pine) !important; font: inherit; font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; transition: border-color .15s ease, box-shadow .15s ease; }
.cx-act:hover { border-color: var(--cx-pine); box-shadow: 0 6px 16px -10px rgba(3,73,54,.5); }
.cx-act.icon { width: 44px; flex-shrink: 0; }
.cx-act.icon svg { transition: transform .2s ease; }
.cx-act.icon:hover svg { transform: translateY(2px); }
.cx-act[disabled], .cx-act[aria-disabled="true"] { border-style: dashed; border-color: #dfe7d3; background: transparent; color: #a3afa6 !important; box-shadow: none; cursor: default; }
.cx-banner { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 20px; padding: 20px 24px; border-radius: var(--cx-r-card); background: rgba(230,255,153,.55); border: 1px solid var(--cx-lime); }
.cx-banner strong { display: block; font-size: 18px; font-weight: 600; font-stretch: 100%; color: var(--cx-pine); }
.cx-banner p { margin: 4px 0 0; font-size: 15px; color: var(--cx-text-2); }
.cx-cards { display: none; flex-direction: column; gap: 12px; }
.cx-mcard { display: flex; flex-direction: column; gap: 14px; padding: 18px; border-radius: var(--cx-r-card); background: #fff; border: 1px solid var(--cx-line); }
.cx-mcard-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.cx-mcard-mid { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 8px 12px; font-size: 13px; color: var(--cx-text-3); }
.cx-mcard-mid > span, .cx-mcard-mid .cx-status { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.cx-mcard .cx-acts .cx-act:not(.icon) { flex: 1; width: auto; }
.cx-fab { display: none; }
@media (max-width: 860px) {
  .cx-table-card { display: none; }
  .cx-cards { display: flex; }
  .cx-head .cx-btn { display: none; }
  .cx-fab { display: block; position: sticky; bottom: 0; padding: 16px 0 24px; background: linear-gradient(rgba(250,255,236,0), var(--cx-ivory) 35%); }
  .cx-banner { flex-direction: column; align-items: stretch; }
}
@media (max-width: 480px) {
  .cx-mcard-mid { flex-direction: column; }
}

/* ---------- cookie ---------- */
.cx #cookie-banner { background: var(--cx-carbon); color: #eef3e6; font-family: var(--cx-sans); }
.cx #cookie-banner a { color: var(--cx-lime); text-decoration: none; }
.cx #cookie-banner { padding: 16px clamp(16px, 4vw, 56px); box-sizing: border-box; align-items: center; }
.cx #cookie-banner-btn { background: var(--cx-lime); color: var(--cx-pine); border: 0; border-radius: var(--cx-r-ctl); height: 44px; align-self: center; padding: 0 22px; font: 600 15px var(--cx-sans); cursor: pointer; }
@media (max-width: 600px) {
  .cx #cookie-banner { font-size: 15px; line-height: 1.5; gap: 12px; }
}

/* ---------- animações utilitárias ---------- */
@keyframes cx-qin { from { opacity: 0; transform: translateY(28px); filter: blur(8px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes cx-chip { from { opacity: 0; transform: translateY(-10px) scale(.94); } to { opacity: 1; transform: none; } }
@keyframes cx-pop { from { opacity: 0; transform: scale(.4); } to { opacity: 1; transform: scale(1); } }
@keyframes cx-draw { to { stroke-dashoffset: 0; } }
@keyframes cx-dot { 0%,100% { opacity: .25; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-5px); } }
@keyframes cx-ring { 0% { box-shadow: 0 0 0 0 rgba(113,171,126,.7); } 100% { box-shadow: 0 0 0 8px rgba(113,171,126,0); } }
@keyframes cx-shake { 10%,90% { transform: translateX(-1px); } 20%,80% { transform: translateX(2px); } 30%,50%,70% { transform: translateX(-4px); } 40%,60% { transform: translateX(4px); } }
.cx-in { animation: cx-qin .6s var(--cx-ease) both; }

/* ---------- compra e recuperação de acesso ---------- */
.cx-purchase-main, .cx-reset-main { padding-top: clamp(28px, 6vw, 64px); }
.cx-purchase, .cx-reset { display: flex; flex-direction: column; gap: 22px; padding: clamp(22px, 5vw, 42px); }
.cx-purchase-heading { padding-bottom: 20px; border-bottom: 1px solid var(--cx-line); }
.cx-kicker { display: block; margin-bottom: 10px; color: var(--cx-pine); font-size: 13px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.cx-purchase .cx-title, .cx-reset .cx-title { font-size: clamp(29px, 4vw, 40px); }
.cx-purchase-price { margin: 18px 0 0; color: var(--cx-pine); font-size: 32px; line-height: 1; font-weight: 700; font-variant-numeric: tabular-nums; }
.cx-purchase-price span { color: var(--cx-text-3); font-size: 15px; font-weight: 500; }
.cx-purchase-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.cx-purchase-list li { position: relative; padding-left: 25px; color: var(--cx-text-2); line-height: 1.5; }
.cx-purchase-list li::before { content: ""; position: absolute; left: 1px; top: .58em; width: 9px; height: 9px; border-radius: 50%; background: var(--cx-sage); box-shadow: 0 0 0 4px var(--cx-lime-soft); }
.cx-invoice { display: grid; gap: 5px; padding: 18px 20px; border: 1px solid var(--cx-line); border-radius: var(--cx-r-big); background: rgba(242,255,209,.48); }
.cx-meta-label { color: var(--cx-text-3); font-size: 12px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
.cx-invoice > strong { font-size: 17px; font-weight: 650; overflow-wrap: anywhere; }
.cx-invoice > span:not(.cx-meta-label) { color: var(--cx-text-2); font-size: 14px; }
.cx-invoice-status, .cx-invoice-warning { margin-top: 4px; font-size: 13px; font-weight: 600; }
.cx-invoice-status { color: var(--cx-pine); }
.cx-invoice-warning { color: var(--cx-warn-text); }
.cx-invoice-link { justify-self: start; min-height: 36px; }
.cx-invoice-complete { justify-self: start; min-height: 44px; margin-top: 3px; padding: 0 16px; font-size: 14px; }
.cx-purchase-form { display: flex; flex-direction: column; gap: 18px; }
.cx-consent { display: grid; gap: 9px; }
.cx-consent-row { display: flex; align-items: flex-start; gap: 11px; padding: 12px 14px; border: 1px solid var(--cx-line); border-radius: 13px; background: rgba(255,255,255,.66); color: var(--cx-text-2); font-size: 14px; line-height: 1.45; cursor: pointer; }
.cx-consent-row input { width: 19px; height: 19px; margin: 1px 0 0; flex: 0 0 auto; accent-color: var(--cx-pine); }
.cx-consent-row a { font-weight: 650; text-decoration: underline; text-underline-offset: 2px; }
.cx-consent-important { border-color: #d6e5b4; background: var(--cx-lime-soft); }
.cx-consent-important span { color: var(--cx-carbon); }
.cx-purchase .cx-btn { min-height: 58px; }
.cx-purchase-footnote { margin: -4px 0 0; color: var(--cx-text-3); font-size: 13px; line-height: 1.5; text-align: center; }
.cx-reset-intro { margin: -12px 0 0; color: var(--cx-text-2); }
.cx-reset-form { display: flex; flex-direction: column; gap: 16px; }
.cx-reset-form .cx-label { gap: 7px; }
.cx-reset-form .cx-field { height: 58px; font-size: 16px; }
.cx-reset-hint { margin: -8px 0 0; color: var(--cx-text-3); font-size: 13px; line-height: 1.45; }

/* Em telas estreitas, a ação vem antes da dobra e o aviso legal continua inteiro. */
@media (max-width: 600px) {
  body.cx:has(.cx-hero) > .cx-nav {
    background: linear-gradient(180deg, rgba(250,255,236,.97) 0%, rgba(246,255,224,.94) 62%, rgba(239,250,220,.86) 100%);
    border-bottom-color: transparent;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }
  .cx-stage:has(.cx-hero) {
    background: linear-gradient(180deg, rgba(239,250,220,.22) 0%, rgba(242,255,209,0) 220px);
  }
  .cx-hero { min-height: 0; gap: 8px; padding: 4px 20px 30px; }
  .cx-hero-sym { width: 96px; margin: 10px auto 4px; }
  .cx-hero-copy { gap: 14px; }
  .cx-hero h1 { font-size: clamp(32px, 8.8vw, 38px); line-height: 1.04; }
  .cx-hero .cx-lead { font-size: 14px; line-height: 1.48; }
  .cx-choices { gap: 9px; }
  .cx-choice { min-height: 68px; padding: 12px 14px; border-radius: 18px; }
  .cx-choice strong { font-size: 18px; }
  .cx-choice small { margin-top: 3px; font-size: 13px; }
  .cx-choice .cx-round { width: 40px; height: 40px; }
  .cx-disclosure { font-size: 11px; line-height: 1.4; }
  .cx #cookie-banner { gap: 9px; padding: 9px 12px; font-size: 12px; line-height: 1.35; }
  .cx #cookie-banner p { min-width: 0; }
  .cx #cookie-banner-btn { height: 40px; padding: 0 13px; font-size: 13px; }
  .cx-purchase-main, .cx-reset-main { padding: 22px 14px 48px; }
  .cx-purchase, .cx-reset { gap: 17px; padding: 21px 18px; border-radius: 18px; }
  .cx-purchase-heading { padding-bottom: 16px; }
  .cx-purchase-price { font-size: 29px; }
  .cx-invoice { padding: 15px; }
  .cx-consent-row { padding: 10px 11px; font-size: 13px; }
  .cx-purchase-form { gap: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .cx *, .cx *::before, .cx *::after { animation: none !important; transition: none !important; }
  .cx .cx-seal path, .cx .cx-field-ok path { stroke-dashoffset: 0; }
}
