﻿/* Shared design for the application flow (based on the Ready page).
   Every size comes from the tokens below:
   - spacing: 8pt grid (4 for fine details)
   - type: 1.25 scale (12 / 14 / 16 / 20 / 24 / 32) */

:root {
    --rt-space-1: 4px;
    --rt-space-2: 8px;
    --rt-space-3: 12px;
    --rt-space-4: 16px;
    --rt-space-5: 24px;
    --rt-space-6: 32px;
    --rt-space-7: 40px;
    --rt-space-8: 48px;
    --rt-space-9: 64px;

    --rt-text-xs: 12px;
    --rt-text-sm: 14px;
    --rt-text-base: 16px;
    --rt-text-lg: 20px;
    --rt-text-xl: 24px;
    --rt-text-2xl: 32px;

    --rt-radius-md: 12px;
    --rt-radius-lg: 16px;
    --rt-radius-xl: 24px;

    --rt-navy: #191974;
    --rt-navy-hover: #2a2a9c;
    --rt-blue: #4361e9;
    --rt-blue-50: #eaf1fd;
    --rt-blue-100: #dce7fc;
    --rt-blue-200: #a9c5f5;
    --rt-text: #1f2430;
    --rt-text-muted: #4b5563;
    --rt-text-subtle: #6b7280;
    --rt-placeholder: #9aa1b0;
    --rt-border: #e2e8f5;
    --rt-input-border: #d5dcea;
    --rt-success: #1e9e6a;
    --rt-danger: #d93025;
    --rt-on-navy: #c9d6f7;

    --rt-shadow-card: 0 12px 32px rgba(20, 30, 60, 0.08);
    --rt-header-h: 104px; /* height of the sticky site header */
}

/* ---------- Page layouts ---------- */

/* Centered single card (e.g. confirmation pages) */
.rt-page {
    display: flex;
    justify-content: center;
    padding: var(--rt-space-8) var(--rt-space-4) var(--rt-space-9);
    font-family: 'Plus Jakarta Sans', 'Segoe UI', system-ui, sans-serif;
}

/* Compact side panel + wide form card */
.rt-shell {
    display: grid;
    grid-template-columns: 420px minmax(0, 1fr);
    gap: var(--rt-space-6);
    align-items: start;
    max-width: 1440px;
    margin: 0 auto;
    padding: var(--rt-space-8) var(--rt-space-5) var(--rt-space-9);
    font-family: 'Plus Jakarta Sans', 'Segoe UI', system-ui, sans-serif;
}

/* ---------- Card ---------- */

.rt-card {
    width: 100%;
    max-width: 960px;
    background: #ffffff;
    border-radius: var(--rt-radius-xl);
    border: 1px solid var(--rt-border);
    box-shadow: var(--rt-shadow-card);
    overflow: hidden;
    animation: rt-rise .45s ease-out both;
}

.rt-shell .rt-card {
    max-width: none;
}

.rt-card-top {
    position: relative;
    background: linear-gradient(180deg, #f3f6fe 0%, #ffffff 100%);
    padding: var(--rt-space-7) var(--rt-space-7) var(--rt-space-5);
    text-align: center;
}

.rt-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto var(--rt-space-4);
    border-radius: 50%;
    background: var(--rt-blue-100);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rt-title {
    color: var(--rt-navy);
    font-size: var(--rt-text-xl);
    font-weight: 700;
    line-height: 1.25;
    margin: 0 0 var(--rt-space-2);
}

.rt-subtitle {
    color: var(--rt-text-muted);
    font-size: var(--rt-text-sm);
    line-height: 1.6;
    max-width: 560px;
    margin: 0 auto !important;
}

.rt-divider {
    border: none;
    border-top: 1px solid var(--rt-border);
    max-width: 560px;
    margin: var(--rt-space-5) auto 0;
}

/* Next to the side panel the card header reads left-to-right */
.rt-shell .rt-card-top {
    display: flex;
    align-items: center;
    gap: var(--rt-space-4);
    text-align: left;
    padding: var(--rt-space-6) var(--rt-space-7);
    border-bottom: 1px solid var(--rt-border);
}

.rt-shell .rt-icon {
    margin: 0;
    width: 56px;
    height: 56px;
    border-radius: var(--rt-radius-lg);
    background: #ffffff;
    border: 1px solid var(--rt-blue-100);
    box-shadow: 0 4px 12px rgba(67, 97, 233, 0.12);
}

.rt-card-top > * {
    position: relative;
    z-index: 1;
}

.rt-card-heading {
    flex: 1;
    min-width: 0;
}

.rt-eyebrow {
    display: block;
    color: var(--rt-blue);
    font-size: var(--rt-text-xs);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: var(--rt-space-1);
}

/* faint signature stroke, the same motif as the footer band */
.rt-card-top > .rt-card-deco {
    position: absolute;
    right: var(--rt-space-5);
    bottom: var(--rt-space-2);
    z-index: 0;
    color: var(--rt-blue);
    opacity: .09;
    pointer-events: none;
}

.rt-required-note {
    margin-left: auto;
    color: var(--rt-text-subtle);
    font-size: var(--rt-text-xs);
    font-weight: 500;
}

.rt-shell .rt-title,
.rt-shell .rt-subtitle {
    text-align: left;
    margin-left: 0 !important;
}

.rt-shell .rt-divider {
    display: none;
}

.rt-card-body {
    padding: var(--rt-space-6) var(--rt-space-7) var(--rt-space-7);
}

/* ---------- Side panel ---------- */

.rt-sidebar {
    position: sticky;
    top: calc(var(--rt-header-h) + var(--rt-space-5));
    background: radial-gradient(circle at 0% 0%, rgba(67, 97, 233, 0.5) 0%, rgba(67, 97, 233, 0) 55%),
                radial-gradient(circle at 100% 100%, rgba(120, 160, 240, 0.25) 0%, rgba(120, 160, 240, 0) 45%),
                var(--rt-navy);
    color: var(--rt-on-navy);
    border-radius: var(--rt-radius-xl);
    padding: var(--rt-space-6);
    box-shadow: 0 12px 32px rgba(20, 30, 60, 0.16);
    animation: rt-rise .45s ease-out both;
    /* always sticky; on short screens the panel scrolls inside itself instead of being clipped */
    max-height: calc(100vh - var(--rt-header-h) - var(--rt-space-5) * 2);
    overflow-y: auto;
    /* scrollbar stays hidden until the mouse is over the panel */
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
}

.rt-sidebar:hover {
    scrollbar-color: rgba(255, 255, 255, 0.25) transparent;
}

.rt-sidebar::-webkit-scrollbar {
    width: 6px;
}

.rt-sidebar::-webkit-scrollbar-thumb {
    background: transparent;
    border-radius: 3px;
}

.rt-sidebar:hover::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.25);
}

.rt-sidebar-eyebrow {
    color: #ffffff;
    font-size: var(--rt-text-lg);
    font-weight: 700;
    line-height: 1.3;
    text-wrap: balance;
    margin: 0 0 var(--rt-space-5) !important;
}

.rt-vsteps {
    list-style: none;
    margin: 0;
    padding: 0;
}

.rt-vstep {
    position: relative;
    display: flex;
    gap: var(--rt-space-3);
    padding-bottom: var(--rt-space-5);
}

/* vertical connector between dots */
.rt-vstep:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 15px;
    top: 34px; /* 2px below the 32px dot */
    bottom: 2px;
    width: 2px;
    border-radius: 1px;
    background: rgba(255, 255, 255, 0.15);
}

.rt-vstep.done::before {
    background: var(--rt-blue);
}

.rt-vstep-dot {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.25);
    color: rgba(255, 255, 255, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--rt-text-xs);
    font-weight: 700;
}

.rt-vstep.done .rt-vstep-dot {
    background: var(--rt-blue);
    border-color: var(--rt-blue);
    color: #ffffff;
}

.rt-vstep.current .rt-vstep-dot {
    background: #ffffff;
    border-color: #ffffff;
    color: var(--rt-navy);
    box-shadow: 0 0 0 var(--rt-space-1) rgba(255, 255, 255, 0.15);
}

.rt-vstep-body {
    display: flex;
    flex-direction: column;
    gap: var(--rt-space-1);
    padding-top: 6px; /* centers the title on the 32px dot */
    font-size: var(--rt-text-sm);
    line-height: 1.5;
}

.rt-vstep-body strong {
    color: rgba(255, 255, 255, 0.75);
    font-size: var(--rt-text-base);
    line-height: 1.25;
}

.rt-vstep.current .rt-vstep-body strong {
    color: #ffffff;
}

/* every step shows what it asks for; upcoming ones are dimmed */
.rt-vstep:not(.current) .rt-vstep-body span {
    color: rgba(201, 214, 247, 0.65);
}

.rt-sidebar-extra {
    display: flex;
    flex-direction: column;
    gap: var(--rt-space-3);
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    padding-top: var(--rt-space-5);
}

.rt-sidebar-note {
    display: flex;
    gap: var(--rt-space-3);
    align-items: flex-start;
    font-size: var(--rt-text-xs);
    line-height: 1.5;
}

.rt-sidebar-note svg {
    flex-shrink: 0;
    color: var(--rt-blue-200);
}

.rt-sidebar-note a {
    color: #ffffff;
    font-weight: 600;
}

.rt-sidebar-mobile {
    display: none;
}

.rt-progress {
    height: 6px;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.15);
    overflow: hidden;
}

.rt-progress span {
    display: block;
    height: 100%;
    border-radius: 3px;
    background: #ffffff;
}

/* ---------- Form ---------- */

/* 24px gutters between columns, matching the vertical rhythm */
.rt-card .row {
    margin-left: calc(var(--rt-space-3) * -1);
    margin-right: calc(var(--rt-space-3) * -1);
}

.rt-card .row > [class*="col-"] {
    padding-left: var(--rt-space-3);
    padding-right: var(--rt-space-3);
}

.rt-section + .rt-section {
    border-top: 1px solid var(--rt-border);
    padding-top: var(--rt-space-5);
    margin-top: var(--rt-space-2);
}

.rt-section-label {
    display: flex;
    align-items: center;
    gap: var(--rt-space-3);
    color: var(--rt-navy);
    font-size: var(--rt-text-base);
    font-weight: 700;
    margin: 0 0 var(--rt-space-4) !important;
}

/* step.section number, e.g. 1.2 */
.rt-section-num {
    min-width: 32px;
    height: 24px;
    padding: 0 var(--rt-space-2);
    border-radius: 12px;
    background: var(--rt-blue-50);
    color: var(--rt-blue);
    font-size: var(--rt-text-xs);
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rt-field {
    margin-bottom: var(--rt-space-5);
}

.rt-field > label:not(.error) {
    display: block;
    color: var(--rt-text);
    font-size: var(--rt-text-sm);
    font-weight: 600;
    margin-bottom: var(--rt-space-2);
}

.rt-card .form-control {
    height: 48px;
    border: 1px solid var(--rt-input-border);
    border-radius: var(--rt-radius-md);
    background-color: #ffffff;
    color: var(--rt-text);
    font-size: var(--rt-text-base); /* 16px also stops iOS from zooming on focus */
    padding: 0 var(--rt-space-4);
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.rt-card .form-control:focus {
    border-color: var(--rt-blue);
    box-shadow: 0 0 0 3px rgba(67, 97, 233, 0.15);
}

.rt-card .form-control::placeholder {
    color: var(--rt-placeholder);
}

/* Inputs with a leading icon */
.rt-input-wrap {
    position: relative;
}

.rt-input-icon {
    position: absolute;
    left: var(--rt-space-4);
    top: 15px; /* (48 - 18) / 2 */
    color: var(--rt-placeholder);
    pointer-events: none;
    z-index: 1; /* just above its own input; dropdowns (z-index 20) must cover it */
    transition: color .15s ease;
}

.rt-card .rt-input-wrap .form-control {
    padding-left: var(--rt-space-8);
}

.rt-input-wrap:focus-within .rt-input-icon {
    color: var(--rt-blue);
}

/* Valid / error states (jQuery Validate adds .valid / .error) */
.rt-card .form-control.valid {
    border-color: var(--rt-success);
    padding-right: var(--rt-space-7);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M20 6L9 17l-5-5' stroke='%231e9e6a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right var(--rt-space-4) center;
}

.rt-card select.form-control.valid {
    background-position: right var(--rt-space-6) center;
}

.rt-card .form-control.valid:focus {
    box-shadow: 0 0 0 3px rgba(30, 158, 106, 0.15);
}

.rt-card .form-control.error {
    border-color: var(--rt-danger);
}

.rt-card label.error {
    display: block;
    color: var(--rt-danger);
    font-size: var(--rt-text-xs);
    font-weight: 500;
    margin: var(--rt-space-2) 0 0;
}

.rt-hint {
    display: block;
    color: var(--rt-text-subtle);
    font-size: var(--rt-text-xs);
    line-height: 1.5;
    margin-top: var(--rt-space-2);
}

/* Searchable select (rtSelect in site.js), styled like the phone country list */
.rt-select-native {
    position: absolute !important;
    left: 0;
    top: 0;
    width: 100%;
    height: 48px;
    opacity: 0;
    pointer-events: none;
}

.rt-card .rt-select-trigger {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    text-align: left;
    cursor: pointer;
    padding-right: var(--rt-space-7);
    color: var(--rt-placeholder);
}

.rt-card .rt-select-trigger.has-value {
    color: var(--rt-text);
}

.rt-select-value {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* chevron */
.rt-select-trigger::after {
    content: "";
    position: absolute;
    right: var(--rt-space-4);
    top: 50%;
    width: 8px;
    height: 8px;
    margin-top: -6px;
    border-right: 2px solid var(--rt-text-subtle);
    border-bottom: 2px solid var(--rt-text-subtle);
    transform: rotate(45deg);
    transition: transform .15s ease;
}

.rt-select-trigger.open::after {
    margin-top: -2px;
    transform: rotate(-135deg);
}

.rt-card .rt-select-trigger.valid {
    background-position: right var(--rt-space-7) center;
}

.rt-select-panel {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 20; /* above the icons of the fields below */
    margin-top: var(--rt-space-1);
    background: #ffffff;
    border: 1px solid var(--rt-border);
    border-radius: var(--rt-radius-md);
    box-shadow: 0 12px 32px rgba(20, 30, 60, 0.14);
    overflow: hidden;
}

.rt-select-panel[hidden] {
    display: none;
}

.rt-select-search {
    width: 100%;
    height: 44px;
    border: none;
    border-bottom: 1px solid var(--rt-border);
    padding: 0 var(--rt-space-4);
    font-size: var(--rt-text-sm);
    color: var(--rt-text);
    outline: none;
}

.rt-select-search:focus {
    background: #f8faff;
}

.rt-select-list {
    list-style: none;
    max-height: 240px;
    overflow-y: auto;
    margin: 0;
    padding: 0;
}

.rt-select-option {
    padding: var(--rt-space-2) var(--rt-space-4);
    font-size: var(--rt-text-sm);
    color: var(--rt-text);
    cursor: pointer;
}

.rt-select-option.active {
    background: var(--rt-blue-50);
}

.rt-select-option.selected {
    color: var(--rt-navy);
    font-weight: 700;
}

/* Phone field country list (intl-tel-input) */
.rt-card .iti {
    width: 100%;
}

.rt-card .iti__dropdown-content {
    z-index: 20; /* above the icons of the fields below */
    margin-top: var(--rt-space-1);
    border: 1px solid var(--rt-border);
    border-radius: var(--rt-radius-md);
    box-shadow: 0 12px 32px rgba(20, 30, 60, 0.14);
    overflow: hidden;
    background: #ffffff;
}

.rt-card .iti__search-input {
    width: 100%;
    height: 44px;
    border: none;
    border-bottom: 1px solid var(--rt-border);
    padding: 0 var(--rt-space-4);
    font-size: var(--rt-text-sm);
    color: var(--rt-text);
    outline: none;
}

.rt-card .iti__search-input:focus {
    background: #f8faff;
}

.rt-card .iti__country-list {
    max-height: 240px;
    border: none;
    box-shadow: none;
    margin: 0;
}

.rt-card .iti__country {
    padding: var(--rt-space-2) var(--rt-space-4);
    font-size: var(--rt-text-sm);
    color: var(--rt-text);
}

.rt-card .iti__country.iti__highlight {
    background: var(--rt-blue-50);
}

.rt-card .iti__dial-code {
    color: var(--rt-text-subtle);
}

/* ---------- Document upload step ---------- */

/* summary of the entered data */
.rt-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 var(--rt-space-6);
    margin: 0 0 var(--rt-space-4);
}

.rt-summary > div {
    display: flex;
    justify-content: space-between;
    gap: var(--rt-space-4);
    padding: var(--rt-space-3) 0;
    border-bottom: 1px dashed var(--rt-border);
    font-size: var(--rt-text-sm);
}

.rt-summary dt {
    color: var(--rt-text-subtle);
    font-weight: 500;
    white-space: nowrap;
}

.rt-summary dd {
    margin: 0;
    color: var(--rt-text);
    font-weight: 700;
    text-align: right;
    overflow-wrap: anywhere;
}

/* light-blue information box (same as the support box on the Ready page) */
.rt-info {
    display: flex;
    align-items: flex-start;
    gap: var(--rt-space-3);
    background: var(--rt-blue-50);
    border-radius: var(--rt-radius-md);
    padding: var(--rt-space-4) var(--rt-space-5);
    margin-bottom: var(--rt-space-5);
    color: var(--rt-text);
    font-size: var(--rt-text-sm);
    line-height: 1.6;
}

.rt-info svg {
    flex-shrink: 0;
    margin-top: 1px;
}

/* upload tiles: the markup and classes (.identification-input-file, .valid/.error,
   the <span> right after it) are what index.js expects */
.rt-upload-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--rt-space-5);
    margin-bottom: var(--rt-space-5);
}

.rt-card .identification-input-file {
    width: 100%;
    height: 152px;
    background: #f8faff;
    border: 2px dashed var(--rt-input-border);
    border-radius: var(--rt-radius-md);
    box-shadow: none;
    transition: border-color .15s ease, background-color .15s ease;
}

.rt-card .identification-input-file:hover {
    background: var(--rt-blue-50);
    border-color: var(--rt-blue);
}

.rt-card .identification-input-file label {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: var(--rt-space-5);
    background-size: contain;
    background-origin: content-box;
    background-position: center;
    mix-blend-mode: multiply; /* hides the white background baked into some icons (bill.png) */
}

/* document illustrations drawn in the same flat-grey style as the ID images */
.rt-card .identification-input-file label.id-bill {
    background-image: url("/Content/assets/images/doc-bill.svg");
}

.rt-card .identification-input-file label.business-certificate {
    background-image: url("/Content/assets/images/doc-business-certificate.svg");
}

.rt-card .identification-input-file label.auth-person {
    background-image: url("/Content/assets/images/doc-authorization.svg");
}

.rt-card .identification-input-file.valid {
    border-style: solid;
    border-color: var(--rt-success);
    background-color: #f1fbf6;
}

.rt-card .identification-input-file.error {
    border-style: solid;
    border-color: var(--rt-danger);
    background-color: #fef4f3;
}

/* ✓ / ✕ badge in the top-right corner */
.rt-card .identification-input-file.valid:after,
.rt-card .identification-input-file.error:after {
    left: auto;
    right: var(--rt-space-2);
    top: var(--rt-space-2);
    font-size: 12px;
}

.rt-card .identification-input-file + span {
    width: auto;
    padding-top: var(--rt-space-2);
    color: var(--rt-text-muted);
    font-size: var(--rt-text-xs);
    line-height: 1.5;
}

/* after a file is chosen index.js puts its name in the span */
.rt-card .identification-input-file.valid + span {
    color: var(--rt-success);
    font-weight: 600;
    overflow-wrap: anywhere;
}

.rt-actions-split {
    border-top: 1px solid var(--rt-border);
    padding-top: var(--rt-space-5);
}

@media screen and (max-width: 991px) {
    .rt-upload-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 560px) {
    .rt-summary,
    .rt-upload-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ---------- Result pages (email confirmation, ...) ---------- */

/* the header uses .rt-card-top like the forms; the icon keeps the status colour */
.rt-shell .rt-icon.rt-icon-success {
    color: var(--rt-success);
    border-color: #cdeedd;
    box-shadow: 0 4px 12px rgba(30, 158, 106, 0.14);
}

.rt-shell .rt-icon.rt-icon-error {
    color: var(--rt-danger);
    border-color: #f6d3cf;
    box-shadow: 0 4px 12px rgba(217, 48, 37, 0.12);
}

.rt-result-text {
    margin: 0 0 var(--rt-space-5) !important;
    color: var(--rt-text-muted);
    font-size: var(--rt-text-base);
    line-height: 1.7;
}

.rt-result-info {
    margin: 0 0 var(--rt-space-6);
}

.rt-result-info strong {
    display: block;
    color: var(--rt-navy);
    margin-bottom: var(--rt-space-1);
}

.rt-result-info a {
    color: var(--rt-navy);
    font-weight: 600;
}

/* sign-off, as on the Ready page */
.rt-signoff {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: var(--rt-space-3);
    border-top: 1px solid var(--rt-border);
    padding-top: var(--rt-space-5);
    text-align: left;
}

.rt-signoff p {
    margin: 0 !important;
    color: var(--rt-text);
    font-size: var(--rt-text-sm);
}

.rt-signoff-address {
    color: var(--rt-placeholder);
    font-size: var(--rt-text-xs);
    line-height: 1.5;
    text-align: right;
}

@media screen and (max-width: 720px) {

    .rt-signoff {
        flex-direction: column;
        align-items: flex-start;
    }

    .rt-signoff-address {
        text-align: left;
    }
}

/* ---------- Payment page ---------- */

.rt-checkout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: var(--rt-space-6);
    align-items: start;
}

/* order summary */
.rt-order {
    position: sticky;
    top: calc(var(--rt-header-h) + var(--rt-space-5));
    background: #f8faff;
    border: 1px solid var(--rt-border);
    border-radius: var(--rt-radius-lg);
    padding: var(--rt-space-5);
}

.rt-order-title {
    color: var(--rt-navy);
    font-size: var(--rt-text-base);
    font-weight: 700;
    margin: 0 0 var(--rt-space-3) !important;
}

.rt-order-row {
    display: flex;
    justify-content: space-between;
    gap: var(--rt-space-3);
    padding: var(--rt-space-2) 0;
    color: var(--rt-text-muted);
    font-size: var(--rt-text-sm);
}

.rt-order-row > span:last-child {
    color: var(--rt-text);
    font-weight: 600;
    white-space: nowrap;
}

.rt-order-total {
    margin-top: var(--rt-space-2);
    padding-top: var(--rt-space-4);
    border-top: 1px solid var(--rt-border);
    color: var(--rt-navy);
    font-weight: 700;
    font-size: var(--rt-text-base);
}

.rt-order-total > span:last-child {
    color: var(--rt-navy);
    font-size: var(--rt-text-lg);
    font-weight: 700;
}

/* card fields */
.rt-uppercase {
    text-transform: uppercase;
}

/* Stripe mounts an iframe in #card-element; it adds the --focus / --invalid classes */
.rt-card .form-control.rt-stripe {
    padding: 14px var(--rt-space-4);
}

.rt-card .form-control.rt-stripe.StripeElement--focus {
    border-color: var(--rt-blue);
    box-shadow: 0 0 0 3px rgba(67, 97, 233, 0.15);
}

.rt-card .form-control.rt-stripe.StripeElement--invalid {
    border-color: var(--rt-danger);
}

#card-errors {
    min-height: var(--rt-space-4);
    margin-top: var(--rt-space-2);
    color: var(--rt-danger);
    font-size: var(--rt-text-xs);
}

/* Apple Pay / Google Pay, shown by the page script only when available */
#payment-request-button {
    display: none;
    margin-bottom: var(--rt-space-4);
}

#payment-request-divider {
    display: none;
    align-items: center;
    gap: var(--rt-space-3);
    margin: 0 0 var(--rt-space-4);
    color: var(--rt-placeholder);
    font-size: var(--rt-text-xs);
}

#payment-request-divider:before,
#payment-request-divider:after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--rt-border);
}

/* pay button with loading spinner */
.rt-btn-block {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--rt-space-2);
    width: 100%;
}

.rt-btn:disabled {
    opacity: .6;
    cursor: not-allowed;
}

.rt-btn .spinner {
    display: none;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: rt-spin .7s linear infinite;
}

.rt-btn.loading .spinner {
    display: inline-block;
}

@keyframes rt-spin {
    to {
        transform: rotate(360deg);
    }
}

/* a link that looks like the primary button */
.rt-btn-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
    color: #ffffff !important;
}

.rt-checkout-trust {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--rt-space-2);
    margin-top: var(--rt-space-4);
    color: var(--rt-text-subtle);
    font-size: var(--rt-text-xs);
}

.rt-checkout-trust > span {
    display: inline-flex;
    align-items: center;
    gap: var(--rt-space-1);
}

@media screen and (max-width: 991px) {
    .rt-checkout {
        grid-template-columns: minmax(0, 1fr);
    }

    /* show what is being paid before the card fields */
    .rt-order {
        position: static;
        order: -1;
    }
}

/* ---------- Password page ---------- */

.rt-greeting {
    color: var(--rt-text);
    font-size: var(--rt-text-base);
    font-weight: 600;
    margin: 0 0 var(--rt-space-4) !important;
}

/* red variant of the information box (important warnings) */
.rt-info.rt-danger {
    background: #fef4f3;
    color: #a3221a;
    border: 1px solid #f6d3cf;
}

.rt-info.rt-danger svg {
    color: var(--rt-danger);
}

/* password fields stacked in a centered column */
.rt-pwd-fields {
    max-width: 480px;
    margin: 0 auto;
}

.rt-pwd-fields .rt-pwd-rules {
    padding: 0 var(--rt-space-2);
}

/* show / hide button inside the password fields */
.rt-pwd-toggle {
    position: absolute;
    right: var(--rt-space-1);
    top: var(--rt-space-1);
    z-index: 1;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: var(--rt-radius-md);
    background: transparent;
    color: var(--rt-placeholder);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.rt-pwd-toggle:hover,
.rt-pwd-toggle.on {
    color: var(--rt-navy);
    background: var(--rt-blue-50);
}

.rt-card .rt-pwd .rt-input-wrap .form-control {
    padding-right: var(--rt-space-8);
}

.rt-card .rt-pwd .form-control.valid {
    padding-right: 80px;
    background-position: right 52px center;
}

/* room between the button and the help line's divider below it */
.rt-pwd .rt-actions {
    padding-top: var(--rt-space-4);
    margin-bottom: var(--rt-space-4);
}

/* live checklist of the password rules: one per line, grey ✓ until met, then green */
.rt-pwd-rules {
    display: flex;
    flex-direction: column;
    gap: var(--rt-space-2);
    list-style: none;
    padding: 0;
    margin: 0 0 var(--rt-space-5);
}

.rt-pwd-rules li {
    display: flex;
    align-items: center;
    gap: var(--rt-space-2);
    color: var(--rt-text-subtle);
    font-size: var(--rt-text-sm);
    transition: color .15s ease;
}

.rt-pwd-rules li::before {
    content: "";
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M20 6L9 17l-5-5' stroke='%23c4cbd8' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.rt-pwd-rules li.ok {
    color: var(--rt-success);
    font-weight: 600;
}

.rt-pwd-rules li.ok::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M20 6L9 17l-5-5' stroke='%231e9e6a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.rt-signoff-help {
    color: var(--rt-text-subtle);
    font-size: var(--rt-text-sm);
}

.rt-signoff-help a {
    color: var(--rt-navy);
    font-weight: 600;
}

/* ---------- Terms, captcha, actions ---------- */

.rt-terms {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: var(--rt-space-3);
    color: var(--rt-text-muted);
    font-size: var(--rt-text-sm);
    border-top: 1px solid var(--rt-border);
    padding-top: var(--rt-space-5);
    margin: var(--rt-space-2) 0 var(--rt-space-4);
}

.rt-terms label {
    margin: 0;
}

.rt-terms input[type=checkbox] {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    flex-shrink: 0;
    accent-color: var(--rt-navy);
}

.rt-terms a {
    color: var(--rt-navy);
    font-weight: 600;
    text-decoration: underline;
}

.rt-terms + label.error {
    text-align: center;
    margin: calc(var(--rt-space-2) * -1) 0 var(--rt-space-4);
}

.rt-captcha {
    display: flex;
    justify-content: center;
    width: 100%;
    margin-bottom: var(--rt-space-5);
}

.rt-actions {
    display: flex;
    justify-content: center;
    gap: var(--rt-space-3);
    flex-wrap: wrap;
}

.rt-btn {
    min-width: 200px;
    height: 48px;
    padding: 0 var(--rt-space-6);
    border-radius: 999px;
    border: 1px solid var(--rt-navy);
    background: var(--rt-navy);
    color: #ffffff;
    font-size: var(--rt-text-base);
    font-weight: 600;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease;
}

.rt-btn:hover {
    background: var(--rt-navy-hover);
    border-color: var(--rt-navy-hover);
}

.rt-btn:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(67, 97, 233, 0.3);
}

.rt-btn-arrow::after {
    content: "\2192";
    display: inline-block;
    margin-left: var(--rt-space-2);
    transition: transform .15s ease;
}

.rt-btn-arrow:hover::after {
    transform: translateX(var(--rt-space-1));
}

.rt-btn-secondary {
    background: #ffffff;
    color: var(--rt-navy);
}

.rt-btn-secondary:hover {
    background: var(--rt-blue-50);
    border-color: var(--rt-navy);
}

/* ---------- Modal (terms of contract) ---------- */

body.rt-modal-open {
    overflow: hidden;
}

.rt-modal {
    position: fixed;
    inset: 0;
    z-index: 1050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--rt-space-4);
    font-family: 'Plus Jakarta Sans', 'Segoe UI', system-ui, sans-serif;
    opacity: 0;
    transition: opacity .2s ease;
}

.rt-modal.shown {
    opacity: 1;
}

.rt-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(25, 25, 116, 0.35);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.rt-modal-dialog {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 760px;
    max-height: calc(100vh - var(--rt-space-8));
    background: #ffffff;
    border-radius: var(--rt-radius-xl);
    box-shadow: 0 24px 64px rgba(20, 30, 60, 0.25);
    overflow: hidden;
    transform: translateY(var(--rt-space-3)) scale(.98);
    transition: transform .2s ease;
}

.rt-modal.shown .rt-modal-dialog {
    transform: none;
}

.rt-modal-header {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--rt-space-4);
    padding: var(--rt-space-5) var(--rt-space-6);
    background: linear-gradient(180deg, #f3f6fe 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rt-border);
}

.rt-modal-icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: var(--rt-radius-lg);
    background: #ffffff;
    border: 1px solid var(--rt-blue-100);
    box-shadow: 0 4px 12px rgba(67, 97, 233, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
}

.rt-modal-heading {
    flex: 1;
    min-width: 0;
}

.rt-modal-heading h3 {
    color: var(--rt-navy);
    font-size: var(--rt-text-lg);
    font-weight: 700;
    line-height: 1.25;
    margin: 0;
}

.rt-modal-close {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--rt-text-subtle);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background-color .15s ease, color .15s ease;
}

.rt-modal-close:hover {
    background: var(--rt-blue-50);
    color: var(--rt-navy);
}

.rt-modal-close:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(67, 97, 233, 0.3);
}

/* reading progress along the bottom edge of the header */
.rt-modal-progress {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 2px;
}

.rt-modal-progress span {
    display: block;
    width: 0;
    height: 100%;
    background: var(--rt-blue);
    transition: width .1s linear;
}

.rt-modal-body {
    flex: 1;
    overflow-y: auto;
    padding: var(--rt-space-5) var(--rt-space-6);
    color: var(--rt-text-muted);
    font-size: var(--rt-text-sm);
    line-height: 1.7;
}

.rt-modal-body a {
    color: var(--rt-blue);
}

.rt-modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: var(--rt-space-3);
    padding: var(--rt-space-4) var(--rt-space-6);
    border-top: 1px solid var(--rt-border);
    background: #ffffff;
}

.rt-modal-footer .rt-btn {
    min-width: 0;
}

@media screen and (max-width: 720px) {
    .rt-modal {
        align-items: flex-end;
        padding: 0;
    }

    .rt-modal-dialog {
        max-height: 92vh;
        border-radius: var(--rt-radius-xl) var(--rt-radius-xl) 0 0;
    }

    .rt-modal-header,
    .rt-modal-body,
    .rt-modal-footer {
        padding-left: var(--rt-space-5);
        padding-right: var(--rt-space-5);
    }

    .rt-modal-footer {
        flex-direction: column-reverse;
    }

    .rt-modal-footer .rt-btn {
        width: 100%;
    }
}

/* terms modal: loading state, read-to-the-end hint */
.rt-modal-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 240px;
}

.rt-spinner {
    width: 32px;
    height: 32px;
    border: 3px solid var(--rt-blue-100);
    border-top-color: var(--rt-blue);
    border-radius: 50%;
    animation: rt-spin .7s linear infinite;
}

.rt-modal-error {
    color: var(--rt-danger);
    text-align: center;
    margin: var(--rt-space-6) 0 !important;
}

.rt-modal-footer.rt-terms-footer {
    justify-content: space-between;
    align-items: center;
    gap: var(--rt-space-4);
}

.rt-terms-buttons {
    display: flex;
    flex-shrink: 0;
    gap: var(--rt-space-3);
}

.rt-terms-hint {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    display: flex;
    align-items: center;
    gap: var(--rt-space-2);
    margin: 0 !important;
    color: var(--rt-text-subtle);
    font-size: var(--rt-text-sm);
}

.rt-terms-hint .rt-terms-hint-done {
    display: none;
}

.rt-terms-hint svg.rt-terms-hint-scroll {
    color: var(--rt-blue);
    animation: rt-nudge 1.4s ease-in-out infinite;
}

.rt-terms-read .rt-terms-hint {
    color: var(--rt-success);
    font-weight: 600;
}

.rt-terms-read .rt-terms-hint .rt-terms-hint-scroll {
    display: none;
}

.rt-terms-read .rt-terms-hint .rt-terms-hint-done {
    display: inline;
}

@keyframes rt-nudge {
    0%, 100% {
        transform: translateY(-2px);
    }

    50% {
        transform: translateY(2px);
    }
}

@media screen and (max-width: 720px) {
    .rt-modal-footer.rt-terms-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .rt-terms-hint {
        justify-content: center;
    }

    .rt-terms-buttons {
        flex-direction: column-reverse;
    }

    .rt-terms-buttons .rt-btn {
        width: 100%;
    }
}

/* ---------- Message dialog (rtDialog / popup) ---------- */

.rt-modal-sm .rt-modal-dialog {
    max-width: 480px;
}

.rt-modal-sm .rt-modal-close {
    position: absolute;
    top: var(--rt-space-3);
    right: var(--rt-space-3);
    z-index: 1;
}

.rt-dialog-body {
    overflow-y: auto;
    padding: var(--rt-space-7) var(--rt-space-6) var(--rt-space-5);
    text-align: center;
}

.rt-dialog-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto var(--rt-space-4);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rt-dialog-info {
    background: var(--rt-blue-50);
    color: var(--rt-blue);
}

.rt-dialog-success {
    background: #e3f5ec;
    color: var(--rt-success);
}

.rt-dialog-error {
    background: #fdecea;
    color: var(--rt-danger);
}

.rt-dialog-title {
    color: var(--rt-navy);
    font-size: var(--rt-text-lg);
    font-weight: 700;
    line-height: 1.25;
    margin: 0 0 var(--rt-space-2);
}

.rt-dialog-text {
    color: var(--rt-text-muted);
    font-size: var(--rt-text-sm);
    line-height: 1.6;
}

.rt-dialog-text i {
    color: var(--rt-navy) !important;
    font-style: normal;
    font-weight: 600;
}

.rt-dialog-footer {
    justify-content: center;
    border-top: none;
    padding-top: 0;
    padding-bottom: var(--rt-space-6);
}

.rt-dialog-footer .rt-btn {
    min-width: 160px;
}

/* ---------- Motion ---------- */

@keyframes rt-rise {
    from {
        opacity: 0;
        transform: translateY(var(--rt-space-3));
    }

    to {
        opacity: 1;
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rt-card,
    .rt-sidebar,
    .rt-terms-hint svg {
        animation: none;
    }

    .rt-modal,
    .rt-modal-dialog {
        transition: none;
    }
}

/* ---------- Responsive ---------- */


@media screen and (max-width: 1199px) {
    .rt-shell {
        grid-template-columns: 340px minmax(0, 1fr);
        gap: var(--rt-space-5);
    }
}

@media screen and (max-width: 991px) {
    .rt-shell {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--rt-space-4);
        padding: var(--rt-space-5) var(--rt-space-4) var(--rt-space-8);
    }

    .rt-sidebar {
        position: static;
        max-height: none;
        overflow: visible;
        padding: var(--rt-space-4) var(--rt-space-5);
        border-radius: var(--rt-radius-lg);
    }

    .rt-sidebar-full {
        display: none;
    }

    .rt-sidebar-mobile {
        display: block;
    }

    .rt-sidebar-mobile-row {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        gap: var(--rt-space-3);
        font-size: var(--rt-text-sm);
        margin-bottom: var(--rt-space-3);
    }

    .rt-sidebar-mobile-row strong {
        color: #ffffff;
        font-size: var(--rt-text-base);
    }
}

@media screen and (max-width: 720px) {
    .rt-card {
        border-radius: var(--rt-radius-lg);
    }

    .rt-card-top,
    .rt-shell .rt-card-top {
        padding: var(--rt-space-5);
    }

    .rt-card-body {
        padding: var(--rt-space-5) var(--rt-space-5) var(--rt-space-6);
    }

    .rt-title {
        font-size: var(--rt-text-lg);
    }

    .rt-card-top > .rt-card-deco {
        display: none;
    }

    .rt-btn {
        width: 100%;
    }
}

/* ---------- Terms of contract (content of _TermsAndConditions.cshtml) ---------- */

.rt-terms-content p {
    margin: 0;
}

.rt-terms-content .d-inline {
    display: inline;
}

.rt-terms-content strong {
    color: var(--rt-text);
    font-weight: 700;
}

/* same size as the section text below (inherits the modal body's 14px) */
.rt-terms-lead p {
    color: var(--rt-text-muted);
}

.rt-terms-lead p + p {
    margin-top: var(--rt-space-3);
}

.rt-terms-toc-label {
    margin: var(--rt-space-6) 0 var(--rt-space-3) !important;
    color: var(--rt-blue);
    font-size: var(--rt-text-xs);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

/* contents: one card per section; clicking it opens the section's text right below */
.rt-terms-toc {
    display: flex;
    flex-direction: column;
    gap: var(--rt-space-3);
}

.rt-terms-section {
    background: #ffffff;
    border: 1px solid var(--rt-border);
    border-radius: var(--rt-radius-md);
    box-shadow: 0 2px 8px rgba(20, 30, 60, 0.04);
}

.rt-terms-section:hover,
.rt-terms-section.open {
    border-color: var(--rt-blue-200);
    box-shadow: 0 6px 16px rgba(67, 97, 233, 0.10);
}

.rt-terms-toc-item {
    display: flex;
    align-items: center;
    gap: var(--rt-space-3);
    width: 100%;
    padding: var(--rt-space-3) var(--rt-space-4);
    border: none;
    border-radius: var(--rt-radius-md);
    background: transparent;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    touch-action: manipulation; /* no tap delay on phones */
    -webkit-tap-highlight-color: transparent;
}

.rt-terms-toc-item:active {
    background: var(--rt-blue-50);
}

.rt-terms-toc-item:focus {
    outline: none;
}

.rt-terms-toc-item:focus-visible {
    box-shadow: 0 0 0 3px rgba(67, 97, 233, 0.3);
}

.rt-terms-ico {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: var(--rt-radius-md);
    background: var(--rt-blue-50);
    color: var(--rt-blue);
    display: flex;
    align-items: center;
    justify-content: center;
}

.rt-terms-section.open .rt-terms-ico {
    background: var(--rt-blue);
    color: #ffffff;
}

.rt-terms-toc-text {
    flex: 1;
    min-width: 0;
}

.rt-terms-toc-text strong {
    display: block;
    color: var(--rt-navy);
    font-size: var(--rt-text-sm);
    font-weight: 600;
    line-height: 1.35;
}

.rt-terms-toc-text small {
    display: block;
    margin-top: 2px;
    color: var(--rt-text-subtle);
    font-size: var(--rt-text-xs);
    line-height: 1.4;
}

.rt-terms-chevron {
    flex-shrink: 0;
    color: var(--rt-blue);
}

.rt-terms-section.open .rt-terms-chevron {
    transform: rotate(90deg);
}

/* collapsible panel: opens instantly, no animation */
.rt-terms-panel {
    display: none;
}

.rt-terms-section.open .rt-terms-panel {
    display: block;
}

.rt-terms-panel-inner > ul {
    margin: 0 var(--rt-space-4) var(--rt-space-4) !important;
    padding-top: var(--rt-space-4) !important;
    border-top: 1px solid var(--rt-border);
}

.rt-terms-section ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* articles carry their own numbers (2.1, 2.2 ...), so no bullet before them */
.rt-terms-panel-inner > ul > li {
    margin-bottom: var(--rt-space-3);
}

.rt-terms-panel-inner > ul > li:last-child {
    margin-bottom: 0;
}

/* sub-points sit in a soft panel */
.rt-terms-section li ul {
    margin-top: var(--rt-space-2);
    padding: var(--rt-space-3) var(--rt-space-4);
    background: #f8faff;
    border-left: 3px solid var(--rt-blue-100);
    border-radius: 0 var(--rt-radius-md) var(--rt-radius-md) 0;
}

.rt-terms-section li ul li + li {
    margin-top: var(--rt-space-2);
}

/* definitions: numbered (1.1, 1.2 ...) rows separated by lines */
.rt-terms-panel-inner > ul.rt-terms-box > li {
    padding: var(--rt-space-3) 0;
    margin: 0;
}

.rt-terms-panel-inner > ul.rt-terms-box > li:first-child {
    padding-top: 0;
}

.rt-terms-panel-inner > ul.rt-terms-box > li + li {
    border-top: 1px dashed var(--rt-border);
}

@media screen and (max-width: 720px) {
    .rt-terms-toc-item {
        padding: var(--rt-space-3);
    }

    .rt-terms-panel-inner > ul {
        margin: 0 var(--rt-space-3) var(--rt-space-3) !important;
    }
}

/* ---------- rtrust.org look (same tokens as PKILanding landing.css) ---------- */

:root {
    --rt-navy: #00008B;
    --rt-navy-hover: #1a1aa6;
    --rt-on-navy: #c3c9f5;
    --rt-header-h: 75px; /* the rtrust.org header */
}

.rt-sidebar {
    background: radial-gradient(520px 360px at 88% 8%, rgba(255, 200, 0, .16), transparent 60%),
                radial-gradient(520px 420px at 0% 100%, rgba(90, 120, 255, .38), transparent 62%),
                var(--rt-navy);
}

/* the main action is yellow, as on rtrust.org; secondary stays white */
.rt-btn {
    height: 52px;
    border: 2px solid #FFC800;
    background: #FFC800;
    color: #0b0b4f;
    font-weight: 800;
    box-shadow: 0 10px 24px -10px rgba(255, 180, 0, .7);
    transition: background-color .15s ease, border-color .15s ease, transform .15s ease;
}

.rt-btn:hover {
    background: #ffd84d;
    border-color: #ffd84d;
    color: #0b0b4f;
    transform: translateY(-1px);
}

.rt-btn:focus {
    box-shadow: 0 0 0 3px rgba(255, 200, 0, .45);
}

.rt-btn-secondary {
    border-color: #e9eefc;
    background: #ffffff;
    color: var(--rt-navy);
    box-shadow: none;
}

.rt-btn-secondary:hover {
    border-color: var(--rt-navy);
    background: #ffffff;
    color: var(--rt-navy);
}

/* the loading spinner on the yellow button */
.rt-btn .spinner {
    border-color: rgba(11, 11, 79, .25);
    border-top-color: #0b0b4f;
}
.rt-btn-secondary .spinner {
    border-color: rgba(0, 0, 139, .25);
    border-top-color: var(--rt-navy);
}

/* the page under the header as on rtrust.org: the soft tinted band at the top,
   content in the same width as the rtrust.org header (1200px) */
body {
    background: linear-gradient(180deg, #f3f6ff 0, #ffffff 560px) no-repeat, #ffffff;
}

.content {
    background: transparent;
}

.rt-shell {
    grid-template-columns: 360px minmax(0, 1fr);
    max-width: 1232px; /* 1200 + the 16px side gutters, like .wrap */
    padding-left: 16px;
    padding-right: 16px;
}

.rt-page {
    padding-left: 16px;
    padding-right: 16px;
}

@media screen and (max-width: 1199px) {
    .rt-shell {
        grid-template-columns: 320px minmax(0, 1fr);
    }
}

@media screen and (max-width: 991px) {
    .rt-shell {
        grid-template-columns: minmax(0, 1fr);
    }
}
