/* =============================================================
   IFERP Author Services — Landing Page
   ============================================================= */

:root {
    --navy: #0a1d3a;
    --navy-2: #102a4f;
    --navy-border: #1d335a;
    --cream: #faf5ec;
    --cream-2: #f6efe1;
    --peach: #fce8df;
    --peach-2: #fde2d5;
    --gold: #f5b400;
    --gold-2: #f4a800;
    --gold-soft: #fff3d6;
    --red: #e63946;
    --red-2: #d62828;
    --red-soft: #fdebec;
    --ink: #14213d;
    --ink-2: #1b2a4a;
    --muted: #6b7280;
    --muted-2: #8a93a3;
    --line: #e5e7eb;
    --line-dark: #1d3158;
    --dark-cta: #0d1a35;
    --navy-deep: #07152b;
    --cream-3: #fffaf0;
    --cream-4: #faf7f0;
    --footer-line: #122644;
}

body { overflow-x: hidden; }

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }
section[id], header[id] { scroll-margin-top: 80px; }

body {
    font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
    color: var(--ink);
    background: #ffffff;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.container-xxl { max-width: 1200px; padding-left: 24px; padding-right: 24px; }

/* ======== Typography ======== */
.section-title {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 500;
    font-size: clamp(1.9rem, 3.2vw, 2.6rem);
    line-height: 1.15;
    color: var(--ink);
    letter-spacing: -0.022em;
    margin: 0 0 .5rem;
    text-align: center;
    font-variation-settings: "opsz" 96, "SOFT" 30;
}
.section-title em {
    font-style: italic;
    font-weight: 500;
    color: var(--ink);
}
.section-title.light { color: #fff; }
.section-title.light em { color: #fff; }

.section-sub {
    color: var(--muted);
    font-size: 1.02rem;
    max-width: 680px;
    text-align: center;
    margin: 14px 0 0;
}
.section-sub.light { color: #b6c2d6; }

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    font-size: .72rem;
    letter-spacing: .22em;
    font-weight: 600;
    color: var(--gold-2);
    text-transform: uppercase;
    margin-bottom: 14px;
}
.eyebrow::before, .eyebrow::after {
    content: "";
    width: 48px; height: 1px;
    background: var(--gold);
    display: inline-block;
}
.eyebrow.gold { color: var(--gold); }

.eyebrow-tiny {
    text-transform: uppercase;
    letter-spacing: .22em;
    font-size: .7rem;
    color: var(--muted-2);
    font-weight: 600;
}

.accent-gold,
.hero-title em.accent-gold,
.cta-title em.accent-gold,
.section-title em.accent-gold,
.section-title.light em.accent-gold { color: var(--gold) !important; font-style: italic; font-weight: 600; }
.hero-title em, .cta-title em { font-style: italic; }

/* ======== Reveal Animation ======== */
.reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .7s cubic-bezier(.2,.6,.2,1), transform .7s cubic-bezier(.2,.6,.2,1);
    will-change: opacity, transform;
}
.reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1; transform: none; transition: none; }
}

/* ======== Buttons ======== */
.btn {
    font-weight: 600;
    /* border-radius: 999px; */
    padding: 13px 24px;
    font-size: .95rem;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}
.btn:active { transform: translateY(1px); }

.btn-gold {
    background: var(--gold);
    color: #1a1a1a;
    border: 1px solid var(--gold);
    box-shadow: 0 2px 6px rgba(0,0,0,.12);
}
.btn-gold:hover { background: var(--gold-2); color: #1a1a1a; box-shadow: 0 6px 14px rgba(245,180,0,.28); transform: translateY(-1px); }
.btn-gold:focus-visible, .btn-dark-cta:focus-visible, .btn-red:focus-visible, .btn-red-cta:focus-visible, .btn-gold-cta:focus-visible, .btn-nav-cta:focus-visible, .btn-outline-light-cta:focus-visible { outline: 3px solid rgba(255,255,255,.7); outline-offset: 2px; }
.nav-menu a:focus-visible, .btn-text-link:focus-visible, .footer-list a:focus-visible, .brand-link:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 4px; }
.accordion-button:focus-visible { outline: 3px solid rgba(245,180,0,.4); outline-offset: -3px; }

.btn-gold-cta {
    background: var(--gold);
    color: #1a1a1a;
    border: 1px solid var(--gold);
    font-weight: 600;
    padding: 13px 20px;
}
.btn-gold-cta:hover { background: var(--gold-2); transform: translateY(-1px); }

.btn-dark-cta {
    background: var(--dark-cta);
    color: #fff;
    border: 1px solid var(--dark-cta);
    padding: 13px 20px;
    border-radius: 12px;
}
.btn-dark-cta:hover { background: #15264b; color: #fff; transform: translateY(-1px); }

.btn-red, .btn-red-cta {
    background: var(--red);
    color: #fff;
    border: 1px solid var(--red);
    box-shadow: 0 6px 18px rgba(230,57,70,.18);
}
.btn-red:hover, .btn-red-cta:hover { background: var(--red-2); color: #fff; transform: translateY(-1px); }

.btn-outline-light-cta {
    background: rgba(255,255,255,.06);
    color: #fff;
    border: 1px solid rgba(255,255,255,.6);
    padding: 13px 22px;
}
.btn-outline-light-cta:hover { background: rgba(255,255,255,.12); color: #fff; }

.btn-nav-cta {
    background: #0a1428;
    color: #fff;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 999px;
    padding: 10px 20px;
    font-size: .88rem;
    font-weight: 600;
}
.btn-nav-cta:hover { background: #142b55; color: #fff; border-color: rgba(255,255,255,.28); }

.btn-text-link {
    color: #fff;
    font-weight: 500;
    font-size: .94rem;
    text-decoration: none;
    padding: 13px 4px;
}
.btn-text-link:hover { color: var(--gold); }

/* ======== NAVBAR ======== */
:root { --nav-height: 72px; }

.iferp-nav {
    background: #ffffff;
    border-bottom: 1px solid #eef0f4;
    position: sticky;
    top: 0;
    z-index: 1030;
    padding-top: 10px;
    padding-bottom: 10px;
    backdrop-filter: saturate(160%) blur(8px);
    -webkit-backdrop-filter: saturate(160%) blur(8px);
    transition: box-shadow .25s ease, background .25s ease;
    will-change: transform;
}
.iferp-nav.is-scrolled {
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.08);
    border-bottom-color: transparent;
}

.brand-link {
    color: var(--ink);
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}
.brand-logo {
    height: 40px;
    width: auto;
    display: block;
    transition: opacity .18s ease;
}
.brand-link:hover .brand-logo { opacity: .9; }
.brand-logo-footer { height: 44px; }

/* Anchor jump offset to clear the sticky nav */
[id] { scroll-margin-top: calc(var(--nav-height) + 12px); }

@media (max-width: 991.98px) {
    :root { --nav-height: 64px; }
    .brand-logo { height: 34px; }
}
.navbar-toggler { color: var(--ink); border: 1px solid #d4d8e0; padding: 6px 10px; font-size: 1.2rem; background: transparent; }
.navbar-toggler:focus { box-shadow: 0 0 0 3px rgba(245,180,0,.25); }
.nav-menu { list-style: none; padding: 0; gap: 28px; display: flex; }
.nav-menu li { padding: 0; }
.nav-menu a {
    color: #2b3145;
    text-decoration: none;
    font-size: .92rem;
    font-weight: 500;
    transition: color .18s ease;
    padding: 8px 0;
    display: inline-block;
}
.nav-menu a:hover { color: var(--gold-2); }
@media (max-width: 991.98px) {
    .navbar-collapse { background: #ffffff; padding: 14px 0 18px; border-top: 1px solid #eef0f4; margin-top: 8px; }
    .nav-menu { flex-direction: column; gap: 4px; align-items: flex-start !important; }
    .nav-menu a { padding: 10px 0; width: 100%; }
}

/* ======== HERO ======== */
.hero-section {
    background: var(--navy);
    color: #fff;
    padding: 60px;
    position: relative;
    overflow: hidden;
}
.hero-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(800px 400px at 80% 0%, rgba(245,180,0,.06), transparent 60%),
        radial-gradient(600px 380px at 10% 100%, rgba(255,255,255,.04), transparent 70%);
    pointer-events: none;
}
.hero-section > * { position: relative; }

.trust-pill {
    display: inline-flex; align-items: center; gap: 8px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    padding: 7px 14px;
    border-radius: 999px;
    font-size: .82rem;
    color: #d8e0f1;
}
.trust-pill i { color: var(--gold); }

.hero-title {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 500;
    font-size: clamp(2.1rem, 4.2vw, 3.4rem);
    line-height: 1.08;
    color: #fff;
    letter-spacing: -0.028em;
    margin-top: 18px;
    font-variation-settings: "opsz" 144, "SOFT" 50;
}
.hero-title em { font-style: italic; font-weight: 600; }

.hero-sub {
    color: #b6c2d6;
    font-size: 1.04rem;
    max-width: 560px;
    margin-top: 18px;
}

.hero-ctas { margin-top: 26px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

.hero-badges {
    margin-top: 38px;
    display: flex;
    flex-wrap: wrap;
    gap: 28px 38px;
}
.badge-item {
    display: flex; align-items: center; gap: 10px;
    color: #d8e0f1;
}
.badge-item i { color: var(--gold); font-size: 1.1rem; }
.badge-title { font-size: .82rem; font-weight: 600; letter-spacing: .02em; }
.badge-sub { font-size: .74rem; color: var(--muted-2); }

/* Assessment form card */
.assess-card {
    position: relative;
    background: #fff;
    border-radius: 16px;
    padding: 28px;
    box-shadow: 0 24px 60px rgba(2,8,23,.45);
    color: var(--ink);
}
.free-today-tag {
    position: absolute;
    top: -12px; right: 16px;
    background: #DC2626;
    color: #fff;
    font-weight: 700;
    font-size: .72rem;
    letter-spacing: .04em;
    padding: 6px 12px;
    border-radius: 6px;
    box-shadow: 0 4px 10px rgba(0,0,0,.15);
}
.assess-title {
    font-family: 'Fraunces', 'Source Serif 4', Georgia, serif;
    font-weight: 600;
    font-size: 1.4rem;
    margin: 0;
}
.assess-sub { font-size: .9rem; color: var(--muted); margin: 6px 0 14px; }

.form-label { font-size: .82rem; font-weight: 600; color: #1b2a4a; margin-bottom: 6px; }
.form-control {
    border-radius: 10px;
    border: 1px solid #e3e6ee;
    padding: 11px 14px;
    font-size: .92rem;
    background: #fafafc;
}
.form-control:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(245,180,0,.18);
    background: #fff;
}
.radio-row { display: flex; gap: 10px; }
.radio-pill {
    flex: 1 1 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid #e3e6ee;
    border-radius: 10px;
    padding: 10px 14px;
    background: #fafafc;
    font-size: .92rem;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease;
}
.radio-pill:hover { border-color: #cfd6e4; }
.radio-pill input { accent-color: var(--gold); margin: 0; }
.radio-pill:has(input:checked) { border-color: var(--gold); background: #fff; }
.radio-pill:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(245,180,0,.18); }

.upload-note {
    font-size: .74rem;
    line-height: 1.45;
    color: var(--muted);
    margin-top: 8px;
}
.upload-note i { color: var(--muted-2); margin-right: 4px; }

.assess-foot { font-size: .78rem; color: var(--muted); text-align: center; }
.assess-foot i { color: var(--muted-2); margin-right: 4px; }

/* ======== STATS STRIP ======== */
.stats-strip {
    background: var(--cream-4);
    padding: 38px 0;
}
.stat-cell + .stat-cell { border-left: 1px solid rgba(20, 33, 61, .22); }
@media (max-width: 991.98px) {
    .stat-cell:nth-child(odd) { border-left: 0; }
    .stat-cell { padding: 18px 0; }
}
.stat-num {
    font-family: 'Fraunces', 'Source Serif 4', Georgia, serif;
    font-weight: 700;
    font-size: clamp(1.8rem, 3vw, 2.4rem);
    color: #0A1628;
    line-height: 1;
    font-variation-settings: "opsz" 96, "SOFT" 30;
    letter-spacing: -0.01em;
}
.stat-label {
    font-size: .72rem;
    letter-spacing: .18em;
    color: #6b6552;
    font-weight: 600;
    margin-top: 8px;
}

/* ======== JOURNEY ======== */
.journey-section {
    background: #FFFFFF;
    padding: 50px 0 50px;
}
.stages-rail { position: relative; padding-top: 28px; }
.rail-line { display: none; }
.stages-row {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    width: 100%;
}
.stage {
    text-align: center;
    flex: 1 1 0;
    min-width: 0;
    padding: 0 8px;
}
@media (max-width: 991.98px) {
    .stages-rail { overflow-x: auto; padding-bottom: 14px; margin: 0 -16px; padding-left: 16px; padding-right: 16px; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
    .stages-rail::-webkit-scrollbar { height: 6px; }
    .stages-rail::-webkit-scrollbar-thumb { background: #d6cdb7; border-radius: 3px; }
    .stages-row { width: max-content; gap: 18px; }
    .stage { flex: 0 0 96px; }
}
.stage-tag {
    font-size: .66rem;
    letter-spacing: .18em;
    color: #b6bac4;
    font-weight: 600;
    margin-bottom: 14px;
    text-transform: uppercase;
}
.stage-bubble {
    width: 64px; height: 64px;
    border-radius: 50%;
    background: #fff;
    border: 1.5px solid #d8dde6;
    color: #2b3145;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1.5rem;
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
    box-shadow: 0 4px 14px rgba(40,30,10,.06);
}
.stage-bubble.stage-dashed {
    border-style: dashed;
    border-width: 1.5px;
    border-color: #c8cdd6;
}
.stage:hover .stage-bubble {
    transform: translateY(-3px);
    box-shadow: 0 10px 22px rgba(168,150,115,.32);
    color: var(--ink);
}
.stage.active .stage-bubble {
    background: var(--gold);
    border-color: var(--gold);
    color: #ffffff;
    box-shadow: 0 10px 22px rgba(245,180,0,.28);
}
.stage.active .stage-tag { color: var(--ink); }
.stage.active .stage-label { color: var(--ink); font-weight: 700; letter-spacing: 0; }
.stage-label {
    margin-top: 20px;
    font-family: 'Playfair Display', 'Fraunces', Georgia, serif;
    font-size: .92rem;
    color: #4a5365;
    line-height: 1.3;
    font-weight: 500;
    letter-spacing: -0.005em;
}

.journey-quote {
    color: #6b7280;
    font-family: 'Fraunces', Georgia, serif;
    font-size: 1.12rem;
    max-width: 720px;
    text-align: center;
    line-height: 1.5;
}

/* ======== REJECTION RECOVERY ======== */
.rejection-section {
    background: #FAF7F0;
    padding: 86px 0;
}
.pill-red {
    display: inline-block;
    background: var(--red);
    color: #fff;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .15em;
    padding: 7px 16px;
    border-radius: 999px;
}
.recovery-stats .recov-num {
    font-family: 'Fraunces', 'Source Serif 4', Georgia, serif;
    font-weight: 700;
    font-size: 2.1rem;
    color: var(--red);
    line-height: 1;
    font-variation-settings: "opsz" 72, "SOFT" 30;
    letter-spacing: -0.015em;
}
.recovery-stats .recov-label {
    font-size: .7rem;
    letter-spacing: .14em;
    color: #8a4438;
    font-weight: 600;
    margin-top: 8px;
}

.recovery-card {
    background: #fff;
    border-radius: 14px;
    padding: 26px 26px 22px;
    box-shadow: 0 18px 40px rgba(160,60,40,.10);
}
.eyebrow-dark {
    font-size: .68rem;
    letter-spacing: .18em;
    color: #8a4438;
    font-weight: 700;
}
.quote-text {
    font-family: 'Fraunces', 'Source Serif 4', Georgia, serif;
    font-size: 1.02rem;
    color: var(--ink);
    line-height: 1.5;
    margin: 0;
}
.avatar-circle {
    width: 46px; height: 46px;
    border-radius: 50%;
    background: linear-gradient(135deg, #ffdca8, #f5b400);
    color: #1a1a1a;
    font-weight: 700;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: .92rem;
    font-family: 'Fraunces', 'Source Serif 4', Georgia, serif;
    letter-spacing: .02em;
}
.author-name { font-weight: 600; font-size: .95rem; }
.author-meta { font-size: .8rem; color: var(--muted); }
.publish-meta {
    font-size: .82rem;
    color: var(--muted);
    border-top: 1px dashed #f0d8cc;
    padding-top: 12px;
    margin-top: 16px;
}

/* ======== SOLUTIONS / PLANS ======== */
.solutions-section {
    background: #ffffff;
    padding: 50px 0 50px;
}

.plan-card {
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    height: 100%;
    display: flex;
    flex-direction: column;
    box-shadow: 0 2px 8px rgba(15,23,42,.04), 0 16px 40px rgba(15,23,42,.07);
    transition: transform .25s ease, box-shadow .25s ease;
    border: 1px solid #eef0f4;
}
.plan-card:hover { transform: translateY(-4px); box-shadow: 0 4px 12px rgba(15,23,42,.06), 0 24px 60px rgba(15,23,42,.12); }

/* Card header strip */
.plan-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 22px;
    color: #fff;
}
.plan-navy   .plan-header { background: #0d2147; }
.plan-gold   .plan-header { background: #e8a319; }
.plan-red    .plan-header { background: #e23b3b; }

.plan-header-left { display: inline-flex; align-items: center; gap: 12px; }

.plan-new {
    background: #0a0f1c;
    color: #fff;
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .14em;
    padding: 4px 9px;
    border-radius: 999px;
}
.plan-gold .plan-new { background: #0d2147; }
.plan-red  .plan-new { background: #0d2147; }

.plan-bundle-label {
    font-size: .76rem;
    letter-spacing: .18em;
    font-weight: 700;
    color: rgba(255,255,255,.95);
}
.plan-gold .plan-bundle-label { color: #ffffff; }
.plan-red  .plan-bundle-label { color: #ffffff; }

.plan-header-icon {
    font-size: 1.1rem;
    color: rgba(255,255,255,.85);
}

/* Card body */
.plan-body {
    padding: 28px 26px 26px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.plan-title-row {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: baseline;
    gap: 8px 16px;
    margin-bottom: 22px;
}
.plan-title {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.2;
    margin: 0;
    color: var(--ink);
    letter-spacing: -0.01em;
    font-variation-settings: "opsz" 60, "SOFT" 30;
}
.plan-price {
    color: var(--ink);
    font-weight: 700;
    font-size: 1.05rem;
    white-space: nowrap;
}
.plan-price.price-gold { color: #e8a319; }
.plan-price.price-red  { color: #e23b3b; }
.plan-price .price-note {
    display: block;
    font-size: .72rem;
    font-weight: 500;
    color: #98a2b3;
    text-align: right;
    margin-top: 2px;
    letter-spacing: 0;
}

/* Callout */
.plan-callout {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 12px;
    font-size: .86rem;
    line-height: 1.45;
    color: #4a5365;
    margin-bottom: 22px;
}
.callout-gray  { background: #eef0f4; }
.callout-peach { background: #fff1d9; }
.callout-pink  { background: #fde2e2; }

.callout-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px; height: 22px;
    flex-shrink: 0;
    border-radius: 50%;
    background: rgba(13,33,71,.08);
    color: #4a5365;
    font-size: .85rem;
    margin-top: 1px;
}
.callout-peach .callout-icon { background: rgba(232,163,25,.18); color: #8a5a0a; }
.callout-pink  .callout-icon { background: rgba(226,59,59,.16);  color: #8a2727; }

/* Section labels */
.plan-section-label {
    font-size: .7rem;
    letter-spacing: .22em;
    color: #98a2b3;
    font-weight: 700;
    margin: 0 0 14px;
}

/* Lists */
.plan-list { list-style: none; padding: 0; margin: 0 0 20px; }
.plan-list li {
    font-size: .8rem;
    color: #1f2937;
    padding: 7px 0;
    display: flex;
    gap: 12px;
    align-items: flex-start;
    line-height: 1.45;
}
.plan-list li > span:not(.check):not(.check-spacer):not(.li-price) { flex: 1; }

.check {
    width: 20px; height: 20px;
    flex-shrink: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: .85rem;
    margin-top: 2px;
}
.check i { line-height: 1; }
.check-navy { background: #0d2147; }
.check-gold { background: #e8a319; }
.check-red  { background: #e23b3b; }

/* Card 3: priced list with sub-rows */
.plan-list-priced li {
    justify-content: space-between;
    gap: 10px;
}
.plan-list-priced .li-label { flex: 1; }
.plan-list-priced .li-price {
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
}
.plan-list-priced .li-sub {
    padding-left: 32px;
    color: #4a5365;
    font-size: .88rem;
}
.check-spacer {
    width: 20px; height: 20px;
    flex-shrink: 0;
    display: inline-block;
}

/* Divider between included list and pricing tiers */
.plan-divider {
    height: 1px;
    background: #eef0f4;
    margin: 18px 0 20px;
}

/* Pricing tier rows */
.tier-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 7px 0;
    font-size: .9rem;
    color: #1f2937;
}
.tier-row span:first-child {
    flex: 1;
    color: #4a5365;
    position: relative;
    overflow: hidden;
}
.tier-row span:first-child::after {
    content: "";
    display: inline-block;
    width: 100%;
    margin-left: 6px;
    border-bottom: 1px dotted #d4d8e0;
    transform: translateY(-3px);
}
.tier-amt {
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
    padding-left: 8px;
}

/* CTA buttons inside cards */
.plan-cta {
    border-radius: 10px;
    padding: 14px 18px;
    font-size: .95rem;
    font-weight: 600;
    margin-top: auto;
    color: #fff;
    border: 1px solid transparent;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.plan-cta:hover { transform: translateY(-1px); color: #fff; }
.cta-navy { background: #0d2147; }
.cta-navy:hover { background: #152e5a; box-shadow: 0 10px 22px rgba(13,33,71,.25); }
.cta-gold { background: #e8a319; }
.cta-gold:hover { background: #d99311; box-shadow: 0 10px 22px rgba(232,163,25,.32); }
.cta-red  { background: #e23b3b; }
.cta-red:hover { background: #cf2c2c; box-shadow: 0 10px 22px rgba(226,59,59,.28); }

/* Foot italic */
.plan-foot {
    font-size: .82rem;
    color: #8a93a3;
    text-align: center;
    margin: 14px 0 0;
}
.plan-foot em { font-style: italic; }

/* Focus accessibility on plan CTAs */
.plan-cta:focus-visible {
    outline: 3px solid rgba(15,23,42,.35);
    outline-offset: 2px;
}

/* Mobile tweaks for plans */
@media (max-width: 991.98px) {
    .plan-card { max-width: 460px; margin-inline: auto; }
}

/* ======== TRUST / CREDIBILITY ======== */
.trust-section {
    background: var(--navy);
    color: #fff;
    padding: 96px 0 80px;
}
.trust-stat-card {
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 12px;
    height: 100%;
    padding: 26px 18px;
    text-align: center;
    transition: transform .22s ease, background .22s ease;
}
.trust-stat-card:hover { transform: translateY(-3px); background: rgba(255,255,255,.07); }
.trust-num {
    font-family: 'Fraunces', 'Source Serif 4', Georgia, serif;
    font-size: 2rem;
    font-weight: 700;
    color: var(--gold);
    font-variation-settings: "opsz" 72, "SOFT" 30;
    letter-spacing: -0.01em;
    line-height: 1;
}
.trust-label {
    font-size: .68rem;
    letter-spacing: .18em;
    color: #b6c2d6;
    margin-top: 8px;
    font-weight: 600;
}

.publishers-strip { padding-top: 38px; border-top: 1px solid rgba(255,255,255,.07); margin-top: 38px; }
.publisher-row { row-gap: 18px; }
.pub-logo {
    color: #d6dceb;
    font-family: 'Fraunces', 'Source Serif 4', Georgia, serif;
    font-size: 1.25rem;
    font-weight: 500;
    opacity: .85;
    letter-spacing: .02em;
    transition: opacity .2s ease, color .2s ease;
}
.pub-logo:hover { opacity: 1; color: #fff; }
.pub-bold { font-weight: 700; font-family: 'Inter', sans-serif; letter-spacing: .04em; }
.pub-nature { font-style: italic; font-weight: 400; }

/* ======== WHY IFERP ======== */
.why-section {
    background: #ffffff;
    padding: 96px 0;
}

/* Eyebrow variant with no hairlines */
.eyebrow-plain::before, .eyebrow-plain::after { display: none; }
.eyebrow-plain { gap: 0; padding: 0; }

.why-copy {
    font-size: .98rem;
    line-height: 1.65;
    color: #4a5365;
    max-width: 560px;
    margin: 0;
}

.why-card {
    background: #f3edd9;
    border-radius: 16px;
    padding: 26px 24px 24px;
    border: none;
    height: 100%;
    transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}
.why-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 36px rgba(15,23,42,.08);
    background: #efe7cc;
}

.why-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: #0d2147;
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    margin-bottom: 22px;
}

.why-title {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: 1.18rem;
    color: var(--ink);
    margin: 0 0 8px;
    letter-spacing: -0.005em;
    font-variation-settings: "opsz" 36, "SOFT" 30;
}
.why-text {
    font-size: .88rem;
    color: #6c7280;
    line-height: 1.5;
    margin: 0;
}

@media (max-width: 575.98px) {
    .why-card { padding: 22px 20px 20px; }
    .why-icon { width: 40px; height: 40px; font-size: 1.05rem; margin-bottom: 18px; }
    .why-title { font-size: 1.08rem; }
}

/* ======== FOR INSTITUTIONS ======== */
.institutions-section {
    background: var(--cream-4);
    padding: 50px 0;
}
.inst-card {
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 32px 28px;
    height: 100%;
    transition: transform .22s ease, box-shadow .22s ease;
}
.inst-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 36px rgba(15,23,42,.08);
}
.inst-icon {
    /* width: 48px;
    height: 48px; */
    border-radius: 12px;
    /* background: var(--gold-soft); */
    color: var(--navy);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    margin-bottom: 22px;
}
.inst-title {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: 1.18rem;
    color: var(--ink);
    margin: 0 0 10px;
    letter-spacing: -0.005em;
    font-variation-settings: "opsz" 36, "SOFT" 30;
}
.inst-text {
    font-size: .92rem;
    color: var(--muted);
    line-height: 1.6;
    margin: 0;
}

.inst-cta {
    margin-top: 40px;
    background: var(--navy);
    border-radius: 16px;
    padding: 36px 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    flex-wrap: wrap;
}
.inst-cta-copy { max-width: 680px; }
.inst-cta-title {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: 1.4rem;
    color: #fff;
    margin: 0 0 8px;
    font-variation-settings: "opsz" 48, "SOFT" 30;
}
.inst-cta-text {
    font-size: .95rem;
    color: #b6c2d6;
    line-height: 1.6;
    margin: 0;
}
.btn-inst-cta {
    background: var(--gold);
    color: #000000;
    border: 1px solid var(--gold);
    border-radius: 12px;
    font-weight: 600;
    white-space: nowrap;
}
.btn-inst-cta:hover { background: var(--gold-2); color: #000000; transform: translateY(-1px); }

@media (max-width: 767.98px) {
    .inst-cta { padding: 28px 24px; text-align: center; justify-content: center; }
    .inst-cta-copy { max-width: 100%; }
}

/* ======== STORIES ======== */
.stories-section {
    background: #ffffff;
    padding: 96px 0;
}
.story-card {
    background: #f5f6f8;
    border-radius: 14px;
    padding: 24px 22px;
    border: 1px solid var(--line);
    height: 100%;
    transition: transform .22s ease, box-shadow .22s ease;
}
.story-card:hover { transform: translateY(-4px); box-shadow: 0 20px 42px rgba(80,60,20,.10); }
.stars i { color: var(--gold); font-size: .92rem; margin-right: 2px; }
.story-quote {
    font-family: 'Fraunces', 'Source Serif 4', Georgia, serif;
    font-size: .98rem;
    line-height: 1.55;
    color: var(--ink);
    margin: 12px 0 18px;
}
.story-author { display: flex; align-items: center; gap: 12px; padding-top: 14px; border-top: 1px solid #f0e7d0; }
.avatar-img {
    width: 46px; height: 46px;
    border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 700;
    font-size: .9rem;
    color: #fff;
}
.avatar-rk { background: linear-gradient(135deg, #3b4b6c, #1f2d4a); }
.avatar-ps { background: linear-gradient(135deg, #c0758a, #8a3d52); }
.avatar-sd { background: linear-gradient(135deg, #6c8d70, #3a5e4a); }

/* ======== FAQ ======== */
.faq-section {
    background: #FFFFFF;
    padding: 96px 0;
}
.faq-accordion {
    max-width: 820px;
}
.faq-accordion .accordion-item {
    background: #fff;
    border: 1px solid #ece3cf;
    border-radius: 12px !important;
    margin-bottom: 12px;
    overflow: hidden;
}
.faq-accordion .accordion-button {
    background: #fff;
    color: var(--ink);
    font-weight: 500;
    font-size: .96rem;
    padding: 16px 20px;
    box-shadow: none;
}
.faq-accordion .accordion-button::after {
    background: none;
    content: "+";
    width: 28px; height: 28px;
    color: var(--gold-2);
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform .25s ease;
    transform: none;
}
.faq-accordion .accordion-button:not(.collapsed)::after { content: "−"; transform: none; }
.faq-accordion .accordion-button:not(.collapsed) { background: #fffbf2; color: var(--ink); box-shadow: none; border-left: 3px solid var(--gold); }
.faq-accordion .accordion-button:focus { box-shadow: 0 0 0 3px rgba(245,180,0,.18); border-color: transparent; }
.faq-accordion .accordion-body { color: var(--muted); font-size: .92rem; padding: 0 20px 18px; line-height: 1.6; }

/* ======== FINAL CTA ======== */
.final-cta {
    background: var(--navy);
    color: #fff;
    padding: 110px 0 110px;
    position: relative;
    overflow: hidden;
}
.final-cta::before {
    content: "";
    position: absolute; inset: 0;
    background:
        radial-gradient(720px 360px at 50% 0%, rgba(245,180,0,.05), transparent 65%);
    pointer-events: none;
}
.final-cta > * { position: relative; }

.cta-title {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 500;
    font-size: clamp(2.1rem, 4vw, 3.1rem);
    line-height: 1.18;
    color: #ffffff;
    letter-spacing: -0.018em;
    font-variation-settings: "opsz" 96, "SOFT" 30;
    margin: 0;
}
.cta-title em { font-style: italic; }
.cta-title em.accent-gold { color: var(--gold); font-style: italic; }

.cta-sub {
    color: #b6c2d6;
    font-size: 1.05rem;
    line-height: 1.55;
    max-width: 640px;
    margin: 20px auto 36px;
}

.cta-buttons {
    display: inline-flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 14px;
}

/* CTA buttons override the global 999px pill radius to match the reference */
.cta-btn {
    border-radius: 12px;
    padding: 15px 26px;
    font-size: .98rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.cta-btn i { font-size: 1.05em; }

.cta-btn-gold {
    background: var(--gold);
    color: #1a1a1a;
    border: 1px solid var(--gold);
}
.cta-btn-gold:hover {
    background: #ffc534;
    border-color: #ffc534;
    color: #1a1a1a;
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(245,180,0,.32);
}

.cta-btn-outline {
    background: #0d1c3a;
    color: #ffffff;
    border: 1px solid #2a3a5e;
}
.cta-btn-outline:hover {
    background: #15264b;
    border-color: #3a4d75;
    color: #ffffff;
    transform: translateY(-1px);
}

.cta-foot {
    color: #7d8aa3;
    font-size: .9rem;
    margin: 28px 0 0;
}

@media (max-width: 575.98px) {
    .final-cta { padding: 80px 0; }
    .cta-buttons { display: flex; width: 100%; }
    .cta-btn { flex: 1; justify-content: center; }
}

/* ======== FOOTER ======== */
.iferp-footer {
    background: #07152b;
    color: #d6dceb;
    padding: 64px 0 28px;
    border-top: 1px solid #122644;
}
.footer-top { padding-bottom: 12px; }
.footer-desc { color: #9aa6bf; font-size: .9rem; line-height: 1.6; }
.footer-contact { font-size: .9rem; color: #b6c2d6; }
.footer-contact div { margin-bottom: 6px; }
.footer-contact i { color: var(--gold); margin-right: 6px; }
.footer-head {
    color: #fff;
    font-weight: 600;
    font-size: .98rem;
    margin-bottom: 14px;
}
.footer-list { list-style: none; padding: 0; margin: 0; }
.footer-list li { padding: 5px 0; }
.footer-list a {
    font-size: .88rem;
    color: #9aa6bf;
    text-decoration: none;
    transition: color .18s ease;
}
.footer-list a:hover { color: #fff; }
.footer-contact a { color: inherit; text-decoration: none; }
.footer-contact a:hover { color: var(--gold); }
.footer-bottom {
    border-top: 1px solid #122644;
    color: #6f7c9a;
    font-size: .8rem;
    gap: 10px;
}

/* ======== Mobile tweaks ======== */
@media (max-width: 991.98px) {
    .hero-section { padding: 30px 0 60px; }
    .assess-card { margin-top: 8px; }
    .rail-line { display: none; }
    .stages-row > .stage { padding: 8px 4px; }
    .btn-nav-cta { padding: 8px 14px; font-size: .82rem; display: inline-block; }
}

@media (max-width: 575.98px) {
    .container-xxl { padding-left: 16px; padding-right: 16px; }
    .hero-badges { gap: 14px 22px; }
    .badge-item { font-size: .82rem; }
    .section-title { font-size: 1.75rem; }
    .cta-buttons .btn { width: 100%; }
}

/* =============================================================
   QUOTE OFF-CANVAS DRAWER (multi-step)
   ============================================================= */
.quote-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .42);
    backdrop-filter: blur(1px);
    opacity: 0;
    transition: opacity .3s ease;
    z-index: 1080;
}
.quote-backdrop.is-open { opacity: 1; }

.quote-drawer {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    height: 100dvh;
    width: 480px;
    max-width: 100vw;
    background: #ffffff;
    z-index: 1090;
    transform: translateX(100%);
    transition: transform .34s cubic-bezier(.22, .61, .36, 1);
    will-change: transform;
}
/* Shadow only while open — a closed drawer is off-screen, but its shadow still casts back onto the page. */
.quote-drawer.is-open {
    transform: translateX(0);
    box-shadow: -24px 0 60px rgba(2, 8, 23, .28);
}
body.quote-open { overflow: hidden; }

.quote-drawer-inner {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* The form wraps the scrollable body + sticky footer.
   Target any form directly inside the drawer so every drawer scrolls,
   even if the markup omits the .quote-form class. */
.quote-form,
.quote-drawer-inner > form {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.quote-close {
    position: absolute;
    top: 22px;
    right: 22px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: none;
    background: #f1f2f5;
    color: #4a5365;
    font-size: .9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .18s ease, color .18s ease;
    z-index: 2;
}
.quote-close:hover { background: #e5e7eb; color: #14213d; }
.quote-close:focus-visible { outline: 3px solid rgba(245,180,0,.4); outline-offset: 2px; }

.quote-head {
    padding: 30px 34px 18px;
    border-bottom: 1px solid #eef0f4;
    flex-shrink: 0;
}
.quote-step-tag {
    font-size: .68rem;
    letter-spacing: .16em;
    font-weight: 700;
    color: var(--gold-2);
    text-transform: uppercase;
    margin-bottom: 12px;
}
.quote-title {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 500;
    font-size: 1.5rem;
    color: var(--ink);
    margin: 0;
    letter-spacing: -0.01em;
    font-variation-settings: "opsz" 60, "SOFT" 30;
}
.quote-subtitle {
    font-size: .9rem;
    color: var(--muted);
    margin: 8px 0 0;
}

.quote-body {
    padding: 24px 34px 28px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    flex: 1 1 auto;
    min-height: 0;
}
.quote-body::-webkit-scrollbar { width: 8px; }
.quote-body::-webkit-scrollbar-thumb { background: #dfe2e8; border-radius: 4px; }

/* Fields */
.qfield { margin-bottom: 20px; }
.qfield > label {
    display: block;
    font-size: .85rem;
    font-weight: 600;
    color: #1b2a4a;
    margin-bottom: 8px;
}
.qfield .req { color: var(--red); }
.qfield input[type="text"],
.qfield input[type="email"],
.qfield input[type="tel"],
.qfield input[type="number"],
.qselect-wrap select {
    width: 100%;
    border: 1px solid #e3e6ee;
    border-radius: 12px;
    padding: 13px 15px;
    font-size: .92rem;
    font-family: inherit;
    color: var(--ink);
    background: #fff;
    transition: border-color .18s ease, box-shadow .18s ease;
}

/* Phone: country-code dropdown + number on one row (hero form + drawers) */
.phone-row { display: flex; gap: 10px; align-items: stretch; }
.phone-row > :first-child { flex: 0 0 44%; min-width: 0; }
.phone-row > :last-child  { flex: 1 1 auto; min-width: 0; margin-bottom: 0; }
.phone-row .qselect-wrap { margin-bottom: 0; }
.qfield input::placeholder { color: #aeb4c0; }
.qfield input:focus,
.qselect-wrap select:focus {
    outline: none;
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(245,180,0,.16);
}

.qselect-wrap { position: relative; }
.qselect-wrap select {
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    padding-right: 40px;
}
.qselect-wrap i {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: #98a2b3;
    font-size: .82rem;
    pointer-events: none;
}

/* Upload */
.qfile-input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.qupload {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 6px;
    padding: 30px 20px;
    border: 1.5px dashed #d6dae2;
    border-radius: 14px;
    background: #fafbfc;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease;
}
.qupload:hover { border-color: var(--gold); background: #fffdf6; }
.qupload i { font-size: 1.5rem; color: #98a2b3; }
.qupload-main { font-size: .9rem; font-weight: 600; color: #4a5365; }
.qupload-sub { font-size: .78rem; color: #98a2b3; }
.qupload-file { font-size: .8rem; color: var(--gold-2); font-weight: 600; margin-top: 4px; }

/* Step 2 — price card */
.qprice-card {
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid #eef0f4;
    margin-bottom: 22px;
    box-shadow: 0 8px 24px rgba(15,23,42,.06);
}
.qprice-head {
    background: #0d2147;
    color: #fff;
    padding: 18px 20px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}
.qprice-name { font-weight: 600; font-size: 1.02rem; }
.qprice-tag { font-size: .78rem; color: #b6c2d6; margin-top: 3px; }
.qprice-save {
    background: var(--gold);
    color: #1a1a1a;
    font-size: .72rem;
    font-weight: 700;
    padding: 5px 11px;
    border-radius: 999px;
    white-space: nowrap;
    flex-shrink: 0;
}
.qprice-rows { padding: 6px 20px; background: #fff; }
.qprice-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    font-size: .9rem;
    color: #4a5365;
    border-bottom: 1px solid #f1f2f5;
}
.qprice-row:last-child { border-bottom: none; }
.qprice-row > span:last-child { font-weight: 600; color: var(--ink); }
.qprice-discount { color: #1a9e5f !important; }
.qprice-included {
    background: #eef0f4;
    color: #4a5365 !important;
    font-size: .76rem !important;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 999px;
}
.qprice-total {
    background: var(--cream);
    padding: 16px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.qprice-total-label { font-size: .76rem; letter-spacing: .12em; font-weight: 700; color: #6b6552; }
.qprice-total-amt { text-align: right; }
.qprice-total-amt span {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 700;
    font-size: 1.7rem;
    color: var(--ink);
    line-height: 1;
    display: block;
}
.qprice-total-amt small { font-size: .74rem; color: var(--muted); }

/* Step 2 — summary */
.qsummary {
    position: relative;
    background: var(--cream);
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 22px;
}
.qsummary-edit {
    position: absolute;
    top: 16px;
    right: 18px;
    background: none;
    border: none;
    color: var(--gold-2);
    font-weight: 600;
    font-size: .82rem;
    cursor: pointer;
    padding: 0;
}
.qsummary-edit:hover { text-decoration: underline; }
.qsummary-item + .qsummary-item { margin-top: 12px; }
.qsummary-label { font-size: .76rem; color: var(--muted); }
.qsummary-val { font-size: .92rem; font-weight: 600; color: var(--ink); margin-top: 2px; }

/* Step 2 — promo */
.qpromo { display: flex; gap: 10px; }
.qpromo input { flex: 1; }
.qpromo-btn {
    background: #0d2147;
    color: #fff;
    border: none;
    border-radius: 12px;
    padding: 0 22px;
    font-weight: 600;
    font-size: .9rem;
    cursor: pointer;
    transition: background .18s ease;
    flex-shrink: 0;
}
.qpromo-btn:hover { background: #152e5a; }
.qpromo-btn.is-applied { background: #1a9e5f; }

.qsecure {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: .8rem;
    color: var(--muted);
    margin: 4px 0 0;
}
.qsecure i { color: #1a9e5f; }

/* Sticky footer */
.quote-foot {
    flex-shrink: 0;
    padding: 18px 34px 22px;
    border-top: 1px solid #eef0f4;
    background: #fff;
}
.quote-next, .quote-pay {
    width: 100%;
    border: none;
    border-radius: 12px;
    background: #0d1a35;
    color: #fff;
    font-weight: 600;
    font-size: .98rem;
    padding: 15px 22px;
    cursor: pointer;
    transition: background .18s ease, transform .18s ease;
}
.quote-next:hover, .quote-pay:hover { background: #15264b; transform: translateY(-1px); }
.quote-pay {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.quote-foot-note {
    font-size: .78rem;
    color: var(--muted-2);
    text-align: center;
    margin: 12px 0 0;
}

@media (max-width: 575.98px) {
    .quote-drawer { width: 100vw; }
    .quote-head { padding: 26px 22px 16px; }
    .quote-body { padding: 20px 22px 24px; }
    .quote-foot { padding: 16px 22px 20px; }
}

/* ======== Institution request drawer ======== */
.qfield textarea {
    width: 100%;
    border: 1px solid #e3e6ee;
    border-radius: 12px;
    padding: 13px 15px;
    font-size: .92rem;
    font-family: inherit;
    color: var(--ink);
    background: #fff;
    resize: vertical;
    min-height: 84px;
    transition: border-color .18s ease, box-shadow .18s ease;
}
.qfield textarea::placeholder { color: #aeb4c0; }
.qfield textarea:focus {
    outline: none;
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(245,180,0,.16);
}

/* Selected-files list */
.inst-files {
    border: 1px solid #e3e6ee;
    border-radius: 12px;
    overflow: hidden;
}
.inst-files-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    background: #f8fafc;
    border-bottom: 1px solid #eef0f4;
}
.inst-files-count {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: .8rem;
    font-weight: 700;
    color: var(--ink);
    text-transform: uppercase;
    letter-spacing: .03em;
}
.inst-files-count i { color: #1a9e5f; font-size: 1.02rem; }
.inst-files-size {
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .08em;
    color: var(--muted-2);
    text-transform: uppercase;
    white-space: nowrap;
}
.inst-file-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    border-bottom: 1px solid #f1f2f5;
}
.inst-file-icon {
    width: 34px;
    height: 34px;
    flex-shrink: 0;
    border-radius: 8px;
    background: #f1f2f5;
    color: #4a5365;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}
.inst-file-meta { flex: 1; min-width: 0; }
.inst-file-name {
    font-size: .86rem;
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.inst-file-size { font-size: .76rem; color: var(--muted); margin-top: 2px; }
.inst-file-remove {
    flex-shrink: 0;
    background: none;
    border: none;
    cursor: pointer;
    color: #98a2b3;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .15s ease, color .15s ease;
}
.inst-file-remove:hover { background: var(--red-soft); color: var(--red); }
.inst-addmore {
    width: 100%;
    background: #f4f7ff;
    border: none;
    color: #2d4373;
    font-weight: 700;
    font-size: .76rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 13px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: background .15s ease;
}
.inst-addmore:hover { background: #e9eefb; }
.inst-addmore i { font-size: 1rem; }

/* Step 2 — institutional plan card */
.inst-plan-card {
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid #eef0f4;
    margin-bottom: 22px;
    box-shadow: 0 8px 24px rgba(15,23,42,.06);
}
.inst-plan-head {
    background: #0d1a35;
    color: #fff;
    padding: 18px 20px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}
.inst-plan-name { font-weight: 600; font-size: 1.05rem; color: #fff; }
.inst-plan-sub { font-size: .8rem; color: #b6c2d6; margin-top: 3px; }
.inst-plan-badge {
    background: var(--gold);
    color: #1a1a1a;
    font-size: .72rem;
    font-weight: 700;
    padding: 5px 12px;
    border-radius: 999px;
    white-space: nowrap;
    flex-shrink: 0;
}
.inst-plan-rows { background: #fff; padding: 4px 20px; }
.inst-plan-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 13px 0;
    font-size: .9rem;
    color: #4a5365;
    border-bottom: 1px solid #f1f2f5;
}
.inst-plan-row:last-child { border-bottom: none; }
.inst-plan-strong { font-weight: 600; color: var(--ink); white-space: nowrap; }
.inst-plan-pill {
    background: #eef0f4;
    color: #4a5365;
    font-size: .76rem;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 999px;
    white-space: nowrap;
}
.inst-plan-price { background: var(--cream); padding: 18px 20px; }
.inst-plan-price-label { font-size: .78rem; color: var(--muted); }
.inst-plan-price-amt {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: 1.5rem;
    color: var(--ink);
    letter-spacing: -0.01em;
    margin: 4px 0 8px;
}
.inst-plan-price-note { font-size: .82rem; color: var(--muted); line-height: 1.55; margin: 0; }

/* Step 2 confirm note */
.inst-confirm-note {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    background: var(--cream);
    border-radius: 12px;
    padding: 14px 16px;
    font-size: .85rem;
    color: #4a5365;
    line-height: 1.5;
    margin-bottom: 22px;
}
.inst-confirm-note i { color: var(--gold-2); font-size: 1.05rem; margin-top: 1px; }

/* Success state */
.inst-success { text-align: center; padding: 36px 10px; }
.inst-success-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #1a9e5f;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.9rem;
    margin-bottom: 18px;
}
.inst-success-title {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: 1.4rem;
    color: var(--ink);
    margin: 0 0 8px;
}
.inst-success-text {
    font-size: .92rem;
    color: var(--muted);
    margin: 0 auto;
    max-width: 320px;
    line-height: 1.6;
}

/* =============================================================
   CONFIRMATION PAGE (Page 17)
   ============================================================= */
.confirm-page { background: var(--cream); }

/* Dark navbar variant */
.confirm-nav {
    background: var(--navy);
    border-bottom: 1px solid var(--navy-border);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
.confirm-nav.is-scrolled {
    background: rgba(10, 29, 58, .96);
    border-bottom-color: var(--navy-border);
}
.confirm-nav .nav-menu a { color: #c8d2e6; }
.confirm-nav .nav-menu a:hover { color: var(--gold); }
.confirm-nav .navbar-toggler { color: #fff; border-color: rgba(255,255,255,.2); }
.confirm-nav .btn-nav-cta { background: rgba(255,255,255,.06); }
@media (max-width: 991.98px) {
    .confirm-nav .navbar-collapse { background: var(--navy); border-top-color: var(--navy-border); }
}

/* Brand lockup */
.confirm-brand { display: inline-flex; align-items: center; gap: 10px; }
.confirm-brand-mark {
    width: 34px; height: 34px;
    border-radius: 8px;
    background: var(--gold);
    color: var(--navy);
    font-weight: 800;
    font-size: .82rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    letter-spacing: .02em;
}
.confirm-brand-text {
    color: #fff;
    font-weight: 700;
    font-size: 1.1rem;
    line-height: 1;
    display: inline-flex;
    flex-direction: column;
}
.confirm-brand-text small {
    font-size: .56rem;
    letter-spacing: .2em;
    color: #93a0bb;
    font-weight: 600;
    margin-top: 3px;
}
.confirm-brand-footer .confirm-brand-text { font-size: 1.2rem; }
.confirm-brand-footer .confirm-brand-text small { display: none; }

/* Hero */
.confirm-hero {
    background: var(--navy);
    color: #fff;
    padding: 64px 0 158px;
    position: relative;
}
.confirm-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(720px 380px at 50% -5%, rgba(245,180,0,.10), transparent 60%);
    pointer-events: none;
}
.confirm-hero > * { position: relative; }

.confirm-check {
    width: 64px; height: 64px;
    border-radius: 50%;
    background: var(--gold);
    color: var(--navy);
    font-size: 1.7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 22px;
    box-shadow: 0 0 0 8px rgba(245,180,0,.14), 0 12px 30px rgba(245,180,0,.3);
}
.confirm-eyebrow {
    font-size: .72rem;
    letter-spacing: .24em;
    font-weight: 700;
    color: var(--gold);
    text-transform: uppercase;
    margin-bottom: 18px;
}
.confirm-title {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 500;
    font-size: clamp(2rem, 4vw, 3.1rem);
    line-height: 1.12;
    color: #fff;
    letter-spacing: -0.022em;
    margin: 0 auto;
    max-width: 760px;
    font-variation-settings: "opsz" 120, "SOFT" 40;
}
.confirm-title em { font-style: italic; }
.confirm-sub {
    color: #b6c2d6;
    font-size: 1.02rem;
    max-width: 620px;
    margin: 20px auto 0;
    line-height: 1.6;
}

/* Receipt card — bridges the navy hero and the cream section */
.receipt-zone { background: var(--cream); }
.receipt-card {
    position: relative;
    z-index: 2;
    background: #fff;
    border-radius: 18px;
    max-width: 600px;
    margin-top: -110px;
    margin-bottom: 0;
    box-shadow: 0 30px 70px rgba(2, 8, 23, .35);
    overflow: hidden;
    color: var(--ink);
}
.receipt-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 22px 28px;
    background: #faf7f1;
    border-bottom: 1px solid #efe9dc;
}
.receipt-label {
    font-size: .66rem;
    letter-spacing: .16em;
    font-weight: 700;
    color: var(--muted-2);
    text-transform: uppercase;
}
.receipt-ref { font-weight: 700; font-size: .98rem; margin-top: 5px; font-style: italic; }
.receipt-date { font-weight: 700; font-size: .98rem; margin-top: 5px; }

.receipt-rows { padding: 6px 28px; }
.receipt-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 18px 0;
    border-bottom: 1px solid #f1f2f5;
}
.receipt-row:last-child { border-bottom: none; }
.receipt-item { font-weight: 600; font-size: .98rem; color: var(--ink); }
.receipt-item-sub { font-size: .82rem; color: var(--muted); margin-top: 3px; }
.receipt-amt { font-weight: 700; font-size: 1rem; white-space: nowrap; }
.receipt-dash { color: var(--muted-2); font-weight: 500; }

.receipt-total {
    background: var(--navy);
    color: #fff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 28px;
    font-size: .78rem;
    letter-spacing: .14em;
    font-weight: 700;
}
.receipt-total-amt {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--gold);
    letter-spacing: 0;
}
.receipt-foot {
    padding: 16px 28px;
    background: #fff;
    border-top: 1px solid #f1f2f5;
    font-size: .82rem;
    color: var(--muted);
    text-align: center;
}
.receipt-foot i { color: var(--muted-2); margin-right: 4px; }
.receipt-foot strong { color: var(--ink); }

/* What happens next */
.next-section {
    background: var(--cream);
    padding: 80px 0 80px;
}
.next-card {
    background: #fff;
    border-radius: 16px;
    padding: 28px 26px;
    height: 100%;
    border: 1px solid #ece3cf;
    transition: transform .22s ease, box-shadow .22s ease;
}
.next-card:hover { transform: translateY(-4px); box-shadow: 0 20px 42px rgba(80,60,20,.10); }
.next-num {
    width: 38px; height: 38px;
    border-radius: 50%;
    background: var(--gold-soft);
    color: var(--gold-2);
    font-weight: 700;
    font-size: .9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}
.next-title {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: 1.2rem;
    color: var(--ink);
    margin: 0 0 10px;
    font-variation-settings: "opsz" 36, "SOFT" 30;
}
.next-text { font-size: .9rem; color: var(--muted); line-height: 1.55; margin: 0; }

/* While you wait / belong */
.belong-section {
    background: var(--cream);
    padding: 24px 0 90px;
}
.belong-card {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    height: 100%;
    border: 1px solid #ece3cf;
    transition: transform .22s ease, box-shadow .22s ease;
    display: flex;
    flex-direction: column;
}
.belong-card:hover { transform: translateY(-4px); box-shadow: 0 22px 46px rgba(80,60,20,.12); }
.belong-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 22px;
    color: #fff;
}
.belong-top-navy   { background: var(--navy); }
.belong-top-orange { background: linear-gradient(135deg, #ec9b14, #d97e08); }
.belong-top-gold   { background: linear-gradient(135deg, #f6c94f, #f0b429); }
.belong-icon {
    width: 40px; height: 40px;
    border-radius: 10px;
    background: rgba(255,255,255,.16);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}
.belong-tag {
    font-size: .72rem;
    font-weight: 600;
    background: rgba(255,255,255,.18);
    padding: 5px 12px;
    border-radius: 999px;
}
.belong-body { padding: 22px; display: flex; flex-direction: column; flex: 1; }
.belong-title {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: 1.22rem;
    color: var(--ink);
    margin: 0 0 10px;
    font-variation-settings: "opsz" 36, "SOFT" 30;
}
.belong-text { font-size: .88rem; color: var(--muted); line-height: 1.55; margin: 0 0 16px; }
.belong-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.belong-chip {
    font-size: .74rem;
    font-weight: 500;
    color: #5a6377;
    background: #f3f4f6;
    padding: 5px 11px;
    border-radius: 999px;
}
.belong-link {
    margin-top: auto;
    font-weight: 600;
    font-size: .9rem;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: gap .18s ease;
}
.belong-link:hover { gap: 10px; }
.belong-link-navy   { color: var(--navy); }
.belong-link-orange { color: #d97e08; }
.belong-link-gold   { color: #cf9a10; }

/* Community stats + final CTA */
.confirm-cta {
    background: var(--navy);
    color: #fff;
    padding: 0 0 96px;
    position: relative;
    overflow: hidden;
}
.confirm-cta::before {
    content: "";
    position: absolute; inset: 0;
    background: radial-gradient(720px 380px at 50% 120%, rgba(245,180,0,.06), transparent 60%);
    pointer-events: none;
}
.confirm-cta > * { position: relative; }

.confirm-stats {
    padding: 56px 0;
    border-bottom: 1px solid var(--navy-border);
}
.confirm-stat-cell + .confirm-stat-cell { border-left: 1px solid var(--navy-border); }
@media (max-width: 991.98px) {
    .confirm-stat-cell:nth-child(odd) { border-left: 0; }
    .confirm-stat-cell { padding: 18px 0; }
}
.confirm-stat-num {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 700;
    font-size: clamp(1.8rem, 3vw, 2.4rem);
    color: var(--gold);
    line-height: 1;
    font-variation-settings: "opsz" 96, "SOFT" 30;
}
.confirm-stat-label {
    font-size: .68rem;
    letter-spacing: .16em;
    color: #93a0bb;
    font-weight: 600;
    margin-top: 8px;
}
.confirm-cta-inner { padding-top: 72px; }

@media (max-width: 575.98px) {
    .confirm-hero { padding: 48px 0 128px; }
    .next-section { padding: 64px 0 56px; }
    .receipt-card { margin-top: -96px; }
    .confirm-cta-inner { padding-top: 56px; }
}

/* =============================================================
   FOR INSTITUTIONS PAGE
   ============================================================= */

/* Required-field asterisk inside form labels */
.req-star { color: var(--red); font-weight: 700; }

/* Institution lead-form selects match the card's text inputs */
.inst-lead-form .form-select {
    border-radius: 10px;
    border: 1px solid #e3e6ee;
    padding: 11px 14px;
    font-size: .92rem;
    background-color: #fafafc;
    color: var(--ink);
}
.inst-lead-form .form-select:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(245,180,0,.18);
    background-color: #fff;
}

/* ---- Trust band (light) ---- */
.trust-band {
    background: #ffffff;
    padding: 26px 0;
    /* border-bottom: 1px solid #eef0f4; */
}
.trust-band-inner {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px 24px;
}
.trust-band-label {
    color: #8a93a3;
    font-size: .84rem;
    white-space: nowrap;
}
.trust-pills {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px 18px;
}
.pub-pill {
    border: 1px solid #e3e6ee;
    border-radius: 20px;
    padding: 8px 20px;
    font-size: .95rem;
    font-weight: 600;
    color: #464f60;
    background: #fff;
    white-space: nowrap;
}

@media (max-width: 575.98px) {
    .trust-pills { justify-content: center; }
    .trust-band-label { width: 100%; text-align: center; }
}

/* ---- How it works / process ---- */
.process-section {
    background: var(--navy);
    color: #fff;
    padding: 96px 0;
    position: relative;
    overflow: hidden;
}
.process-section::before {
    content: "";
    position: absolute; inset: 0;
    background: radial-gradient(720px 360px at 50% 0%, rgba(245,180,0,.05), transparent 65%);
    pointer-events: none;
}
.process-section > * { position: relative; }

.process-row { position: relative; }
/* Continuous connector line running through the centered step circles (desktop) */
.process-row::before {
    content: "";
    position: absolute;
    top: 47px;              /* col gutter-top (24px) + half of the 46px circle */
    left: 12.5%;
    right: 12.5%;
    height: 2px;
    background: rgba(255,255,255,.14);
    z-index: 0;
}
.process-step { position: relative; z-index: 1; text-align: center; padding: 0 6px; }
.process-num {
    position: relative;
    z-index: 1;
    width: 46px; height: 46px;
    border-radius: 50%;
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 700;
    font-size: 1.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 22px;
    /* Inactive nodes (steps 2-4) */
    background: #16294a;
    border: 1px solid rgba(255,255,255,.18);
    color: #9fb0c9;
}
/* First step is the active / gold node */
.process-row > div:first-child .process-num {
    background: var(--gold);
    border-color: var(--gold);
    color: #0a1d3a;
    box-shadow: 0 8px 20px rgba(245,180,0,.30);
}
.process-title {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: 1.08rem;
    color: #fff;
    margin: 0 0 8px;
}
.process-text { color: #b6c2d6; font-size: .9rem; line-height: 1.6; margin: 0; }

@media (max-width: 991.98px) {
    .process-row::before { display: none; }
    .process-section { padding: 72px 0; }
}

/* ---- Final institutional CTA (navy, with form) ---- */
.inst-final {
    background: var(--navy);
    color: #fff;
    padding: 100px 0;
    position: relative;
    overflow: hidden;
}
.inst-final::before {
    content: "";
    position: absolute; inset: 0;
    background: radial-gradient(720px 360px at 20% 0%, rgba(245,180,0,.06), transparent 60%);
    pointer-events: none;
}
.inst-final > * { position: relative; }
.inst-final-title {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 500;
    font-size: clamp(1.9rem, 3.2vw, 2.6rem);
    line-height: 1.15;
    letter-spacing: -0.022em;
    color: #fff;
    margin: 0;
}
.inst-final-title em { font-style: italic; }
.inst-final-text {
    color: #b6c2d6;
    font-size: 1.02rem;
    line-height: 1.6;
    margin: 18px 0 0;
    max-width: 540px;
}
.inst-check-list {
    list-style: none;
    padding: 0;
    margin: 26px 0 0;
}
.inst-check-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: #d8e0f1;
    font-size: .96rem;
    padding: 8px 0;
}
.inst-check-list i { color: var(--gold); font-size: 1.05rem; line-height: 1.5; flex: 0 0 auto; }

/* ---- FAQ (institutions): borderless rows, + / gold-circle-× toggle ---- */
#instFaqAccordion .accordion-item {
    background: transparent;
    border: 0;
    border-bottom: 1px solid #e9ecf2;
    border-radius: 0 !important;
    margin-bottom: 0;
}
#instFaqAccordion .accordion-button {
    background: #fff;
    color: var(--ink);
    font-weight: 600;
    font-size: 1rem;
    padding: 22px 6px;
    box-shadow: none;
}
#instFaqAccordion .accordion-button:not(.collapsed) {
    background: #fff;
    color: var(--ink);
    border-left: 0;
    box-shadow: none;
}
#instFaqAccordion .accordion-button:focus { box-shadow: none; border-color: transparent; }
/* collapsed = plain "+" */
#instFaqAccordion .accordion-button::after {
    content: "+";
    width: 30px; height: 30px;
    border-radius: 50%;
    background: none;
    color: #98a2b3;
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    transition: none;
    transform: none;
}
/* open = gold circle with "×" */
#instFaqAccordion .accordion-button:not(.collapsed)::after {
    content: "\00d7";
    background: var(--gold);
    color: #fff;
    font-size: 1.25rem;
    transform: none;
}
#instFaqAccordion .accordion-body {
    color: var(--muted);
    font-size: .93rem;
    padding: 0 6px 22px;
    line-height: 1.6;
}

@media (max-width: 575.98px) {
    .inst-final { padding: 72px 0; }
    .process-section { padding: 64px 0; }
}

/* ---- Institutions thank-you: centered spotlight overlay behind the CTA text ---- */
.confirm-cta-glow::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 64%;
    width: 900px;
    max-width: 118%;
    height: 560px;
    transform: translate(-50%, -50%);
    background: radial-gradient(ellipse at center,
        rgba(148,170,214,.16) 0%,
        rgba(148,170,214,.06) 38%,
        rgba(245,180,0,.05) 55%,
        transparent 72%);
    pointer-events: none;
    z-index: 0;
}
.confirm-cta-glow > * { position: relative; z-index: 1; }
