/* Roboloan business-model presentation: pricing badge, line icons,
   connected diagrams, FAQ, and trust page. Additive to the existing
   public stylesheets so per-page styles are not disturbed. */

/* Inline links inside prose (FAQ/Security/etc.) otherwise fall back to the
   browser's default blue instead of the site's brand link color. */
.public-section p a,
.public-cta p a,
.landing-hero p a {
    color: var(--rl-link, #245ea8);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.public-section p a:hover,
.public-section p a:focus,
.public-cta p a:hover,
.public-cta p a:focus,
.landing-hero p a:hover,
.landing-hero p a:focus {
    color: var(--rl-red, #d7193f);
}

.public-section--navy p a {
    color: #9cc1eb;
}

.public-section--navy p a:hover,
.public-section--navy p a:focus {
    color: #fff;
}

.rl-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    color: var(--rl-red, #d7193f);
}

.rl-icon svg { width: 100%; height: 100%; }

.rl-card-heading {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rl-card-heading h3 { margin: 0; }

.features-summary-grid .rl-card-heading,
.process-overview-grid .rl-card-heading,
.about-capability-card .rl-card-heading { margin-bottom: 2px; }

.delta-home-tabs__grid a .rl-icon { margin-bottom: 12px; }

/* Pricing badge -------------------------------------------------- */

.public-price-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 18px;
    border: 1px solid rgba(215, 25, 63, .32);
    border-radius: 999px;
    background: rgba(215, 25, 63, .08);
    color: var(--rl-red, #d7193f);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: normal;
}

.public-price-badge::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rl-red, #d7193f);
    flex: 0 0 auto;
}

.landing-hero--light .public-price-badge,
.about-hero .public-price-badge,
.process-hero .public-price-badge,
.features-hero .public-price-badge { margin-bottom: 18px; }

.landing-hero:not(.landing-hero--light) .public-price-badge {
    background: rgba(255, 255, 255, .1);
    border-color: rgba(255, 255, 255, .28);
    color: #fff;
    margin-bottom: 18px;
}

.landing-hero:not(.landing-hero--light) .public-price-badge::before { background: #fff; }

.public-model-note {
    max-width: 720px;
    margin: 6px 0 0;
    color: var(--rl-muted, #657184);
    font-size: 15px;
    line-height: 1.6;
}

.landing-hero:not(.landing-hero--light) .public-model-note { color: rgba(255,255,255,.72); }

.public-nav-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 13px;
    margin-left: 6px;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 999px;
    background: rgba(255, 255, 255, .06);
    color: rgba(255, 255, 255, .92);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
    text-decoration: none;
    min-height: 44px;
}

.public-nav-badge::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--rl-red, #d7193f);
    flex: 0 0 auto;
}

.public-nav-badge:hover,
.public-nav-badge:focus {
    color: #fff;
    border-color: rgba(255, 255, 255, .4);
}

/* Inside the collapsed mobile/tablet menu the full badge copy needs to wrap
   instead of forcing a single nowrap line that can overflow narrow phones. */
.public-nav-badge--full {
    display: flex;
    width: fit-content;
    max-width: 100%;
    white-space: normal;
    border-radius: 10px;
    line-height: 1.4;
    margin-left: 0;
}

.public-nav-badge--full::before { margin-top: 5px; }

@media (max-width: 991.98px) {
    .public-nav-badge { margin: 10px 0; }
}

.public-model-callout {
    margin-top: 18px;
    padding: 18px 22px;
    border: 1px solid var(--rl-line, #d8dee7);
    border-left: 3px solid var(--rl-red, #d7193f);
    background: var(--rl-canvas, #f5f7fa);
    color: var(--rl-text, #172033);
    font-size: 14.5px;
    line-height: 1.66;
}

.public-section--navy .public-model-callout {
    background: rgba(255,255,255,.05);
    border-color: rgba(255,255,255,.16);
    color: rgba(255,255,255,.82);
}

.public-model-callout strong { color: inherit; }

.public-fee-note {
    display: block;
    margin-top: 10px;
    color: var(--rl-muted, #657184);
    font-size: 13.5px;
    font-style: italic;
}

/* Footer strap ----------------------------------------------------- */

.public-footer-strap {
    padding: 14px 0;
    background: var(--rl-navy-950, #071629);
    border-top: 1px solid rgba(255,255,255,.08);
    color: rgba(255,255,255,.78);
    font-size: 13px;
    text-align: center;
    letter-spacing: .01em;
}

/* Hub-and-spoke servicing-record diagram ---------------------------- */

.rl-hub {
    max-width: 900px;
    margin: 44px auto 0;
    display: grid;
    gap: 0;
}

.rl-hub__row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    position: relative;
}

.rl-hub__row::before {
    content: "";
    position: absolute;
    left: 16.6667%;
    right: 16.6667%;
    height: 2px;
    background: var(--rl-line, #d8dee7);
}

.rl-hub__row--top::before { bottom: -22px; }
.rl-hub__row--bottom::before { top: -22px; }

.rl-hub__row--top { margin-bottom: 22px; }
.rl-hub__row--bottom { margin-top: 22px; }

.rl-hub__node {
    position: relative;
    padding: 18px 16px;
    background: #fff;
    border: 1px solid var(--rl-line, #d8dee7);
    border-top: 3px solid var(--rl-red, #d7193f);
    text-align: center;
}

.rl-hub__node::after {
    content: "";
    position: absolute;
    left: 50%;
    width: 2px;
    height: 22px;
    background: var(--rl-line, #d8dee7);
}

.rl-hub__row--top .rl-hub__node::after { bottom: -22px; }
.rl-hub__row--bottom .rl-hub__node::after { top: -22px; }

.rl-hub__node .rl-icon { margin: 0 auto 10px; }

.rl-hub__node h3 {
    margin: 0;
    color: var(--rl-navy-950, #0b1f3a);
    font-size: 16px;
    font-weight: 600;
}

.rl-hub__node p {
    margin: 8px 0 0;
    color: var(--rl-muted, #657184);
    font-size: 13px;
    line-height: 1.55;
}

.rl-hub__core {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 200px;
    height: 64px;
    margin: 0 auto;
    border-radius: 999px;
    background: var(--rl-navy-950, #0b1f3a);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.rl-hub__core .rl-icon { color: #fff; width: 20px; height: 20px; }

@media (max-width: 767.98px) {
    .rl-hub__row { grid-template-columns: 1fr; gap: 14px; }
    .rl-hub__row::before,
    .rl-hub__node::after { display: none; }
    .rl-hub__row--top,
    .rl-hub__row--bottom { margin: 0; }
    .rl-hub__core { margin: 18px auto; }
}

/* Numbered lifecycle flow rail --------------------------------------- */

.rl-flow-rail {
    display: flex;
    align-items: center;
    max-width: 1040px;
    margin: 40px auto 0;
    overflow-x: auto;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
}

.rl-flow-rail::-webkit-scrollbar { display: none; }

.rl-flow-rail__step { scroll-snap-align: start; }

.rl-flow-rail__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1 1 0;
    min-width: 92px;
    text-align: center;
}

.rl-flow-rail__step span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--robo-navy, var(--rl-navy-950, #0b1f3a));
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

.rl-flow-rail__step small {
    margin-top: 8px;
    color: var(--robo-muted, var(--rl-muted, #657184));
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .02em;
}

.rl-flow-rail__arrow {
    flex: 0 0 auto;
    margin: 0 4px 20px;
    color: var(--rl-line, #d8dee7);
    font-size: 18px;
}

.public-section--soft .rl-flow-rail__step span,
.process-steps-section .rl-flow-rail__step span { background: var(--robo-red, var(--rl-red, #d7193f)); }

@media (max-width: 767.98px) {
    .rl-flow-rail { justify-content: flex-start; gap: 2px; mask-image: linear-gradient(90deg, #000 92%, transparent); }
    .rl-flow-rail__step { min-width: 76px; }
    .rl-flow-rail__step span { width: 32px; height: 32px; font-size: 13px; }
    .rl-flow-rail__step small { font-size: 12px; }
    .rl-flow-rail__arrow { margin: 0 2px 18px; font-size: 15px; }
}

/* FAQ ------------------------------------------------------------- */

.faq-list {
    max-width: 860px;
    margin: 42px auto 0;
}

.faq-item {
    border-bottom: 1px solid var(--rl-line, #d8dee7);
}

.faq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 4px;
    color: var(--rl-navy-950, #0b1f3a);
    font-size: 17px;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
}

.faq-item summary::-webkit-details-marker { display: none; }

.faq-item summary::after {
    content: "+";
    flex: 0 0 auto;
    color: var(--rl-red, #d7193f);
    font-size: 22px;
    font-weight: 400;
}

.faq-item[open] summary::after { content: "\2212"; }

.faq-item p {
    margin: 0 0 22px;
    padding-right: 30px;
    color: var(--rl-muted, #657184);
    font-size: 15px;
    line-height: 1.72;
}

/* Trust / security page ------------------------------------------- */

.trust-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    max-width: 1040px;
    margin: 42px auto 0;
}

.trust-card {
    padding: 26px;
    background: #fff;
    border: 1px solid var(--rl-line, #d8dee7);
    border-top: 3px solid var(--rl-red, #d7193f);
}

.trust-card h3 {
    margin: 0 0 10px;
    color: var(--rl-navy-950, #0b1f3a);
    font-size: 18px;
    font-weight: 600;
}

.trust-card p {
    margin: 0;
    color: var(--rl-muted, #657184);
    font-size: 14px;
    line-height: 1.65;
}

@media (max-width: 900px) {
    .trust-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
    .trust-grid { grid-template-columns: 1fr; }
}

/* Sidebar icon rows (Contact page) --------------------------------- */

.demo-request-aside__list li.rl-sidebar-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding-left: 0;
}

.demo-request-aside__list li.rl-sidebar-item::before { content: none; }

.demo-request-aside__list li.rl-sidebar-item .rl-icon {
    width: 22px;
    height: 22px;
    margin-top: 2px;
}

.demo-request-aside__list li.rl-sidebar-item > div { flex: 1 1 auto; }

/* Sticky mobile demo CTA -------------------------------------------
   Keeps the primary conversion action reachable in the thumb zone at
   the bottom of the screen on phones/tablets, matching how most SaaS
   marketing sites surface their main CTA on small screens. Hidden at
   the nav's own desktop breakpoint, where "Request Demo" already sits
   in the header. */

.public-mobile-cta {
    display: none;
}

@media (max-width: 991.98px) {
    .public-mobile-cta {
        display: block;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1040;
        padding: 12px 16px;
        padding-bottom: max(12px, env(safe-area-inset-bottom));
        background: rgba(255, 255, 255, .98);
        border-top: 1px solid var(--rl-line, #d8dee7);
        box-shadow: 0 -8px 24px rgba(7, 22, 41, .12);
    }

    .public-mobile-cta .public-primary-btn {
        display: flex;
        width: 100%;
        justify-content: center;
    }

    body:has(.public-mobile-cta) .public-footer {
        padding-bottom: 78px;
    }
}
