/*
 * Renton IT Client Portal Theme
 * Built directly from the user's FOSSBilling Huraga theme.
 * No FOSSBilling core files are changed.
 *
 * Brand colors from rentonit.com:
 * Navy   #0e2b5c
 * Accent #ff3366
 */

:root,
[data-bs-theme="light"] {
    --rit-navy: #0e2b5c;
    --rit-navy-dark: #081e42;
    --rit-navy-mid: #173b70;
    --rit-accent: #ff3366;
    --rit-accent-dark: #e82153;
    --rit-bg: #f4f7fb;
    --rit-surface: #ffffff;
    --rit-surface-soft: #f8faff;
    --rit-border: #e2e8f0;
    --rit-text: #172033;
    --rit-muted: #667085;
    --rit-radius: 14px;
    --rit-shadow: 0 9px 28px rgba(14, 43, 92, .08);
    --rit-shadow-hover: 0 15px 38px rgba(14, 43, 92, .13);

    --bs-primary: #0e2b5c;
    --bs-primary-rgb: 14, 43, 92;
    --bs-secondary: #667085;
    --bs-secondary-rgb: 102, 112, 133;
    --bs-link-color: #0e2b5c;
    --bs-link-hover-color: #ff3366;
    --bs-body-color: #172033;
    --bs-body-bg: #f4f7fb;
    --bs-border-color: #e2e8f0;
    --bs-border-radius: 10px;
    --bs-border-radius-lg: 14px;
    --bs-focus-ring-color: rgba(14, 43, 92, .18);
}

[data-bs-theme="dark"] {
    --rit-bg: #071426;
    --rit-surface: #0d1f38;
    --rit-surface-soft: #102743;
    --rit-border: rgba(255, 255, 255, .10);
    --rit-text: #eef4fb;
    --rit-muted: #a8b4c5;
    --rit-shadow: 0 10px 30px rgba(0, 0, 0, .22);
    --rit-shadow-hover: 0 16px 40px rgba(0, 0, 0, .32);

    --bs-primary: #ff3366;
    --bs-primary-rgb: 255, 51, 102;
    --bs-link-color: #ff7295;
    --bs-link-hover-color: #ffffff;
    --bs-body-color: #eef4fb;
    --bs-body-bg: #071426;
    --bs-border-color: rgba(255, 255, 255, .10);
}

/* ---------- Page foundation ---------- */
html {
    scroll-behavior: smooth;
}

body {
    background:
        radial-gradient(circle at 86% 0%, rgba(255, 51, 102, .06), transparent 26rem),
        linear-gradient(180deg, #f9fbff 0, var(--rit-bg) 320px);
    color: var(--rit-text);
    font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    letter-spacing: -.005em;
}

[data-bs-theme="dark"] body {
    background:
        radial-gradient(circle at 86% 0%, rgba(255, 51, 102, .07), transparent 27rem),
        linear-gradient(180deg, #091a30 0, var(--rit-bg) 360px);
}

body > .container {
    max-width: 1440px;
}

::selection {
    background: rgba(255, 51, 102, .22);
}

a {
    transition: color .16s ease, opacity .16s ease;
}

a:hover {
    color: var(--rit-accent);
}

/* ---------- Main site-like header ---------- */
header {
    position: relative;
    margin: 0 -12px 28px;
    padding: 0 12px;
    background: rgba(255, 255, 255, .97);
    border-bottom: 1px solid rgba(14, 43, 92, .09);
    box-shadow: 0 5px 22px rgba(14, 43, 92, .055);
    z-index: 20;
}

header::before {
    content: "";
    display: block;
    height: 4px;
    background: linear-gradient(90deg, var(--rit-navy) 0 78%, var(--rit-accent) 78% 100%);
}

[data-bs-theme="dark"] header {
    background: rgba(9, 26, 48, .97);
    border-bottom-color: rgba(255,255,255,.08);
}

.navbar {
    min-height: 80px;
    background: transparent !important;
}

.navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    min-width: 150px;
    color: var(--rit-navy) !important;
    font-weight: 850;
    letter-spacing: -.025em;
}

.navbar-brand img {
    width: auto !important;
    height: 52px !important;
    max-width: 225px;
    object-fit: contain;
}

[data-bs-theme="dark"] .navbar-brand {
    color: #fff !important;
}

.navbar .nav-link {
    position: relative;
    color: #334155;
    font-size: .88rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .035em;
    border-radius: 8px;
    padding: .65rem .72rem !important;
}

.navbar .nav-link:hover {
    color: var(--rit-navy) !important;
    background: rgba(14, 43, 92, .055);
}

.navbar .nav-link.active {
    color: var(--rit-navy) !important;
    background: rgba(14, 43, 92, .055);
    font-weight: 800;
}

.navbar .nav-link.active::after {
    content: "";
    position: absolute;
    left: .72rem;
    right: .72rem;
    bottom: .22rem;
    height: 2px;
    border-radius: 2px;
    background: var(--rit-accent);
}

[data-bs-theme="dark"] .navbar .nav-link {
    color: #d9e3f0;
}

[data-bs-theme="dark"] .navbar .nav-link:hover,
[data-bs-theme="dark"] .navbar .nav-link.active {
    color: #fff !important;
    background: rgba(255,255,255,.07);
}

.navbar-toggler {
    border: 1px solid rgba(14, 43, 92, .20);
    border-radius: 9px;
    padding: .45rem .55rem;
}

.client-dropdown .nav-link.dropdown-toggle {
    border-radius: 9px;
}

.client-dropdown .dropdown-menu {
    min-width: 190px;
}

/* ---------- Left portal navigation ---------- */
#sidebarMenu .offcanvas-body {
    position: sticky;
    top: 1rem;
    overflow: hidden !important;
    padding: .75rem;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: var(--rit-radius);
    background:
        radial-gradient(circle at 100% 0%, rgba(255,51,102,.17), transparent 10rem),
        linear-gradient(180deg, var(--rit-navy), var(--rit-navy-dark));
    box-shadow: 0 13px 34px rgba(14,43,92,.15);
}

#sidebarMenu .nav {
    gap: .22rem;
}

#sidebarMenu .offcanvas-item {
    border: 0;
    border-radius: 9px;
    overflow: hidden;
}

#sidebarMenu .offcanvas-item:first-child {
    border-top: 0;
}

#sidebarMenu .offcanvas-item:hover {
    background: transparent;
}

#sidebarMenu .nav-link {
    min-height: 43px;
    color: rgba(255,255,255,.82) !important;
    border-radius: 9px;
    padding: .68rem .72rem;
    font-weight: 670;
}

#sidebarMenu .nav-link .icon {
    color: rgba(255,255,255,.72);
}

#sidebarMenu .nav-link:hover {
    color: #fff !important;
    background: rgba(255,255,255,.095);
}

#sidebarMenu .offcanvas-item.active,
#sidebarMenu .offcanvas-item.active:hover {
    background: transparent;
}

#sidebarMenu .nav-link.active,
#sidebarMenu .offcanvas-item.active > .nav-link {
    color: #fff !important;
    background: rgba(255,255,255,.12);
    box-shadow: inset 3px 0 0 var(--rit-accent);
    font-weight: 780;
}

#sidebarMenu .text-secondary {
    color: rgba(255,255,255,.62) !important;
}

#sidebarMenu h5,
#sidebarMenu h6,
#sidebarMenu strong,
#sidebarMenu span {
    color: rgba(255,255,255,.92);
}

/* ---------- Content area ---------- */
#wrapper {
    min-height: 63vh;
}

.content-block {
    padding-top: .05rem;
}

.breadcrumb {
    font-size: .82rem;
    font-weight: 600;
    margin-bottom: 1.15rem;
}

.breadcrumb a {
    color: var(--rit-navy);
    text-decoration: none;
}

[data-bs-theme="dark"] .breadcrumb a {
    color: #ff86a4;
}

h1, h2, h3, h4, h5, h6,
.card-title {
    color: var(--rit-navy);
    font-weight: 800;
    letter-spacing: -.022em;
}

[data-bs-theme="dark"] h1,
[data-bs-theme="dark"] h2,
[data-bs-theme="dark"] h3,
[data-bs-theme="dark"] h4,
[data-bs-theme="dark"] h5,
[data-bs-theme="dark"] h6,
[data-bs-theme="dark"] .card-title {
    color: #f5f8fc;
}

.content-block > h1:first-child,
.content-block > h2:first-child {
    text-transform: uppercase;
}

.content-block > h1:first-child::after,
.content-block > h2:first-child::after,
.content-block > h3:first-child::after {
    content: "";
    display: block;
    width: 48px;
    height: 3px;
    margin-top: .52rem;
    margin-bottom: .2rem;
    border-radius: 3px;
    background: var(--rit-accent);
}

/* ---------- Cards ---------- */
.card {
    overflow: hidden;
    border: 1px solid var(--rit-border);
    border-radius: var(--rit-radius);
    background: var(--rit-surface);
    box-shadow: var(--rit-shadow);
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.card:hover {
    border-color: rgba(14,43,92,.17);
    box-shadow: var(--rit-shadow-hover);
}

[data-bs-theme="dark"] .card:hover {
    border-color: rgba(255,255,255,.16);
}

.card-header {
    position: relative;
    padding: .9rem 1.15rem;
    color: var(--rit-navy);
    border-bottom: 1px solid var(--rit-border);
    background: linear-gradient(180deg, #ffffff, #fafcff);
    font-weight: 800;
}

.card-header::after {
    content: "";
    position: absolute;
    left: 1.15rem;
    bottom: -1px;
    width: 42px;
    height: 2px;
    background: var(--rit-accent);
}

.card-header h1,
.card-header h2,
.card-header h3,
.card-header h4,
.card-header h5,
.card-header h6 {
    margin-bottom: 0;
    color: inherit;
}

.card-body {
    padding: 1.2rem;
}

[data-bs-theme="dark"] .card-header {
    color: #f4f8fd;
    background: linear-gradient(180deg, #112744, #0f213a);
}

.dashboard .row > [class*="col-"] > .card,
.mod_client .row > [class*="col-"] > .card {
    height: calc(100% - 1.5rem);
}

/* ---------- Buttons ---------- */
.btn {
    min-height: 40px;
    border-radius: 8px;
    font-weight: 760;
    letter-spacing: .006em;
    transition: transform .14s ease, box-shadow .14s ease, background-color .14s ease, border-color .14s ease;
}

.btn:hover {
    transform: translateY(-1px);
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--rit-accent);
    --bs-btn-border-color: var(--rit-accent);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--rit-accent-dark);
    --bs-btn-hover-border-color: var(--rit-accent-dark);
    --bs-btn-active-bg: var(--rit-accent-dark);
    --bs-btn-active-border-color: var(--rit-accent-dark);
    box-shadow: 0 5px 16px rgba(255,51,102,.17);
}

.btn-outline-primary {
    --bs-btn-color: var(--rit-navy);
    --bs-btn-border-color: rgba(14,43,92,.34);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--rit-navy);
    --bs-btn-hover-border-color: var(--rit-navy);
    --bs-btn-active-bg: var(--rit-navy);
    --bs-btn-active-border-color: var(--rit-navy);
}

[data-bs-theme="dark"] .btn-outline-primary {
    --bs-btn-color: #ff86a4;
    --bs-btn-border-color: rgba(255,134,164,.55);
    --bs-btn-hover-bg: var(--rit-accent);
    --bs-btn-hover-border-color: var(--rit-accent);
}

.btn-secondary,
.btn-dark {
    --bs-btn-bg: var(--rit-navy);
    --bs-btn-border-color: var(--rit-navy);
    --bs-btn-hover-bg: var(--rit-navy-mid);
    --bs-btn-hover-border-color: var(--rit-navy-mid);
    --bs-btn-active-bg: var(--rit-navy-dark);
    --bs-btn-active-border-color: var(--rit-navy-dark);
}

/* ---------- Forms ---------- */
.form-label {
    margin-bottom: .42rem;
    color: #344054;
    font-size: .87rem;
    font-weight: 720;
}

[data-bs-theme="dark"] .form-label {
    color: #d4deeb;
}

.form-control,
.form-select,
.ts-control {
    min-height: 44px;
    border-color: #d7dfeb;
    border-radius: 9px;
    background-color: var(--rit-surface);
    box-shadow: none;
}

textarea.form-control {
    min-height: 115px;
}

.form-control:focus,
.form-select:focus,
.ts-wrapper.focus .ts-control {
    border-color: rgba(14,43,92,.54);
    box-shadow: 0 0 0 .22rem rgba(14,43,92,.10);
}

[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select,
[data-bs-theme="dark"] .ts-control {
    color: #eef4fb;
    border-color: rgba(255,255,255,.14);
    background: #09182b;
}

[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
    border-color: rgba(255,51,102,.62);
    box-shadow: 0 0 0 .22rem rgba(255,51,102,.10);
}

.form-check-input:checked {
    background-color: var(--rit-accent);
    border-color: var(--rit-accent);
}

/* ---------- Tables / invoices / services ---------- */
.table {
    --bs-table-bg: transparent;
    color: var(--rit-text);
}

.table thead th {
    color: var(--rit-navy);
    border-bottom-color: #dce4ef;
    background: #f6f9fd;
    font-size: .73rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.table > :not(caption) > * > * {
    padding: .78rem .74rem;
    border-bottom-color: #edf1f6;
}

.table-hover > tbody > tr:hover > * {
    --bs-table-bg-state: rgba(14,43,92,.035);
}

[data-bs-theme="dark"] .table thead th {
    color: #e1e9f3;
    border-bottom-color: rgba(255,255,255,.1);
    background: #0a192d;
}

[data-bs-theme="dark"] .table > :not(caption) > * > * {
    border-bottom-color: rgba(255,255,255,.075);
}

/* Gateway chooser */
.invoice-gateway {
    border-radius: 10px;
    background: var(--rit-surface);
}

.invoice-gateway:hover,
.invoice-gateway:has(.btn-check:checked) {
    border-color: var(--rit-accent);
    box-shadow: 0 0 0 2px rgba(255,51,102,.10);
}

/* ---------- Alerts, badges and status ---------- */
.alert {
    border: 0;
    border-left: 4px solid currentColor;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(14,43,92,.05);
}

.alert-info {
    --bs-alert-color: var(--rit-navy);
    --bs-alert-bg: #edf4ff;
    --bs-alert-border-color: transparent;
}

.alert-success {
    --bs-alert-color: #0d6849;
    --bs-alert-bg: #eaf8f2;
    --bs-alert-border-color: transparent;
}

.alert-warning {
    --bs-alert-color: #875a13;
    --bs-alert-bg: #fff7e6;
    --bs-alert-border-color: transparent;
}

.alert-danger {
    --bs-alert-color: #9b2438;
    --bs-alert-bg: #fff0f3;
    --bs-alert-border-color: transparent;
}

.badge {
    border-radius: 999px;
    padding: .43em .68em;
    font-weight: 750;
}

/* ---------- Tabs, pagination, lists ---------- */
.nav-tabs {
    border-bottom-color: var(--rit-border);
}

.nav-tabs .nav-link {
    color: var(--rit-muted);
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    font-weight: 720;
}

.nav-tabs .nav-link:hover {
    border-bottom-color: rgba(14,43,92,.18);
}

.nav-tabs .nav-link.active {
    color: var(--rit-navy) !important;
    border-bottom-color: var(--rit-accent);
    background: transparent;
}

[data-bs-theme="dark"] .nav-tabs .nav-link.active {
    color: #fff !important;
}

.list-group-item {
    padding: .86rem .95rem;
    border-color: var(--rit-border);
}

a.list-group-item:hover {
    color: var(--rit-navy);
    background: #f8faff;
}

[data-bs-theme="dark"] a.list-group-item:hover {
    color: #fff;
    background: rgba(255,255,255,.04);
}

.pagination {
    gap: .25rem;
}

.page-link {
    color: var(--rit-navy);
    border-color: var(--rit-border);
    border-radius: 8px !important;
}

.page-link:hover {
    color: var(--rit-accent);
}

.active > .page-link,
.page-link.active {
    color: #fff;
    background: var(--rit-navy);
    border-color: var(--rit-navy);
}

/* ---------- Dropdowns / modals ---------- */
.dropdown-menu {
    padding: .45rem;
    border: 1px solid var(--rit-border);
    border-radius: 11px;
    background: var(--rit-surface);
    box-shadow: var(--rit-shadow);
}

.dropdown-item {
    border-radius: 7px;
    padding: .57rem .7rem;
}

.dropdown-item:hover,
.dropdown-item:focus {
    color: var(--rit-navy);
    background: rgba(14,43,92,.06);
}

[data-bs-theme="dark"] .dropdown-item:hover,
[data-bs-theme="dark"] .dropdown-item:focus {
    color: #fff;
    background: rgba(255,255,255,.06);
}

.modal-content {
    border: 0;
    border-radius: var(--rit-radius);
    background: var(--rit-surface);
    box-shadow: 0 24px 70px rgba(8,30,66,.22);
}

.modal-header,
.modal-footer {
    border-color: var(--rit-border);
}

/* ---------- Login / signup / reset (actual Huraga page classes) ---------- */
.page-login,
.page-signup,
.page-password-reset {
    min-height: 100vh;
    background:
        radial-gradient(circle at 82% 12%, rgba(255,51,102,.24), transparent 24rem),
        linear-gradient(135deg, #071a35 0%, var(--rit-navy) 52%, #133b72 100%);
}

.page-login .card,
.page-signup .card,
.page-password-reset .card {
    border: 0;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 26px 70px rgba(0,0,0,.26);
}

.page-login .card-header,
.page-signup .card-header,
.page-password-reset .card-header {
    padding-top: 1.25rem;
    background: #fff;
}

.page-login .card-header h1,
.page-signup .card-header h1,
.page-password-reset .card-header h1 {
    color: var(--rit-navy);
    font-size: 1.32rem;
    font-weight: 850;
    text-transform: uppercase;
}

.page-login .navbar-brand,
.page-signup .navbar-brand,
.page-password-reset .navbar-brand {
    color: #fff !important;
}

/* ---------- Showcase / markdown ---------- */
.markdown h1,
.markdown h2,
.markdown h3,
.markdown h4 {
    color: var(--rit-navy);
}

[data-bs-theme="dark"] .markdown h1,
[data-bs-theme="dark"] .markdown h2,
[data-bs-theme="dark"] .markdown h3,
[data-bs-theme="dark"] .markdown h4 {
    color: #fff;
}

.markdown blockquote {
    margin: 1rem 0;
    padding: .8rem 1rem;
    border-left: 4px solid var(--rit-accent);
    border-radius: 0 8px 8px 0;
    background: rgba(14,43,92,.045);
}

/* ---------- Footer ---------- */
#footer {
    margin-top: 2.1rem !important;
    padding: 1.25rem 0 .35rem;
    border-top: 1px solid var(--rit-border);
    color: #7b8798 !important;
}

#footer a {
    color: var(--rit-navy);
    font-weight: 650;
    text-decoration: none;
}

#footer a:hover {
    color: var(--rit-accent);
}

[data-bs-theme="dark"] #footer a {
    color: #ff86a4;
}

/* ---------- Utility classes and polish ---------- */
.spinner-border {
    color: var(--rit-accent);
}

.icon {
    flex: 0 0 auto;
}

hr {
    border-color: var(--rit-border);
    opacity: 1;
}

/* ---------- Responsive ---------- */
@media (max-width: 991.98px) {
    .navbar-brand img {
        max-width: 190px;
    }
}

@media (max-width: 767.98px) {
    body {
        background: var(--rit-bg);
    }

    header {
        margin-bottom: 17px;
    }

    .navbar {
        min-height: 68px;
        padding-top: .8rem !important;
        padding-bottom: .8rem !important;
    }

    .navbar-brand img {
        height: 42px !important;
        max-width: 165px;
    }

    .navbar-collapse {
        margin-top: .6rem;
        padding: .55rem 0 .85rem;
        border-top: 1px solid var(--rit-border);
    }

    .navbar .nav-link {
        padding: .65rem .55rem !important;
    }

    .navbar .nav-link.active::after {
        display: none;
    }

    .card {
        border-radius: 12px;
    }

    .card-body {
        padding: 1rem;
    }

    h1 {
        font-size: 1.55rem;
    }

    h2 {
        font-size: 1.35rem;
    }

    .table-responsive {
        border-radius: 9px;
    }

    #footer {
        text-align: center;
    }
}

/* ======================================================================
   Renton IT v1.1 — Dark-mode contrast fixes
   Keeps Bootstrap/Huraga alert and showcase components readable in dark mode.
   ====================================================================== */
[data-bs-theme="dark"] .alert-info {
    --bs-alert-color: #eaf3ff;
    --bs-alert-bg: #0f2b4a;
    --bs-alert-border-color: transparent;
    color: #eaf3ff;
    background:
        radial-gradient(circle at 95% 0%, rgba(255,51,102,.11), transparent 15rem),
        linear-gradient(135deg, #102f50 0%, #0b223d 100%);
    border-left-color: var(--rit-accent);
    box-shadow: 0 10px 28px rgba(0,0,0,.16);
}

[data-bs-theme="dark"] .alert-success {
    --bs-alert-color: #c9f7e5;
    --bs-alert-bg: #0d2b28;
    --bs-alert-border-color: transparent;
    color: #c9f7e5;
    background: #0d2b28;
    border-left-color: #43d7a1;
}

[data-bs-theme="dark"] .alert-warning {
    --bs-alert-color: #ffe6a8;
    --bs-alert-bg: #332714;
    --bs-alert-border-color: transparent;
    color: #ffe6a8;
    background: #332714;
    border-left-color: #f0b64d;
}

[data-bs-theme="dark"] .alert-danger {
    --bs-alert-color: #ffc7d3;
    --bs-alert-bg: #351925;
    --bs-alert-border-color: transparent;
    color: #ffc7d3;
    background: #351925;
    border-left-color: var(--rit-accent);
}

/* Markdown headings inside alerts/showcase must follow the alert contrast. */
[data-bs-theme="dark"] .alert .markdown h1,
[data-bs-theme="dark"] .alert .markdown h2,
[data-bs-theme="dark"] .alert .markdown h3,
[data-bs-theme="dark"] .alert .markdown h4,
[data-bs-theme="dark"] .alert .markdown h5,
[data-bs-theme="dark"] .alert .markdown h6,
[data-bs-theme="dark"] .alert h1,
[data-bs-theme="dark"] .alert h2,
[data-bs-theme="dark"] .alert h3,
[data-bs-theme="dark"] .alert h4,
[data-bs-theme="dark"] .alert h5,
[data-bs-theme="dark"] .alert h6 {
    color: inherit !important;
}

[data-bs-theme="dark"] .alert-info .markdown h1,
[data-bs-theme="dark"] .alert-info .markdown h2,
[data-bs-theme="dark"] .alert-info .markdown h3,
[data-bs-theme="dark"] .alert-info .markdown h4,
[data-bs-theme="dark"] .alert-info h1,
[data-bs-theme="dark"] .alert-info h2,
[data-bs-theme="dark"] .alert-info h3,
[data-bs-theme="dark"] .alert-info h4 {
    color: #ffffff !important;
}

[data-bs-theme="dark"] .alert a {
    color: #ff9bb4;
    font-weight: 700;
}

[data-bs-theme="dark"] .alert a:hover {
    color: #ffffff;
}

/* ======================================================================
   Renton IT v1.2 — UI polish pass
   Compact controls, tighter header rhythm, and small consistency fixes.
   These are intentionally CSS-only so FOSSBilling/Huraga behavior is unchanged.
   ====================================================================== */

/* Buttons: v1.1's 40px minimum made normal Bootstrap buttons look oversized. */
.btn {
    min-height: auto;
    --bs-btn-padding-y: .3125rem;
    --bs-btn-padding-x: .75rem;
    --bs-btn-line-height: 1.45;
    font-weight: 700;
}

.btn-sm,
.btn-group-sm > .btn {
    min-height: auto;
    --bs-btn-padding-y: .22rem;
    --bs-btn-padding-x: .52rem;
}

.btn-lg,
.btn-group-lg > .btn {
    min-height: auto;
    --bs-btn-padding-y: .48rem;
    --bs-btn-padding-x: 1rem;
}

/* Keep icon-only/header buttons visually centered after compacting buttons. */
.navbar .btn,
.client-dropdown .btn,
a[href="#top"].btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Header: the inherited py-4 made the navigation bar noticeably too tall. */
.navbar {
    min-height: 70px;
    padding-top: .72rem !important;
    padding-bottom: .72rem !important;
}

.navbar-brand img {
    height: 46px !important;
    max-width: 205px;
}

.navbar .nav-link {
    padding: .52rem .68rem !important;
    border-radius: 7px;
}

.navbar .nav-link.active::after {
    left: .68rem;
    right: .68rem;
    bottom: .12rem;
}

.navbar-nav {
    gap: .15rem;
}

/* Header register button should match the navigation's visual height. */
.navbar .btn.btn-outline-primary {
    --bs-btn-padding-y: .34rem;
    --bs-btn-padding-x: .88rem;
    border-radius: 8px;
}

/* Locale selector: previously inherited the full form-control height and felt oversized. */
.navbar .ts-wrapper .ts-control.locale {
    width: 180px;
    min-height: 36px;
    padding-top: .36rem;
    padding-bottom: .36rem;
}

.navbar .form-select.js-locale-selector {
    min-height: 36px;
    padding-top: .36rem;
    padding-bottom: .36rem;
}

/* Forms stay comfortable without looking taller than the rest of the interface. */
.form-control,
.form-select,
.ts-control {
    min-height: 40px;
}

/* Cards: slightly tighter spacing gives the portal a cleaner MSP dashboard feel. */
.card {
    border-radius: 12px;
}

.card-header {
    padding: .8rem 1.05rem;
}

.card-header::after {
    left: 1.05rem;
    width: 40px;
}

.card-body {
    padding: 1.05rem;
}

/* Keep common dashboard actions from looking bulky. */
.dashboard .card .btn,
.mod_client .card .btn {
    margin-top: .05rem;
}

/* Alerts/messages: reduce excess vertical space while preserving readability. */
.alert {
    padding: .82rem 1rem;
}

/* Table rows were a little roomy compared with the rest of the compact portal. */
.table > :not(caption) > * > * {
    padding: .68rem .7rem;
}

/* Cleaner list-group rhythm for tickets/KB/service lists. */
.list-group-item {
    padding: .75rem .9rem;
}

/* Back-to-top button: keep it useful without dominating the lower-right corner. */
a[href="#top"].btn {
    min-height: 36px;
    padding: .34rem .62rem;
    border-radius: 9px;
    box-shadow: 0 6px 18px rgba(255, 51, 102, .16);
}

/* Modal/dropdown compactness for visual consistency. */
.dropdown-item {
    padding: .5rem .66rem;
}

.modal-header,
.modal-footer {
    padding-top: .85rem;
    padding-bottom: .85rem;
}

/* Mobile: preserve comfortable tap targets while keeping desktop compact. */
@media (max-width: 767.98px) {
    .navbar {
        min-height: 64px;
        padding-top: .65rem !important;
        padding-bottom: .65rem !important;
    }

    .navbar-brand img {
        height: 40px !important;
        max-width: 158px;
    }

    .btn {
        --bs-btn-padding-y: .4rem;
    }

    .form-control,
    .form-select,
    .ts-control {
        min-height: 42px;
    }

    .card-body {
        padding: .95rem;
    }
}


/* ======================================================================
   Renton IT v1.3 — accessible portal surfaces and auth-page contrast

   FOSSBilling/Huraga can render authentication pages in dark mode while
   these pages intentionally have white cards. Scope a light color-scheme
   to those cards rather than turning off dark mode site-wide.
   ====================================================================== */

/* Legible white cards on the dark, branded login/registration background. */
.page-login .card,
.page-signup .card,
.page-password-reset .card,
.page-register .card {
    color-scheme: light;
    --bs-body-bg: #fff;
    --bs-body-color: #17243c;
    --bs-emphasis-color: #132b50;
    --bs-secondary-color: #526279;
    --bs-secondary-bg: #f3f6fb;
    --bs-tertiary-bg: #f8faff;
    --bs-heading-color: #132b50;
    --bs-border-color: #cbd5e1;
    --bs-link-color: #0e3c7a;
    background: #fff !important;
    color: #17243c !important;
    max-width: 100%;
}

.page-login .card :is(h1,h2,h3,h4,h5,h6,.card-title),
.page-signup .card :is(h1,h2,h3,h4,h5,h6,.card-title),
.page-password-reset .card :is(h1,h2,h3,h4,h5,h6,.card-title),
.page-register .card :is(h1,h2,h3,h4,h5,h6,.card-title) {
    color: #132b50 !important;
}

.page-login .card :is(.card-header,.card-footer),
.page-signup .card :is(.card-header,.card-footer),
.page-password-reset .card :is(.card-header,.card-footer),
.page-register .card :is(.card-header,.card-footer) {
    color: #17243c !important;
    background: #fff !important;
    border-color: #e1e7f0;
}

/* Includes the extra explanatory text on registration and password reset. */
.page-login .card :is(label,.form-label,.form-check-label,p,small,.form-text,.text-muted,.text-secondary),
.page-signup .card :is(label,.form-label,.form-check-label,p,small,.form-text,.text-muted,.text-secondary),
.page-password-reset .card :is(label,.form-label,.form-check-label,p,small,.form-text,.text-muted,.text-secondary),
.page-register .card :is(label,.form-label,.form-check-label,p,small,.form-text,.text-muted,.text-secondary) {
    color: #34445e !important;
}

.page-login .card :is(.form-control,.form-select,.ts-control,input[type="text"],input[type="email"],input[type="password"],input[type="tel"],textarea,select),
.page-signup .card :is(.form-control,.form-select,.ts-control,input[type="text"],input[type="email"],input[type="password"],input[type="tel"],textarea,select),
.page-password-reset .card :is(.form-control,.form-select,.ts-control,input[type="text"],input[type="email"],input[type="password"],input[type="tel"],textarea,select),
.page-register .card :is(.form-control,.form-select,.ts-control,input[type="text"],input[type="email"],input[type="password"],input[type="tel"],textarea,select) {
    color-scheme: light;
    color: #15243a !important;
    background: #fff !important;
    border: 1px solid #bcc9da !important;
    -webkit-text-fill-color: #15243a;
}

.page-login .card :is(input,textarea)::placeholder,
.page-signup .card :is(input,textarea)::placeholder,
.page-password-reset .card :is(input,textarea)::placeholder,
.page-register .card :is(input,textarea)::placeholder {
    color: #66758a !important;
    opacity: 1;
    -webkit-text-fill-color: #66758a;
}

.page-login .card :is(input,textarea,select):focus,
.page-signup .card :is(input,textarea,select):focus,
.page-password-reset .card :is(input,textarea,select):focus,
.page-register .card :is(input,textarea,select):focus {
    border-color: #0e519b !important;
    box-shadow: 0 0 0 .18rem rgba(14,81,155,.13) !important;
}

.page-login .card :is(.form-control,.form-select):disabled,
.page-signup .card :is(.form-control,.form-select):disabled,
.page-password-reset .card :is(.form-control,.form-select):disabled,
.page-register .card :is(.form-control,.form-select):disabled {
    color: #526279 !important;
    background: #eef2f7 !important;
    -webkit-text-fill-color: #526279;
}

.page-login .card a:not(.btn),
.page-signup .card a:not(.btn),
.page-password-reset .card a:not(.btn),
.page-register .card a:not(.btn) {
    color: #0a4486 !important;
    text-decoration-color: rgba(10,68,134,.4);
}
.page-login .card a:not(.btn):hover,
.page-signup .card a:not(.btn):hover,
.page-password-reset .card a:not(.btn):hover,
.page-register .card a:not(.btn):hover {
    color: #b91647 !important;
}

/* Text on vivid pink used to miss small-text contrast requirements. */
.page-login .card .btn-primary,
.page-signup .card .btn-primary,
.page-password-reset .card .btn-primary,
.page-register .card .btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: #c51b4b;
    --bs-btn-border-color: #c51b4b;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #a9123d;
    --bs-btn-hover-border-color: #a9123d;
    --bs-btn-active-bg: #93103a;
    --bs-btn-active-border-color: #93103a;
    color: #fff !important;
}
.page-login .card .btn-outline-primary,
.page-signup .card .btn-outline-primary,
.page-password-reset .card .btn-outline-primary,
.page-register .card .btn-outline-primary {
    --bs-btn-color: #a9123d;
    --bs-btn-border-color: #cf2c58;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #ad153f;
    --bs-btn-hover-border-color: #ad153f;
    color: var(--bs-btn-color) !important;
}
.page-login .card .btn-outline-primary:hover,
.page-signup .card .btn-outline-primary:hover,
.page-password-reset .card .btn-outline-primary:hover,
.page-register .card .btn-outline-primary:hover {
    color: #fff !important;
}

/* Keep server-side validation feedback prominent, rather than pale on white. */
.page-login .card :is(.invalid-feedback,.text-danger),
.page-signup .card :is(.invalid-feedback,.text-danger),
.page-password-reset .card :is(.invalid-feedback,.text-danger),
.page-register .card :is(.invalid-feedback,.text-danger) {
    color: #ac2042 !important;
}

/* Consistent controls, including form fields outside authentication pages. */
[data-bs-theme="light"] .form-control::placeholder,
[data-bs-theme="light"] textarea::placeholder { color: #65758a; opacity: 1; }
[data-bs-theme="dark"] .form-control::placeholder,
[data-bs-theme="dark"] textarea::placeholder { color: #adbed1; opacity: 1; }
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select { caret-color: #f8fafc; }
:where(.card,.modal-content,.content-block) :is(.invalid-feedback,.valid-feedback) { line-height: 1.4; }
:where(.card,.modal-content,.content-block) :is(input,select,textarea) { max-width: 100%; }

/* The custom Emailshield module always uses an intentionally light surface. */
.es-card,
[data-bs-theme="dark"] .es-card {
    color-scheme: light;
    --bs-body-color: #17243c;
    --bs-heading-color: #132b50;
    --bs-secondary-color: #526279;
    max-width: min(1040px,100%);
    min-width: 0;
}
.es-card :is(h1,h2,h3,h4,h5,h6) {
    color: #112e58 !important;
    line-height: 1.2;
}
.es-card .es-brand h1 {
    font-size: clamp(1.55rem,3vw,2.2rem) !important;
    margin: 0 !important;
    overflow-wrap: anywhere;
}
.es-card .es-note,
.es-card .es-quote .es-note { color: #465a74 !important; }
.es-card .es-quote { color: #15243a !important; }
.es-card input:not([type="checkbox"]),
.es-card select,
.es-card textarea {
    color-scheme: light;
    background: #fff !important;
    color: #17243c !important;
    border-color: #b4c3d7 !important;
    -webkit-text-fill-color: #17243c;
}
.es-card input::placeholder,
.es-card textarea::placeholder { color: #64748b !important; -webkit-text-fill-color: #64748b; }

/* Long domain names and table cells should scroll/wrap rather than break mobile. */
#wrapper,.content-block,.card-body,.es-card { min-width: 0; }
.table-responsive { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.content-block pre,.es-card pre { overflow-x: auto; max-width: 100%; }
.es-card p,.es-card .es-note { overflow-wrap: break-word; }

/* Better keyboard visibility and reduced-motion support. */
:where(a,button,input,select,textarea,[role="button"]):focus-visible {
    outline: 2px solid #bb1848;
    outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .btn,.card,a { transition: none !important; }
    .btn:hover { transform: none; }
}
@media (max-width: 767.98px) {
    .page-login .card,
    .page-signup .card,
    .page-password-reset .card,
    .page-register .card { border-radius: 14px; }
    .page-login .card-body,
    .page-signup .card-body,
    .page-password-reset .card-body,
    .page-register .card-body { padding: 1.25rem; }
    .es-card { margin: 12px auto; }
}

/* v1.4 — Helcim recurring-payment consent accessibility and legibility.
   This is presentation-only: it does not change payment authorization,
   initial charges, subscription creation, or callbacks.  Selectors target
   only Helcim's dynamically-generated consent IDs and buttons. */
.alert.alert-info:has(input.form-check-input[id^="helcim-consent-"]) {
    border: 1px solid #739bcf !important;
    border-left: 5px solid #ff3366 !important;
    border-radius: 16px !important;
    background: linear-gradient(130deg, #11345e 0%, #0a2343 100%) !important;
    color: #f5f9ff !important;
    box-shadow: 0 10px 28px rgb(0 12 34 / 20%);
    padding: clamp(16px, 2.5vw, 24px) !important;
}
.alert.alert-info:has(input.form-check-input[id^="helcim-consent-"]) :is(div, li, strong, b) {
    color: inherit;
}
.alert.alert-info:has(input.form-check-input[id^="helcim-consent-"]) > .form-check {
    display: flex !important;
    align-items: flex-start !important;
    gap: 14px !important;
    margin: 16px 0 0 !important;
    padding: 18px !important;
    background-color: #f0f7ff !important;
    border: 2px solid #8bb5e8 !important;
    border-radius: 13px !important;
    min-width: 0;
    cursor: pointer;
}
.alert.alert-info .form-check input.form-check-input[id^="helcim-consent-"] {
    -webkit-appearance: none !important;
    appearance: none !important;
    position: relative !important;
    box-sizing: border-box !important;
    flex: 0 0 29px !important;
    width: 29px !important;
    height: 29px !important;
    min-width: 29px !important;
    min-height: 29px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 3px solid #175fa9 !important;
    border-radius: 7px !important;
    background: #fff !important;
    box-shadow: 0 1px 3px rgb(5 40 75 / 13%) !important;
    opacity: 1 !important;
    vertical-align: top !important;
    cursor: pointer;
}
.alert.alert-info .form-check input.form-check-input[id^="helcim-consent-"]:checked {
    background: #0859ba !important;
    border-color: #0859ba !important;
}
.alert.alert-info .form-check input.form-check-input[id^="helcim-consent-"]:checked::after {
    content: '';
    position: absolute;
    left: 8px;
    top: 2px;
    width: 8px;
    height: 15px;
    border: solid #fff;
    border-width: 0 3px 3px 0;
    transform: rotate(45deg);
}
.alert.alert-info .form-check input.form-check-input[id^="helcim-consent-"]:focus-visible {
    outline: 3px solid #ff3366 !important;
    outline-offset: 4px !important;
    box-shadow: 0 0 0 5px rgb(255 51 102 / 12%) !important;
}
.alert.alert-info label.form-check-label[for^="helcim-consent-"] {
    flex: 1;
    min-width: 0;
    color: #092949 !important;
    -webkit-text-fill-color: #092949 !important;
    font-size: clamp(15px, 1.1vw, 18px) !important;
    font-weight: 600 !important;
    line-height: 1.55 !important;
    cursor: pointer;
}
button.btn[id^="helcim-pay-"] {
    min-height: 54px !important;
    max-width: 100% !important;
    padding: 12px 22px !important;
    border: 2px solid #70c5ff !important;
    border-radius: 12px !important;
    background: #1263c6 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    font-size: clamp(16px, 1.3vw, 21px) !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    white-space: normal;
    opacity: 1 !important;
    box-shadow: 0 5px 16px rgb(4 57 110 / 24%);
}
button.btn[id^="helcim-pay-"]:not(:disabled):hover {
    border-color: #a9e1ff !important;
    background: #064d9d !important;
    color: #fff !important;
}
button.btn[id^="helcim-pay-"]:disabled {
    border-color: #9cbbe3 !important;
    background: #315986 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    opacity: .86 !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
}
@media (max-width: 575.98px) {
    .alert.alert-info:has(input.form-check-input[id^="helcim-consent-"]) > .form-check {
        padding: 13px !important;
        gap: 11px !important;
    }
    button.btn[id^="helcim-pay-"] { width: 100%; }
}


/* ======================================================================
   Renton IT v1.4.5: order-page cleanup and header cart
   - Never remove hidden checkout/payment DOM: native FOSSBilling checkout JS
     opens #checkout and #payment-html programmatically.
   ====================================================================== */
.navbar .rentonit-header-cart .nav-link {
    display: inline-flex !important;
    align-items: center;
    gap: .42rem !important;
    white-space: nowrap;
}
.navbar .rentonit-header-cart-icon {
    width: 1.05rem;
    height: 1.05rem;
    flex: 0 0 auto;
}
.navbar .rentonit-cart-count {
    font-size: .69rem;
    font-weight: 800;
    line-height: 1.1;
    padding: .2rem .38rem;
    border-radius: 999px;
}
.rentonit-order-manager .rentonit-product-config-stage > .accordion-item > .accordion-header,
.rentonit-order-manager .rentonit-cart-stage > .accordion-item > .accordion-header {
    display: none !important;
}
.rentonit-order-manager .rentonit-product-config-stage > .accordion-item,
.rentonit-order-manager .rentonit-cart-stage > .accordion-item,
.rentonit-order-manager .rentonit-payment-stage {
    border: 0 !important;
    background: transparent !important;
}
.rentonit-order-manager .rentonit-product-config-stage > .accordion-item > .accordion-collapse.show,
.rentonit-order-manager .rentonit-cart-stage > .accordion-item > .accordion-collapse.show,
.rentonit-order-manager .rentonit-payment-stage > .accordion-collapse.show,
.rentonit-order-manager .rentonit-cart-stage > .accordion-collapse.show {
    margin-top: .75rem;
    border: 1px solid var(--rit-border);
    border-radius: 12px;
    background: var(--rit-surface);
}
.rentonit-order-manager .rentonit-payment-stage #payment-html-inner {
    min-height: 1px;
}
.rentonit-order-brand-credit a {
    color: var(--rit-navy);
    font-weight: 700;
    text-decoration: none;
}
.rentonit-order-brand-credit a:hover { color: var(--rit-accent); text-decoration: underline; }
[data-bs-theme="dark"] .rentonit-order-brand-credit a { color: #dceafb; }
@media (max-width: 767.98px) {
    .navbar .rentonit-header-cart .nav-link { width: 100%; }
}


/* ======================================================================
   Renton IT v1.4.6 — larger header logo, responsive sizing.
   Scope changes to the global navbar; no checkout/auth/payment CSS altered.
   ====================================================================== */
.navbar .navbar-brand {
    flex-shrink: 0;
    min-width: 0;
}
.navbar .navbar-brand img.rentonit-header-logo {
    display: inline-block;
    width: auto !important;
    height: 76px !important;
    max-width: min(300px, 30vw) !important;
    max-height: none !important;
    object-fit: contain;
}
.navbar {
    min-height: 96px;
}
@media (min-width: 768px) and (max-width: 1199.98px) {
    .navbar .navbar-brand img.rentonit-header-logo {
        height: 60px !important;
        max-width: 215px !important;
    }
    .navbar { min-height: 82px; }
}
@media (max-width: 767.98px) {
    .navbar .navbar-brand img.rentonit-header-logo {
        height: 54px !important;
        max-width: min(210px, 58vw) !important;
    }
    .navbar { min-height: 72px; }
}


/* Renton IT v1.4.7 — no global powered-by footer.
   Defense-in-depth for a stale cached Twig template if fresh CSS loads first.
   We intentionally do not hide the order card's Renton IT attribution.
*/
footer#footer { display: none !important; }

/* ===========================================================================
   Renton IT v1.5.0 — customer portal Order catalog redesign.
   Scoped to the actual Orderbutton markup to avoid altering billing, invoices,
   support tickets, login modals, or other modules. Product data/links remain
   sourced from FOSSBilling; no prices or package claims are hardcoded.
   =========================================================================== */
body:has(.rit-order-redesign) {
    --rit-card-ink: #102d59;
    --rit-card-border: #dfe9f6;
    --rit-card-shadow: 0 12px 34px rgba(22, 52, 102, .075);
}
body:has(.rit-order-redesign) .content-block {
    max-width: none;
}
body:has(.rit-order-redesign) #sidebarMenu .offcanvas-body {
    background: linear-gradient(163deg, #112d60 0%, #061d40 85%);
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 22px;
    padding: 20px 15px;
    box-shadow: 0 15px 42px rgba(14,43,92,.14);
}
body:has(.rit-order-redesign) #sidebarMenu .nav-link {
    min-height: 50px;
    display: flex;
    align-items: center;
    border-radius: 13px;
    margin: 3px 0;
    font-weight: 650;
    color: #eef5ff;
}
body:has(.rit-order-redesign) #sidebarMenu .offcanvas-item.active > .nav-link {
    border-left: 3px solid #ff3366;
    background: rgba(155,190,255,.20);
    box-shadow: inset 0 1px rgba(255,255,255,.04);
}
body:has(.rit-order-redesign) #sidebarMenu .nav-link:hover { background: rgba(255,255,255,.1); color: #fff; }
body:has(.rit-order-redesign) #sidebarMenu .text-secondary { color: #b7c6db !important; }
body:has(.rit-order-redesign) #sidebarMenu .offcanvas-body h5 { margin-top: 12px; }
body:has(.rit-order-redesign) .breadcrumb { margin-bottom: 14px; }

.rit-order-redesign { width: 100%; min-width: 0; color: var(--rit-text); }
.rit-order-intro { display: flex; gap: 22px; align-items: flex-end; justify-content: space-between; margin-bottom: 20px; }
.rit-order-title { min-width: 0; }
.rit-overline { display: block; font-size: .7rem; text-transform: uppercase; letter-spacing: .11em; color: #697f9c; font-weight: 800; margin-bottom: 4px; }
.rit-order-title h1 { font-weight: 850; letter-spacing: -.035em; font-size: clamp(1.95rem, 3vw, 2.7rem); line-height: 1.15; color: var(--rit-navy); margin: 2px 0 6px; }
.rit-order-title p { color: #667c98; font-size: .95rem; line-height: 1.5; margin: 0; }
.rit-order-tools { display: flex; flex-direction: column; gap: 7px; align-items: flex-end; flex: 0 1 300px; min-width: 175px; }
.rit-search-wrap { display: flex; align-items: center; gap: 8px; width: min(100%, 290px); min-height: 44px; padding: 0 13px; background: var(--rit-surface); border: 1px solid var(--rit-card-border); border-radius: 14px; box-shadow: 0 3px 11px rgba(14,43,92,.035); }
.rit-search-wrap svg { width: 18px; height: 18px; color: #58769f; flex: 0 0 auto; }
.rit-search-wrap input { border: 0; min-width: 0; width: 100%; padding: 9px 0; background: transparent; color: var(--rit-text); outline: none; font: inherit; font-size: .87rem; }
.rit-search-wrap:focus-within { border-color: #75a9e5; box-shadow: 0 0 0 3px rgba(49,109,188,.12); }
.rit-availability { display: flex; align-items: center; justify-content: flex-end; gap: 7px; font-size: .72rem; color: #6984aa; font-weight: 600; }
.rit-availability svg { width: 14px; height: 14px; }
.rit-order-redesign > .row { margin: 0; }
.rit-order-redesign > .row > [class*="col-"] { padding: 0; }
.rit-order-redesign #orderbutton { background: transparent; border: 0 !important; box-shadow: none; border-radius: 0; }
.rit-order-redesign #orderbutton:hover { transform: none; box-shadow: none; }
.rit-order-redesign #orderbutton > .card-body { padding: 0 !important; }
.rit-order-redesign #orderManager { border: 0; }
.rit-order-redesign .rit-catalog-accordion { border: 1px solid var(--rit-card-border); border-radius: 20px !important; background: var(--rit-surface); overflow: hidden; box-shadow: var(--rit-card-shadow); margin-bottom: 17px; }
.rit-order-redesign .rit-catalog-accordion > .accordion-header { margin: 0; }
.rit-order-redesign .rit-catalog-accordion > .accordion-header .accordion-button {
    min-height: 63px; padding: 15px 21px; gap: 10px;
    background: linear-gradient(110deg, #f5faff, #edf4ff); color: #113566;
    font-size: 1.05rem; font-weight: 800; letter-spacing: -.015em;
    box-shadow: none; border: 0;
}
.rit-order-redesign .rit-catalog-accordion > .accordion-header .accordion-button:not(.collapsed) { background: linear-gradient(110deg, #eaf4ff, #f3f6ff); }
.rit-order-redesign .rit-catalog-accordion > .accordion-header .accordion-button:focus-visible { outline: 3px solid #4589d3; outline-offset: -3px; }
.rit-catalog-accordion-icon { width: 32px; height: 32px; border-radius: 10px; background: #dbeaff; display: grid; place-items: center; color: #184c8e; }
.rit-catalog-accordion-icon .icon { width: 18px; height: 18px; }
.rit-product-total { font-size: .69rem; font-weight: 850; background: #07b7df; color: #fff; border-radius: 999px; padding: 5px 10px; white-space: nowrap; }
.rit-catalog-body { padding: 20px !important; display: flex; flex-direction: column; gap: 19px; }
.rit-product-category { background: linear-gradient(132deg, #fff 65%, #fff4f8 100%); border: 1px solid #e2eafa; border-radius: 18px; padding: 20px; min-width: 0; }
.rit-product-category--email { background: linear-gradient(132deg, #fff 60%, #fff2f7 100%); }
.rit-product-category-head { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; }
.rit-category-icon { display: inline-grid; place-items: center; flex: 0 0 51px; width: 51px; height: 51px; background: #ffe6f0; color: #f5255f; border-radius: 15px; }
.rit-category-icon .icon { width: 26px; height: 26px; }
.rit-category-copy { flex: 1; min-width: 0; }
.rit-category-copy h3 { color: var(--rit-navy); font-size: clamp(1.15rem, 1.9vw, 1.5rem); line-height: 1.22; font-weight: 850; letter-spacing: -.02em; margin: 0 0 5px; }
.rit-category-copy p, .rit-category-description { color: #647894; font-size: .84rem; line-height: 1.4; margin: 0; }
.rit-category-description p { margin-bottom: 0; }
.rit-category-counter { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; background: #ffe6ef; color: #ce1a4c; padding: 6px 11px; border-radius: 999px; font-size: .7rem; font-weight: 750; }
.rit-product-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,215px),1fr)); gap: 13px; }
.rit-product-grid--single { grid-template-columns: 1fr; }
.rit-product-card { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 15px; min-height: 180px; padding: 18px; text-decoration: none !important; background: var(--rit-surface); border: 1px solid #dee8f6; border-radius: 15px; box-shadow: 0 5px 15px rgba(23,58,105,.045); color: var(--rit-text); transition: transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.rit-product-card:hover { border-color: #8fb4e6; box-shadow: 0 12px 27px rgba(22,55,102,.13); transform: translateY(-3px); color: var(--rit-text); }
.rit-product-card:focus-visible { outline: 3px solid #437bbd; outline-offset: 2px; }
.rit-product-emblem { display: grid; place-items: center; flex: 0 0 auto; width: 50px; height: 50px; border-radius: 14px; background: #ebeff5; color: #43617e; }
.rit-product-emblem svg { width: 30px; height: 30px; }
.rit-product-card--gold .rit-product-emblem { background: #fff4db; color: #ef9a00; }
.rit-product-card--platinum .rit-product-emblem { background: #eee9ff; color: #6042c2; }
.rit-product-card--email .rit-product-emblem { background: #dfefff; color: #1373d6; }
.rit-product-info { display: block; min-width: 0; width: 100%; padding-right: 30px; }
.rit-product-title { display: block; font-size: 1.03rem; font-weight: 850; line-height: 1.3; color: var(--rit-navy); margin-bottom: 5px; }
.rit-product-description { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; font-size: .84rem; line-height: 1.48; color: #657a96; overflow-wrap: anywhere; }
.rit-product-tag { display: inline-block; margin-top: 9px; font-size: .7rem; font-weight: 750; color: #aa3157; background: #fff0f5; border-radius: 999px; padding: 5px 10px; }
.rit-product-arrow { position: absolute; bottom: 16px; right: 16px; width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; background: #eaf2ff; color: #153b71; transition: transform .16s ease,background .16s ease; }
.rit-product-arrow svg { width: 17px; height: 17px; }
.rit-product-card:hover .rit-product-arrow { background: #dbe9ff; transform: translateX(2px); }
.rit-product-grid--single .rit-product-card { min-height: 132px; flex-direction: row; align-items: center; gap: 16px; }
.rit-product-grid--single .rit-product-emblem { width: 62px; height: 62px; }
.rit-product-grid--single .rit-product-title { font-size: 1.15rem; }
.rit-product-grid--single .rit-product-info { padding-right: 46px; }
.rit-no-search-results { margin: 10px 0; text-align: center; font-weight: 600; color: var(--rit-muted); }
.rit-product-card[hidden], .rit-product-category[hidden], .rit-no-search-results[hidden] { display: none !important; }
.rit-order-redesign .rit-auth-invite { border: 1px solid #f2dce7; border-radius: 18px; padding: 20px; display: flex; gap: 18px; align-items: flex-start; background: linear-gradient(120deg,#fff3f8,#fff 68%); margin: 0 0 20px; box-shadow: 0 6px 20px rgba(32,66,112,.035); }
.rit-auth-icon { flex: 0 0 49px; width: 49px; height: 49px; display: grid; place-items: center; border-radius: 14px; color: #f52764; background: #ffe3ee; }
.rit-auth-icon svg { width: 25px; height: 25px; }
.rit-auth-message h3 { margin: 0 0 5px; color: var(--rit-navy); font-size: 1.2rem; line-height: 1.25; font-weight: 850; }
.rit-auth-message p { margin: 0 0 14px; color: #607691; font-size: .86rem; }
.rit-auth-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.rit-auth-actions .btn { display: inline-flex; align-items: center; gap: 10px; font-size: .87rem; font-weight: 700; border-radius: 10px; padding: 9px 16px; min-height: 41px; }
.rit-auth-actions .icon { width: 16px; height: 16px; }
.rit-order-redesign .rentonit-order-brand-credit { background: var(--rit-surface); border: 1px solid var(--rit-card-border); border-radius: 13px; margin-top: 12px; padding: 12px !important; }
.rit-order-redesign .rentonit-product-config-stage, .rit-order-redesign .rentonit-cart-stage, .rit-order-redesign .rentonit-payment-stage { min-width: 0; }
.rit-order-redesign .rentonit-product-config-stage > .accordion-item, .rit-order-redesign .rentonit-cart-stage > .accordion-item { padding: 0 !important; }
.rit-order-redesign .rentonit-product-config-stage .accordion-collapse.show, .rit-order-redesign .rentonit-cart-stage .accordion-collapse.show, .rit-order-redesign #payment-html.show { padding: 13px; border-radius: 16px !important; box-shadow: var(--rit-card-shadow); }

/* Limit cosmetic redesign to Order page; don't impair dark-mode usability. */
[data-bs-theme="dark"] .rit-order-title h1,
[data-bs-theme="dark"] .rit-category-copy h3,
[data-bs-theme="dark"] .rit-product-title,
[data-bs-theme="dark"] .rit-auth-message h3 { color: #eef5ff; }
[data-bs-theme="dark"] .rit-product-category,
[data-bs-theme="dark"] .rit-product-category--email,
[data-bs-theme="dark"] .rit-auth-invite { background: linear-gradient(135deg, #0f2b4a, #152641); border-color: #335373; }
[data-bs-theme="dark"] .rit-catalog-accordion > .accordion-header .accordion-button { color: #eef6ff; background: #17365a !important; }
[data-bs-theme="dark"] .rit-product-card { background: #122a46; border-color: #345374; }
[data-bs-theme="dark"] .rit-product-description, [data-bs-theme="dark"] .rit-category-copy p,
[data-bs-theme="dark"] .rit-category-description, [data-bs-theme="dark"] .rit-auth-message p,
[data-bs-theme="dark"] .rit-order-title p { color: #b5c5da; }
[data-bs-theme="dark"] .rit-search-wrap { border-color: #3b5775; }
[data-bs-theme="dark"] .rit-product-tag { background: #4d2439; color: #ffd1e0; }

@media (min-width: 768px) and (max-width: 1050px) {
    body:has(.rit-order-redesign) #sidebarMenu .offcanvas-body { padding: 13px 8px; }
    .rit-catalog-body { padding: 13px !important; }
    .rit-product-category { padding: 14px; }
}
@media (max-width: 767.98px) {
    .rit-order-intro { flex-direction: column; align-items: stretch; gap: 14px; }
    .rit-order-tools { min-width: 0; flex: auto; align-items: stretch; }
    .rit-search-wrap { width: 100%; }
    .rit-availability { justify-content: flex-start; }
    .rit-catalog-body { padding: 12px !important; gap: 12px; }
    .rit-product-category { padding: 14px; }
    .rit-product-category-head { flex-wrap: wrap; gap: 10px; }
    .rit-category-counter { margin-left: auto; }
    .rit-product-grid { grid-template-columns: 1fr; }
    .rit-product-card { min-height: 118px; flex-direction: row; align-items: center; gap: 12px; padding: 14px; }
    .rit-product-card .rit-product-info { padding-right: 35px; }
    .rit-product-emblem { width: 46px; height: 46px; }
    .rit-product-emblem svg { width: 27px; height: 27px; }
    .rit-product-grid--single .rit-product-emblem { width: 46px; height: 46px; }
    .rit-product-grid--single .rit-product-info { padding-right: 35px; }
    .rit-product-arrow { bottom: 50%; transform: translateY(50%); right: 12px; }
    .rit-product-card:hover .rit-product-arrow { transform: translate(2px,50%); }
    .rit-order-redesign .rit-auth-invite { padding: 15px; }
}
@media (prefers-reduced-motion: reduce) {
    .rit-product-card,.rit-product-arrow { transition: none !important; }
}

/* Core Orderbutton may wrap its content in its own Products card and header.
   The redesign supplies that heading, so avoid showing it twice. */
body:has(.rit-order-redesign) .content-block > .card:has(.rit-order-redesign) > .card-header,
body:has(.rit-order-redesign) .content-block > .row > [class*="col-"] > .card:has(.rit-order-redesign) > .card-header {
    display: none !important;
}
@media (max-width: 560px) {
    .rit-product-category-head .rit-category-counter { margin-left: 62px; }
    .rit-product-category-head .rit-category-copy { flex-basis: calc(100% - 68px); }
}


/* Renton IT v1.5.2: compact, readable, clearly separated catalog cards. */
.rit-order-redesign .rit-product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 238px), 1fr));
  gap: 14px;
  align-items: stretch;
}
.rit-order-redesign .rit-product-grid--single { grid-template-columns: minmax(0, 1fr); }
.rit-order-redesign .rit-product-card,
.rit-order-redesign .rit-product-grid--single .rit-product-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  min-width: 0;
  min-height: 218px;
  padding: 17px;
  gap: 12px;
  border: 2px solid #bdcee5;
  border-radius: 15px;
  background: var(--rit-surface, #fff);
  color: var(--rit-text, #1a3355);
  box-shadow: 0 4px 13px rgba(12,42,92,.045);
  text-decoration: none !important;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.rit-order-redesign .rit-product-card--silver { border-color: #b6c7db; }
.rit-order-redesign .rit-product-card--gold { border-color: #d4ac59; }
.rit-order-redesign .rit-product-card--platinum { border-color: #a899db; }
.rit-order-redesign .rit-product-card--email { border-color: #8bb6e8; }
.rit-order-redesign .rit-product-card:hover {
  transform: translateY(-2px);
  border-color: #3675cb;
  box-shadow: 0 9px 22px rgba(18,61,122,.12);
}
.rit-order-redesign .rit-product-card:focus-visible { outline: 3px solid #216bc1; outline-offset: 3px; }
.rit-order-redesign .rit-product-card-head {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  width: 100%;
  min-width: 0;
}
.rit-order-redesign .rit-product-emblem,
.rit-order-redesign .rit-product-grid--single .rit-product-emblem {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border-radius: 11px;
}
.rit-order-redesign .rit-product-emblem svg { width: 26px; height: 26px; }
.rit-order-redesign .rit-product-heading { display: block; min-width: 0; flex: 1 1 auto; }
.rit-order-redesign .rit-product-title,
.rit-order-redesign .rit-product-grid--single .rit-product-title {
  display: block;
  font-size: 1.03rem;
  line-height: 1.25;
  font-weight: 850;
  margin: 0 0 4px;
  color: var(--rit-navy, #103267);
  overflow-wrap: anywhere;
}
.rit-order-redesign .rit-product-audience {
  display: block;
  font-size: .82rem;
  line-height: 1.4;
  color: #5c6f88;
  overflow-wrap: break-word;
}
.rit-order-redesign .rit-product-value {
  display: block;
  font-size: .88rem;
  line-height: 1.45;
  font-weight: 560;
  color: #304961;
  overflow-wrap: break-word;
}
.rit-order-redesign .rit-product-footer {
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin-top: auto;
  min-width: 0;
}
.rit-order-redesign .rit-contract-summary {
  display: block;
  font-size: .75rem;
  line-height: 1.35;
  color: #63748d;
}
.rit-order-redesign .rit-product-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  color: #184b90;
  font-size: .86rem;
  font-weight: 800;
}
.rit-order-redesign .rit-product-arrow {
  position: static;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  transform: none;
  border-radius: 50%;
  background: #eaf2fc;
}
.rit-order-redesign .rit-product-card:hover .rit-product-arrow { transform: translateX(2px); }
/* Give Email Shield the same visual grammar without stretching the copy sideways. */
.rit-order-redesign .rit-product-grid--single .rit-product-card { min-height: 178px; }
.rit-order-redesign .rit-product-grid--single .rit-product-footer { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.rit-order-redesign .rit-product-grid--single .rit-product-cta { width: auto; flex: 0 1 auto; gap: 8px; }
@media (max-width: 767.98px) {
  .rit-order-redesign .rit-product-grid { grid-template-columns: 1fr; }
  .rit-order-redesign .rit-product-card,
  .rit-order-redesign .rit-product-grid--single .rit-product-card {
    min-height: 0;
    padding: 15px;
    gap: 11px;
  }
  .rit-order-redesign .rit-product-grid--single .rit-product-footer { flex-direction: column; align-items: stretch; }
  .rit-order-redesign .rit-product-grid--single .rit-product-cta { width: 100%; justify-content: space-between; }
}
[data-bs-theme="dark"] .rit-order-redesign .rit-product-card { background: #142d4b; border-color: #66809f; }
[data-bs-theme="dark"] .rit-order-redesign .rit-product-audience,
[data-bs-theme="dark"] .rit-order-redesign .rit-contract-summary { color: #bbccdf; }
[data-bs-theme="dark"] .rit-order-redesign .rit-product-value { color: #ebf4ff; }
[data-bs-theme="dark"] .rit-order-redesign .rit-product-cta { color: #aed0ff; }
@media (prefers-reduced-motion: reduce) {
  .rit-order-redesign .rit-product-card { transition: none !important; transform: none !important; }
}


/* ======================================================================
   Renton IT v1.5.3 — force 3-package pillar layout for cybersecurity
   packages on larger screens while preserving responsive stacking.
   ====================================================================== */
.rit-order-redesign .rit-product-category:not(.rit-product-category--email) .rit-product-grid {
    align-items: stretch;
}
.rit-order-redesign .rit-product-category:not(.rit-product-category--email) .rit-product-grid > .rit-product-card {
    height: 100%;
}
@media (min-width: 1200px) {
    .rit-order-redesign .rit-product-category:not(.rit-product-category--email) .rit-product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
    .rit-order-redesign .rit-product-category:not(.rit-product-category--email) .rit-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 767.98px) {
    .rit-order-redesign .rit-product-category:not(.rit-product-category--email) .rit-product-grid {
        grid-template-columns: 1fr;
    }
}


/* ======================================================================
   Renton IT v1.5.4 — clear plan scope vs optional enterprise add-ons.
   All changes are marketing-only and do not alter billing/checkout.
   ====================================================================== */
.rit-order-redesign .rit-product-card { gap: 10px; }
.rit-order-redesign .rit-product-value { font-size: .86rem; line-height: 1.38; }
.rit-order-redesign .rit-plan-scope {
    display: flex; flex-direction: column; gap: 6px;
    border-top: 1px solid #e1eaf4; padding-top: 11px;
    color: #324d70; font-size: .80rem; line-height: 1.4;
}
.rit-order-redesign .rit-plan-scope-label {
    display: block; color: #133768; font-size: .75rem; font-weight: 800;
    text-transform: uppercase; letter-spacing: .025em; margin-bottom: 1px;
}
.rit-order-redesign .rit-plan-scope-item { display: flex; align-items: flex-start; gap: 8px; }
.rit-order-redesign .rit-plan-scope-item .icon {
    display: block; width: 13px; height: 13px; flex: 0 0 13px;
    color: #087947; margin-top: 2px;
}
.rit-order-redesign .rit-plan-scope-description { color: #425a77; }
.rit-order-redesign .rit-product-footer { margin-top: auto; padding-top: 8px; }
.rit-order-redesign .rit-contract-summary { font-size: .72rem; }
.rit-order-redesign .rit-addon-panel {
    background: linear-gradient(132deg, #f0f6ff, #ffffff 62%, #fff4f9);
    border: 2px solid #9cb9de; border-radius: 18px;
    padding: clamp(16px, 2.1vw, 24px);
    box-shadow: 0 9px 25px rgba(21, 52, 102, .06);
}
.rit-order-redesign .rit-addon-header {
    display: flex; justify-content: space-between; gap: 15px; align-items: flex-start;
    margin-bottom: 14px;
}
.rit-order-redesign .rit-addon-eyebrow {
    display: block; color: #8a2b57; text-transform: uppercase;
    font-size: .69rem; letter-spacing: .085em; font-weight: 850; margin-bottom: 7px;
}
.rit-order-redesign .rit-addon-header h3 {
    color: #0b2f61; font-size: clamp(1.12rem, 1.6vw, 1.45rem);
    font-weight: 850; line-height: 1.3; margin: 0 0 6px;
}
.rit-order-redesign .rit-addon-header p {
    color: #506785; max-width: 760px; line-height: 1.5; font-size: .86rem; margin: 0;
}
.rit-order-redesign .rit-addon-quote {
    display: inline-block; white-space: nowrap; background: #e5eeff; color: #23508e;
    border: 1px solid #9fc1ee; border-radius: 99px;
    font-weight: 750; padding: 7px 12px; font-size: .73rem;
}
.rit-order-redesign .rit-addon-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.rit-order-redesign .rit-addon-item {
    min-width: 0; display: flex; flex-direction: column; gap: 5px;
    border: 1px solid #cbdaf0; border-radius: 12px;
    background: #fff; padding: 12px 14px;
}
.rit-order-redesign .rit-addon-item strong { color: #153966; font-size: .87rem; font-weight: 780; }
.rit-order-redesign .rit-addon-item span { color: #4d6683; font-size: .79rem; line-height: 1.46; }
.rit-order-redesign .rit-addon-fineprint {
    margin: 13px 0 0; color: #47607e; font-size: .76rem; line-height: 1.55;
}
[data-bs-theme="dark"] .rit-order-redesign .rit-plan-scope { border-color: #365675; color: #d7e6f9; }
[data-bs-theme="dark"] .rit-order-redesign .rit-plan-scope-label { color: #d7e9ff; }
[data-bs-theme="dark"] .rit-order-redesign .rit-plan-scope-description { color: #bcd0e6; }
[data-bs-theme="dark"] .rit-order-redesign .rit-addon-panel { background: linear-gradient(130deg, #0f2b4a, #1b2942); border-color: #5878a0; }
[data-bs-theme="dark"] .rit-order-redesign .rit-addon-header h3 { color: #f0f6ff; }
[data-bs-theme="dark"] .rit-order-redesign .rit-addon-header p,
[data-bs-theme="dark"] .rit-order-redesign .rit-addon-fineprint { color: #cbdbed; }
[data-bs-theme="dark"] .rit-order-redesign .rit-addon-item { background: #17324e; border-color: #4d6d92; }
[data-bs-theme="dark"] .rit-order-redesign .rit-addon-item strong { color: #e9f3ff; }
[data-bs-theme="dark"] .rit-order-redesign .rit-addon-item span { color: #c1d5e9; }
@media (max-width: 767.98px) {
  .rit-order-redesign .rit-addon-grid { grid-template-columns: minmax(0, 1fr); }
  .rit-order-redesign .rit-addon-header { flex-direction: column; }
}


/* Renton IT v1.5.5 — transparent on-site maintenance conditions. */
.rit-order-redesign .rit-onsite-terms {
  margin-top: 15px;
  padding: 13px 16px;
  border: 1px solid #a9bedb;
  border-left: 4px solid #1c5fa3;
  border-radius: 12px;
  background: #f3f8ff;
  color: #294969;
  box-shadow: 0 3px 12px rgba(10,43,95,.035);
}
.rit-order-redesign .rit-onsite-terms-heading {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 5px;
  color: #113966; font-size: .82rem;
}
.rit-order-redesign .rit-onsite-terms-heading .icon {
  width: 17px; height: 17px; flex: 0 0 auto;
}
.rit-order-redesign .rit-onsite-terms p {
  margin: 0; font-size: .79rem; line-height: 1.55; color: #3e5875;
}
.rit-order-redesign .rit-onsite-terms p strong { color: #13395f; }
[data-bs-theme="dark"] .rit-order-redesign .rit-onsite-terms {
  background: #122c4b; color: #dceaff; border-color: #6489b5;
}
[data-bs-theme="dark"] .rit-order-redesign .rit-onsite-terms-heading,
[data-bs-theme="dark"] .rit-order-redesign .rit-onsite-terms p strong { color: #f0f6ff; }
[data-bs-theme="dark"] .rit-order-redesign .rit-onsite-terms p { color: #c6d7ec; }
@media (max-width: 767.98px) {
  .rit-order-redesign .rit-onsite-terms { padding: 12px 13px; }
}


/* ======================================================================
   Renton IT v1.5.7 — show live FOSSBilling descriptions in product pillars.
   Short readable preview; no templated audience/marketing copy/contract badges.
   The native product route is the destination for complete order details.
   ====================================================================== */
.rit-order-redesign .rit-product-card {
  min-height: 210px;
  gap: 13px;
}
.rit-order-redesign .rit-product-title {
  font-size: 1.08rem;
  margin-top: 8px;
}
.rit-order-redesign .rit-product-live-description {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;
  line-clamp: 6;
  overflow: hidden;
  white-space: pre-line;
  overflow-wrap: anywhere;
  font-size: .88rem;
  line-height: 1.55;
  font-weight: 450;
  color: #35526e;
}
.rit-order-redesign .rit-product-live-description--empty { color: #657b94; font-style: italic; }
.rit-order-redesign .rit-product-footer {
  margin-top: auto;
  padding-top: 10px;
}
[data-bs-theme="dark"] .rit-order-redesign .rit-product-live-description { color: #cfdfef; }
@media (max-width: 767.98px) {
  .rit-order-redesign .rit-product-card { min-height: 0; }
}
