/* =========================================================
   INSURANCE — PHASE 02 TYPE NAVIGATOR
   ========================================================= */

.insurance-type-navigator,
.insurance-type-navigator * { box-sizing: border-box; }

.insurance-type-navigator {
    padding: clamp(54px, 7vw, 90px) 0;
    background: linear-gradient(180deg, #f7fbff 0%, #fff 100%);
    color: #14233b;
    scroll-margin-top: 100px;
}

.insurance-type-navigator__container {
    width: min(100% - 48px, 1200px);
    margin: 0 auto;
    text-align: center;
}

.insurance-type-navigator__header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    max-width: 680px;
    margin: 0 auto;
}

.insurance-type-navigator__badge {
    margin: 0 0 14px;
    padding: 8px 13px;
    border: 1px solid #cbdff5;
    border-radius: 999px;
    background: #edf6ff;
    color: #145db4;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .11em;
    line-height: 1;
    text-transform: uppercase;
}

.insurance-type-navigator__header h2 {
    margin: 0;
    font-size: clamp(2rem, 3.4vw, 3.3rem);
    font-weight: 700;
    letter-spacing: -.04em;
    line-height: 1.12;
}

.insurance-type-navigator__header > p:last-child {
    margin: 13px 0 0;
    color: #617185;
    font-size: clamp(.92rem, 1.15vw, 1rem);
    line-height: 1.65;
}

.insurance-type-navigator__grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: start;
    justify-items: center;
    gap: clamp(20px, 2.2vw, 32px);
    margin-top: clamp(34px, 5vw, 52px);
}

.insurance-type-navigator__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    width: 100%;
    min-width: 0;
    padding: 4px 2px 10px;
    border: 0;
    background: transparent;
    color: #344860;
    cursor: pointer;
    font: inherit;
    font-size: .94rem;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
}

.insurance-type-navigator__circle {
    display: grid;
    width: 80px;
    height: 80px;
    place-items: center;
    border: 1px solid #dce7f3;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 7px 18px rgba(39, 81, 127, .08);
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.insurance-type-navigator__badge-icon {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 15px;
    color: #fff;
    transition: transform 180ms ease;
}

.insurance-type-navigator__badge-icon svg {
    width: 28px;
    height: 28px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.insurance-type-navigator__badge-icon--term { background: #2563eb; }
.insurance-type-navigator__badge-icon--investment { background: #d97706; }
.insurance-type-navigator__badge-icon--health { background: #0d9488; }
.insurance-type-navigator__badge-icon--car { background: #0284c7; }
.insurance-type-navigator__badge-icon--bike { background: #4f46e5; }

.insurance-type-navigator__item::after {
    width: 32px;
    height: 3px;
    border-radius: 9px;
    background: #2563eb;
    content: "";
    opacity: 0;
    transform: scaleX(.45);
    transition: opacity 180ms ease, transform 180ms ease;
}

.insurance-type-navigator__item.is-active { color: #173f75; }
.insurance-type-navigator__item.is-active .insurance-type-navigator__circle { border-color: #2563eb; box-shadow: 0 0 0 5px rgba(37, 99, 235, .12), 0 10px 22px rgba(37, 99, 235, .16); }
.insurance-type-navigator__item.is-active::after { opacity: 1; transform: scaleX(1); }
.insurance-type-navigator__item[data-insurance-type="investment"].is-active .insurance-type-navigator__circle { border-color: #d97706; box-shadow: 0 0 0 5px rgba(217, 119, 6, .12), 0 10px 22px rgba(217, 119, 6, .16); }.insurance-type-navigator__item[data-insurance-type="investment"].is-active::after { background: #d97706; }
.insurance-type-navigator__item[data-insurance-type="health"].is-active .insurance-type-navigator__circle { border-color: #0d9488; box-shadow: 0 0 0 5px rgba(13, 148, 136, .12), 0 10px 22px rgba(13, 148, 136, .16); }.insurance-type-navigator__item[data-insurance-type="health"].is-active::after { background: #0d9488; }
.insurance-type-navigator__item[data-insurance-type="car"].is-active .insurance-type-navigator__circle { border-color: #0284c7; box-shadow: 0 0 0 5px rgba(2, 132, 199, .12), 0 10px 22px rgba(2, 132, 199, .16); }.insurance-type-navigator__item[data-insurance-type="car"].is-active::after { background: #0284c7; }
.insurance-type-navigator__item[data-insurance-type="bike"].is-active .insurance-type-navigator__circle { border-color: #4f46e5; box-shadow: 0 0 0 5px rgba(79, 70, 229, .12), 0 10px 22px rgba(79, 70, 229, .16); }.insurance-type-navigator__item[data-insurance-type="bike"].is-active::after { background: #4f46e5; }

.insurance-type-navigator__item:hover .insurance-type-navigator__circle { transform: translateY(-3px) scale(1.02); box-shadow: 0 11px 24px rgba(39, 81, 127, .16); }.insurance-type-navigator__item:hover .insurance-type-navigator__badge-icon { transform: scale(1.05); }
.insurance-type-navigator__item:focus-visible { outline: 3px solid #0c79e8; outline-offset: 3px; border-radius: 10px; }
[data-insurance-plan-group] { transition: opacity 160ms ease; } [data-insurance-plan-group].is-switching { opacity: .15; }

@media (max-width: 360px) {
    .insurance-type-navigator { padding: 46px 0; }.insurance-type-navigator__container { width: min(100% - 24px, 1200px); }.insurance-type-navigator__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 18px 8px; }.insurance-type-navigator__item { grid-column: span 2; gap: 8px; padding-bottom: 4px; font-size: 12px; }.insurance-type-navigator__circle { width: 56px; height: 56px; }.insurance-type-navigator__badge-icon { width: 36px; height: 36px; border-radius: 11px; }.insurance-type-navigator__badge-icon svg { width: 21px; height: 21px; }.insurance-type-navigator__item:nth-child(4) { grid-column: 2 / span 2; }.insurance-type-navigator__item:nth-child(5) { grid-column: 4 / span 2; }
}

@media (min-width: 361px) and (max-width: 480px) {
    .insurance-type-navigator__container { width: min(100% - 32px, 1200px); }.insurance-type-navigator__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 22px 10px; }.insurance-type-navigator__item { grid-column: span 2; gap: 9px; padding-bottom: 5px; font-size: 13px; }.insurance-type-navigator__circle { width: 64px; height: 64px; }.insurance-type-navigator__badge-icon { width: 40px; height: 40px; border-radius: 12px; }.insurance-type-navigator__badge-icon svg { width: 24px; height: 24px; }.insurance-type-navigator__item:nth-child(4) { grid-column: 2 / span 2; }.insurance-type-navigator__item:nth-child(5) { grid-column: 4 / span 2; }
}

@media (min-width: 481px) and (max-width: 767px) {
    .insurance-type-navigator__container { width: min(100% - 48px, 640px); }.insurance-type-navigator__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px 16px; }.insurance-type-navigator__item { grid-column: span 2; }.insurance-type-navigator__item:nth-child(4) { grid-column: 2 / span 2; }.insurance-type-navigator__item:nth-child(5) { grid-column: 4 / span 2; }
}

@media (min-width: 768px) and (max-width: 1023px) { .insurance-type-navigator__container { width: min(100% - 64px, 960px); }.insurance-type-navigator__grid { gap: 20px; } }
@media (min-width: 1024px) and (max-width: 1279px) { .insurance-type-navigator__container { width: min(100% - 64px, 1160px); }.insurance-type-navigator__grid { gap: 24px; } }
@media (min-width: 1280px) { .insurance-type-navigator__container { width: min(100% - 64px, 1200px); }.insurance-type-navigator__grid { gap: 32px; } }
@media (prefers-reduced-motion: reduce) { .insurance-type-navigator__circle, .insurance-type-navigator__badge-icon, .insurance-type-navigator__item::after { transition: none; } }

/* =========================================================
   INSURANCE — PHASE 03 PROVIDER HUB
   ========================================================= */

.insurance-provider-hub,
.insurance-provider-hub * { box-sizing: border-box; }

.insurance-provider-hub {
    padding: clamp(58px, 8vw, 102px) 0;
    background: #f8fbff;
    color: #14233b;
    scroll-margin-top: 96px;
}

.insurance-provider-hub__container { width: min(100% - 48px, 1200px); margin: 0 auto; transition: opacity 170ms ease; }
.insurance-provider-hub__container.is-switching { opacity: .18; }
.insurance-provider-hub__header { max-width: 760px; margin: 0 auto; text-align: center; }
.insurance-provider-hub__eyebrow { margin: 0 0 12px; color: #2563eb; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.insurance-provider-hub__header h2 { margin: 0; font-size: clamp(2rem, 3.4vw, 3.35rem); letter-spacing: -.04em; line-height: 1.12; }

.insurance-provider-hub__matrix { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2.4vw, 28px); margin-top: clamp(32px, 5vw, 54px); }
.insurance-provider-hub__matrix-card { overflow: hidden; border: 1px solid; border-radius: 20px; backdrop-filter: blur(10px); }
.insurance-provider-hub__matrix-card h3 { display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 62px; margin: 0; padding: 14px 20px; font-size: .76rem; font-weight: 700; letter-spacing: .09em; text-align: center; text-transform: uppercase; }
.insurance-provider-hub__matrix-card h3 svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.insurance-provider-hub__matrix-card ul { margin: 0; padding: 8px 25px; list-style: none; }
.insurance-provider-hub__matrix-card li { position: relative; padding: 14px 0 14px 25px; border-bottom: 1px solid; font-size: .86rem; font-weight: 600; line-height: 1.5; }
.insurance-provider-hub__matrix-card li:last-child { border-bottom: 0; }
.insurance-provider-hub__matrix-card li::before { position: absolute; top: 17px; left: 1px; width: 14px; height: 8px; border-bottom: 2px solid currentColor; border-left: 2px solid currentColor; content: ""; transform: rotate(-45deg); }
.insurance-provider-hub__matrix-card--benefits { border-color: #9fe2c5; background: rgba(244, 255, 249, .78); box-shadow: 0 0 0 1px rgba(69, 190, 133, .08), 0 12px 32px rgba(25, 148, 96, .08); color: #13744e; }.insurance-provider-hub__matrix-card--benefits h3 { border-bottom: 1px solid #b9ecd4; background: rgba(221, 250, 235, .7); }.insurance-provider-hub__matrix-card--benefits li { border-color: #d8f1e3; color: #22553f; }
.insurance-provider-hub__matrix-card--risks { border-color: #4d5c76; background: linear-gradient(145deg, #25334b, #172337); box-shadow: 0 14px 34px rgba(19, 32, 52, .16); color: #ffd58c; }.insurance-provider-hub__matrix-card--risks h3 { border-bottom: 1px solid #4d5c76; background: rgba(255, 188, 82, .07); }.insurance-provider-hub__matrix-card--risks li { border-color: #41506a; color: #e9eff9; }.insurance-provider-hub__matrix-card--risks li::before { width: 0; height: 0; border: 0; color: #f3b34c; content: "!"; font-size: 1rem; font-weight: 800; transform: none; }

.insurance-provider-hub__selection { margin-top: clamp(38px, 5vw, 60px); text-align: center; }.insurance-provider-hub__selection > p, .insurance-provider-hub__subplans > p { margin: 0 0 14px; color: #647489; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.insurance-provider-hub__providers, .insurance-provider-hub__subplan-tabs { display: flex; align-items: center; justify-content: center; gap: 12px; }
.insurance-provider-hub__provider, .insurance-provider-hub__subplan { min-height: 44px; padding: 10px 16px; border: 1px solid #cfdaea; border-radius: 999px; background: #fff; color: #465a73; cursor: pointer; font: inherit; font-size: .82rem; font-weight: 700; transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease, color 180ms ease; }
.insurance-provider-hub__provider.is-active, .insurance-provider-hub__subplan.is-active { border-color: #2563eb; box-shadow: 0 7px 18px rgba(37, 99, 235, .2), 0 0 0 3px rgba(37, 99, 235, .09); color: #1d4ed8; transform: translateY(-2px); }.insurance-provider-hub__provider:hover, .insurance-provider-hub__subplan:hover { transform: translateY(-2px); }.insurance-provider-hub__provider:focus-visible, .insurance-provider-hub__subplan:focus-visible { outline: 3px solid #0c79e8; outline-offset: 3px; }
.insurance-provider-hub__subplans { margin-top: 25px; }.insurance-provider-hub__subplan-tabs { flex-wrap: wrap; }

.insurance-provider-hub__showcase { position: relative; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(250px, .8fr); gap: clamp(22px, 4vw, 52px); margin-top: clamp(28px, 4vw, 44px); padding: clamp(25px, 4vw, 46px); overflow: hidden; border: 1px solid #cbdcf0; border-radius: 22px; background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(239,247,255,.82)); box-shadow: 0 16px 38px rgba(39, 81, 127, .11); backdrop-filter: blur(12px); transition: transform 180ms ease; }.insurance-provider-hub__showcase:hover { transform: translateY(-3px); }
.insurance-provider-hub__showcase::before { position: absolute; top: -130px; right: -120px; width: 300px; height: 300px; border-radius: 50%; background: rgba(89, 155, 230, .1); content: ""; }.insurance-provider-hub__showcase-main, .insurance-provider-hub__showcase-side { position: relative; z-index: 1; }.insurance-provider-hub__plan-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }.insurance-provider-hub__tag { padding: 6px 9px; border-radius: 999px; background: #e6f1ff; color: #1d5dac; font-size: .65rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }.insurance-provider-hub__showcase h3 { margin: 0; color: #14233b; font-size: clamp(1.4rem, 2.2vw, 2rem); letter-spacing: -.035em; line-height: 1.15; }.insurance-provider-hub__features { display: grid; gap: 10px; margin: 20px 0 0; padding: 0; list-style: none; }.insurance-provider-hub__features li { position: relative; padding-left: 25px; color: #4f6075; font-size: .85rem; line-height: 1.5; }.insurance-provider-hub__features li::before { position: absolute; top: 4px; left: 2px; width: 13px; height: 7px; border-bottom: 2px solid #10966d; border-left: 2px solid #10966d; content: ""; transform: rotate(-45deg); }.insurance-provider-hub__metric { padding: 20px; border: 1px solid #9ec8f3; border-radius: 16px; background: #eaf5ff; color: #1559a7; font-size: .78rem; font-weight: 700; line-height: 1.5; text-align: center; }.insurance-provider-hub__metric strong { display: block; margin-bottom: 5px; color: #123e78; font-size: 1.25rem; }.insurance-provider-hub__quote { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 50px; margin-top: 16px; border: 0; border-radius: 9px; background: #1d5db4; color: #fff; cursor: pointer; font: inherit; font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; transition: background-color 180ms ease, transform 180ms ease; }.insurance-provider-hub__quote:hover { background: #164b91; transform: translateY(-2px); }.insurance-provider-hub__quote:focus-visible { outline: 3px solid #0c79e8; outline-offset: 4px; }.insurance-provider-hub__note { margin: 14px 0 0; color: #718096; font-size: .68rem; line-height: 1.55; text-align: center; }

@media (max-width: 767px) { .insurance-provider-hub__container { width: min(100% - 32px, 1200px); }.insurance-provider-hub__matrix { grid-template-columns: 1fr; }.insurance-provider-hub__providers { justify-content: flex-start; padding: 2px 16px 8px 0; overflow-x: auto; }.insurance-provider-hub__provider { flex: 0 0 auto; }.insurance-provider-hub__showcase { grid-template-columns: 1fr; }.insurance-provider-hub__showcase-side { max-width: 370px; width: 100%; margin: 0 auto; } }
@media (max-width: 360px) { .insurance-provider-hub__container { width: min(100% - 24px, 1200px); }.insurance-provider-hub__matrix-card ul { padding: 7px 17px; }.insurance-provider-hub__matrix-card li { padding-left: 22px; font-size: .8rem; }.insurance-provider-hub__showcase { padding: 22px 18px; } }
@media (prefers-reduced-motion: reduce) { .insurance-provider-hub__container, .insurance-provider-hub__provider, .insurance-provider-hub__subplan, .insurance-provider-hub__showcase, .insurance-provider-hub__quote { transition: none; } }

/* =========================================================
   INSURANCE — PHASE 04 STATIC FAQ & COMPLIANCE
   ========================================================= */

.insurance-faq-hub,
.insurance-faq-hub * { box-sizing: border-box; }
.insurance-faq-hub { padding: clamp(58px, 8vw, 100px) 0; background: #fff; color: #172b43; }
.insurance-faq-hub__container { width: min(100% - 48px, 1000px); margin: 0 auto; }
.insurance-faq-hub__header { max-width: 680px; margin: 0 auto clamp(32px, 5vw, 48px); text-align: center; }.insurance-faq-hub__badge { display: inline-block; margin: 0 0 14px; padding: 8px 13px; border: 1px solid #b9d9f2; border-radius: 999px; background: #edf7ff; color: #1e61ac; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }.insurance-faq-hub__header h2 { margin: 0; font-size: clamp(2rem, 3.4vw, 3.35rem); letter-spacing: -.04em; line-height: 1.12; }.insurance-faq-hub__header > p:last-child { margin: 13px 0 0; color: #62748a; font-size: clamp(.92rem, 1.15vw, 1rem); line-height: 1.7; }
.insurance-faq-hub__group > h3, .insurance-faq-hub__compliance > h3 { margin: 0 0 13px; color: #3b506c; font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-align: left; text-transform: uppercase; }
.insurance-faq-hub__item { margin-top: 10px; overflow: hidden; border: 1px solid #d9e4ee; border-radius: 14px; background: #fff; transition: border-color 180ms ease, box-shadow 180ms ease; }.insurance-faq-hub__item.is-open { border-color: #b6d3ee; box-shadow: 0 8px 22px rgba(31, 82, 133, .09); }
.insurance-faq-hub__question { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; min-height: 58px; padding: 16px 19px; border: 0; background: transparent; color: #174776; cursor: pointer; font: inherit; font-size: .92rem; font-weight: 700; line-height: 1.45; text-align: left; }.insurance-faq-hub__question span { flex: 1; }.insurance-faq-hub__question svg { flex: 0 0 auto; width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 2; transition: transform 220ms ease; }.insurance-faq-hub__item.is-open .insurance-faq-hub__question svg { transform: rotate(45deg); }.insurance-faq-hub__question:focus-visible { outline: 2px solid #2563eb; outline-offset: -2px; }
.insurance-faq-hub__answer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 240ms ease; }.insurance-faq-hub__answer > div { min-height: 0; overflow: hidden; }.insurance-faq-hub__item.is-open .insurance-faq-hub__answer { grid-template-rows: 1fr; }.insurance-faq-hub__answer p { margin: 0; padding: 0 19px 17px; color: #586b80; font-size: .85rem; line-height: 1.72; }.insurance-faq-hub__answer ul { display: grid; gap: 9px; margin: 0; padding: 0 19px 18px 39px; color: #586b80; font-size: .85rem; line-height: 1.65; }.insurance-faq-hub__answer strong { color: #274d72; }
.insurance-faq-hub__compliance { margin-top: clamp(34px, 5vw, 52px); padding: clamp(19px, 3vw, 28px); border: 1px solid #b9d5df; border-radius: 18px; background: linear-gradient(135deg, #f4fbfc, #f5f8ff); }.insurance-faq-hub__trust { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 16px; padding: 7px 10px; border: 1px solid #a9d7d1; border-radius: 999px; background: #e8f8f5; color: #087468; font-size: .68rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }.insurance-faq-hub__trust svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }.insurance-faq-hub__compliance .insurance-faq-hub__item { border-color: #c8d9e6; }.insurance-faq-hub__item--disclaimer { border-color: #e5c888 !important; background: #fffaf0; }.insurance-faq-hub__item--disclaimer .insurance-faq-hub__question { color: #7e5b17; }
@media (max-width: 360px) { .insurance-faq-hub { padding: 46px 0; }.insurance-faq-hub__container { width: min(100% - 24px, 1000px); }.insurance-faq-hub__question { min-height: 48px; padding: 12px; font-size: 13px; }.insurance-faq-hub__answer p { padding: 0 12px 14px; font-size: 13px; }.insurance-faq-hub__answer ul { padding: 0 12px 15px 29px; font-size: 13px; }.insurance-faq-hub__compliance { padding: 12px; } }
@media (min-width: 361px) and (max-width: 480px) { .insurance-faq-hub__container { width: min(100% - 32px, 1000px); }.insurance-faq-hub__question { min-height: 48px; } }
@media (min-width: 481px) and (max-width: 767px) { .insurance-faq-hub__container { width: min(100% - 48px, 1000px); }.insurance-faq-hub__item { margin-top: 12px; } }
@media (min-width: 768px) and (max-width: 1023px) { .insurance-faq-hub__container { width: min(100% - 64px, 720px); } }
@media (min-width: 1024px) and (max-width: 1279px) { .insurance-faq-hub__container { width: min(100% - 64px, 900px); } }
@media (min-width: 1280px) { .insurance-faq-hub__container { width: min(100% - 64px, 1000px); }.insurance-faq-hub__item.is-open { box-shadow: 0 11px 28px rgba(31, 82, 133, .12); } }
@media (prefers-reduced-motion: reduce) { .insurance-faq-hub__item, .insurance-faq-hub__question svg, .insurance-faq-hub__answer { transition: none; } }

/* =========================================================
   INSURANCE — PHASE 05 GET A QUOTE
   ========================================================= */

.insurance-quote,
.insurance-quote * { box-sizing: border-box; }
.insurance-quote { padding: clamp(58px, 8vw, 104px) 0; background: linear-gradient(135deg, #edf7ff, #f8fbff 55%, #effaf6); color: #162a43; scroll-margin-top: 70px; }.insurance-quote__container { display: flex; flex-direction: column; align-items: center; justify-content: center; width: min(100% - 48px, 580px); margin: 0 auto; text-align: center; }.insurance-quote__header { max-width: 560px; }.insurance-quote__badge { display: inline-block; margin: 0 0 14px; padding: 8px 13px; border: 1px solid #bddbf0; border-radius: 999px; background: rgba(255,255,255,.74); color: #1c62ac; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.insurance-quote__header h2 { margin: 0; font-size: clamp(2rem, 3.5vw, 3.35rem); letter-spacing: -.04em; line-height: 1.12; }.insurance-quote__header > p:last-child { margin: 13px 0 0; color: #60738a; font-size: .95rem; line-height: 1.7; }
.insurance-quote__form { display: flex; flex-direction: column; align-items: center; width: 100%; margin-top: 32px; padding: clamp(22px, 4vw, 38px); border: 1px solid rgba(181,205,229,.9); border-radius: 22px; background: rgba(255,255,255,.72); box-shadow: 0 20px 40px rgba(0,0,0,.08); backdrop-filter: blur(14px); }.insurance-quote__field { display: flex; flex-direction: column; align-items: flex-start; width: 100%; margin-top: 16px; text-align: left; }.insurance-quote__field:first-of-type { margin-top: 0; }.insurance-quote__field label { margin-bottom: 7px; color: #284967; font-size: .78rem; font-weight: 700; }.insurance-quote__field input, .insurance-quote__field select { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #c6d7e8; border-radius: 9px; background: rgba(255,255,255,.9); color: #1c344f; font: inherit; font-size: .9rem; text-align: left; transition: border-color 180ms ease, box-shadow 180ms ease; }.insurance-quote__field select { text-align-last: left; }.insurance-quote__field input::placeholder { color: #93a0af; }.insurance-quote__field input:focus, .insurance-quote__field select:focus { border-color: #2563eb; outline: 0; box-shadow: 0 0 0 3px rgba(37,99,235,.14); }.insurance-quote__field.is-invalid input, .insurance-quote__field.is-invalid select { border-color: #ef4444; }.insurance-quote__error { min-height: 17px; margin: 5px 0 0; color: #dc2626; font-size: .72rem; font-weight: 600; line-height: 1.35; text-align: left; }.insurance-quote__submit { display: inline-flex; align-items: center; justify-content: center; gap: 9px; width: 100%; min-height: 52px; margin-top: 12px; border: 0; border-radius: 9px; background: linear-gradient(135deg, #1d67bd, #174da3); box-shadow: 0 10px 22px rgba(29,103,189,.24); color: #fff; cursor: pointer; font: inherit; font-size: .79rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; transition: transform 180ms ease, box-shadow 180ms ease; }.insurance-quote__submit:hover:not(:disabled) { box-shadow: 0 14px 27px rgba(29,103,189,.32); transform: translateY(-2px); }.insurance-quote__submit:focus-visible { outline: 3px solid #0c79e8; outline-offset: 4px; }.insurance-quote__submit:disabled { cursor: wait; opacity: .75; }.insurance-quote__spinner { width: 16px; height: 16px; border: 2px solid rgba(255,255,255,.45); border-top-color: #fff; border-radius: 50%; animation: insurance-quote-spin .7s linear infinite; }.insurance-quote__status { width: 100%; margin: 15px 0 0; padding: 12px 14px; border-radius: 9px; font-size: .82rem; font-weight: 600; line-height: 1.55; }.insurance-quote__status.is-success { border: 1px solid #99dec0; background: #ecfbf2; color: #197046; }.insurance-quote__status.is-error { border: 1px solid #f1b2b2; background: #fff4f4; color: #b42323; }@keyframes insurance-quote-spin { to { transform: rotate(360deg); } }
@media (max-width: 360px) { .insurance-quote { padding: 46px 0; }.insurance-quote__container { width: min(100% - 24px, 580px); }.insurance-quote__form { padding: 18px 12px; }.insurance-quote__field input, .insurance-quote__field select { min-height: 44px; font-size: 14px; }.insurance-quote__field label { font-size: .75rem; } }
@media (min-width: 361px) and (max-width: 480px) { .insurance-quote__container { width: min(100% - 32px, 580px); }.insurance-quote__field input, .insurance-quote__field select { min-height: 48px; }.insurance-quote__submit { width: 100%; } }
@media (min-width: 481px) and (max-width: 767px) { .insurance-quote__container { width: min(100% - 48px, 440px); } }
@media (min-width: 768px) and (max-width: 1023px) { .insurance-quote__container { width: min(100% - 64px, 520px); } }
@media (min-width: 1024px) { .insurance-quote__container { width: min(100% - 64px, 580px); } }
@media (prefers-reduced-motion: reduce) { .insurance-quote__field input, .insurance-quote__field select, .insurance-quote__submit { transition: none; }.insurance-quote__spinner { animation: none; } }

/* =========================================================
   IOS / WEBKIT SPACING & BOX MODEL FALLBACKS
   ========================================================= */

.insurance-provider-hub,
.insurance-provider-hub *,
.insurance-provider-hub *::before,
.insurance-provider-hub *::after,
.insurance-quote,
.insurance-quote *,
.insurance-quote *::before,
.insurance-quote *::after {
    box-sizing: border-box;
}

.insurance-provider-hub,
.insurance-quote {
    min-height: 0;
    height: auto;
    padding-top: calc(clamp(58px, 8vw, 104px) + env(safe-area-inset-top));
    padding-bottom: calc(clamp(58px, 8vw, 104px) + env(safe-area-inset-bottom));
}

.insurance-provider-hub__container,
.insurance-provider-hub__matrix,
.insurance-provider-hub__matrix-card,
.insurance-provider-hub__showcase,
.insurance-provider-hub__showcase-main,
.insurance-provider-hub__showcase-side,
.insurance-quote__container,
.insurance-quote__form,
.insurance-quote__field {
    min-height: 0;
    height: auto;
}

.insurance-provider-hub__matrix {
    column-gap: clamp(16px, 2.4vw, 28px);
    row-gap: clamp(16px, 2.4vw, 28px);
}

.insurance-provider-hub__showcase {
    -webkit-backdrop-filter: blur(12px);
    column-gap: clamp(22px, 4vw, 52px);
    row-gap: clamp(22px, 4vw, 52px);
}

.insurance-provider-hub__matrix-card {
    -webkit-backdrop-filter: blur(10px);
}

.insurance-quote__form {
    -webkit-backdrop-filter: blur(14px);
}

.insurance-quote__field {
    margin-top: 0;
    margin-bottom: 16px;
}

.insurance-quote__field:first-of-type {
    margin-top: 0;
}

.insurance-quote__field:last-of-type {
    margin-bottom: 0;
}

.insurance-quote__field input,
.insurance-quote__field select {
    margin: 0;
}

@supports not (gap: 1rem) {
    .insurance-provider-hub__providers,
    .insurance-provider-hub__subplan-tabs,
    .insurance-provider-hub__plan-meta {
        margin-right: -6px;
        margin-bottom: -12px;
    }

    .insurance-provider-hub__providers > *,
    .insurance-provider-hub__subplan-tabs > *,
    .insurance-provider-hub__plan-meta > * {
        margin-right: 12px;
        margin-bottom: 12px;
    }

    .insurance-provider-hub__matrix-card h3 > svg {
        margin-right: 9px;
    }
}

@media (max-width: 767px) {
    .insurance-provider-hub,
    .insurance-quote {
        padding-top: calc(46px + env(safe-area-inset-top));
        padding-bottom: calc(46px + env(safe-area-inset-bottom));
    }

    .insurance-provider-hub__showcase-side {
        margin-top: 22px;
    }

    .insurance-quote__form {
        padding-bottom: calc(clamp(22px, 4vw, 38px) + env(safe-area-inset-bottom));
    }
}

/* Older iPadOS WebKit fallback: Safari versions without min()/clamp()
   discard those declarations completely, so retain plain CSS dimensions. */
.insurance-provider-hub {
    padding: 72px 0;
    padding-top: calc(72px + env(safe-area-inset-top));
    padding-bottom: calc(72px + env(safe-area-inset-bottom));
}

.insurance-provider-hub__container {
    width: calc(100% - 48px);
    max-width: 1200px;
}

.insurance-provider-hub__matrix {
    margin-top: 44px;
    grid-column-gap: 24px;
    grid-row-gap: 24px;
}

.insurance-provider-hub__selection {
    margin-top: 48px;
}

.insurance-provider-hub__showcase {
    margin-top: 36px;
    padding: 36px;
    grid-column-gap: 36px;
    grid-row-gap: 36px;
}

.insurance-quote {
    padding: 72px 0;
    padding-top: calc(72px + env(safe-area-inset-top));
    padding-bottom: calc(72px + env(safe-area-inset-bottom));
}

.insurance-quote__container {
    width: calc(100% - 48px);
    max-width: 580px;
}

.insurance-quote__form {
    margin-top: 32px;
    padding: 32px;
}

/* Do not rely on flex-gap detection: older Safari reports grid gap support
   while still ignoring gap in flex layouts. */
.insurance-provider-hub__providers,
.insurance-provider-hub__subplan-tabs,
.insurance-provider-hub__plan-meta {
    gap: 0;
    margin-right: -6px;
    margin-bottom: -12px;
}

.insurance-provider-hub__providers > *,
.insurance-provider-hub__subplan-tabs > *,
.insurance-provider-hub__plan-meta > * {
    margin-right: 12px;
    margin-bottom: 12px;
}

.insurance-provider-hub__matrix-card h3 {
    gap: 0;
}

.insurance-provider-hub__matrix-card h3 svg {
    margin-right: 9px;
}

.insurance-quote__submit {
    gap: 0;
}

.insurance-quote__spinner {
    margin-left: 9px;
}

@media (min-width: 768px) and (max-width: 1023px) {
    .insurance-provider-hub,
    .insurance-quote {
        padding-top: 64px;
        padding-bottom: 64px;
        padding-top: calc(64px + env(safe-area-inset-top));
        padding-bottom: calc(64px + env(safe-area-inset-bottom));
    }

    .insurance-provider-hub__container {
        width: calc(100% - 64px);
        max-width: 960px;
    }

    .insurance-provider-hub__showcase {
        padding: 30px;
        grid-column-gap: 28px;
        grid-row-gap: 28px;
    }

    .insurance-quote__container {
        width: calc(100% - 64px);
        max-width: 520px;
    }
}

@media (max-width: 767px) {
    .insurance-provider-hub,
    .insurance-quote {
        padding-top: 46px;
        padding-bottom: 46px;
        padding-top: calc(46px + env(safe-area-inset-top));
        padding-bottom: calc(46px + env(safe-area-inset-bottom));
    }

    .insurance-provider-hub__container,
    .insurance-quote__container {
        width: calc(100% - 32px);
    }

    .insurance-provider-hub__matrix {
        margin-top: 32px;
    }

    .insurance-provider-hub__selection {
        margin-top: 36px;
    }

    .insurance-provider-hub__showcase {
        margin-top: 28px;
        padding: 24px;
    }

    .insurance-quote__form {
        padding: 22px;
    }
}
