:root {
    --navy:#102f50;
    --navy-dark:#0a223b;
    --red:#b32332;
    --ink:#243346;
    --muted:#627183;
    --line:#dfe5ec;
    --light:#f3f6f9
}
* {
    box-sizing:border-box
}
body {
    font-family:Arial,Helvetica,sans-serif;
    color:var(--ink);
    font-size:17px;
    line-height:1.7;
    background:#fff
}
h1,h2,h3,h4,.btn,.navbar,.eyebrow {
    font-family:Montserrat,Arial,sans-serif
}
h1,h2,h3,h4 {
    color:var(--navy);
    font-weight:700;
    line-height:1.22
}
h1 {
    font-size:3rem;
    letter-spacing:-1.6px
}
h2 {
    font-size:2.2rem;
    letter-spacing:-.7px
}
h3 {
    font-size:1.2rem
}
a {
    color:#143f71
}
a:hover {
    color:var(--red)
}
:focus-visible {
    outline:3px solid #c95100;
    outline-offset:4px
}
.skip-link {
    position:absolute;
    left:10px;
    top:-100px;
    z-index:999;
    background:white;
    padding:10px
}
.skip-link:focus {
    top:10px
}
.utility {
    background:var(--navy-dark);
    color:#fff;
    font-size:.78rem;
    letter-spacing:.3px;
    padding:8px 0;
    text-align:center
}
.site-header {
    border-bottom:1px solid var(--line);
    background:#fff
}
.navbar {
    padding-top:13px;
    padding-bottom:13px
}
.navbar-brand img {
    width:238px;
    height:auto
}
.nav-link {
    font-size:.8rem;
    font-weight:600;
    white-space:nowrap
}
.nav-cta {
    font-size:.78rem;
    margin-left:14px
}
.btn {
    font-weight:700;
    border-radius:6px;
    padding:13px 22px;
    font-size:.86rem;
    white-space:normal;
    line-height:1.4
}
.btn-primary {
    background:var(--red);
    border-color:var(--red)
}
.btn-primary:hover,.btn-primary:focus {
    background:#961b29;
    border-color:#961b29
}
.checkout-submit {
    width:286px;
    max-width:100%
}
.checkout-submit-loading {
    display:none;
    align-items:center;
    justify-content:center;
    gap:10px
}
.checkout-submit.is-loading .checkout-submit-label {
    display:none
}
.checkout-submit.is-loading .checkout-submit-loading {
    display:flex
}
.checkout-submit:disabled {
    cursor:wait;
    opacity:.78
}
.checkout-spinner {
    width:18px;
    height:18px;
    border:2px solid rgba(255,255,255,.45);
    border-top-color:#fff;
    border-radius:50%;
    animation:checkout-spin .7s linear infinite
}
@keyframes checkout-spin {
    to {
        transform:rotate(360deg)
    }
}
@media(prefers-reduced-motion:reduce) {
    .checkout-spinner {
        animation:none
    }
}
.btn-outline-primary {
    border-color:var(--navy);
    color:var(--navy)
}
.btn-outline-primary:hover {
    background:var(--navy);
    border-color:var(--navy)
}
.hero {
    padding:65px 0 0;
    background:linear-gradient(110deg,#f2f5f8 0%,#fff 80%);
    overflow:hidden
}
.eyebrow {
    text-transform:uppercase;
    color:var(--red);
    font-size:.75rem;
    font-weight:800;
    letter-spacing:2px;
    margin-bottom:18px
}
.hero h1 {
    font-size:3.45rem;
    line-height:1.09;
    margin-bottom:24px
}
.hero h1 span {
    color:var(--red)
}
.hero .intro {
    font-size:1.12rem;
    max-width:460px;
    color:#526172;
    line-height:1.7;
    margin-bottom:27px
}
.hero-image {
    width:100%;
    height:490px;
    object-fit:cover;
    object-position:35% center;
    border-radius:70px 8px 8px 8px
}
.hero-photo {
    position:relative;
    padding-bottom:35px
}
.hero-caption {
    position:absolute;
    bottom:13px;
    left:28px;
    right:28px;
    background:white;
    box-shadow:0 12px 35px #102f5020;
    padding:16px 22px;
    border-left:4px solid var(--red);
    border-radius:4px;
    font-size:.85rem
}
.hero-caption strong {
    display:block;
    color:var(--navy);
    font-family:Montserrat,sans-serif
}
.hero-actions {
    display:flex;
    flex-wrap:wrap;
    gap:12px
}
.hero-note {
    font-size:.82rem;
    color:var(--muted);
    margin-top:20px
}
.benefit-strip {
    border-top:1px solid var(--line);
    margin-top:35px;
    padding:23px 0;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    font-family:Montserrat,sans-serif;
    font-size:.8rem;
    font-weight:600;
    color:var(--navy);
    gap:16px
}
.benefit-strip span:before {
    content:'✓';
    color:var(--red);
    font-weight:800;
    margin-right:10px
}
.section {
    padding:80px 0
}
.section-light {
    background:var(--light)
}
.section-head {
    max-width:630px;
    margin-bottom:38px
}
.section-head p {
    color:var(--muted);
    margin-top:18px
}
.step {
    padding:8px 25px 10px 0
}
.step-number {
    display:block;
    color:var(--red);
    font:800 2.7rem Montserrat,sans-serif;
    margin-bottom:18px
}
.step p {
    color:var(--muted);
    font-size:1rem
}
.topic-list {
    margin:0;
    padding:0;
    list-style:none
}
.topic-list li {
    padding:20px 0;
    border-bottom:1px solid var(--line);
    display:flex;
    align-items:center;
    gap:22px
}
.topic-number {
    color:var(--red);
    font-family:Montserrat,sans-serif;
    font-weight:700;
    font-size:.8rem
}
.topic-list h3 {
    margin:0;
    font-size:1rem
}
.topic-time {
    margin-left:auto;
    white-space:nowrap;
    color:var(--muted);
    font-size:.85rem
}
.panel {
    background:white;
    border:1px solid var(--line);
    border-radius:12px;
    padding:32px;
    box-shadow:0 10px 32px #102f5007
}
.price-panel {
    background:var(--navy);
    color:white;
    padding:38px
}
.price-panel h2,.price-panel h3 {
    color:white
}
.price {
    font:700 3.5rem Montserrat,sans-serif;
    letter-spacing:-2px
}
.price-panel ul {
    padding-left:20px;
    font-size:1rem
}
.price-panel .btn {
    display:block
}
.trust-seal {
    max-width:260px;
    width:100%;
    mix-blend-mode:multiply
}
.trust-list {
    list-style:none;
    padding:0;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    font-weight:600;
    font-size:.94rem
}
.trust-list li:before {
    content:'✓';
    margin-right:12px;
    color:var(--red)
}
.page-heading {
    padding:50px 0 35px;
    background:var(--light)
}
.page-heading p {
    color:var(--muted);
    max-width:700px
}
.page-content {
    padding-top:42px;
    padding-bottom:70px
}
.reading {
    max-width:780px;
    margin:auto
}
.auth-wrap {
    max-width:520px;
    margin:55px auto 70px;
    padding:0 15px
}
.auth-wrap h1 {
    font-size:2rem;
    letter-spacing:-.5px
}
.form-control {
    font-size:1rem;
    min-height:48px;
    border-color:#b9c4d0
}
.form-group label {
    font-weight:600;
    font-size:.9rem
}
.form-check {
    margin:20px 0
}
.form-check-input {
    margin-top:.45rem
}
.alert {
    font-size:.95rem
}
.site-footer {
    background:var(--navy-dark);
    color:#ccd6e2;
    padding:55px 0 18px
}
.site-footer h2 {
    font-size:1.2rem;
    color:white
}
.site-footer h3 {
    color:white;
    font-size:.85rem;
    margin-bottom:18px
}
.site-footer a {
    display:block;
    color:#ccd6e2;
    font-size:.9rem;
    margin-bottom:8px
}
.site-footer .small {
    max-width:350px;
    color:#aebed0
}
.footer-bottom {
    border-top:1px solid #ffffff25;
    margin-top:35px;
    padding-top:20px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-size:.8rem
}
.faq-item {
    border-bottom:1px solid var(--line);
    padding:22px 0
}
.faq-item summary {
    font-weight:700;
    color:var(--navy);
    cursor:pointer
}
.faq-item p {
    padding-top:14px;
    margin-bottom:0
}
.notice {
    background:#fff5e6;
    border-left:4px solid #a8650a;
    padding:18px 22px;
    font-size:.95rem
}
.honeypot {
    position:absolute;
    left:-10000px
}
.stat {
    font-size:2rem;
    font-weight:700;
    color:var(--navy)
}
.table {
    font-size:.9rem
}
.table th {
    color:var(--navy)
}
.button-row {
    display:flex;
    gap:12px;
    flex-wrap:wrap
}
.badge {
    white-space:normal;
    line-height:1.5
}
.text-wrap-anywhere {
    overflow-wrap:anywhere
}
@media(min-width:1200px) {
    .container {
        max-width:1180px
    }
}
@media(max-width:991px) {
    .hero h1 {
        font-size:2.65rem
    }
    .hero-image {
        height:430px
    }
    .nav-cta {
        margin:12px 0
    }
    .navbar-brand img {
        width:210px
    }
    .section {
        padding:55px 0
    }
    .navbar-nav {
        padding-top:20px
    }
    .nav-link {
        padding:12px 0!important;
        font-size:.95rem
    }
}
@media(max-width:767px) {
    h1 {
        font-size:2.3rem
    }
    h2 {
        font-size:1.8rem
    }
    .hero {
        padding-top:38px
    }
    .hero h1 {
        font-size:2.7rem
    }
    .hero-photo {
        margin-top:32px
    }
    .hero-image {
        height:320px;
        border-top-left-radius:45px
    }
    .hero-caption {
        left:15px;
        right:15px
    }
    .benefit-strip {
        grid-template-columns:1fr;
        font-size:.85rem;
        gap:10px;
        margin-top:10px
    }
    .section {
        padding:45px 0
    }
    .step {
        padding-bottom:25px
    }
    .step-number {
        margin-bottom:10px
    }
    .panel {
        padding:23px
    }
    .trust-list {
        grid-template-columns:1fr
    }
    .trust-seal {
        max-width:180px;
        margin-bottom:25px
    }
    .footer-bottom {
        display:block
    }
    .topic-list li {
        gap:14px
    }
    .topic-time {
        font-size:.75rem
    }
    .auth-wrap {
        margin-top:30px
    }
    .navbar-brand img {
        width:190px
    }
    .page-heading {
        padding:35px 0 25px
    }
    .price-panel {
        margin-top:30px
    }
}
@media print {
    .site-header,.site-footer,.utility,.no-print {
        display:none!important
    }
    body {
        background:white
    }
    .certificate-view {
        border:2px solid #102f50;
        box-shadow:none
    }
    .page-content {
        padding:0
    }
}
