/* ==========================================================================
   Orbit - the Security Tech site theme (dark and light).
   Loaded after soft-design-system-pro.min.css via partials/theme-head, so it
   restyles the Soft UI markup on product and legal pages and provides the
   o-* components used by the homepage, nav and footer.
   Theme lives on <html data-theme="dark|light">.
   ========================================================================== */

:root,
[data-theme="dark"] {
    --o-bg: #06060d;
    --o-bg-2: #0b0b18;
    --o-card: #10101f;
    --o-card-2: #14142a;
    --o-line: rgba(255, 255, 255, .09);
    --o-line-2: rgba(255, 255, 255, .16);
    --o-text: #ecebff;
    --o-mut: #a9a8cf;
    --o-dim: #7f7eaa;
    --o-acc: #ffcf5c;
    --o-acc-text: #ffcf5c;
    --o-acc-ink: #1a1300;
    --o-glow: rgba(91, 75, 255, .28);
    --o-star: rgba(255, 255, 255, .45);
    --o-shadow: 0 30px 70px rgba(0, 0, 0, .55);
    --o-nav: rgba(6, 6, 13, .72);
    color-scheme: dark;
}

[data-theme="light"] {
    --o-bg: #f6f5fb;
    --o-bg-2: #eeecf8;
    --o-card: #ffffff;
    --o-card-2: #f7f6fd;
    --o-line: rgba(26, 24, 64, .09);
    --o-line-2: rgba(26, 24, 64, .18);
    --o-text: #15142b;
    --o-mut: #55537a;
    --o-dim: #8584a6;
    --o-acc: #ffcf5c;
    --o-acc-text: #9a6400;
    --o-acc-ink: #1a1300;
    --o-glow: rgba(125, 107, 255, .22);
    --o-star: rgba(26, 24, 64, .16);
    --o-shadow: 0 30px 60px rgba(40, 34, 110, .16);
    --o-nav: rgba(246, 245, 251, .78);
    color-scheme: light;
}

/* ---------- Base ---------- */
html { background: var(--o-bg); }
body {
    background-color: var(--o-bg);
    background-image:
        radial-gradient(1px 1px at 20px 30px, var(--o-star) 50%, transparent 51%),
        radial-gradient(1px 1px at 140px 110px, var(--o-star) 50%, transparent 51%),
        radial-gradient(1.5px 1.5px at 260px 60px, var(--o-star) 50%, transparent 51%),
        radial-gradient(1px 1px at 330px 190px, var(--o-star) 50%, transparent 51%);
    background-size: 360px 240px;
    color: var(--o-mut);
    font-family: 'Space Grotesk', system-ui, sans-serif;
    transition: background-color .3s ease, color .3s ease;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { color: var(--o-text); font-family: 'Space Grotesk', system-ui, sans-serif; letter-spacing: -.02em; }
p, li, .lead { color: var(--o-mut); }
a { color: var(--o-acc-text); }
strong, b { color: var(--o-text); }
.btn, .badge, .form-control, .dropdown-item { font-family: 'Space Grotesk', system-ui, sans-serif; }
.o-serif { font-family: 'Instrument Serif', Georgia, serif; font-style: italic; font-weight: 400; letter-spacing: 0; }
.o-acc { color: var(--o-acc-text); }
::selection { background: var(--o-acc); color: var(--o-acc-ink); }

/* ---------- Nav ---------- */
.o-nav {
    position: sticky; top: 0; z-index: 1030;
    background: var(--o-nav);
    -webkit-backdrop-filter: saturate(160%) blur(14px);
    backdrop-filter: saturate(160%) blur(14px);
    border-bottom: 1px solid var(--o-line);
}
.o-nav-inner { display: flex; align-items: center; gap: 1rem; min-height: 68px; flex-wrap: wrap; }
.o-brand { display: inline-flex; align-items: center; gap: .65rem; color: var(--o-text) !important; font-weight: 500; font-size: 1.02rem; text-decoration: none; margin-right: auto; }
.o-brand img { height: 30px; width: auto; }
.o-nav-menu { display: flex !important; align-items: center; gap: 1.25rem; }
.o-links { display: flex; align-items: center; gap: 1.75rem; list-style: none; margin: 0; padding: 0; }
.o-link { color: var(--o-mut) !important; font-size: .95rem; text-decoration: none; transition: color .2s; }
.o-link:hover, .o-link:focus { color: var(--o-text) !important; }
.o-link.dropdown-toggle::after { border: 0; content: "\f107"; font-family: "Font Awesome 6 Free"; font-weight: 900; vertical-align: 0; margin-left: .35rem; font-size: .75rem; }
.o-burger { display: none; background: none; border: 1px solid var(--o-line-2); color: var(--o-text); border-radius: 10px; width: 42px; height: 38px; }
.o-theme {
    display: inline-flex; align-items: center; gap: .45rem;
    background: var(--o-card); color: var(--o-text);
    border: 1px solid var(--o-line-2); border-radius: 999px;
    padding: .45rem .85rem; font-size: .85rem; cursor: pointer;
    transition: background .2s, border-color .2s;
}
.o-theme:hover { border-color: var(--o-acc); }
.o-theme .o-ic-light { display: none; color: #f59e0b; }
.o-theme .o-ic-dark { color: var(--o-acc); }
[data-theme="light"] .o-theme .o-ic-light { display: inline; }
[data-theme="light"] .o-theme .o-ic-dark { display: none; }
.o-theme-label { display: none; }
.o-mega {
    background: var(--o-card) !important; border: 1px solid var(--o-line-2) !important;
    border-radius: 18px !important; box-shadow: var(--o-shadow) !important;
    padding: .6rem !important; width: 560px; margin-top: .9rem !important;
    display: none; grid-template-columns: 1fr 1fr; gap: .15rem;
}
.o-mega.show { display: grid; }
@media (min-width: 992px) { .o-mega { left: auto !important; right: -1rem !important; } }
.o-mega::before { display: none !important; }
.o-mega-item { display: flex; align-items: center; gap: .7rem; padding: .55rem .65rem; border-radius: 12px; text-decoration: none; }
.o-mega-item:hover { background: var(--o-card-2); }
.o-mega-item img { width: 34px; height: 34px; object-fit: contain; flex: 0 0 auto; }
.o-mega-item b { display: block; color: var(--o-text); font-weight: 500; font-size: .92rem; }
.o-mega-item em { font-style: normal; font-size: .62rem; text-transform: uppercase; letter-spacing: .08em; background: var(--o-acc); color: var(--o-acc-ink); border-radius: 4px; padding: .05rem .3rem; margin-left: .3rem; vertical-align: 2px; }
.o-mega-item small { display: block; color: var(--o-dim); font-size: .76rem; line-height: 1.3; }

@media (max-width: 991.98px) {
    .o-burger { display: inline-flex; align-items: center; justify-content: center; }
    .o-nav-menu { display: none !important; width: 100%; flex-direction: column; align-items: stretch; padding: .5rem 0 1rem; }
    .o-nav-menu.show, .o-nav-menu.collapsing { display: flex !important; }
    .o-links { flex-direction: column; align-items: stretch; gap: .25rem; }
    .o-link { display: block; padding: .55rem 0; }
    .o-mega { position: static !important; transform: none !important; inset: auto !important; margin-left: 0 !important; width: 100%; grid-template-columns: 1fr; margin-top: .25rem !important; box-shadow: none !important; }
    .o-theme { justify-content: center; margin-top: .5rem; }
    .o-theme-label { display: inline; }
}

/* ---------- Buttons ---------- */
.o-btn { display: inline-flex; align-items: center; gap: .5rem; padding: .8rem 1.35rem; border-radius: 999px; font-size: .95rem; font-weight: 500; text-decoration: none; border: 1px solid transparent; transition: transform .2s, border-color .2s, background .2s; }
.o-btn:hover { transform: translateY(-2px); }
.o-btn-acc { background: var(--o-acc); color: var(--o-acc-ink) !important; }
.o-btn-ghost { border-color: var(--o-line-2); color: var(--o-text) !important; background: transparent; }
.o-btn-ghost:hover { border-color: var(--o-acc); }

/* ---------- Footer ---------- */
.o-footer { border-top: 1px solid var(--o-line); padding: 4.5rem 0 2.5rem; margin-top: 5rem; background: transparent; }
.o-foot-note { font-size: .9rem; color: var(--o-dim); margin-top: 1rem; max-width: 320px; }
.o-foot-h { font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--o-dim); margin-bottom: 1rem; }
.o-foot-list { list-style: none; padding: 0; margin: 0; }
.o-foot-list li { margin-bottom: .55rem; }
.o-foot-list a { color: var(--o-mut); text-decoration: none; font-size: .92rem; }
.o-foot-list a:hover { color: var(--o-text); }
.o-foot-2col { columns: 2; column-gap: 1.5rem; }
.o-foot-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; border-top: 1px solid var(--o-line); margin-top: 2.5rem; padding-top: 1.5rem; font-size: .8rem; color: var(--o-dim); }

/* ---------- Homepage: hero + orbit ---------- */
.o-hero { padding: 3rem 0 2rem; overflow-x: clip; }
.o-eyebrow { font-size: .75rem; letter-spacing: .22em; text-transform: uppercase; color: var(--o-dim); }
.o-h1 { font-size: clamp(2.6rem, 5.6vw, 4.9rem); line-height: .98; font-weight: 700; margin: 1.1rem 0 1.4rem; }
.o-h1 .o-serif { color: var(--o-acc-text); font-size: 1.1em; }
.o-lead { font-size: 1.12rem; line-height: 1.6; max-width: 480px; }
.o-hint { font-size: .82rem; color: var(--o-dim); margin-top: 1.4rem; }

.o-sys-wrap { position: relative; height: 720px; }
.o-sys { position: absolute; left: 50%; top: 50%; width: 700px; height: 700px; margin: -350px 0 0 -350px; }
.o-glow { position: absolute; inset: -40px; border-radius: 50%; background: radial-gradient(circle, var(--o-glow) 0, transparent 62%); pointer-events: none; }
/* the whole system turns as one (same duration everywhere), so planets on
   different rings never drift into each other */
.o-ring { position: absolute; left: 50%; top: 50%; border: 1px solid var(--o-line-2); border-radius: 50%; animation: o-spin 120s linear infinite; pointer-events: none; }
.o-ring { z-index: 1; }
.o-ring.r2 { z-index: 3; }
.o-ring:hover, .o-ring:focus-within { z-index: 6; }
.o-ring.r1 { width: 300px; height: 300px; margin: -150px 0 0 -150px; }
.o-ring.r2 { width: 456px; height: 456px; margin: -228px 0 0 -228px; border-style: dashed; }
.o-ring.r3 { width: 600px; height: 600px; margin: -300px 0 0 -300px; }
.o-slot { position: absolute; left: 50%; top: 50%; width: 0; height: 0; }
.o-planet {
    position: absolute; width: 74px; height: 74px; margin: -37px 0 0 -37px;
    border-radius: 22px; background: var(--o-card); border: 1px solid var(--o-line-2);
    display: flex; align-items: center; justify-content: center; text-decoration: none;
    animation: o-spin 120s linear infinite reverse; pointer-events: auto;
    transition: border-color .25s, box-shadow .25s;
}
.o-planet img { width: 52px; height: 52px; object-fit: contain; }
.o-planet .o-pname { position: absolute; top: 82px; left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: .75rem; color: var(--o-mut); }
.o-planet .o-tip {
    position: absolute; bottom: 88px; left: 50%; transform: translateX(-50%) translateY(6px);
    width: 220px; padding: .85rem 1rem; border-radius: 14px; text-align: left;
    background: var(--o-card); border: 1px solid var(--o-acc); box-shadow: var(--o-shadow);
    opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; z-index: 5;
}
.o-planet .o-tip b { display: block; color: var(--o-text); font-size: 1rem; font-weight: 500; }
.o-planet .o-tip span { display: block; color: var(--o-mut); font-size: .8rem; margin: .2rem 0 .45rem; line-height: 1.35; }
.o-planet .o-tip i { color: var(--o-acc-text); font-style: normal; font-size: .8rem; }
.o-planet:hover, .o-planet:focus-visible, .o-planet.is-new { border-color: var(--o-acc); box-shadow: 0 0 36px rgba(255, 207, 92, .35); z-index: 4; }
.o-planet.tip-below .o-tip { bottom: auto; top: 88px; }
.o-planet:hover .o-tip, .o-planet:focus-visible .o-tip, .o-planet.is-open .o-tip { opacity: 1; transform: translateX(-50%) translateY(0); }
.o-sys:hover .o-planet.is-open:not(:hover) .o-tip { opacity: 0; }
.o-sys:hover .o-ring, .o-sys:hover .o-planet, .o-sys:hover .o-ring-label,
.o-sys:focus-within .o-ring, .o-sys:focus-within .o-planet, .o-sys:focus-within .o-ring-label { animation-play-state: paused; }
.o-ring-label { position: absolute; left: 0; top: 0; translate: -50% -50%; animation: o-spin 120s linear infinite reverse; font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: var(--o-dim); white-space: nowrap; background: var(--o-bg); padding: 0 .45rem; border-radius: 4px; }
.o-sun {
    position: absolute; left: 50%; top: 50%; width: 140px; height: 140px; margin: -70px 0 0 -70px; border-radius: 50%;
    background: radial-gradient(circle, #fff 0, #ece9ff 55%, #c3bcff 100%);
    box-shadow: 0 0 80px 18px rgba(125, 107, 255, .45), 0 0 0 16px rgba(125, 107, 255, .06), 0 0 0 36px rgba(125, 107, 255, .035);
    display: flex; align-items: center; justify-content: center;
}
.o-sun img { width: 78px; height: auto; }
@keyframes o-spin { to { transform: rotate(360deg); } }

@media (max-width: 1199.98px) { .o-sys { transform: scale(.86); } .o-sys-wrap { height: 640px; } }
@media (max-width: 991.98px) { .o-sys-wrap { height: 600px; margin-top: 1rem; } .o-sys { transform: scale(.82); } }
@media (max-width: 575.98px) {
    .o-sys-wrap { height: 380px; }
    .o-sys { transform: scale(.52); }
    .o-planet .o-pname, .o-ring-label { display: none; }
    .o-planet .o-tip { display: none; }
}
@media (prefers-reduced-motion: reduce) { .o-ring, .o-planet, .o-ring-label { animation: none; } }

/* ---------- Homepage: sections ---------- */
.o-sec { padding: 6.5rem 0 0; }
.o-sec-head { text-align: center; max-width: 720px; margin: 0 auto 3rem; }
.o-h2 { font-size: clamp(2.1rem, 4vw, 3.4rem); font-weight: 700; line-height: 1.02; }
.o-h2 .o-serif { color: var(--o-acc-text); font-size: 1.08em; }
.o-sec-head p { font-size: 1.08rem; margin-top: .9rem; }
.o-panel { background: var(--o-card); border: 1px solid var(--o-line); border-radius: 26px; padding: 1.75rem; height: 100%; }
.o-panel.is-hot { border-color: rgba(255, 207, 92, .45); }
.o-panel-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: .75rem; }
.o-panel-head b { font-size: 1.2rem; font-weight: 500; }
.o-panel-head span { font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: var(--o-dim); }
.o-app { display: flex; gap: 1rem; align-items: center; padding: .85rem .5rem; margin: 0 -.5rem; border-top: 1px solid var(--o-line); border-radius: 12px; text-decoration: none; transition: background .2s; }
.o-app:hover { background: var(--o-card-2); }
.o-app img { width: 50px; height: 50px; object-fit: contain; flex: 0 0 auto; }
.o-app b { display: block; color: var(--o-text); font-weight: 500; font-size: 1.02rem; }
.o-app small { display: block; color: var(--o-mut); font-size: .84rem; }
.o-app em { display: block; font-style: normal; color: var(--o-dim); font-size: .72rem; margin-top: .1rem; }
.o-app .o-new { display: inline-block; font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; background: var(--o-acc); color: var(--o-acc-ink); border-radius: 4px; padding: .05rem .3rem; margin-left: .35rem; vertical-align: 2px; }

/* Close approach: horizontal carousel of every app */
.o-car { position: relative; }
.o-car-track { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0; padding: 4px 2px 18px; scrollbar-width: none; overscroll-behavior-x: contain; }
.o-car-track::-webkit-scrollbar { display: none; }
.o-card {
    --tint: #ffcf5c;
    flex: 0 0 min(600px, 86%); scroll-snap-align: start; position: relative; overflow: hidden;
    min-height: 540px; border-radius: 28px; border: 1px solid var(--o-line); padding: 2rem 2rem 0;
    background: radial-gradient(circle at 90% 0, color-mix(in srgb, var(--tint) 26%, transparent), transparent 58%), var(--o-card);
    display: flex; flex-direction: column; text-decoration: none; transition: border-color .25s, transform .3s;
}
.o-card:hover { border-color: color-mix(in srgb, var(--tint) 60%, transparent); transform: translateY(-3px); }
.o-card .o-k { font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--o-dim); }
.o-card .o-new { font-weight: 500; letter-spacing: .08em; background: var(--o-acc); color: var(--o-acc-ink); border-radius: 4px; padding: .05rem .35rem; margin-right: .4rem; }
.o-card-title { display: flex; align-items: center; gap: 1rem; margin: 1rem 0 1.5rem; }
.o-card-title img { width: 56px; height: 56px; object-fit: contain; }
.o-card-title b { display: block; color: var(--o-text); font-size: clamp(1.6rem, 2.6vw, 2.2rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.05; }
.o-card-title small { display: block; color: var(--o-mut); font-size: 1rem; margin-top: .25rem; }
.o-card-shot { display: block; width: 100%; height: auto; margin-top: auto; border-radius: 14px 14px 0 0; box-shadow: var(--o-shadow); }
.o-card-noshot { margin-top: auto; display: flex; justify-content: center; padding-bottom: 3rem; }
.o-card-noshot img { width: 200px; height: auto; }
.o-car-nav { display: flex; justify-content: flex-end; gap: .6rem; margin-top: .75rem; }
.o-car-btn { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--o-line-2); background: var(--o-card); color: var(--o-text); cursor: pointer; transition: border-color .2s; }
.o-car-btn:hover { border-color: var(--o-acc); }
@media (max-width: 767.98px) {
    .o-card { min-height: 0; padding: 1.5rem 1.5rem 0; flex-basis: 88%; }
    .o-card-shot { margin-top: .5rem; }
}

.o-grav { position: relative; height: 380px; }
.o-grav .o-c1, .o-grav .o-c2, .o-grav .o-dev { position: absolute; left: 50%; top: 50%; border-radius: 50%; }
.o-grav .o-c1 { width: 360px; height: 360px; margin: -180px 0 0 -180px; border: 1px dashed var(--o-line-2); }
.o-grav .o-c2 { width: 230px; height: 230px; margin: -115px 0 0 -115px; border: 1px solid var(--o-line-2); background: radial-gradient(circle, var(--o-glow), transparent 70%); }
.o-grav .o-dev { width: 122px; height: 122px; margin: -61px 0 0 -61px; border-radius: 30px; background: var(--o-card); border: 1px solid var(--o-line-2); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .3rem; font-size: .8rem; color: var(--o-mut); }
.o-grav .o-dev i { font-size: 1.6rem; color: var(--o-text); }
.o-grav .o-x { position: absolute; font-size: .82rem; color: #e25555; white-space: nowrap; }
.o-stat { background: var(--o-card); border: 1px solid var(--o-line); border-radius: 20px; padding: 1.3rem 1.4rem; height: 100%; }
.o-stat b { display: block; font-size: 2.6rem; font-weight: 700; letter-spacing: -.03em; line-height: 1.05; }
.o-stat span { font-size: .85rem; color: var(--o-mut); }
.o-quote { background: var(--o-card); border: 1px solid var(--o-line); border-radius: 22px; padding: 1.75rem; height: 100%; }
.o-quote p { font-size: 1.02rem; line-height: 1.6; color: var(--o-text); }
.o-quote .o-who { margin-top: 1.25rem; font-size: .88rem; color: var(--o-dim); }
.o-quote .o-who b { color: var(--o-text); font-weight: 500; }
.o-plat { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.o-plat span { display: inline-flex; align-items: center; gap: .55rem; border: 1px solid var(--o-line-2); border-radius: 999px; padding: .55rem 1.05rem; color: var(--o-text); font-size: .92rem; background: var(--o-card); }
.o-cta { border-radius: 30px; border: 1px solid var(--o-line); padding: 3rem; background: radial-gradient(circle at 0 0, var(--o-glow), transparent 60%), var(--o-card); }

/* ==========================================================================
   Soft UI markup on product and legal pages, re-skinned for both themes
   ========================================================================== */
.bg-white, .bg-gray-100, .bg-gray-200 { background-color: transparent !important; }
section.bg-gray-100, section.bg-gray-200 { background-color: var(--o-bg-2) !important; }
.text-dark { color: var(--o-text) !important; }
.text-secondary { color: var(--o-dim) !important; }
.text-body { color: var(--o-mut) !important; }
hr.horizontal.dark { background-image: linear-gradient(90deg, transparent, var(--o-line-2), transparent); }

.card { background-color: var(--o-card) !important; border: 1px solid var(--o-line) !important; box-shadow: none !important; }
.card.shadow-lg { box-shadow: var(--o-shadow) !important; }
.card .card-body, .card p { color: var(--o-mut); }
.card-header.bg-gradient-dark { background: var(--o-card-2) !important; border-bottom: 1px solid var(--o-line); }
.card-header.bg-gradient-dark h1, .card-header.bg-gradient-dark h3, .card-header.bg-gradient-dark p { color: var(--o-text) !important; }
.card-header .waves { display: none; }

/* product hero: drop the photo + waves, keep the layout */
.page-header { background-color: var(--o-bg) !important; background-image: radial-gradient(circle at 75% 45%, var(--o-glow), transparent 55%) !important; }
.page-header > .mask { display: none !important; }
.page-header .waves, header .waves { display: none !important; }
.page-header .text-white, .page-header h1, .page-header .h4 { color: var(--o-text) !important; }
.page-header .lead { color: var(--o-mut) !important; opacity: 1 !important; }
.page-header .btn.bg-white { background: var(--o-acc) !important; color: var(--o-acc-ink) !important; border: 0; box-shadow: none; }
.page-header .btn-outline-white { border-color: var(--o-line-2) !important; color: var(--o-text) !important; }
.page-header .btn-outline-white:hover { background: transparent !important; border-color: var(--o-acc) !important; }
.min-vh-100 { min-height: calc(100vh - 68px) !important; }
header .page-header .row.min-vh-100 { padding-top: 2rem; }

/* light hero text accents that only work on dark */
[data-theme="light"] .page-header .uf-grad-light,
[data-theme="light"] .page-header .ll-grad-light {
    background-image: none !important; -webkit-text-fill-color: var(--o-acc-text) !important; color: var(--o-acc-text) !important;
}
.btn { border-radius: 999px; }
.btn.bg-gradient-info, .btn.bg-gradient-primary { box-shadow: none; }

/* dark CTA blocks stay dark in both themes, so their white text keeps working */
section .bg-gradient-dark { background: #0f0f22 !important; border: 1px solid var(--o-line); }
section .bg-gradient-dark p, section .bg-gradient-dark h2, section .bg-gradient-dark h3, section .bg-gradient-dark h4 { color: #ecebff !important; }

.form-control, .form-select { background-color: var(--o-card-2) !important; border: 1px solid var(--o-line-2) !important; color: var(--o-text) !important; }
.form-control::placeholder { color: var(--o-dim) !important; }
.form-control:focus { border-color: var(--o-acc) !important; box-shadow: 0 0 0 3px rgba(255, 207, 92, .2) !important; }
label, .form-label { color: var(--o-mut); }
.nav-pills, .nav-tabs { background: var(--o-card-2) !important; }

.info-horizontal .description p, .info p { color: var(--o-mut); }
.carousel-inner { border: 1px solid var(--o-line); }

/* text-only heroes (contact, redeem): no screenshot, so no full-screen height */
.page-header.min-vh-100:not(:has(picture)) { min-height: 0 !important; padding: 5rem 0 3rem; }
.page-header:not(:has(picture)) .mt-n7 { margin-top: 0 !important; }
.blur.shadow-blur, .blur.border-radius-lg { background-color: var(--o-card) !important; border: 1px solid var(--o-line); box-shadow: none !important; -webkit-backdrop-filter: none; backdrop-filter: none; }
hr.vertical.dark { background-image: linear-gradient(180deg, transparent, var(--o-line-2), transparent); }

/* Soft UI gradient text tuned for light pages; brighten it on the dark theme */
[data-theme="dark"] .text-gradient.text-info { background-image: linear-gradient(310deg, #7c8cff 0%, #5ad9ff 100%); }
[data-theme="dark"] .text-gradient.text-primary { background-image: linear-gradient(310deg, #b07cff 0%, #ff7ac6 100%); }
[data-theme="dark"] .text-gradient.text-dark { background-image: linear-gradient(310deg, #a9a8cf 0%, #ecebff 100%); }

/* page-scoped light chips from product pages, toned down on the dark theme */
[data-theme="dark"] .ll-quote { background: #17142b; color: #d9d0ff; }
[data-theme="dark"] .ll-ext { background: #1d1838; color: #b9a8ff; }
[data-theme="dark"] .ll-level-critical { background: #3a1518; color: #ff8a8a; }
[data-theme="dark"] .ll-level-who { background: #221b44; color: #b9a8ff; }
[data-theme="dark"] .ll-level-info { background: #12301f; color: #6fdc9c; }
[data-theme="dark"] .uf-chip { background: #2a1a24; color: #f0b9cf; }
[data-theme="dark"] .uf-demo { border-radius: 1rem; }
