/* Builder elements inside the signed-in app (dashboard, in-app pages). Uses the app's tokens, so light/dark just work. */
.cms-page { display: grid; gap: 0; }
.cms-blk { position: relative; }
.cms-blk > .cms-in { margin: 0 auto; width: 100%; }
/* inside the app the page already sets the width: Normal/Wide/Full fill it, Narrow centres a reading column */
.cms-blk.w-narrow > .cms-in { max-width: 760px; }
.cms-blk.pt-none { padding-top: 0; } .cms-blk.pt-sm { padding-top: 8px; } .cms-blk.pt-md { padding-top: 18px; } .cms-blk.pt-lg { padding-top: 30px; } .cms-blk.pt-xl { padding-top: 44px; }
.cms-blk.pb-none { padding-bottom: 0; } .cms-blk.pb-sm { padding-bottom: 8px; } .cms-blk.pb-md { padding-bottom: 18px; } .cms-blk.pb-lg { padding-bottom: 30px; } .cms-blk.pb-xl { padding-bottom: 44px; }
.cms-blk.bg-soft > .cms-in, .cms-blk.bg-card > .cms-in { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r, 18px); padding: 20px 22px; box-shadow: var(--shadow); }
.cms-blk.bg-soft > .cms-in { background: color-mix(in srgb, var(--primary) 6%, var(--panel)); }
.cms-blk.bg-brand > .cms-in { background: var(--grad); color: #04121f; border-radius: var(--r, 18px); padding: 22px 24px; }
.cms-blk.bg-brand .hint { color: #0c2035; }
.cms-blk.bg-dark > .cms-in { background: #0b1426; color: #eaf1fb; border-radius: var(--r, 18px); padding: 22px 24px; }
.cms-blk.bg-aurora > .cms-in { background: radial-gradient(600px 240px at 10% 0%, rgb(34 211 238 / .16), transparent 70%), radial-gradient(600px 240px at 90% 0%, rgb(129 140 248 / .16), transparent 70%); border-radius: var(--r, 18px); padding: 22px 24px; }
.cms-bgimg { position: absolute; inset: 0; z-index: 0; border-radius: var(--r, 18px); overflow: hidden; } .cms-bgimg img { width: 100%; height: 100%; object-fit: cover; opacity: .35; }
.cms-blk.ta-center { text-align: center; } .cms-blk.ta-center .cms-btns { justify-content: center; }
.cms-vis { position: absolute; top: 6px; right: 6px; z-index: 2; font: 700 10.5px var(--font); text-transform: uppercase; letter-spacing: .06em; padding: 3px 8px; border-radius: 999px; background: #f59e0b; color: #1c1404; }
.cms-eyebrow { display: inline-block; margin-bottom: 6px; font: 700 11.5px var(--font); letter-spacing: .12em; text-transform: uppercase; color: var(--primary); }
.cms-h { margin: 0 0 6px; font-family: var(--font-display, var(--font)); letter-spacing: -.02em; line-height: 1.15; }
.cms-h.size-s { font-size: 18px; } .cms-h.size-m { font-size: 22px; } .cms-h.size-l { font-size: 28px; } .cms-h.size-xl { font-size: 36px; }
.cms-head { margin-bottom: 14px; }
.cms-prose { color: var(--fg-2); line-height: 1.65; } .cms-prose p { margin: 0 0 .8em; } .cms-prose h2, .cms-prose h3 { color: var(--fg); margin: 1em 0 .4em; }
.cms-prose.size-lead { font-size: 17px; } .cms-prose.size-small { font-size: 13.5px; }
.cms-btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.cms-fig { margin: 0; } .cms-fig img { border-radius: 14px; border: 1px solid var(--line); max-width: 100%; } .cms-fig figcaption { color: var(--muted); font-size: 13px; margin-top: 6px; }
.cms-ilist { list-style: none; padding: 0; margin: 8px 0 0; display: grid; gap: 10px; } .cms-ilist.cols-2 { grid-template-columns: 1fr 1fr; }
.cms-ilist li { display: flex; gap: 10px; align-items: flex-start; color: var(--fg-2); } .cms-ilist svg { color: var(--primary); flex: none; margin-top: 2px; }
.cms-div { border: 0; height: 1px; background: var(--line-2); } .cms-div.gradient { height: 2px; background: var(--grad); }
.cms-space.sp-sm { height: 10px; } .cms-space.sp-md { height: 24px; } .cms-space.sp-lg { height: 48px; } .cms-space.sp-xl { height: 80px; }
.cms-faq { display: grid; gap: 8px; } .cms-faq details { border: 1px solid var(--line); border-radius: 12px; background: var(--card); padding: 0 14px; }
.cms-faq summary { cursor: pointer; padding: 12px 0; font-weight: 650; } .cms-faq details[open] summary { color: var(--primary); }
.cms-video { position: relative; display: grid; place-items: center; gap: 8px; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: #0b1426; color: #fff; text-decoration: none; }
.cms-video img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .6; } .cms-video span, .cms-video b { position: relative; }
.cms-video span { width: 62px; height: 62px; border-radius: 50%; display: grid; place-items: center; background: var(--grad); color: #04121f; }
.cms-cards { display: grid; gap: 14px; } .cms-cards.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cms-cards.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cms-cards.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cms-card { display: grid; gap: 6px; align-content: start; padding: 18px; border-radius: 16px; background: var(--card); border: 1px solid var(--line); transition: transform .2s, border-color .2s; }
.cms-card:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--primary) 45%, transparent); }
.cms-card p { margin: 0; color: var(--fg-2); font-size: 14px; }
.cms-card-ic { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; color: var(--primary); background: var(--primary-soft); margin-bottom: 4px; }
.cms-mt { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: center; } .cms-mt.img-left > img { order: -1; } .cms-mt img { border-radius: 16px; border: 1px solid var(--line); }
.cms-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.cms-steps li { padding: 16px; border-radius: 16px; background: var(--card); border: 1px solid var(--line); display: grid; gap: 4px; }
.cms-steps li span { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: var(--grad); color: #04121f; font-weight: 800; }
.cms-steps li p { margin: 0; color: var(--fg-2); font-size: 14px; }
.cms-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; }
.cms-stats > div { padding: 16px; border-radius: 16px; background: var(--card); border: 1px solid var(--line); text-align: center; }
.cms-stats b { display: block; font: 800 28px var(--font-display, var(--font)); background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cms-stats span { color: var(--muted); font-size: 13px; }
.cms-cta { position: relative; overflow: hidden; padding: 22px 24px; border-radius: 20px; border: 1px solid var(--line); background: var(--panel); }
.cms-cta.tone-brand { background: var(--grad); color: #04121f; border: 0; } .cms-cta.tone-brand .hint { color: #0c2035; }
.cms-cta.tone-brand .btn.primary { background: #04121f; color: #fff; } .cms-cta.tone-dark { background: #0b1426; color: #eaf1fb; }
.cms-cta.tone-success { background: color-mix(in srgb, #10b981 12%, var(--panel)); } .cms-cta.tone-warning { background: color-mix(in srgb, #f59e0b 14%, var(--panel)); }
.cms-note { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 16px; border: 1px solid var(--line); background: var(--panel); }
.cms-note > svg { flex: none; color: var(--primary); margin-top: 2px; }
.cms-note.tone-success { border-color: rgb(16 185 129 / .4); background: color-mix(in srgb, #10b981 9%, var(--panel)); } .cms-note.tone-success > svg { color: #10b981; }
.cms-note.tone-warning { border-color: rgb(245 158 11 / .45); background: color-mix(in srgb, #f59e0b 10%, var(--panel)); } .cms-note.tone-warning > svg { color: #d97706; }
.cms-note.tone-brand { border: 0; background: linear-gradient(120deg, rgb(34 211 238 / .16), rgb(129 140 248 / .16)); }
.cms-note .cms-prose p:last-child { margin: 0; }
.cms-links { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.cms-link { display: grid; justify-items: start; gap: 8px; padding: 14px; border-radius: 14px; background: var(--card); border: 1px solid var(--line); color: var(--fg); text-decoration: none; font-weight: 650;
  transition: transform .2s, border-color .2s; } .cms-link svg { color: var(--primary); }
.cms-link:hover { transform: translateY(-2px); border-color: var(--primary); }
.cms-grid { display: grid; gap: 18px; } .cms-grid.gap-sm { gap: 10px; } .cms-grid.gap-lg { gap: 28px; }
.cms-grid.cols-1-1 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cms-grid.cols-2-1 { grid-template-columns: 2fr 1fr; } .cms-grid.cols-1-2 { grid-template-columns: 1fr 2fr; }
.cms-grid.cols-1-1-1 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cms-grid.cols-1-1-1-1 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cms-grid.va-center { align-items: center; } .cms-grid.va-bottom { align-items: end; }
.cms-col { min-width: 0; } .cms-col > .cms-blk:first-child { padding-top: 0; }
.cms-col.bg-card { background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 14px; }
.col-empty { display: grid; place-items: center; min-height: 80px; border: 2px dashed var(--line-2); border-radius: 14px; color: var(--muted); font-size: 13px; }
.js-anim .cms-rv { opacity: 0; transition: opacity .6s, transform .6s; } .js-anim .cms-rv.rv-fade-up { transform: translateY(16px); } .js-anim .cms-rv.rv-zoom { transform: scale(.97); }
.js-anim .cms-rv.in { opacity: 1; transform: none; }
.cms-preview .cms-rv { opacity: 1 !important; transform: none !important; }
@media (max-width: 860px) {
  .cms-grid.cols-1-1, .cms-grid.cols-2-1, .cms-grid.cols-1-2, .cms-grid.cols-1-1-1, .cms-mt, .cms-cards.cols-3, .cms-ilist.cols-2 { grid-template-columns: minmax(0, 1fr); }
  .cms-cards.cols-4, .cms-grid.cols-1-1-1-1 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cms-blk.hide-mobile { display: none; }
}
@media (min-width: 861px) { .cms-blk.hide-desktop { display: none; } }
@media (prefers-reduced-motion: reduce) { .js-anim .cms-rv { opacity: 1; transform: none; transition: none; } }
/* design tokens from the builder's Style tab (same names as the website) */
.cms-blk[class*=" pr-"] > .cms-in, .cms-col[class*=" pr-"] { border-radius: var(--r, 18px); padding: 20px 22px; }
.cms-blk.pr-card > .cms-in, .cms-col.pr-card { background: var(--panel); border: 1px solid var(--line); box-shadow: var(--shadow); }
.cms-blk.pr-glass > .cms-in, .cms-col.pr-glass { background: color-mix(in srgb, var(--panel) 60%, transparent); border: 1px solid var(--line); backdrop-filter: blur(16px); }
.cms-blk.pr-elevated > .cms-in, .cms-col.pr-elevated { background: var(--panel); box-shadow: 0 30px 70px -30px rgb(15 23 42 / .35); }
.cms-blk.pr-outline > .cms-in, .cms-col.pr-outline { border: 1.5px solid var(--line-2); }
.cms-blk.pr-gradient-border > .cms-in, .cms-col.pr-gradient-border { border: 2px solid transparent; background: linear-gradient(var(--panel), var(--panel)) padding-box, var(--grad) border-box; }
.cms-blk.pr-soft > .cms-in, .cms-col.pr-soft { background: var(--primary-soft); }
.cms-blk.pr-dark-panel > .cms-in, .cms-col.pr-dark-panel { background: #0b1426; color: #eaf1fb; }
.cms-blk.pr-brand-glow > .cms-in, .cms-col.pr-brand-glow { background: var(--panel); border: 1px solid color-mix(in srgb, var(--primary) 40%, transparent); box-shadow: 0 20px 60px -20px color-mix(in srgb, var(--primary) 60%, transparent); }
.cms-blk.pr-frosted > .cms-in, .cms-col.pr-frosted { background: color-mix(in srgb, var(--panel) 55%, transparent); backdrop-filter: blur(22px); border: 1px solid var(--line); }
.cms-blk.pr-accent-line > .cms-in, .cms-col.pr-accent-line { border-left: 4px solid var(--primary); border-radius: 0 var(--r, 18px) var(--r, 18px) 0; background: linear-gradient(90deg, var(--primary-soft), transparent 70%); }
.cms-blk.pr-spotlight > .cms-in, .cms-col.pr-spotlight { background: radial-gradient(500px 200px at 50% 0%, var(--primary-soft), transparent 70%), var(--panel); border: 1px solid var(--line); }
.cms-blk.rd-none > .cms-in, .cms-col.rd-none { border-radius: 0; } .cms-blk.rd-sm > .cms-in, .cms-col.rd-sm { border-radius: 8px; } .cms-blk.rd-md > .cms-in, .cms-col.rd-md { border-radius: 14px; }
.cms-blk.rd-lg > .cms-in, .cms-col.rd-lg { border-radius: 24px; } .cms-blk.rd-xl > .cms-in, .cms-col.rd-xl { border-radius: 34px; }
.cms-blk.sh-none > .cms-in, .cms-col.sh-none { box-shadow: none; } .cms-blk.sh-sm > .cms-in, .cms-col.sh-sm, .cms-blk.sh-md > .cms-in, .cms-col.sh-md { box-shadow: var(--shadow); }
.cms-blk.sh-lg > .cms-in, .cms-col.sh-lg { box-shadow: 0 30px 70px -30px rgb(15 23 42 / .4); } .cms-blk.sh-glow > .cms-in, .cms-col.sh-glow { box-shadow: 0 20px 60px -20px color-mix(in srgb, var(--primary) 60%, transparent); }
.cms-blk.bd-none > .cms-in, .cms-col.bd-none { border: 0; } .cms-blk.bd-subtle > .cms-in, .cms-col.bd-subtle { border: 1px solid var(--line); }
.cms-blk.bd-strong > .cms-in, .cms-col.bd-strong { border: 1.5px solid var(--line-2); } .cms-blk.bd-brand > .cms-in, .cms-col.bd-brand { border: 1.5px solid var(--primary); }
.cms-blk.bd-dashed > .cms-in, .cms-col.bd-dashed { border: 1.5px dashed var(--line-2); }
.cms-blk.mh-sm { min-height: 30vh; } .cms-blk.mh-md { min-height: 45vh; } .cms-blk.mh-lg { min-height: 60vh; } .cms-blk.mh-screen { min-height: 80vh; }
.cms-blk[class*=" mh-"] { display: grid; align-content: center; } .cms-blk.ta-right { text-align: right; }
.cms-blk.tt-light { color: #f1f6fd; --fg: #fff; --fg-2: #e3ecf8; --muted: #c7d4e6; } .cms-blk.tt-dark { color: #0c1628; --fg: #0c1628; --fg-2: #33415a; }
.cms-blk.bg-mesh > .cms-in { background: radial-gradient(40% 60% at 10% 10%, rgb(34 211 238 / .2), transparent 70%), radial-gradient(40% 60% at 90% 20%, rgb(192 132 252 / .18), transparent 70%); border-radius: var(--r, 18px); padding: 22px 24px; }
.cms-blk.bg-ocean > .cms-in { background: linear-gradient(135deg, #0c4a6e, #0369a1 45%, #0891b2); color: #f0f9ff; border-radius: var(--r, 18px); padding: 22px 24px; }
.cms-blk.bg-sunset > .cms-in { background: linear-gradient(135deg, #7c2d12, #c2410c 40%, #db2777); color: #fff7ed; border-radius: var(--r, 18px); padding: 22px 24px; }
.cms-blk.bg-forest > .cms-in { background: linear-gradient(135deg, #064e3b, #047857 50%, #0d9488); color: #ecfdf5; border-radius: var(--r, 18px); padding: 22px 24px; }
.cms-blk.bg-night > .cms-in { background: radial-gradient(80% 80% at 80% 0%, #312e81, transparent 60%), linear-gradient(180deg, #020617, #0b1426); color: #e0e7ff; border-radius: var(--r, 18px); padding: 22px 24px; }
.cms-blk.bg-dots > .cms-in { background-image: radial-gradient(var(--line-2) 1.2px, transparent 1.3px); background-size: 20px 20px; border-radius: var(--r, 18px); padding: 20px; }
.cms-blk.bg-grid > .cms-in { background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 36px 36px; border-radius: var(--r, 18px); padding: 20px; }
.cms-blk.hv-lift > .cms-in, .cms-blk.hv-grow > .cms-in { transition: transform .3s, box-shadow .3s; } .cms-blk.hv-lift:hover > .cms-in { transform: translateY(-4px); box-shadow: var(--shadow); }
.cms-blk.hv-grow:hover > .cms-in { transform: scale(1.015); }
.js-anim .cms-rv.rv-blur { filter: blur(10px); } .js-anim .cms-rv.rv-blur.in { filter: none; } .js-anim .cms-rv.rv-flip { transform: perspective(900px) rotateX(16deg); }
.js-anim .cms-rv.sp-fast { transition-duration: .35s; } .js-anim .cms-rv.sp-slow { transition-duration: 1.1s; }
.cms-grid.cols-3-1 { grid-template-columns: 3fr 1fr; } .cms-grid.cols-1-3 { grid-template-columns: 1fr 3fr; } .cms-grid.cols-2-1-1 { grid-template-columns: 2fr 1fr 1fr; }
.cms-grid.cols-1-2-1 { grid-template-columns: 1fr 2fr 1fr; } .cms-grid.cols-1-1-2 { grid-template-columns: 1fr 1fr 2fr; } .cms-grid.cols-1-1-1-1-1 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1100px) { .cms-grid.stack-tablet { grid-template-columns: minmax(0, 1fr) !important; } .cms-blk.hide-tablet { display: none; } }
@media (max-width: 860px) { .cms-grid.cols-3-1, .cms-grid.cols-1-3, .cms-grid.cols-2-1-1, .cms-grid.cols-1-2-1, .cms-grid.cols-1-1-2, .cms-grid.cols-1-1-1-1-1 { grid-template-columns: minmax(0, 1fr); }
  .cms-grid.reverse-mobile { display: flex; flex-direction: column-reverse; } }
.cms-timeline { list-style: none; margin: 0; padding: 0 0 0 22px; border-left: 2px solid var(--primary); display: grid; gap: 14px; }
.cms-timeline li { position: relative; display: grid; gap: 2px; } .cms-timeline li::before { content: ""; position: absolute; left: -29px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: var(--panel); border: 3px solid var(--primary); }
.cms-timeline .tl-date { font-size: 12px; font-weight: 700; color: var(--primary); text-transform: uppercase; } .cms-timeline p { margin: 0; color: var(--fg-2); }
.cms-pbars { display: grid; gap: 12px; } .cms-pbar-top { display: flex; justify-content: space-between; font-weight: 600; margin-bottom: 4px; }
.cms-iconbox { display: grid; gap: 10px; } .cms-iconbox.left { grid-template-columns: auto 1fr; align-items: start; } .cms-iconbox p { margin: 4px 0 8px; color: var(--fg-2); }
.cms-note.tone-info > svg { color: #0284c7; }
.table.striped tbody tr:nth-child(even) { background: color-mix(in srgb, var(--card-2) 60%, transparent); }
