:root {
    --hub-orange: #f47820;
    --hub-orange-soft: rgba(244,120,32,.14);
    --hub-blue: #4daedc;
    --hub-blue-soft: rgba(77,174,220,.14);
    --hub-navy: #0e1c2f;
    --hub-line: rgba(18,34,58,.10);
    --hub-text: #50627d
}

body {
    background: #f5f8fc
}

.hub-page {
    padding: 110px 0 88px;
    background: radial-gradient(circle at top right,rgba(255,255,255,.75),transparent 34%),linear-gradient(180deg,#f7fbff 0%,#f5f8fc 100%)
}

.hub-hero,.hub-section,.hub-cta-band,.hub-breadcrumb {
    max-width: 1240px;
    margin: 0 auto;
    padding-left: clamp(22px,3vw,48px);
    padding-right: clamp(22px,3vw,48px)
}

.hub-hero__inner {
    display: grid;
    grid-template-columns: minmax(0,1.4fr) minmax(290px,.8fr);
    gap: 28px;
    align-items: stretch
}

.hub-hero__copy,.hub-hero__aside,.hub-card,.legal-card,.legal-cta {
    background: rgba(255,255,255,.9);
    border: 1px solid rgba(14,28,47,.08);
    box-shadow: 0 24px 60px rgba(19,40,67,.08);
    backdrop-filter: blur(16px)
}

.hub-hero__copy {
    border-radius: 34px;
    padding: 40px 40px 36px;
    position: relative;
    overflow: hidden
}

.hub-hero__copy::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg,var(--hero-soft),transparent 54%);
    pointer-events: none
}

.hub-hero__aside {
    border-radius: 30px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 22px
}

.hub--clinic {
    --hero-accent: var(--hub-orange);
    --hero-soft: var(--hub-orange-soft)
}

.hub--home {
    --hero-accent: var(--hub-blue);
    --hero-soft: var(--hub-blue-soft)
}

.hub--business {
    --hero-accent: #4daedc;
    --hero-soft: rgba(77,174,220,.14)
}

.hub-hero__kicker,.hub-section__kicker,.hub-cta-band__eyebrow,.legal-hero__kicker,.legal-cta__kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: var(--hero-soft);
    color: var(--hero-accent);
    font: 700 .78rem/1 'Outfit',sans-serif;
    letter-spacing: .08em;
    text-transform: uppercase
}

.hub-hero h1,.hub-section h2,.hub-cta-band h2,.legal-hero h1,.legal-card h2,.legal-cta h2 {
    font-family: 'Gotham HTF','Outfit',sans-serif;
    color: #0e1c2f;
    letter-spacing: -.03em
}

.hub-hero h1 {
    font-size: clamp(2.5rem,5vw,4.3rem);
    line-height: .98;
    margin: 18px 0 16px;
    max-width: 12ch
}

.hub-hero p,.hub-section__head p,.hub-card p,.hub-cta-band p,.legal-hero p,.legal-card p,.legal-cta p {
    font-family: 'Outfit',sans-serif;
    color: var(--hub-text);
    line-height: 1.78
}

.hub-hero__actions,.legal-cta {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 28px
}

.hub-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    padding: 14px 24px;
    border-radius: 999px;
    font: 700 .92rem/1 'Outfit',sans-serif
}

.hub-btn--ghost {
    border: 1px solid rgba(14,28,47,.12);
    color: #0e1c2f;
    background: #fff
}

.hub-hero__badge {
    padding: 14px 16px;
    border-radius: 20px;
    background: var(--hero-soft);
    color: #0e1c2f;
    font: 700 .92rem/1.6 'Outfit',sans-serif
}

.hub-hero__stats {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 14px;
    padding: 0
}

.hub-hero__stats li {
    border-radius: 22px;
    background: #0e1c2f;
    color: #fff;
    padding: 18px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 108px
}

.hub-hero__stats strong {
    font-family: 'Gotham HTF','Outfit',sans-serif;
    font-size: 1.3rem
}

.hub-hero__stats span {
    color: rgba(255,255,255,.7);
    font-size: .84rem;
    line-height: 1.5
}

.hub-breadcrumb,.legal-breadcrumb {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #72829c;
    font: 600 .88rem/1 'Outfit',sans-serif;
    padding-top: 22px;
    padding-bottom: 12px
}

.hub-breadcrumb a,.legal-breadcrumb a {
    color: inherit;
    text-decoration: none
}

.hub-breadcrumb a:hover,.legal-breadcrumb a:hover {
    color: #0e1c2f
}

.hub-section {
    padding-top: 28px
}

.hub-section + .hub-section {
    padding-top: 18px
}

.hub-section__head {
    max-width: 760px;
    margin-bottom: 22px
}

.hub-section h2 {
    font-size: clamp(1.7rem,3vw,2.6rem);
    margin: 10px 0 10px
}

.hub-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 20px
}

.hub-card {
    border-radius: 28px;
    padding: 26px 24px 24px;
    display: flex;
    flex-direction: column;
    min-height: 260px
}

.hub-card__eyebrow {
    font: 700 .72rem/1 'Outfit',sans-serif;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--hero-accent);
    margin-bottom: 16px
}

.hub-card h3 {
    font-family: 'Gotham HTF','Outfit',sans-serif;
    font-size: 1.42rem;
    line-height: 1.15;
    color: #0e1c2f;
    margin-bottom: 14px
}

.hub-card p {
    font-size: .96rem
}

.hub-card__link {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #0e1c2f;
    font: 700 .92rem/1 'Outfit',sans-serif;
    text-decoration: none;
    padding-top: 18px
}

.hub-card__link span {
    transition: transform .25s ease
}

.hub-card:hover .hub-card__link span {
    transform: translateX(4px)
}

.hub-cta-band {
    margin-top: 42px;
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 20px;
    align-items: center;
    padding-top: 28px;
    padding-bottom: 42px;
    background: linear-gradient(135deg,#0e1c2f 0%,#13294a 100%);
    border-radius: 34px;
    color: #fff;
    box-shadow: 0 20px 50px rgba(10,24,43,.24)
}

.hub-cta-band h2 {
    color: #fff;
    font-size: clamp(1.75rem,3.4vw,2.7rem);
    margin: 10px 0
}

.hub-cta-band p {
    color: rgba(255,255,255,.72);
    max-width: 56ch
}

.legal-page {
    padding: 112px 0 90px;
    background: linear-gradient(180deg,#f7fbff 0%,#f5f8fc 100%)
}

.legal-hero,.legal-card,.legal-cta,.legal-breadcrumb {
    max-width: 1040px;
    margin: 0 auto;
    padding-left: clamp(22px,3vw,48px);
    padding-right: clamp(22px,3vw,48px)
}

.legal-hero {
    padding-top: 8px
}

.legal-hero h1 {
    font-size: clamp(2.25rem,3.7vw,4rem);
    margin: 18px 0 14px
}

.legal-card {
    margin-top: 20px;
    border-radius: 30px;
    padding: 34px 34px 28px
}

.legal-card h2 {
    font-size: clamp(1.4rem,2.3vw,2rem);
    margin-bottom: 14px
}

.legal-card p + p {
    margin-top: 16px
}

.legal-cta {
    margin-top: 26px;
    padding-top: 30px;
    padding-bottom: 34px;
    border-radius: 30px;
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    gap: 24px;
    background: #0e1c2f
}

.legal-cta h2 {
    color: #fff;
    margin: 8px 0
}

.legal-cta p {
    color: rgba(255,255,255,.7)
}

@media (max-width: 980px) {
    .hub-hero__inner,.hub-cta-band,.legal-cta {
        grid-template-columns:1fr
    }

    .hub-grid {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .hub-hero__stats {
        grid-template-columns: 1fr 1fr 1fr
    }
}

@media (max-width: 700px) {
    .hub-page,.legal-page {
        padding-top:96px
    }

    .hub-hero__copy,.hub-hero__aside,.hub-card,.hub-cta-band,.legal-card,.legal-cta {
        border-radius: 24px
    }

    .hub-grid {
        grid-template-columns: 1fr
    }

    .hub-hero__stats {
        grid-template-columns: 1fr
    }

    .hub-hero__copy {
        padding: 30px 24px
    }

    .hub-hero__aside,.hub-card,.hub-cta-band,.legal-card,.legal-cta {
        padding-left: 24px;
        padding-right: 24px
    }

    .hub-card {
        min-height: unset
    }

    .hub-btn {
        width: 100%
    }
}
