@font-face {
    font-family: "FGL Offer Sans";
    src: url("fonts/dm-sans-variable-latin.woff2") format("woff2");
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
}
.fgl-membership-section,
.fgl-membership-surface,
.fgl-membership-receipt,
.fgl-offer-history {
    --offer-font: "FGL Offer Sans", "DM Sans", system-ui, sans-serif;
    --offer-paper: var(--fgl-paper, #fff);
    --offer-ink: var(--fgl-ink, #1c244b);
    --offer-muted: var(--fgl-muted, #475569);
    --offer-rule: var(--fgl-line, #dce0e8);
    font-family: var(--offer-font);
    color: var(--offer-ink);
}
.fgl-landing .fgl-membership-section {
    padding-block: clamp(32px, 4vw, 56px);
    border-block: 1px solid var(--offer-rule);
    background: var(--offer-paper);
}
.fgl-membership-surface,
.fgl-membership-layout {
    max-width: 430px;
    margin-inline: auto;
    text-align: left;
}
.fgl-membership-surface { padding-block: 24px; }
.fgl-app.fgl-enrolling:has(.fgl-membership-surface),
.fgl-app.fgl-enrolling .fgl-main:has(.fgl-membership-surface) {
    background: var(--fgl-paper, #fff);
}
.fgl-membership-layout #fgl-membership-title {
    margin: 0 0 5px;
    color: var(--offer-ink);
    font: 720 clamp(28px, 3vw, 34px)/1.12 var(--offer-font);
    letter-spacing: -.045em;
}
/* The site's theme declares its heading family with !important. */
.fgl-landing #landing-title,
.fgl-membership-layout #fgl-membership-title {
    font-family: "FGL Offer Sans", "DM Sans", system-ui, sans-serif !important;
}
.fgl-membership-layout .fgl-membership-intro > p {
    margin: 0;
    color: var(--offer-muted);
    font: 450 16px/1.5 var(--offer-font);
}
.fgl-membership-offer { margin-top: 18px; }
.fgl-membership-layout .fgl-plan-selector {
    display: grid;
    position: relative;
    grid-template-columns: repeat(2, minmax(0, 96px)) minmax(0, 1fr);
    gap: 0;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}
.fgl-plan-selector::before {
    content: "";
    position: absolute;
    inset: 0 auto auto 0;
    width: min(192px, 100%);
    height: 50px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--offer-ink) 6%, var(--offer-paper));
}
.fgl-plan-selector .fgl-plan-radio,
.fgl-plan-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    padding: 0;
    clip-path: inset(50%);
    overflow: hidden;
    white-space: nowrap;
    border: 0;
}
.fgl-plan-selector > label {
    display: grid;
    position: relative;
    place-items: center;
    box-sizing: border-box;
    min-height: 44px;
    margin: 3px;
    padding: 6px 12px;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--offer-muted);
    background: transparent;
    font: 550 15px/1.3 var(--offer-font);
    cursor: pointer;
}
.fgl-plan-selector label[for="fgl-period-month"] { margin-right: 0; }
.fgl-plan-selector label[for="fgl-period-year"] { margin-left: 0; }
.fgl-plan-selector input:checked + label {
    color: var(--offer-ink);
    background: var(--offer-paper);
    border-color: var(--offer-rule);
    font-weight: 700;
}
.fgl-plan-selector label:hover { color: var(--offer-ink); }
.fgl-plan-selector input:focus-visible + label,
.fgl-membership-layout a:focus-visible,
.fgl-offer-history > summary:focus-visible {
    position: relative;
    z-index: 1;
    outline: 3px solid var(--fgl-blue, #2563eb);
    outline-offset: 3px;
}
.fgl-plan-panel { display: none; grid-column: 1 / -1; padding-top: 15px; }
.fgl-plan-selector input[value="month"]:checked ~ .fgl-plan-panel--month,
.fgl-plan-selector input[value="year"]:checked ~ .fgl-plan-panel--year { display: block; }
.fgl-membership-layout .fgl-plan-amount {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0 8px;
    margin: 0;
    color: var(--offer-muted);
    font: 500 15px/1.4 var(--offer-font);
}
.fgl-plan-amount strong {
    color: var(--offer-ink);
    font: 720 40px/1.1 var(--offer-font);
    letter-spacing: -.06em;
    font-variant-numeric: tabular-nums;
}
.fgl-membership-layout .fgl-plan-saving {
    margin: 3px 0 0;
    color: var(--offer-muted);
    font: 450 14px/1.4 var(--offer-font);
}
.fgl-membership-layout .fgl-offer-action {
    display: flex;
    box-sizing: border-box;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 46px;
    margin: 14px 0 0;
    padding: 9px 16px;
    border: 1px solid var(--offer-ink);
    border-radius: 7px;
    background: var(--offer-ink);
    color: var(--offer-paper);
    font: 650 16px/1.4 var(--offer-font);
    text-align: center;
    text-decoration: none;
}
.fgl-membership-layout .fgl-offer-action:hover {
    color: var(--offer-paper);
    background: color-mix(in srgb, var(--offer-ink) 88%, var(--offer-paper));
}
.fgl-offer-history {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    font: 450 13px/1.5 var(--offer-font);
    text-align: left;
}
.fgl-offer-history > summary {
    display: list-item;
    box-sizing: border-box;
    width: fit-content;
    max-width: 100%;
    min-height: 44px;
    padding: 12px 0;
    color: var(--offer-muted);
    font: inherit;
    cursor: pointer;
}
.fgl-offer-history > summary::marker { font-size: .85em; }
.fgl-offer-history[data-fgl-price-history] > p,
.fgl-membership-layout .fgl-offer-terms {
    margin: 0;
    color: var(--offer-muted);
    font: 450 13px/1.5 var(--offer-font);
}
.fgl-offer-history[open] > p { padding-bottom: 9px; }
.fgl-membership-offer > .fgl-offer-terms { margin-top: 9px; }
.fgl-membership-offer:has(.fgl-plan-radio[value="year"]:checked ~ .fgl-plan-panel--year .fgl-offer-history) > .fgl-offer-terms { margin-top: 0; }
.fgl-membership-receipt {
    border-block: 1px solid var(--offer-rule);
    margin: 12px 0;
    padding: 5px 0;
    text-align: left;
}
.fgl-membership-receipt .fgl-receipt-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1px 12px;
    padding: 3px 0;
    font: 500 15px/1.45 var(--offer-font);
}
.fgl-membership-receipt .fgl-receipt-row strong { font-weight: 700; }
.fgl-auth-panel .fgl-plan-fineprint { margin: 0 0 15px; color: #475569; font-size: 13px; }
.fgl-membership-surface .fgl-enrol-recovery { margin: 20px 0 0; }
.fgl-membership-surface .fgl-enrol-terms { padding-top: 12px; border: 0; }
.fgl-large-type .fgl-membership-intro > p,
.fgl-large-type .fgl-plan-selector > label,
.fgl-large-type .fgl-offer-action { font-size: 18px; }
@media (forced-colors: active) {
    .fgl-plan-selector input:checked + label { border: 2px solid Highlight; }
    .fgl-membership-layout .fgl-offer-action { border-color: ButtonText; }
}
