/* -- Design tokens -- */
.hfa2{
    --hfa2-navy:#0a1f3a;
    --hfa2-navy-2:#122b4c;
    --hfa2-navy-3:#061b31;
    --hfa2-gold:#4ad55d;
    --hfa2-gold-2:#32b143;
    --hfa2-ivory:#fbfdff;
    --hfa2-warm:#eaf0f7;
    --hfa2-line:rgba(10,31,58,.10);
    --hfa2-muted:#506174;
    --hfa2-text:#0a1f3a;
    --hfa2-radius:14px;
    --hfa2-radius-sm:10px;
    --hfa2-max:1180px;
    --hfa2-font:'Poppins','Helvetica Neue',Arial,sans-serif;
    font-family:var(--hfa2-font);
    color:var(--hfa2-text);
    width:100%;
    max-width:100%;
    background:#ffffff;
}

/* -- Shared shell + section rhythm -- */
.hfa2 .hfa2-shell{
    max-width:var(--hfa2-max);
    margin:0 auto;
    padding:0 clamp(18px,2.4vw,32px);
    box-sizing:border-box;
}
.hfa2 .hfa2-section{
    width:100%;
    padding:clamp(48px,5.4vw,88px) 0;
    background:transparent;
}
.hfa2 .hfa2-section + .hfa2-section{
    border-top:1px solid var(--hfa2-line);
}

/* -- Eyebrow pill -- */
.hfa2 .hfa2-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:6px 12px;
    border-radius:999px;
    background:rgba(74,213,93,.10);
    border:1px solid rgba(74,213,93,.30);
    color:var(--hfa2-gold-2);
    font-size:11px;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
    margin:0 0 14px;
}
.hfa2 .hfa2-eyebrow::before{content:"";display:block;width:18px;height:1px;background:var(--hfa2-gold);}
.hfa2 .hfa2-eyebrow--light{
    background:rgba(255,255,255,.10);
    border-color:rgba(74,213,93,.45);
    color:var(--hfa2-gold);
}

/* -- Headings -- */
.hfa2 .hfa2-h2{
    margin:0 0 14px;
    color:var(--hfa2-navy);
    font-size:clamp(28px,3.4vw,46px);
    line-height:1.08;
    letter-spacing:-.025em;
    font-weight:800;
}
.hfa2 .hfa2-lead{
    margin:0 0 28px;
    max-width:760px;
    color:var(--hfa2-muted);
    font-size:clamp(15px,1.1vw,17px);
    line-height:1.68;
    font-weight:500;
}

/* -- Buttons -- */
.hfa2 .hfa2-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:50px;
    padding:0 22px;
    border-radius:12px;
    text-decoration:none;
    font-size:13px;
    font-weight:800;
    letter-spacing:.04em;
    transition:transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
    box-sizing:border-box;
    border:1px solid transparent;
    cursor:pointer;
}
.hfa2 .hfa2-btn--primary{
    background:var(--hfa2-gold);
    color:var(--hfa2-navy);
    border-color:var(--hfa2-gold);
    box-shadow:0 16px 38px rgba(74,213,93,.22);
}
.hfa2 .hfa2-btn--primary:hover{transform:translateY(-1px);box-shadow:0 20px 42px rgba(74,213,93,.32);}
.hfa2 .hfa2-btn--ghost{
    background:rgba(255,255,255,.10);
    color:#fff;
    border-color:rgba(255,255,255,.30);
}
.hfa2 .hfa2-btn--ghost:hover{background:rgba(255,255,255,.18);border-color:rgba(74,213,93,.50);}
.hfa2 .hfa2-btn--ghost-dark{
    background:rgba(255,255,255,.06);
    color:#fff;
    border-color:rgba(255,255,255,.24);
}
.hfa2 .hfa2-btn--ghost-dark:hover{background:rgba(255,255,255,.12);border-color:rgba(74,213,93,.50);}

/* ====================================================================
   1. HERO
   ==================================================================== */
.hfa2 .hfa2-hero{
    position:relative;
    width:100%;
    height:min(560px, calc(100vh - 100px));
    min-height:460px;
    overflow:hidden;
    background:var(--hfa2-navy-3);
    color:#fff;
    isolation:isolate;
}
.hfa2 .hfa2-hero__visual{
    position:absolute;
    inset:0;
    z-index:0;
}
.hfa2 .hfa2-hero__visual::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(6,27,49,.20) 0%, rgba(6,27,49,.45) 55%, rgba(6,27,49,.85) 100%);
    z-index:1;
}
.hfa2 .hfa2-hero__visual img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.hfa2 .hfa2-hero__shell{
    position:relative;
    z-index:2;
    height:100%;
    display:flex;
    align-items:flex-end;
    padding-bottom:48px;
}
.hfa2 .hfa2-hero__content{max-width:780px;}
.hfa2 .hfa2-hero__title{
    margin:0 0 14px;
    color:#fff;
    font-size:clamp(34px,4.4vw,62px);
    line-height:1.04;
    letter-spacing:-.03em;
    font-weight:850;
}
.hfa2 .hfa2-hero__text{
    margin:0 0 26px;
    max-width:620px;
    color:rgba(255,255,255,.86);
    font-size:clamp(15px,1.15vw,17px);
    line-height:1.6;
    font-weight:500;
}
.hfa2 .hfa2-hero__actions{display:flex;flex-wrap:wrap;gap:12px;}

/* ====================================================================
   2. TRUST BAR
   ==================================================================== */
.hfa2 .hfa2-trust{
    background:
        radial-gradient(circle at 52% 0%, rgba(73,203,91,.07), transparent 40%),
        linear-gradient(135deg, var(--hfa2-navy-3) 0%, var(--hfa2-navy-2) 55%, #112d52 100%);
    border-top:1px solid rgba(73,203,91,.55);
    border-bottom:1px solid rgba(73,203,91,.22);
    padding:18px clamp(18px,2.4vw,32px);
}
.hfa2 .hfa2-trust__grid{
    max-width:var(--hfa2-max);
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.hfa2 .hfa2-trust__card{
    display:flex;
    align-items:center;
    gap:14px;
    padding:14px 20px;
    border-radius:12px;
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.10);
    color:#fff;
    text-decoration:none;
    transition:transform .18s ease, border-color .18s ease, background .18s ease;
}
.hfa2 a.hfa2-trust__card:hover{background:rgba(255,255,255,.12);border-color:rgba(92,215,109,.45);transform:translateY(-1px);}
.hfa2 .hfa2-trust__icon{
    flex-shrink:0;
    width:36px;
    height:36px;
    border-radius:999px;
    background:rgba(92,215,109,.16);
    color:var(--hfa2-gold);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-weight:900;
    font-size:18px;
    filter:drop-shadow(0 0 6px rgba(92,215,109,.22));
}
.hfa2 .hfa2-trust__copy{display:flex;flex-direction:column;gap:2px;min-width:0;}
.hfa2 .hfa2-trust__copy strong{color:#fff;font-size:16px;font-weight:700;letter-spacing:-.005em;}
.hfa2 .hfa2-trust__copy small{color:rgba(255,255,255,.60);font-size:11px;font-weight:500;}

/* ====================================================================
   3. INTRO — facts strip
   ==================================================================== */
.hfa2 .hfa2-facts{
    list-style:none;
    margin:32px 0 0;
    padding:0;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:0;
    border-top:1px solid var(--hfa2-line);
}
.hfa2 .hfa2-fact{
    display:flex;
    flex-direction:column;
    gap:6px;
    padding:24px 28px 24px 0;
    border-right:1px solid var(--hfa2-line);
}
.hfa2 .hfa2-fact:last-child{border-right:0;padding-right:0;}
.hfa2 .hfa2-fact:not(:first-child){padding-left:28px;}
.hfa2 .hfa2-fact__label{
    font-size:10.5px;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--hfa2-gold-2);
}
.hfa2 .hfa2-fact__title{
    font-size:18px;
    line-height:1.25;
    color:var(--hfa2-navy);
    font-weight:800;
    letter-spacing:-.01em;
}
.hfa2 .hfa2-fact__text{
    color:var(--hfa2-muted);
    font-size:14px;
    line-height:1.65;
}

/* ====================================================================
   4. BODY — prose
   ==================================================================== */
.hfa2 .hfa2-prose{font-size:16px;line-height:1.78;color:#1a2436;max-width:820px;}
.hfa2 .hfa2-prose h2,
.hfa2 .hfa2-prose h3{
    color:var(--hfa2-navy);
    margin:32px 0 12px;
    line-height:1.18;
    letter-spacing:-.02em;
    font-weight:800;
}
.hfa2 .hfa2-prose h2{font-size:clamp(24px,2.6vw,34px);}
.hfa2 .hfa2-prose h3{font-size:clamp(18px,1.5vw,22px);}
.hfa2 .hfa2-prose p{margin:0 0 16px;}
.hfa2 .hfa2-prose ul,
.hfa2 .hfa2-prose ol{margin:0 0 18px;padding-left:22px;}
.hfa2 .hfa2-prose li{margin:0 0 8px;}
.hfa2 .hfa2-prose a{
    color:var(--hfa2-gold-2);
    text-decoration:underline;
    text-underline-offset:2px;
    text-decoration-thickness:1px;
}
.hfa2 .hfa2-prose a:hover{color:var(--hfa2-navy);}
.hfa2 .hfa2-prose img{
    width:100%;
    height:auto;
    max-height:420px;
    object-fit:cover;
    border-radius:var(--hfa2-radius);
    margin:24px 0;
    display:block;
}
.hfa2 .hfa2-prose figure{margin:24px 0;}
.hfa2 .hfa2-prose figcaption{margin-top:10px;color:var(--hfa2-muted);font-size:13px;line-height:1.55;}
.hfa2 .hfa2-prose blockquote{
    margin:24px 0;
    padding:0 0 0 22px;
    border-left:3px solid var(--hfa2-gold);
    font-size:18px;
    line-height:1.55;
    color:var(--hfa2-navy);
    font-weight:600;
    font-style:italic;
}

/* ====================================================================
   5. DIRECTION — 2-col flat lists
   ==================================================================== */
.hfa2 .hfa2-direction__grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);
    gap:48px;
    margin-top:8px;
}
.hfa2 .hfa2-direction__col{display:flex;flex-direction:column;}
.hfa2 .hfa2-direction__heading{
    font-size:11px;
    font-weight:800;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--hfa2-gold-2);
    margin:0 0 16px;
    padding:0 0 12px;
    border-bottom:1px solid var(--hfa2-line);
}
.hfa2 .hfa2-list{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
}
.hfa2 .hfa2-list li{
    display:flex;
    flex-direction:column;
    gap:6px;
    padding:18px 0;
    border-bottom:1px solid var(--hfa2-line);
}
.hfa2 .hfa2-list li:last-child{border-bottom:0;}
.hfa2 .hfa2-list strong{
    color:var(--hfa2-navy);
    font-size:17px;
    line-height:1.25;
    font-weight:800;
    letter-spacing:-.01em;
}
.hfa2 .hfa2-list span{
    color:var(--hfa2-muted);
    font-size:14.5px;
    line-height:1.65;
}
.hfa2 .hfa2-list__kicker{
    color:var(--hfa2-gold-2) !important;
    font-size:10.5px !important;
    font-weight:800 !important;
    letter-spacing:.14em !important;
    text-transform:uppercase !important;
}

/* ====================================================================
   6. VISUAL
   ==================================================================== */
.hfa2 .hfa2-figure{margin:0;}
.hfa2 .hfa2-figure img{
    width:100%;
    height:clamp(280px, 42vw, 520px);
    object-fit:cover;
    border-radius:var(--hfa2-radius);
    display:block;
}
.hfa2 .hfa2-figure figcaption{
    margin-top:14px;
    color:var(--hfa2-muted);
    font-size:13px;
    line-height:1.6;
}

/* ====================================================================
   7. NEXT STEPS — 3-card grid
   ==================================================================== */
.hfa2 .hfa2-next__grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin-top:8px;
}
.hfa2 .hfa2-next__item{
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:22px 22px 20px;
    border-radius:var(--hfa2-radius);
    border:1px solid var(--hfa2-line);
    background:#fff;
    text-decoration:none;
    color:inherit;
    transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.hfa2 .hfa2-next__item:hover{
    transform:translateY(-2px);
    border-color:rgba(74,213,93,.45);
    box-shadow:0 12px 30px rgba(10,31,58,.06);
}
.hfa2 .hfa2-next__kicker{
    color:var(--hfa2-gold-2);
    font-size:10.5px;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.hfa2 .hfa2-next__item strong{
    color:var(--hfa2-navy);
    font-size:18px;
    line-height:1.22;
    font-weight:800;
    letter-spacing:-.01em;
}
.hfa2 .hfa2-next__item span{
    color:var(--hfa2-muted);
    font-size:14px;
    line-height:1.6;
}
.hfa2 .hfa2-next__item em{
    margin-top:auto;
    font-style:normal;
    color:var(--hfa2-navy);
    font-size:12px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
    padding-top:10px;
}

/* ====================================================================
   8. FINAL CTA
   ==================================================================== */
.hfa2 .hfa2-cta{
    margin-top:0;
    padding:clamp(56px,6.4vw,108px) clamp(20px,4vw,80px);
    background:
        radial-gradient(circle at 12% 0%, rgba(74,213,93,.16), transparent 32%),
        linear-gradient(135deg, var(--hfa2-navy-3) 0%, var(--hfa2-navy-2) 100%);
    color:#fff;
    border-top:1px solid rgba(74,213,93,.30);
}
.hfa2 .hfa2-cta__inner{
    max-width:var(--hfa2-max);
    margin:0 auto;
    display:grid;
    grid-template-columns:minmax(0,1.2fr) auto;
    gap:clamp(20px,4vw,56px);
    align-items:center;
}
.hfa2 .hfa2-cta__kicker{
    display:inline-block;
    padding:6px 12px;
    border-radius:999px;
    background:rgba(74,213,93,.14);
    border:1px solid rgba(74,213,93,.40);
    color:var(--hfa2-gold);
    font-size:11px;
    font-weight:800;
    letter-spacing:.16em;
    text-transform:uppercase;
    margin:0 0 14px;
}
.hfa2 .hfa2-cta h2{
    margin:0 0 12px;
    color:#fff;
    font-size:clamp(28px,3.4vw,46px);
    line-height:1.08;
    letter-spacing:-.025em;
    font-weight:800;
}
.hfa2 .hfa2-cta p{
    margin:0;
    color:rgba(255,255,255,.78);
    font-size:15px;
    line-height:1.65;
}
.hfa2 .hfa2-cta__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;}

/* ====================================================================
   RESPONSIVE
   ==================================================================== */
@media (max-width:1024px){
    .hfa2 .hfa2-direction__grid{gap:32px;}
}
@media (max-width:900px){
    .hfa2 .hfa2-hero{height:auto;min-height:380px;padding-top:48px;}
    .hfa2 .hfa2-hero__shell{padding-bottom:36px;}
    .hfa2 .hfa2-hero__title{font-size:clamp(28px,7vw,42px);}
    .hfa2 .hfa2-direction__grid{grid-template-columns:1fr;gap:32px;}
    .hfa2 .hfa2-next__grid{grid-template-columns:1fr;}
    .hfa2 .hfa2-cta__inner{grid-template-columns:1fr;}
    .hfa2 .hfa2-cta__actions{justify-content:flex-start;}
    .hfa2 .hfa2-trust__grid{grid-template-columns:1fr;}
    .hfa2 .hfa2-facts{grid-template-columns:1fr;}
    .hfa2 .hfa2-fact{
        padding:18px 0 !important;
        border-right:0 !important;
        border-bottom:1px solid var(--hfa2-line);
    }
    .hfa2 .hfa2-fact:last-child{border-bottom:0;}
}
@media (max-width:600px){
    .hfa2 .hfa2-section{padding:36px 0;}
    .hfa2 .hfa2-hero__actions .hfa2-btn,
    .hfa2 .hfa2-cta__actions .hfa2-btn{width:100%;}
}