@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

[x-cloak] { display: none !important; }

:root {
    --navy: #053A5C;
    --blue: #0071BC;
    --premium-blue: #0071BC;
    --blue-soft: #E8EEF3;
    --life: #22C07A;
    --smoke: #F8FAFC;
    --steel: #94A3B8;
    --green: #00A99D;
    --teal: #00A99D;
    --blue-bright: #1E9AD5;
    --blue-soft: #E6F2FA;
    --ink-soft: #454545;
    /* Degradado firma VITAL.ES: verde → teal → azul */
    --brand-grad: linear-gradient(120deg, #22C07A 0%, #00A99D 50%, #0071BC 100%);
    --brand-grad-rev: linear-gradient(120deg, #0071BC 0%, #00A99D 50%, #22C07A 100%);
}

.topbar {
    background: var(--navy);
    color: rgb(255 255 255 / .82);
    font-size: .82rem;
}

.topbar-inner {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .4rem 1.5rem;
    justify-content: space-between;
    margin: 0 auto;
    max-width: 80rem;
    padding: .5rem 1.25rem;
}

.topbar-contact {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .4rem 1.4rem;
}

.topbar a,
.topbar span {
    align-items: center;
    color: rgb(255 255 255 / .82);
    display: inline-flex;
    font-weight: 600;
    gap: .4rem;
}

.topbar a {
    transition: color .2s ease;
}

.topbar a:hover {
    color: #fff;
}

.topbar svg {
    color: var(--life);
    height: .9rem;
    width: .9rem;
}

@media (min-width: 1024px) {
    .topbar-inner {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

@media (max-width: 640px) {
    .topbar-hours,
    .topbar-meta {
        display: none;
    }

    .topbar-inner {
        justify-content: center;
    }
}

.nav-tab {
    border-radius: 999px;
    color: rgb(16 24 32 / .68);
    display: inline-flex;
    font-size: .86rem;
    font-weight: 600;
    padding: .7rem 1rem;
    transition: .2s ease;
    white-space: nowrap;
}

.nav-tab:hover {
    background: #eef4f6;
    color: #101820;
}

.nav-tab.is-active {
    background: linear-gradient(135deg, var(--navy), var(--premium-blue));
    color: white;
}

.home-shell {
    background:
        radial-gradient(circle at 12% 16%, rgb(66 88 114 / .32), transparent 26rem),
        radial-gradient(circle at 78% 12%, rgb(34 192 122 / .22), transparent 28rem),
        linear-gradient(135deg, #06141d 0%, var(--navy) 44%, #0A2336 100%);
    color: white;
    overflow: hidden;
    position: relative;
}

.home-shell::before {
    background:
        linear-gradient(rgb(255 255 255 / .045) 1px, transparent 1px),
        linear-gradient(90deg, rgb(255 255 255 / .035) 1px, transparent 1px);
    background-size: 72px 72px;
    content: "";
    inset: 0;
    mask-image: linear-gradient(180deg, black, transparent 82%);
    pointer-events: none;
    position: absolute;
    z-index: 2;
}

.home-shell::after {
    background: linear-gradient(90deg, transparent, rgb(34 192 122 / .44), transparent);
    bottom: 0;
    content: "";
    height: 1px;
    left: 7%;
    position: absolute;
    right: 7%;
    z-index: 3;
}

.hero-slides {
    inset: 0;
    position: absolute;
    z-index: 0;
}

.hero-slide {
    background-image: var(--hero-image);
    background-position: center;
    background-size: cover;
    inset: -4%;
    opacity: 0;
    position: absolute;
    transform: scale(1.02);
    transition: opacity 1.2s ease;
}

.hero-slide.is-active {
    animation: kenburns 7.4s ease-in-out both;
    opacity: 1;
}

.hero-image-overlay {
    background: rgb(7 17 31 / .5);
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 1;
}

.home-hero {
    display: grid;
    gap: 3rem;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .76fr);
    margin: 0 auto;
    max-width: 82rem;
    min-height: 640px;
    padding: 5.8rem 1.25rem 4.6rem;
    position: relative;
    z-index: 4;
}

.hero-copy {
    align-self: center;
}

.hero-kicker {
    align-items: center;
    color: rgb(255 255 255 / .76);
    display: inline-flex;
    font-size: .78rem;
    font-weight: 700;
    gap: .75rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.hero-kicker span {
    background: linear-gradient(90deg, var(--life), var(--green));
    border-radius: 999px;
    box-shadow: 0 0 32px rgb(34 192 122 / .45);
    height: .52rem;
    width: 2.5rem;
}

.hero-copy h1 {
    font-size: clamp(2rem, 3.35vw, 3.55rem);
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.08;
    margin-top: 1.25rem;
    max-width: 18ch;
}

.hero-copy p {
    color: rgb(248 250 252 / .72);
    font-size: clamp(.96rem, 1.2vw, 1.06rem);
    line-height: 1.7;
    margin-top: 1.35rem;
    max-width: 39rem;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1.8rem;
}

.hero-slider-tabs {
    display: grid;
    gap: .65rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 1.8rem;
    max-width: 47rem;
}

.hero-slider-tabs button {
    background: rgb(248 250 252 / .08);
    border: 1px solid rgb(255 255 255 / .14);
    border-radius: 1rem;
    color: rgb(248 250 252 / .72);
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.25;
    min-height: 4.2rem;
    overflow: hidden;
    padding: .85rem;
    position: relative;
    text-align: left;
    transition: background .25s ease, border-color .25s ease, transform .25s ease;
}

.hero-slider-tabs button::after {
    background: linear-gradient(90deg, var(--life), var(--green));
    bottom: 0;
    content: "";
    height: 2px;
    left: 0;
    opacity: 0;
    position: absolute;
    transform: scaleX(.25);
    transform-origin: left;
    transition: opacity .25s ease, transform .25s ease;
    width: 100%;
}

.hero-slider-tabs button:hover,
.hero-slider-tabs button.is-active {
    background: rgb(255 255 255 / .14);
    border-color: rgb(34 192 122 / .46);
    color: white;
    transform: translateY(-2px);
}

.hero-slider-tabs button.is-active::after {
    opacity: 1;
    transform: scaleX(1);
}

.hero-slider-tabs span {
    color: var(--life);
    display: block;
    font-size: .68rem;
    letter-spacing: .12em;
    margin-bottom: .35rem;
}

.btn-xl {
    min-height: 3.7rem;
    padding-left: 1.55rem;
    padding-right: 1.55rem;
}

.btn-ghost {
    align-items: center;
    border: 1px solid rgb(255 255 255 / .18);
    border-radius: 999px;
    color: white;
    display: inline-flex;
    font-size: .95rem;
    font-weight: 700;
    gap: .55rem;
    min-height: 3.7rem;
    padding: .95rem 1.35rem;
    transition: background .2s ease, transform .2s ease;
}

.btn-ghost:hover {
    background: rgb(255 255 255 / .08);
    transform: translateY(-2px);
}

.btn-ghost svg {
    height: 1rem;
    width: 1rem;
}

.trust-row {
    border-top: 1px solid rgb(255 255 255 / .12);
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 2.35rem;
    max-width: 44rem;
    padding-top: 1.4rem;
}

@keyframes kenburns {
    0% {
        transform: scale(1.02) translate3d(0, 0, 0);
    }

    50% {
        transform: scale(1.1) translate3d(-1.2%, -.8%, 0);
    }

    100% {
        transform: scale(1.16) translate3d(1.4%, .9%, 0);
    }
}

.trust-row div {
    min-width: 0;
}

.trust-row strong {
    display: block;
    font-size: clamp(1.35rem, 2.2vw, 2rem);
    line-height: 1;
}

.trust-row span {
    color: var(--steel);
    display: block;
    font-size: .86rem;
    line-height: 1.45;
    margin-top: .55rem;
}

.quote-console {
    align-self: center;
    background:
        linear-gradient(145deg, rgb(255 255 255 / .18), rgb(255 255 255 / .06)),
        radial-gradient(circle at top right, rgb(66 88 114 / .22), transparent 18rem);
    border: 1px solid rgb(255 255 255 / .18);
    border-radius: 2rem;
    box-shadow: 0 12px 32px rgb(0 0 0 / .42);
    padding: .95rem;
    position: relative;
    backdrop-filter: blur(24px);
}

.quote-console::before {
    background: linear-gradient(135deg, rgb(34 192 122 / .42), transparent 38%, rgb(66 88 114 / .36));
    border-radius: inherit;
    content: "";
    inset: -1px;
    opacity: .55;
    position: absolute;
    z-index: -1;
}

.console-top,
.console-footer {
    align-items: center;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.console-top {
    padding: .65rem .7rem 1rem;
}

.console-top p,
.console-footer span,
.protection-score span {
    color: rgb(248 250 252 / .58);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.console-top strong,
.console-footer strong {
    display: block;
    margin-top: .2rem;
}

.status-pill {
    align-items: center;
    background: rgb(0 169 157 / .14);
    border: 1px solid rgb(0 169 157 / .28);
    border-radius: 999px;
    color: #baf7df;
    display: inline-flex;
    font-size: .78rem;
    font-weight: 700;
    gap: .4rem;
    padding: .45rem .7rem;
}

.status-pill svg {
    height: .9rem;
    width: .9rem;
}

.protection-score {
    background: rgb(248 250 252 / .95);
    border-radius: 1.45rem;
    color: var(--navy);
    min-height: 205px;
    padding: 1.15rem;
}

.protection-score strong {
    display: block;
    font-size: clamp(4rem, 7vw, 6.2rem);
    letter-spacing: -.04em;
    line-height: .9;
    margin-top: 1.2rem;
}

.protection-score small {
    color: rgb(7 17 31 / .58);
    display: block;
    font-weight: 650;
    margin-top: .9rem;
}

.protection-score span {
    color: rgb(7 17 31 / .5);
}

.console-list {
    display: grid;
    gap: .75rem;
    margin-top: .85rem;
}

.console-list div {
    align-items: center;
    background: rgb(255 255 255 / .09);
    border: 1px solid rgb(255 255 255 / .12);
    border-radius: 1rem;
    display: grid;
    gap: .8rem;
    grid-template-columns: auto 1fr auto;
    padding: .75rem .85rem;
}

.console-list svg {
    color: var(--life);
    height: 1.15rem;
    width: 1.15rem;
}

.console-list span {
    font-weight: 700;
}

.console-list strong {
    color: rgb(248 250 252 / .62);
    font-size: .78rem;
}

.console-footer {
    padding: 1rem .75rem .65rem;
}

.console-footer strong {
    text-align: right;
}

.brand-strip {
    background: var(--navy);
    color: rgb(248 250 252 / .68);
    display: grid;
    gap: 1px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.brand-strip span {
    background: rgb(255 255 255 / .035);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .08em;
    min-height: 4.25rem;
    padding: 1.55rem 1rem;
    text-align: center;
    text-transform: uppercase;
}

.home-section {
    margin: 0 auto;
    max-width: 82rem;
    padding: 6.2rem 1.25rem;
}

.split-heading {
    align-items: end;
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr minmax(280px, .42fr);
    margin-bottom: 2.2rem;
}

.split-heading h2,
.decision-copy h2,
.partner-copy h2 {
    font-size: clamp(2.05rem, 3.9vw, 3.9rem);
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.05;
}

.split-heading > p,
.partner-copy > p {
    color: rgb(7 17 31 / .62);
    line-height: 1.75;
}

.services-showcase {
    position: relative;
}

.service-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.service-card {
    background:
        linear-gradient(180deg, white, #f4f7fb);
    border: 1px solid rgb(7 17 31 / .08);
    border-radius: 1.35rem;
    box-shadow: 0 14px 40px rgb(7 17 31 / .08);
    display: flex;
    flex-direction: column;
    min-height: 330px;
    overflow: hidden;
    padding: 1.35rem;
    position: relative;
    transition: transform .25s ease, box-shadow .25s ease;
}

.service-card::after {
    background: linear-gradient(135deg, rgb(66 88 114 / .16), transparent 46%, rgb(34 192 122 / .2));
    content: "";
    height: 11rem;
    position: absolute;
    right: -4rem;
    top: -4rem;
    transform: rotate(12deg);
    width: 11rem;
}

.service-card:hover {
    box-shadow: 0 16px 44px rgb(66 88 114 / .14);
    transform: translateY(-6px);
}

.service-icon {
    align-items: center;
    background: var(--navy);
    border-radius: 1rem;
    color: var(--life);
    display: inline-flex;
    height: 3.25rem;
    justify-content: center;
    width: 3.25rem;
}

.service-icon svg {
    height: 1.25rem;
    width: 1.25rem;
}

.service-card span {
    color: var(--steel);
    display: block;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .1em;
    margin-top: 1.6rem;
    text-transform: uppercase;
}

.service-card h3 {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.08;
    margin-top: .55rem;
}

.service-card p {
    color: rgb(7 17 31 / .62);
    line-height: 1.7;
    margin-top: .95rem;
}

.service-card a {
    align-items: center;
    align-self: flex-start;
    color: var(--premium-blue);
    display: inline-flex;
    font-size: .92rem;
    font-weight: 700;
    gap: .45rem;
    margin-top: auto;
    padding-top: 1rem;
}

.service-card a svg {
    height: 1rem;
    width: 1rem;
}

.decision-band {
    background:
        linear-gradient(rgb(5 58 92 / .74), rgb(5 58 92 / .74)),
        url('../img/covers/decision-band.webp');
    background-attachment: fixed;
    background-color: var(--navy);
    background-position: center;
    background-size: cover;
    color: white;
    display: grid;
    gap: 3rem;
    grid-template-columns: .92fr 1.08fr;
    padding: 6.2rem max(1.25rem, calc((100vw - 82rem) / 2));
}

@media (max-width: 768px) {
    .decision-band {
        background-attachment: scroll;
    }
}

.decision-copy p {
    color: var(--life);
}

.decision-steps {
    display: grid;
    gap: 1rem;
}

.decision-steps article {
    background: rgb(255 255 255 / .08);
    border: 1px solid rgb(255 255 255 / .13);
    border-radius: 1.35rem;
    display: grid;
    gap: 1rem;
    grid-template-columns: auto 1fr;
    padding: 1.35rem;
    backdrop-filter: blur(18px);
}

.decision-steps span {
    color: var(--life);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.decision-steps h3 {
    font-size: 1.2rem;
    font-weight: 700;
}

.decision-steps p {
    color: rgb(248 250 252 / .64);
    grid-column: 2;
    line-height: 1.65;
    margin-top: -.75rem;
}

.partner-showcase {
    display: grid;
    gap: 2.2rem;
    grid-template-columns: .88fr 1.12fr;
}

.partner-grid-premium {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.partner-grid-premium article {
    background:
        linear-gradient(145deg, rgb(7 17 31 / .96), rgb(18 60 105 / .92));
    border: 1px solid rgb(255 255 255 / .12);
    border-radius: 1.35rem;
    box-shadow: 0 14px 38px rgb(7 17 31 / .16);
    color: white;
    min-height: 190px;
    padding: 1.35rem;
}

.partner-grid-premium strong {
    display: block;
    font-size: 2rem;
    line-height: 1;
}

.partner-grid-premium p {
    color: rgb(248 250 252 / .62);
    line-height: 1.65;
    margin-top: 1rem;
}

.partner-grid-premium span {
    color: var(--life);
    display: block;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    margin-top: 1.4rem;
    text-transform: uppercase;
}

.faq-premium {
    padding-top: 4.5rem;
}

.faq-premium-list {
    display: grid;
    gap: .9rem;
    margin: 0 auto;
    max-width: 56rem;
}

.faq-premium-list details {
    background: white;
    border: 1px solid rgb(7 17 31 / .08);
    border-radius: 1.15rem;
    box-shadow: 0 16px 42px rgb(7 17 31 / .05);
    padding: 1.25rem 1.35rem;
}

.faq-premium-list summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    font-weight: 700;
    justify-content: space-between;
    gap: 1rem;
}

.faq-premium-list summary svg {
    color: var(--blue);
    height: 1rem;
    width: 1rem;
}

.faq-premium-list p {
    color: rgb(7 17 31 / .62);
    line-height: 1.7;
    margin-top: 1rem;
    max-width: 44rem;
}

.eyebrow,
.eyebrow-dark {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.eyebrow { color: #22C07A; }
.eyebrow-dark { color: #0071BC; }

.btn-primary,
.btn-secondary {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: .95rem;
    font-weight: 700;
    min-height: 3.25rem;
    padding: .9rem 1.35rem;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.btn-primary svg,
.btn-secondary svg {
    height: 1rem;
    margin-left: .5rem;
    width: 1rem;
}

.btn-primary {
    background: linear-gradient(135deg, #BBF7D0, var(--life));
    box-shadow: 0 16px 34px rgb(34 192 122 / .3);
    color: var(--navy);
}

.btn-secondary {
    border: 1px solid rgb(255 255 255 / .36);
    color: white;
}

.btn-primary:hover,
.btn-secondary:hover {
    transform: translateY(-2px);
}

.glass-panel {
    border: 1px solid rgb(255 255 255 / .2);
    border-radius: 1.5rem;
    background: rgb(255 255 255 / .12);
    box-shadow: 0 16px 44px rgb(0 0 0 / .2);
    padding: 1.25rem;
    backdrop-filter: blur(18px);
}

.metric {
    border-radius: 1.1rem;
    background: rgb(255 255 255 / .9);
    min-height: 150px;
    padding: 1.25rem;
}

.metric span {
    display: block;
    font-size: clamp(2rem, 5vw, 3.8rem);
    font-weight: 700;
    line-height: 1;
}

.metric small {
    color: rgb(16 24 32 / .62);
    display: block;
    margin-top: .75rem;
}

.section {
    margin: 0 auto;
    max-width: 80rem;
    padding: 5rem 1.25rem;
}

.section-heading {
    margin: 0 auto 2rem;
    max-width: 46rem;
    text-align: center;
}

.section-heading h2,
.section-title,
.page-hero h1 {
    font-size: clamp(2.25rem, 5vw, 4.3rem);
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.05;
}

.page-hero {
    margin: 0 auto;
    max-width: 80rem;
    padding: 5rem 1.25rem 3rem;
}

.page-hero p:last-child {
    color: rgb(16 24 32 / .65);
    font-size: 1.1rem;
    line-height: 1.8;
    margin-top: 1.2rem;
    max-width: 48rem;
}

.premium-card {
    background: white;
    border: 1px solid rgb(16 24 32 / .08);
    border-radius: 1rem;
    box-shadow: 0 12px 34px rgb(16 24 32 / .07);
    padding: 1.5rem;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.premium-card:hover {
    border-color: rgb(66 88 114 / .2);
    box-shadow: 0 14px 40px rgb(66 88 114 / .12);
    transform: translateY(-4px);
}

.premium-card h3 {
    font-size: 1.2rem;
    font-weight: 700;
    margin-top: 1rem;
}

.premium-card p {
    color: rgb(16 24 32 / .62);
    line-height: 1.7;
    margin-top: .75rem;
}

.horizontal-card {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
}

.horizontal-card h3 {
    margin-top: 0;
}

.icon-pill {
    align-items: center;
    background: linear-gradient(135deg, var(--blue-soft), #eef4f6);
    border-radius: 999px;
    color: var(--premium-blue);
    display: inline-flex;
    font-size: .8rem;
    font-weight: 700;
    height: 3rem;
    justify-content: center;
    min-width: 3rem;
    padding: 0 .75rem;
}

.icon-pill svg {
    height: 1.15rem;
    width: 1.15rem;
}

.partner-tile {
    background: linear-gradient(135deg, var(--navy), var(--premium-blue));
    border-radius: 1rem;
    color: white;
    min-height: 120px;
    padding: 1.25rem;
}

.trust-band {
    background:
        radial-gradient(circle at 16% 15%, rgb(34 192 122 / .22), transparent 32%),
        linear-gradient(135deg, var(--navy), var(--premium-blue) 48%, #075E4E);
    color: white;
}

.trust-band h2 {
    font-size: clamp(2.2rem, 4vw, 4rem);
    font-weight: 700;
    line-height: 1.06;
    margin-top: 1rem;
}

.trust-band p {
    color: rgb(255 255 255 / .68);
    line-height: 1.75;
    margin-top: 1rem;
}

.benefit-card {
    border: 1px solid rgb(255 255 255 / .16);
    border-radius: 1rem;
    background: rgb(255 255 255 / .1);
    min-height: 210px;
    padding: 1.25rem;
    backdrop-filter: blur(16px);
}

.benefit-card span {
    background: var(--life);
    border-radius: 999px;
    display: block;
    height: .45rem;
    width: 2.5rem;
}

.benefit-card h3 {
    font-size: 1.05rem;
    font-weight: 700;
    margin-top: 1.8rem;
}

.partner-tile.large {
    min-height: 180px;
}

.partner-tile strong {
    display: block;
    font-size: 1.8rem;
    line-height: 1;
}

.partner-tile span {
    color: rgb(255 255 255 / .62);
    display: block;
    margin-top: .8rem;
}

.faq-item {
    background: white;
    border: 1px solid rgb(16 24 32 / .08);
    border-radius: 1rem;
    padding: 1.25rem 1.5rem;
}

.faq-item summary {
    cursor: pointer;
    font-weight: 700;
}

.faq-item p {
    color: rgb(16 24 32 / .62);
    line-height: 1.7;
    margin-top: 1rem;
}

.field {
    border: 1px solid rgb(16 24 32 / .12);
    border-radius: .9rem;
    outline: none;
    padding: .95rem 1rem;
    width: 100%;
}

.field:focus {
    border-color: #0071BC;
    box-shadow: 0 0 0 4px rgb(14 90 88 / .12);
}

@media (max-width: 720px) {
    .hero-band {
        min-height: auto;
    }

    .section,
    .page-hero {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}

@media (max-width: 1100px) {
    .home-hero,
    .decision-band,
    .partner-showcase,
    .split-heading {
        grid-template-columns: 1fr;
    }

    .home-hero {
        min-height: auto;
        padding-top: 4.7rem;
    }

    .hero-image-overlay {
        background: rgb(7 17 31 / .58);
    }

    .quote-console {
        max-width: 560px;
    }

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

    .decision-steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .decision-steps article {
        grid-template-columns: 1fr;
    }

    .decision-steps p {
        grid-column: auto;
        margin-top: 0;
    }
}

@media (max-width: 760px) {
    .home-hero {
        gap: 2rem;
        padding: 3.7rem 1rem 3.2rem;
    }

    .hero-copy h1 {
        font-size: clamp(2rem, 8.4vw, 2.75rem);
        max-width: 15ch;
    }

    .hero-actions,
    .trust-row {
        grid-template-columns: 1fr;
    }

    .hero-actions a {
        justify-content: center;
        width: 100%;
    }

    .hero-slider-tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-top: 1.35rem;
    }

    .hero-slider-tabs button {
        min-height: 3.8rem;
        padding: .75rem;
    }

    .quote-console {
        border-radius: 1.35rem;
        padding: .8rem;
    }

    .console-list div {
        grid-template-columns: auto 1fr;
    }

    .console-list strong {
        grid-column: 2;
    }

    .hero-slide {
        inset: -6%;
    }

    .brand-strip {
        grid-template-columns: 1fr 1fr;
    }

    .home-section,
    .decision-band {
        padding-bottom: 4.3rem;
        padding-top: 4.3rem;
    }

    .service-grid,
    .decision-steps,
    .partner-grid-premium {
        grid-template-columns: 1fr;
    }

    .service-card {
        min-height: 300px;
    }

    .partner-grid-premium article {
        min-height: 160px;
    }
}

@media (max-width: 480px) {
    .brand-strip {
        grid-template-columns: 1fr;
    }

    .protection-score {
        min-height: 210px;
    }

    .console-top,
    .console-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .console-footer strong {
        text-align: left;
    }
}

.site-footer {
    background: #0071BC;
    color: white;
    overflow: hidden;
    position: relative;
}

.site-footer::before {
    background:
        linear-gradient(rgb(255 255 255 / .04) 1px, transparent 1px),
        linear-gradient(90deg, rgb(255 255 255 / .035) 1px, transparent 1px);
    background-size: 64px 64px;
    content: "";
    inset: 0;
    mask-image: linear-gradient(180deg, black, transparent 78%);
    pointer-events: none;
    position: absolute;
}

.footer-cta,
.footer-main,
.footer-bottom {
    margin: 0 auto;
    max-width: 82rem;
    position: relative;
    z-index: 1;
}

.footer-cta {
    align-items: center;
    border-bottom: 1px solid rgb(255 255 255 / .1);
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 4.8rem 1.25rem 3rem;
}

.footer-kicker {
    color: var(--life);
    display: block;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .12em;
    margin-bottom: 1rem;
    text-transform: uppercase;
}

.footer-cta h2 {
    font-size: clamp(2rem, 4vw, 4.1rem);
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.04;
    max-width: 13ch;
}

.footer-cta p {
    color: rgb(248 250 252 / .66);
    line-height: 1.75;
    margin-top: 1.2rem;
    max-width: 42rem;
}

.footer-cta-button {
    align-items: center;
    background: linear-gradient(135deg, #BBF7D0, var(--life));
    border-radius: 999px;
    box-shadow: 0 12px 32px rgb(34 192 122 / .24);
    color: var(--navy);
    display: inline-flex;
    font-weight: 700;
    gap: .55rem;
    min-height: 3.75rem;
    padding: 1rem 1.55rem;
    transition: transform .22s ease, box-shadow .22s ease;
    white-space: nowrap;
}

.footer-cta-button:hover {
    box-shadow: 0 14px 38px rgb(34 192 122 / .34);
    transform: translateY(-2px);
}

.footer-cta-button svg {
    height: 1rem;
    width: 1rem;
}

.footer-main {
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(260px, 1.35fr) .7fr .78fr 1fr;
    padding: 3.3rem 1.25rem;
}

.footer-logo {
    align-items: center;
    color: white;
    display: inline-flex;
    gap: .85rem;
}

.footer-logo span {
    align-items: center;
    background: rgb(255 255 255 / .1);
    border: 1px solid rgb(255 255 255 / .14);
    border-radius: 999px;
    box-shadow: 0 14px 36px rgb(0 0 0 / .22);
    display: inline-flex;
    font-size: .88rem;
    font-weight: 700;
    height: 3rem;
    justify-content: center;
    width: 3rem;
}

.footer-logo strong {
    font-size: 1.25rem;
}

.footer-brand p {
    color: rgb(248 250 252 / .62);
    line-height: 1.75;
    margin-top: 1.25rem;
    max-width: 26rem;
}

.footer-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.4rem;
}

.footer-badges span {
    align-items: center;
    background: rgb(255 255 255 / .08);
    border: 1px solid rgb(255 255 255 / .11);
    border-radius: 999px;
    color: rgb(248 250 252 / .76);
    display: inline-flex;
    font-size: .82rem;
    font-weight: 700;
    gap: .45rem;
    padding: .58rem .8rem;
}

.footer-badges svg,
.footer-contact svg {
    color: var(--life);
    height: 1rem;
    width: 1rem;
}

.footer-links h3,
.footer-contact h3 {
    color: white;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .12em;
    margin-bottom: 1rem;
    text-transform: uppercase;
}

.footer-links a,
.footer-contact a,
.footer-contact p {
    align-items: center;
    color: rgb(248 250 252 / .62);
    display: flex;
    font-size: .94rem;
    gap: .55rem;
    line-height: 1.55;
    margin-top: .72rem;
    transition: color .2s ease, transform .2s ease;
}

.footer-links a:hover,
.footer-contact a:hover {
    color: white;
    transform: translateX(3px);
}

.footer-bottom {
    align-items: center;
    border-top: 1px solid rgb(255 255 255 / .1);
    color: rgb(248 250 252 / .48);
    display: flex;
    font-size: .82rem;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem;
}

@media (max-width: 980px) {
    .footer-cta,
    .footer-main {
        grid-template-columns: 1fr;
    }

    .footer-cta-button {
        justify-content: center;
        width: fit-content;
    }

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

    .footer-brand {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .footer-cta {
        padding-top: 3.8rem;
    }

    .footer-cta-button {
        width: 100%;
    }

    .footer-main {
        grid-template-columns: 1fr;
    }

    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
    }
}

.contact-hero {
    align-items: end;
    background:
        linear-gradient(rgb(7 17 31 / .5), rgb(7 17 31 / .5)),
        url('../img/covers/contact-hero.webp');
    background-position: center;
    background-size: cover;
    color: white;
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1fr) 320px;
    margin: 0 auto;
    max-width: none;
    padding: 5.5rem max(1.25rem, calc((100vw - 82rem) / 2)) 4.2rem;
    position: relative;
    overflow: hidden;
}

.contact-hero::before {
    background:
        linear-gradient(rgb(255 255 255 / .04) 1px, transparent 1px),
        linear-gradient(90deg, rgb(255 255 255 / .035) 1px, transparent 1px);
    background-size: 64px 64px;
    content: "";
    inset: 0;
    mask-image: linear-gradient(180deg, black, transparent 80%);
    pointer-events: none;
    position: absolute;
}

.contact-hero > * {
    animation: faqFadeUp .72s ease backwards;
    position: relative;
    z-index: 1;
}

.contact-hero > *:last-child {
    animation-delay: .12s;
}

.contact-hero h1 {
    font-size: clamp(2.35rem, 4vw, 4.4rem);
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.03;
    margin-top: 1rem;
    max-width: 13ch;
}

.contact-hero p {
    color: rgb(248 250 252 / .68);
    font-size: 1.05rem;
    line-height: 1.75;
    margin-top: 1.25rem;
    max-width: 44rem;
}

.contact-hero-card {
    animation: faqFadeUp .72s ease .12s backwards, faqFloat 5.8s ease-in-out 1.1s infinite;
    background: rgb(255 255 255 / .1);
    border: 1px solid rgb(255 255 255 / .16);
    border-radius: 1.35rem;
    box-shadow: 0 16px 44px rgb(0 0 0 / .28);
    padding: 1.25rem;
    backdrop-filter: blur(20px);
}

.contact-hero-card span {
    align-items: center;
    color: var(--life);
    display: flex;
    font-size: .78rem;
    font-weight: 700;
    gap: .45rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contact-hero-card svg {
    height: 1rem;
    width: 1rem;
}

.contact-hero-card strong {
    display: block;
    font-size: 2.5rem;
    line-height: 1;
    margin-top: 1.1rem;
}

.contact-hero-card p {
    color: rgb(248 250 252 / .62);
    font-size: .92rem;
    line-height: 1.6;
    margin-top: .8rem;
}

.contact-section {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: .78fr 1.22fr;
    margin: 0 auto;
    max-width: 82rem;
    padding: 5rem 1.25rem;
}

.contact-aside {
    display: grid;
    gap: 1.25rem;
}

.contact-panel,
.contact-info-card,
.contact-form {
    border-radius: 1.35rem;
    box-shadow: 0 14px 40px rgb(7 17 31 / .09);
}

.contact-panel {
    animation: faqFadeUp .72s ease backwards;
    background:
        linear-gradient(145deg, rgb(7 17 31 / .98), rgb(18 60 105 / .93));
    color: white;
    padding: 1.55rem;
    transition: box-shadow .25s ease, transform .25s ease;
}

.contact-panel:hover {
    box-shadow: 0 14px 40px rgb(66 88 114 / .14);
    transform: translateY(-3px);
}

.panel-label,
.form-head span {
    color: var(--life);
    display: block;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.contact-panel h2 {
    font-size: clamp(1.65rem, 3vw, 2.35rem);
    font-weight: 700;
    line-height: 1.08;
    margin-top: .9rem;
}

.contact-panel p {
    color: rgb(248 250 252 / .64);
    line-height: 1.7;
    margin-top: 1rem;
}

.contact-steps {
    display: grid;
    gap: .85rem;
    margin-top: 1.35rem;
}

.contact-steps div {
    background: rgb(255 255 255 / .08);
    border: 1px solid rgb(255 255 255 / .12);
    border-radius: 1rem;
    padding: 1rem;
    transition: background .22s ease, border-color .22s ease, transform .22s ease;
}

.contact-steps div:hover {
    background: rgb(255 255 255 / .12);
    border-color: rgb(34 192 122 / .28);
    transform: translateX(4px);
}

.contact-steps span {
    color: var(--life);
    display: block;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .1em;
}

.contact-steps strong {
    display: block;
    margin-top: .45rem;
}

.contact-steps small {
    color: rgb(248 250 252 / .56);
    display: block;
    line-height: 1.5;
    margin-top: .25rem;
}

.contact-info-card {
    animation: faqFadeUp .72s ease .08s backwards;
    background: white;
    border: 1px solid rgb(7 17 31 / .08);
    padding: 1.35rem;
    transition: box-shadow .25s ease, transform .25s ease;
}

.contact-info-card:hover {
    box-shadow: 0 14px 40px rgb(7 17 31 / .12);
    transform: translateY(-3px);
}

.contact-info-card h3 {
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: .9rem;
}

.contact-info-card a,
.contact-info-card p {
    align-items: center;
    color: rgb(7 17 31 / .66);
    display: flex;
    gap: .6rem;
    line-height: 1.55;
    margin-top: .8rem;
    transition: color .2s ease, transform .2s ease;
}

.contact-info-card a:hover {
    color: var(--blue);
    transform: translateX(4px);
}

.contact-info-card svg {
    color: var(--premium-blue);
    height: 1rem;
    min-width: 1rem;
    width: 1rem;
}

.contact-form {
    animation: faqFadeUp .72s ease .14s backwards;
    background:
        linear-gradient(180deg, white, #f7f9fc);
    border: 1px solid rgb(7 17 31 / .08);
    padding: clamp(1.35rem, 3vw, 2rem);
    transition: box-shadow .25s ease, transform .25s ease;
}

.contact-form:hover {
    box-shadow: 0 14px 40px rgb(66 88 114 / .12);
    transform: translateY(-2px);
}

.form-head {
    border-bottom: 1px solid rgb(7 17 31 / .08);
    margin-bottom: 1.4rem;
    padding-bottom: 1.2rem;
}

.form-head h2 {
    font-size: clamp(1.85rem, 3vw, 2.6rem);
    font-weight: 700;
    line-height: 1.05;
    margin-top: .45rem;
}

.form-head p {
    color: rgb(7 17 31 / .58);
    line-height: 1.65;
    margin-top: .65rem;
    max-width: 42rem;
}

.form-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contact-form label {
    animation: faqFadeUp .58s ease backwards;
    display: grid;
    gap: .5rem;
    margin-top: 1rem;
}

.contact-form label:nth-of-type(2),
.form-grid:nth-of-type(2) label:first-child {
    animation-delay: .04s;
}

.form-grid:nth-of-type(2) label:last-child {
    animation-delay: .08s;
}

.contact-form label > span {
    color: rgb(7 17 31 / .74);
    font-size: .86rem;
    font-weight: 700;
}

.contact-form .field {
    background: white;
    border-color: rgb(7 17 31 / .12);
    border-radius: 1rem;
    min-height: 3.25rem;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.contact-form .field:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 4px rgb(66 88 114 / .12);
    transform: translateY(-1px);
}

.contact-message {
    min-height: 9.5rem;
    resize: vertical;
}

.form-actions {
    animation: faqFadeUp .6s ease .12s backwards;
    align-items: center;
    display: grid;
    gap: 1rem;
    grid-template-columns: auto 1fr;
    margin-top: 1.35rem;
}

.contact-submit {
    border: 0;
    cursor: pointer;
    justify-content: center;
    min-width: 220px;
}

.contact-submit:hover {
    box-shadow: 0 14px 36px rgb(34 192 122 / .28);
}

.form-actions p {
    align-items: center;
    color: rgb(7 17 31 / .52);
    display: flex;
    font-size: .86rem;
    gap: .45rem;
    line-height: 1.5;
}

.form-actions svg {
    height: 1rem;
    min-width: 1rem;
    width: 1rem;
}

@media (max-width: 980px) {
    .contact-hero,
    .contact-section {
        grid-template-columns: 1fr;
    }

    .contact-hero-card {
        max-width: 420px;
    }
}

@media (max-width: 680px) {
    .contact-hero {
        padding-top: 4rem;
    }

    .contact-hero h1 {
        font-size: clamp(2rem, 10vw, 3rem);
    }

    .contact-section {
        padding-top: 3.5rem;
    }

    .form-grid,
    .form-actions {
        grid-template-columns: 1fr;
    }

    .contact-submit {
        width: 100%;
    }
}

.faq-hero {
    align-items: center;
    background:
        linear-gradient(rgb(7 17 31 / .5), rgb(7 17 31 / .5)),
        url('../img/covers/faq-hero.webp');
    background-position: center;
    background-size: cover;
    color: white;
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1fr) 340px;
    padding: 5.5rem max(1.25rem, calc((100vw - 82rem) / 2)) 4.5rem;
    position: relative;
    overflow: hidden;
}

.faq-hero::before {
    background:
        linear-gradient(rgb(255 255 255 / .04) 1px, transparent 1px),
        linear-gradient(90deg, rgb(255 255 255 / .035) 1px, transparent 1px);
    background-size: 64px 64px;
    content: "";
    inset: 0;
    mask-image: linear-gradient(180deg, black, transparent 82%);
    pointer-events: none;
    position: absolute;
}

.faq-hero > * {
    animation: faqFadeUp .72s ease backwards;
    position: relative;
    z-index: 1;
}

.faq-hero > *:last-child {
    animation-delay: .12s;
}

.faq-hero h1 {
    font-size: clamp(2.25rem, 4vw, 4.15rem);
    font-weight: 700;
    line-height: 1.04;
    margin-top: 1rem;
    max-width: 14ch;
}

.faq-hero p {
    color: rgb(248 250 252 / .68);
    font-size: 1.05rem;
    line-height: 1.75;
    margin-top: 1.2rem;
    max-width: 44rem;
}

.faq-hero-card {
    animation: faqFadeUp .72s ease .12s backwards, faqFloat 5.8s ease-in-out 1.1s infinite;
    background: rgb(255 255 255 / .1);
    border: 1px solid rgb(255 255 255 / .16);
    border-radius: 1.45rem;
    box-shadow: 0 16px 44px rgb(0 0 0 / .28);
    min-height: 220px;
    padding: 1.35rem;
    backdrop-filter: blur(20px);
}

.faq-hero-card i,
.faq-hero-card svg {
    color: var(--life);
    height: 2rem;
    width: 2rem;
}

.faq-hero-card strong {
    display: block;
    font-size: 1.6rem;
    line-height: 1.1;
    margin-top: 4rem;
}

.faq-hero-card span {
    color: rgb(248 250 252 / .62);
    display: block;
    line-height: 1.6;
    margin-top: .8rem;
}

.faq-categories {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: -2.2rem auto 0;
    max-width: 82rem;
    padding: 0 1.25rem;
    position: relative;
    z-index: 2;
}

.faq-categories article {
    animation: faqFadeUp .64s ease backwards;
    background: white;
    border: 1px solid rgb(7 17 31 / .08);
    border-radius: 1.25rem;
    box-shadow: 0 12px 36px rgb(7 17 31 / .1);
    padding: 1.25rem;
    transition: box-shadow .25s ease, transform .25s ease;
}

.faq-categories article:nth-child(2) {
    animation-delay: .08s;
}

.faq-categories article:nth-child(3) {
    animation-delay: .16s;
}

.faq-categories article:hover {
    box-shadow: 0 14px 40px rgb(7 17 31 / .13);
    transform: translateY(-4px);
}

.faq-categories svg {
    background: var(--navy);
    border-radius: .9rem;
    color: var(--life);
    height: 3rem;
    padding: .78rem;
    width: 3rem;
}

.faq-categories h2 {
    font-size: 1.1rem;
    font-weight: 700;
    margin-top: 1rem;
}

.faq-categories p {
    color: rgb(7 17 31 / .58);
    line-height: 1.6;
    margin-top: .4rem;
}

.faq-section {
    margin: 0 auto;
    max-width: 82rem;
    padding: 5rem 1.25rem;
}

.faq-layout {
    align-items: start;
    display: grid;
    gap: 1.35rem;
    grid-template-columns: .72fr 1.28fr;
}

.faq-sidebar {
    animation: faqFadeUp .72s ease backwards;
    background:
        linear-gradient(145deg, rgb(7 17 31 / .98), rgb(18 60 105 / .92));
    border-radius: 1.35rem;
    box-shadow: 0 14px 40px rgb(7 17 31 / .12);
    color: white;
    padding: 1.55rem;
    position: sticky;
    top: 6rem;
}

.faq-sidebar span {
    color: var(--life);
    display: block;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.faq-sidebar h2 {
    font-size: clamp(1.6rem, 2.5vw, 2.25rem);
    font-weight: 700;
    line-height: 1.08;
    margin-top: .9rem;
}

.faq-sidebar p {
    color: rgb(248 250 252 / .62);
    line-height: 1.7;
    margin-top: 1rem;
}

.faq-sidebar a {
    align-items: center;
    color: var(--life);
    display: inline-flex;
    font-weight: 700;
    gap: .45rem;
    margin-top: 1.4rem;
    transition: color .2s ease, transform .2s ease;
}

.faq-sidebar a:hover {
    color: #BBF7D0;
    transform: translateX(4px);
}

.faq-sidebar a svg {
    height: 1rem;
    width: 1rem;
}

.faq-accordion {
    display: grid;
    gap: .9rem;
}

.faq-accordion details {
    animation: faqFadeUp .6s ease backwards;
    background: white;
    border: 1px solid rgb(7 17 31 / .08);
    border-radius: 1.15rem;
    box-shadow: 0 16px 44px rgb(7 17 31 / .06);
    overflow: hidden;
    transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}

.faq-accordion details:nth-child(2) {
    animation-delay: .06s;
}

.faq-accordion details:nth-child(3) {
    animation-delay: .12s;
}

.faq-accordion details:nth-child(4) {
    animation-delay: .18s;
}

.faq-accordion details:hover,
.faq-accordion details[open] {
    border-color: rgb(66 88 114 / .18);
    box-shadow: 0 12px 34px rgb(66 88 114 / .1);
    transform: translateY(-2px);
}

.faq-accordion summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    list-style: none;
    padding: 1.25rem 1.35rem;
    transition: background .2s ease;
}

.faq-accordion details[open] summary {
    background: linear-gradient(180deg, #fff, #f8fafc);
}

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

.faq-accordion summary span {
    font-size: 1.02rem;
    font-weight: 700;
}

.faq-accordion summary svg {
    color: var(--blue);
    height: 1rem;
    min-width: 1rem;
    transition: transform .2s ease;
    width: 1rem;
}

.faq-accordion details[open] summary svg {
    transform: rotate(45deg);
}

.faq-accordion p {
    animation: faqReveal .26s ease both;
    border-top: 1px solid rgb(7 17 31 / .08);
    color: rgb(7 17 31 / .62);
    line-height: 1.75;
    padding: 1.15rem 1.35rem 1.3rem;
}

@keyframes faqFadeUp {
    from {
        opacity: 0;
        transform: translateY(18px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes faqReveal {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes faqFloat {
    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-8px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .faq-hero > *,
    .faq-hero-card,
    .faq-categories article,
    .faq-sidebar,
    .faq-accordion details,
    .faq-accordion p,
    .contact-hero > *,
    .contact-hero-card,
    .contact-panel,
    .contact-steps div,
    .contact-info-card,
    .contact-form,
    .contact-form label,
    .form-actions {
        animation: none;
        transition: none;
    }
}

.faq-cta {
    align-items: center;
    background:
        radial-gradient(circle at 85% 10%, rgb(34 192 122 / .2), transparent 22rem),
        linear-gradient(135deg, var(--navy), var(--premium-blue));
    color: white;
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr auto;
    margin: 0 auto 5rem;
    max-width: 82rem;
    padding: 2rem;
    border-radius: 1.5rem;
}

.faq-cta h2 {
    font-size: clamp(1.8rem, 3vw, 3rem);
    font-weight: 700;
    line-height: 1.05;
    margin-top: .5rem;
}

.faq-cta p:last-child {
    color: rgb(248 250 252 / .66);
    line-height: 1.7;
    margin-top: .65rem;
}

@media (max-width: 980px) {
    .faq-hero,
    .faq-layout,
    .faq-cta {
        grid-template-columns: 1fr;
    }

    .faq-hero-card {
        max-width: 420px;
    }

    .faq-sidebar {
        position: static;
    }
}

@media (max-width: 720px) {
    .faq-hero {
        padding-top: 4rem;
    }

    .faq-categories {
        grid-template-columns: 1fr;
    }

    .faq-cta {
        border-radius: 0;
        margin-bottom: 0;
    }
}

.partners-hero {
    align-items: center;
    background:
        linear-gradient(rgb(7 17 31 / .5), rgb(7 17 31 / .5)),
        url('../img/covers/partners-hero.webp');
    background-position: center;
    background-size: cover;
    color: white;
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1fr) 330px;
    padding: 5.5rem max(1.25rem, calc((100vw - 82rem) / 2)) 4.5rem;
    position: relative;
    overflow: hidden;
}

.partners-hero::before {
    background:
        linear-gradient(rgb(255 255 255 / .04) 1px, transparent 1px),
        linear-gradient(90deg, rgb(255 255 255 / .035) 1px, transparent 1px);
    background-size: 64px 64px;
    content: "";
    inset: 0;
    mask-image: linear-gradient(180deg, black, transparent 82%);
    pointer-events: none;
    position: absolute;
}

.partners-hero > * {
    position: relative;
    z-index: 1;
}

.partners-hero h1 {
    font-size: clamp(2.25rem, 4vw, 4.1rem);
    font-weight: 700;
    line-height: 1.04;
    margin-top: 1rem;
    max-width: 14ch;
}

.partners-hero p {
    color: rgb(248 250 252 / .68);
    font-size: 1.05rem;
    line-height: 1.75;
    margin-top: 1.2rem;
    max-width: 46rem;
}

.partners-hero-card {
    background: rgb(255 255 255 / .1);
    border: 1px solid rgb(255 255 255 / .16);
    border-radius: 1.45rem;
    box-shadow: 0 16px 44px rgb(0 0 0 / .28);
    min-height: 230px;
    padding: 1.35rem;
    backdrop-filter: blur(20px);
}

.partners-hero-card svg {
    color: var(--life);
    height: 2rem;
    width: 2rem;
}

.partners-hero-card strong {
    display: block;
    font-size: 4rem;
    line-height: .9;
    margin-top: 3.4rem;
}

.partners-hero-card span {
    color: rgb(248 250 252 / .62);
    display: block;
    line-height: 1.55;
    margin-top: .85rem;
}

.partners-intro {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: -2.2rem auto 0;
    max-width: 82rem;
    padding: 0 1.25rem;
    position: relative;
    z-index: 2;
}

.partners-intro article {
    background: white;
    border: 1px solid rgb(7 17 31 / .08);
    border-radius: 1.25rem;
    box-shadow: 0 12px 36px rgb(7 17 31 / .1);
    padding: 1.25rem;
}

.partners-intro svg {
    background: var(--navy);
    border-radius: .9rem;
    color: var(--life);
    height: 3rem;
    padding: .78rem;
    width: 3rem;
}

.partners-intro h2 {
    font-size: 1.08rem;
    font-weight: 700;
    margin-top: 1rem;
}

.partners-intro p {
    color: rgb(7 17 31 / .58);
    line-height: 1.6;
    margin-top: .4rem;
}

.partners-section {
    margin: 0 auto;
    max-width: 82rem;
    padding: 5rem 1.25rem;
}

.partners-heading {
    align-items: end;
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr minmax(280px, .45fr);
    margin-bottom: 2rem;
}

.partners-heading h2 {
    font-size: clamp(2.05rem, 3.9vw, 3.9rem);
    font-weight: 700;
    line-height: 1.05;
    margin-top: .75rem;
}

.partners-heading > p {
    color: rgb(7 17 31 / .62);
    line-height: 1.75;
}

.partners-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
}

.partner-card-pro {
    background:
        linear-gradient(180deg, white, #f4f7fb);
    border: 1px solid rgb(7 17 31 / .08);
    border-radius: 1.35rem;
    box-shadow: 0 14px 40px rgb(7 17 31 / .08);
    display: flex;
    flex-direction: column;
    min-height: 330px;
    overflow: hidden;
    padding: 1.25rem;
    position: relative;
}

.partner-card-pro::after {
    background: linear-gradient(135deg, rgb(66 88 114 / .16), transparent 46%, rgb(34 192 122 / .2));
    content: "";
    height: 11rem;
    position: absolute;
    right: -4rem;
    top: -4rem;
    transform: rotate(12deg);
    width: 11rem;
}

.partner-card-top {
    align-items: center;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    position: relative;
    z-index: 1;
}

.partner-logo-mark {
    align-items: center;
    background: var(--navy);
    border-radius: 1rem;
    color: white;
    display: inline-flex;
    font-size: .82rem;
    font-weight: 700;
    height: 3.25rem;
    justify-content: center;
    letter-spacing: .02em;
    min-width: 3.25rem;
    padding: 0 .8rem;
}

.partner-card-top span {
    background: rgb(0 169 157 / .1);
    border: 1px solid rgb(0 169 157 / .2);
    border-radius: 999px;
    color: #047857;
    font-size: .75rem;
    font-weight: 700;
    padding: .4rem .65rem;
}

.partner-card-pro h3 {
    font-size: 1.6rem;
    font-weight: 700;
    margin-top: 1.7rem;
    position: relative;
    z-index: 1;
}

.partner-card-pro p {
    color: rgb(7 17 31 / .62);
    line-height: 1.65;
    margin-top: .85rem;
    position: relative;
    z-index: 1;
}

.partner-card-meta {
    display: grid;
    gap: .55rem;
    margin-top: auto;
    padding-top: 1.25rem;
    z-index: 1;
}

.partner-card-meta span {
    align-items: center;
    color: rgb(7 17 31 / .58);
    display: inline-flex;
    font-size: .82rem;
    font-weight: 700;
    gap: .45rem;
}

.partner-card-meta svg {
    color: var(--premium-blue);
    height: .95rem;
    width: .95rem;
}

.partners-criteria {
    background:
        linear-gradient(rgb(5 58 92 / .74), rgb(5 58 92 / .74)),
        url('../img/covers/partners-criteria.webp');
    background-attachment: fixed;
    background-color: var(--navy);
    background-position: center;
    background-size: cover;
    color: white;
    display: grid;
    gap: 2rem;
    grid-template-columns: .9fr 1.1fr;
    padding: 5rem max(1.25rem, calc((100vw - 82rem) / 2));
}

@media (max-width: 768px) {
    .partners-criteria {
        background-attachment: scroll;
    }
}

.partners-criteria h2 {
    font-size: clamp(2rem, 3.7vw, 3.7rem);
    font-weight: 700;
    line-height: 1.05;
    margin-top: .75rem;
}

.criteria-list {
    display: grid;
    gap: 1rem;
}

.criteria-list div {
    background: rgb(255 255 255 / .08);
    border: 1px solid rgb(255 255 255 / .13);
    border-radius: 1.2rem;
    padding: 1.2rem;
    backdrop-filter: blur(16px);
}

.criteria-list span {
    color: var(--life);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.criteria-list strong {
    display: block;
    font-size: 1.1rem;
    margin-top: .45rem;
}

.criteria-list p {
    color: rgb(248 250 252 / .64);
    line-height: 1.65;
    margin-top: .35rem;
}

.partners-cta {
    align-items: center;
    background: white;
    border: 1px solid rgb(7 17 31 / .08);
    border-radius: 1.5rem;
    box-shadow: 0 14px 40px rgb(7 17 31 / .08);
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr auto;
    margin: 5rem auto;
    max-width: 82rem;
    padding: 2rem;
}

.partners-cta h2 {
    font-size: clamp(1.7rem, 3vw, 2.8rem);
    font-weight: 700;
    line-height: 1.05;
}

.partners-cta p {
    color: rgb(7 17 31 / .62);
    line-height: 1.7;
    margin-top: .65rem;
}

@media (max-width: 1100px) {
    .partners-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .partners-hero,
    .partners-heading,
    .partners-criteria,
    .partners-cta {
        grid-template-columns: 1fr;
    }

    .partners-hero-card {
        max-width: 420px;
    }
}

@media (max-width: 720px) {
    .partners-hero {
        padding-top: 4rem;
    }

    .partners-intro,
    .partners-grid {
        grid-template-columns: 1fr;
    }

    .partners-cta {
        border-radius: 0;
        margin-bottom: 0;
    }
}

.services-hero {
    align-items: center;
    background:
        linear-gradient(rgb(7 17 31 / .5), rgb(7 17 31 / .5)),
        url('../img/covers/services-hero.webp');
    background-position: center;
    background-size: cover;
    color: white;
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1fr) 330px;
    padding: 5.5rem max(1.25rem, calc((100vw - 82rem) / 2)) 4.5rem;
    position: relative;
    overflow: hidden;
}

.services-hero::before {
    background:
        linear-gradient(rgb(255 255 255 / .04) 1px, transparent 1px),
        linear-gradient(90deg, rgb(255 255 255 / .035) 1px, transparent 1px);
    background-size: 64px 64px;
    content: "";
    inset: 0;
    mask-image: linear-gradient(180deg, black, transparent 82%);
    pointer-events: none;
    position: absolute;
}

.services-hero > * {
    position: relative;
    z-index: 1;
}

.services-hero h1 {
    font-size: clamp(2.25rem, 4vw, 4.1rem);
    font-weight: 700;
    line-height: 1.04;
    margin-top: 1rem;
    max-width: 13ch;
}

.services-hero p {
    color: rgb(248 250 252 / .68);
    font-size: 1.05rem;
    line-height: 1.75;
    margin-top: 1.2rem;
    max-width: 47rem;
}

.services-hero-card {
    background: rgb(255 255 255 / .1);
    border: 1px solid rgb(255 255 255 / .16);
    border-radius: 1.45rem;
    box-shadow: 0 16px 44px rgb(0 0 0 / .28);
    min-height: 230px;
    padding: 1.35rem;
    backdrop-filter: blur(20px);
}

.services-hero-card svg {
    color: var(--life);
    height: 2rem;
    width: 2rem;
}

.services-hero-card strong {
    display: block;
    font-size: 4rem;
    line-height: .9;
    margin-top: 3.4rem;
}

.services-hero-card span {
    color: rgb(248 250 252 / .62);
    display: block;
    line-height: 1.55;
    margin-top: .85rem;
}

.services-strip {
    background: var(--navy);
    color: rgb(248 250 252 / .7);
    display: grid;
    gap: 1px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.services-strip span {
    align-items: center;
    background: rgb(255 255 255 / .035);
    display: flex;
    font-size: .82rem;
    font-weight: 700;
    gap: .55rem;
    justify-content: center;
    letter-spacing: .08em;
    min-height: 4.25rem;
    padding: 1.2rem 1rem;
    text-align: center;
    text-transform: uppercase;
}

.services-strip svg {
    color: var(--life);
    height: 1rem;
    width: 1rem;
}

.services-section {
    margin: 0 auto;
    max-width: 82rem;
    padding: 5rem 1.25rem;
}

.services-heading {
    align-items: end;
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr minmax(280px, .45fr);
    margin-bottom: 2rem;
}

.services-heading h2 {
    font-size: clamp(2.05rem, 3.9vw, 3.9rem);
    font-weight: 700;
    line-height: 1.05;
    margin-top: .75rem;
}

.services-heading > p {
    color: rgb(7 17 31 / .62);
    line-height: 1.75;
}

.services-grid-pro {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.service-solution-card {
    background:
        linear-gradient(180deg, white, #f4f7fb);
    border: 1px solid rgb(7 17 31 / .08);
    border-radius: 1.35rem;
    box-shadow: 0 14px 40px rgb(7 17 31 / .08);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 1.35rem;
    position: relative;
    min-height: 390px;
}

.service-solution-card::after {
    background: linear-gradient(135deg, rgb(66 88 114 / .16), transparent 46%, rgb(34 192 122 / .2));
    content: "";
    height: 12rem;
    position: absolute;
    right: -4.5rem;
    top: -4.5rem;
    transform: rotate(12deg);
    width: 12rem;
}

.solution-top {
    align-items: center;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    position: relative;
    z-index: 1;
}

.solution-icon {
    align-items: center;
    background: var(--navy);
    border-radius: 1rem;
    color: var(--life);
    display: inline-flex;
    height: 3.25rem;
    justify-content: center;
    width: 3.25rem;
}

.solution-icon svg {
    height: 1.25rem;
    width: 1.25rem;
}

.solution-top span {
    color: var(--steel);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.service-solution-card h3 {
    font-size: clamp(1.45rem, 2.4vw, 2rem);
    font-weight: 700;
    line-height: 1.05;
    margin-top: 1.6rem;
    position: relative;
    z-index: 1;
}

.service-solution-card p {
    color: rgb(7 17 31 / .62);
    line-height: 1.7;
    margin-top: .8rem;
    position: relative;
    z-index: 1;
}

.service-solution-card ul {
    display: grid;
    gap: .55rem;
    list-style: none;
    margin: 1.25rem 0 0;
    padding: 0;
    position: relative;
    z-index: 1;
}

.service-solution-card li {
    align-items: center;
    color: rgb(7 17 31 / .66);
    display: flex;
    font-size: .92rem;
    font-weight: 700;
    gap: .5rem;
}

.service-solution-card li svg {
    color: var(--green);
    height: 1rem;
    width: 1rem;
}

.service-solution-card > a {
    align-items: center;
    align-self: flex-start;
    color: var(--premium-blue);
    display: inline-flex;
    font-weight: 700;
    gap: .45rem;
    margin-top: auto;
    padding-top: 1.25rem;
    z-index: 1;
}

.service-solution-card > a svg {
    height: 1rem;
    width: 1rem;
}

.services-process {
    background:
        radial-gradient(circle at 84% 12%, rgb(34 192 122 / .28), transparent 22rem),
        radial-gradient(circle at 12% 18%, rgb(66 88 114 / .28), transparent 26rem),
        linear-gradient(90deg, rgb(3 7 18 / .94) 0%, rgb(7 17 31 / .84) 50%, rgb(7 17 31 / .68) 100%),
        linear-gradient(180deg, rgb(3 7 18 / .22), rgb(3 7 18 / .88)),
        url('../img/covers/services-process.webp');
    background-attachment: fixed;
    background-position: center;
    background-size: cover;
    color: white;
    display: grid;
    gap: 2rem;
    grid-template-columns: .85fr 1.15fr;
    min-height: 520px;
    padding: 5rem max(1.25rem, calc((100vw - 82rem) / 2));
    position: relative;
    overflow: hidden;
}

.services-process::before {
    background:
        linear-gradient(rgb(255 255 255 / .04) 1px, transparent 1px),
        linear-gradient(90deg, rgb(255 255 255 / .035) 1px, transparent 1px);
    background-size: 64px 64px;
    content: "";
    inset: 0;
    mask-image: linear-gradient(180deg, black, transparent 86%);
    pointer-events: none;
    position: absolute;
}

.services-process > * {
    position: relative;
    z-index: 1;
}

.services-process h2 {
    font-size: clamp(2rem, 3.7vw, 3.7rem);
    font-weight: 700;
    line-height: 1.05;
    margin-top: .75rem;
}

.services-process > div > p:last-child {
    color: rgb(248 250 252 / .64);
    line-height: 1.7;
    margin-top: 1rem;
}

.process-cards {
    display: grid;
    gap: 1rem;
}

.process-cards article {
    background: rgb(255 255 255 / .08);
    border: 1px solid rgb(255 255 255 / .13);
    border-radius: 1.2rem;
    padding: 1.2rem;
    backdrop-filter: blur(16px);
}

.process-cards span {
    color: var(--life);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.process-cards h3 {
    font-size: 1.1rem;
    font-weight: 700;
    margin-top: .45rem;
}

.process-cards p {
    color: rgb(248 250 252 / .64);
    line-height: 1.65;
    margin-top: .35rem;
}

.services-cta {
    align-items: center;
    background: white;
    border: 1px solid rgb(7 17 31 / .08);
    border-radius: 1.5rem;
    box-shadow: 0 14px 40px rgb(7 17 31 / .08);
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr auto;
    margin: 5rem auto;
    max-width: 82rem;
    padding: 2rem;
}

.services-cta h2 {
    font-size: clamp(1.7rem, 3vw, 2.8rem);
    font-weight: 700;
    line-height: 1.05;
}

.services-cta p {
    color: rgb(7 17 31 / .62);
    line-height: 1.7;
    margin-top: .65rem;
}

@media (max-width: 980px) {
    .services-hero,
    .services-heading,
    .services-process,
    .services-cta {
        grid-template-columns: 1fr;
    }

    .services-hero-card {
        max-width: 420px;
    }
}

@media (max-width: 760px) {
    .services-hero {
        padding-top: 4rem;
    }

    .services-process {
        background-attachment: scroll;
        min-height: auto;
    }

    .services-strip,
    .services-grid-pro {
        grid-template-columns: 1fr;
    }

    .service-solution-card {
        min-height: 410px;
    }

    .services-cta {
        border-radius: 0;
        margin-bottom: 0;
    }
}

.about-hero {
    align-items: center;
    background:
        linear-gradient(rgb(7 17 31 / .5), rgb(7 17 31 / .5)),
        url('../img/covers/about-hero.webp');
    background-position: center;
    background-size: cover;
    color: white;
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1fr) 330px;
    padding: 5.5rem max(1.25rem, calc((100vw - 82rem) / 2)) 4.5rem;
    position: relative;
    overflow: hidden;
}

.about-hero::before {
    background:
        linear-gradient(rgb(255 255 255 / .04) 1px, transparent 1px),
        linear-gradient(90deg, rgb(255 255 255 / .035) 1px, transparent 1px);
    background-size: 64px 64px;
    content: "";
    inset: 0;
    mask-image: linear-gradient(180deg, black, transparent 82%);
    pointer-events: none;
    position: absolute;
}

.about-hero > * {
    position: relative;
    z-index: 1;
}

.about-hero h1 {
    font-size: clamp(2.25rem, 4vw, 4.1rem);
    font-weight: 700;
    line-height: 1.04;
    margin-top: 1rem;
    max-width: 14ch;
}

.about-hero p {
    color: rgb(248 250 252 / .68);
    font-size: 1.05rem;
    line-height: 1.75;
    margin-top: 1.2rem;
    max-width: 46rem;
}

.about-hero-card {
    background: rgb(255 255 255 / .1);
    border: 1px solid rgb(255 255 255 / .16);
    border-radius: 1.45rem;
    box-shadow: 0 16px 44px rgb(0 0 0 / .28);
    min-height: 230px;
    padding: 1.35rem;
    backdrop-filter: blur(20px);
}

.about-hero-card svg {
    color: var(--life);
    height: 2rem;
    width: 2rem;
}

.about-hero-card strong {
    display: block;
    font-size: 1.65rem;
    line-height: 1.1;
    margin-top: 4.2rem;
}

.about-hero-card span {
    color: rgb(248 250 252 / .62);
    display: block;
    line-height: 1.55;
    margin-top: .85rem;
}

.about-story {
    align-items: end;
    display: grid;
    gap: 2rem;
    grid-template-columns: 1.1fr .9fr;
    margin: 0 auto;
    max-width: 82rem;
    padding: 5rem 1.25rem 2rem;
}

.story-copy h2 {
    font-size: clamp(1.75rem, 2.85vw, 3rem);
    font-weight: 700;
    line-height: 1.08;
    margin-top: .75rem;
    max-width: 17ch;
}

.story-copy p:last-child {
    color: rgb(7 17 31 / .62);
    line-height: 1.75;
    margin-top: 1rem;
    max-width: 48rem;
}

.story-metrics {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.story-metrics div {
    background: white;
    border: 1px solid rgb(7 17 31 / .08);
    border-radius: 1.2rem;
    box-shadow: 0 12px 32px rgb(7 17 31 / .07);
    padding: 1.15rem;
}

.story-metrics strong {
    display: block;
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    line-height: 1;
}

.story-metrics span {
    color: rgb(7 17 31 / .58);
    display: block;
    font-size: .86rem;
    line-height: 1.4;
    margin-top: .6rem;
}

.about-values {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0 auto;
    max-width: 82rem;
    padding: 2rem 1.25rem 5rem;
}

.about-values article {
    background:
        linear-gradient(180deg, white, #f4f7fb);
    border: 1px solid rgb(7 17 31 / .08);
    border-radius: 1.35rem;
    box-shadow: 0 14px 40px rgb(7 17 31 / .08);
    min-height: 250px;
    padding: 1.35rem;
}

.about-values svg {
    background: var(--navy);
    border-radius: 1rem;
    color: var(--life);
    height: 3.25rem;
    padding: .85rem;
    width: 3.25rem;
}

.about-values h2 {
    font-size: 1.35rem;
    font-weight: 700;
    margin-top: 1.4rem;
}

.about-values p {
    color: rgb(7 17 31 / .62);
    line-height: 1.7;
    margin-top: .8rem;
}

.about-method {
    background:
        linear-gradient(rgb(5 58 92 / .74), rgb(5 58 92 / .74)),
        url('../img/covers/about-method.webp');
    background-attachment: fixed;
    background-color: var(--navy);
    background-position: center;
    background-size: cover;
    color: white;
    display: grid;
    gap: 2rem;
    grid-template-columns: .85fr 1.15fr;
    padding: 5rem max(1.25rem, calc((100vw - 82rem) / 2));
}

@media (max-width: 768px) {
    .about-method {
        background-attachment: scroll;
    }
}

.about-method h2 {
    font-size: clamp(2rem, 3.7vw, 3.7rem);
    font-weight: 700;
    line-height: 1.05;
    margin-top: .75rem;
}

.about-method > div > p:last-child {
    color: rgb(248 250 252 / .64);
    line-height: 1.7;
    margin-top: 1rem;
}

.method-list {
    display: grid;
    gap: 1rem;
}

.method-list div {
    background: rgb(255 255 255 / .08);
    border: 1px solid rgb(255 255 255 / .13);
    border-radius: 1.2rem;
    padding: 1.2rem;
    backdrop-filter: blur(16px);
}

.method-list span {
    color: var(--life);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.method-list strong {
    display: block;
    font-size: 1.1rem;
    margin-top: .45rem;
}

.method-list p {
    color: rgb(248 250 252 / .64);
    line-height: 1.65;
    margin-top: .35rem;
}

.about-promise {
    align-items: center;
    background: white;
    border: 1px solid rgb(7 17 31 / .08);
    border-radius: 1.5rem;
    box-shadow: 0 14px 40px rgb(7 17 31 / .08);
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr auto;
    margin: 5rem auto;
    max-width: 82rem;
    padding: 2rem;
}

.about-promise h2 {
    font-size: clamp(1.7rem, 3vw, 2.8rem);
    font-weight: 700;
    line-height: 1.05;
}

.about-promise p {
    color: rgb(7 17 31 / .62);
    line-height: 1.7;
    margin-top: .65rem;
}

@media (max-width: 980px) {
    .about-hero,
    .about-story,
    .about-method,
    .about-promise {
        grid-template-columns: 1fr;
    }

    .about-hero-card {
        max-width: 420px;
    }
}

@media (max-width: 760px) {
    .about-hero {
        padding-top: 4rem;
    }

    .story-metrics,
    .about-values {
        grid-template-columns: 1fr;
    }

    .about-promise {
        border-radius: 0;
        margin-bottom: 0;
    }
}

/* ============================================================
   Refinamiento 2026 — más moderno, profesional y limpio
   (overrides al final para ganar en cascada)
   ============================================================ */

html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body { letter-spacing: -.011em; }

/* Titulares de display: tracking negativo, presencia sin ser "ultra black" */
.hero-copy h1,
.split-heading h2, .decision-copy h2, .partner-copy h2,
.section-heading h2, .section-title, .page-hero h1,
.services-heading h2, .partners-heading h2,
.services-process h2, .partners-criteria h2, .about-method h2,
.story-copy h2, .about-values h2,
.faq-sidebar h2, .faq-hero h1, .contact-hero h1,
.partners-hero h1, .services-hero h1, .about-hero h1,
.contact-panel h2, .form-head h2,
.footer-cta h2, .faq-cta h2, .partners-cta h2, .services-cta h2, .about-promise h2 {
    letter-spacing: -.028em;
}

/* Eyebrows / etiquetas: acento más fino y aireado, no gritón */
.eyebrow, .eyebrow-dark,
.hero-kicker,
.panel-label, .form-head span,
.footer-kicker, .footer-links h3, .footer-contact h3,
.criteria-list span, .method-list span, .process-cards span,
.decision-steps span, .contact-steps span, .faq-sidebar span,
.brand-strip span, .services-strip span,
.service-card span, .solution-top span,
.console-top p, .console-footer span, .protection-score span {
    font-weight: 600;
    letter-spacing: .14em;
}

/* Superficies de tarjeta más limpias: fuera los "blobs" decorativos */
.service-card::after,
.partner-card-pro::after,
.service-solution-card::after { display: none; }

/* Bordes/relleno coherentes y fondos planos y nítidos en tarjetas claras */
.service-card,
.partner-card-pro,
.service-solution-card,
.about-values article {
    background: #fff;
    border-color: rgb(7 17 31 / .07);
    border-radius: 1.25rem;
}

/* Hovers más sobrios (menos rebote, sensación premium) */
.service-card:hover,
.partner-card-pro:hover,
.service-solution-card:hover,
.premium-card:hover,
.faq-categories article:hover,
.partners-intro article:hover,
.contact-info-card:hover,
.contact-form:hover,
.contact-panel:hover { transform: translateY(-3px); }

.faq-accordion details:hover,
.faq-accordion details[open] { transform: none; }

.footer-links a:hover, .footer-contact a:hover,
.contact-info-card a:hover, .contact-steps div:hover,
.faq-sidebar a:hover { transform: none; }

/* Texturas de cuadrícula más tenues en secciones oscuras */
.home-shell::before, .site-footer::before,
.contact-hero::before, .faq-hero::before,
.partners-hero::before, .services-hero::before,
.about-hero::before, .services-process::before {
    opacity: .5;
}

/* Hero más calmado: Ken Burns sutil, sin zoom agresivo */
@keyframes kenburns {
    0%   { transform: scale(1.02) translate3d(0, 0, 0); }
    100% { transform: scale(1.08) translate3d(.8%, .6%, 0); }
}
.hero-slide.is-active { animation-duration: 9s; }

/* Trust strip: barra de confianza ligera en lugar de bloque pesado */
.brand-strip span, .services-strip span {
    color: rgb(248 250 252 / .56);
    font-size: .76rem;
    min-height: 3.6rem;
    padding-block: 1.2rem;
    text-transform: uppercase;
}

/* Foco accesible y limpio en todos los campos */
.field:focus, .contact-form .field:focus {
    border-color: var(--premium-blue);
    box-shadow: 0 0 0 3px rgb(66 88 114 / .14);
}

/* Botón primario: brillo más contenido y elegante */
.btn-primary, .footer-cta-button, .contact-submit {
    box-shadow: 0 10px 24px rgb(34 192 122 / .22);
}
.btn-primary:hover, .footer-cta-button:hover, .contact-submit:hover {
    box-shadow: 0 14px 30px rgb(34 192 122 / .26);
    transform: translateY(-2px);
}

/* Navegación: pestaña activa más sobria */
.nav-tab.is-active {
    background: var(--navy);
}

/* ============================================================
   Identidad VITAL.ES — degradado de marca verde→teal→azul
   ============================================================ */

/* Logos reales de marca */
.site-logo img { display: block; height: 44px; width: auto; }
.footer-logo img { display: block; height: 56px; width: auto; }
@media (max-width: 520px) { .site-logo img { height: 38px; } }

/* CTAs con el degradado firma */
.btn-primary, .footer-cta-button, .contact-submit,
.faq-cta .btn-primary {
    background: var(--brand-grad);
    color: #fff;
}
.btn-primary svg, .footer-cta-button svg, .contact-submit svg { color: #fff; }

/* Tiles de icono con la marca (antes navy plano) */
.service-icon, .solution-icon, .partner-logo-mark,
.faq-categories svg, .partners-intro svg, .about-values svg,
.footer-logo span {
    background: var(--brand-grad);
    color: #fff;
}
.service-icon svg, .solution-icon svg { color: #fff; }

/* Punto-degradado de la marca (acento ".es") */
.brand-dot {
    background: var(--brand-grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* Score y números clave: acento de marca */
.protection-score strong { color: var(--blue); }

/* Pestaña activa: identidad de marca */
.nav-tab.is-active { background: var(--brand-grad); color: #fff; }

/* Glows del hero/landing ligados al azul de marca */
.home-shell, .site-footer {
    --grid: rgb(255 255 255 / .045);
}
