.fl-hero {
    position: relative;
    min-height: calc(100vh - var(--header-height));
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(6, 38, 74, 0.98) 0%, rgba(7, 77, 143, 0.88) 48%, rgba(7, 77, 143, 0.5) 100%),
        url("https://images.unsplash.com/photo-1599901860904-17e6ed7083a0?auto=format&fit=crop&w=1800&q=80") center right / cover;
    color: var(--color-white);
}

.fl-sales-lp {
    --sales-bg: #f7fafd;
    --sales-white: #ffffff;
    --sales-border: #dde7f2;
    --sales-navy: #0b4f86;
    --sales-deep: #06264a;
    --sales-blue: #0b73d9;
    --sales-light-blue: #eaf4ff;
    --sales-gold: #d6b36a;
    --sales-soft-gold: #f3e4be;
    --sales-text: #1f2a37;
    --sales-muted: #6b7280;
    overflow: hidden;
    padding-bottom: 92px;
    background: var(--sales-bg);
    color: var(--sales-text);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.fl-sales-lp *,
.fl-sales-lp *::before,
.fl-sales-lp *::after {
    box-sizing: border-box;
}

.fl-sales-container {
    position: relative;
    z-index: 2;
    width: min(100% - 24px, 920px);
    margin: 0 auto;
}

.fl-sales-section {
    padding: 7px 0;
}

.fl-sales-panel,
.fl-sales-member-grid article,
.fl-sales-programs article,
.fl-sales-posts article,
.fl-sales-before-after,
.fl-sales-voice,
.fl-sales-offer,
.fl-sales-faq details {
    border: 1px solid var(--sales-border);
    border-radius: 10px;
    background: var(--sales-white);
    box-shadow: 0 10px 28px rgba(6, 38, 74, 0.055);
}

.fl-sales-icon {
    display: inline-block;
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fl-sales-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 0;
    padding: 16px 0 7px;
    background: #fff;
    border-bottom: 1px solid rgba(221, 231, 242, 0.7);
}

.fl-sales-hero::before {
    content: "";
    position: absolute;
    z-index: -2;
    top: 18px;
    right: -102px;
    width: 112%;
    height: 286px;
    background: var(--fl-sales-hero-image) center right / cover no-repeat;
    -webkit-mask-image:
        linear-gradient(90deg, transparent 0, #000 18%, #000 86%, transparent 100%),
        linear-gradient(180deg, transparent 0, #000 16%, #000 82%, transparent 100%);
    -webkit-mask-composite: source-in;
    mask-image:
        linear-gradient(90deg, transparent 0, #000 18%, #000 86%, transparent 100%),
        linear-gradient(180deg, transparent 0, #000 16%, #000 82%, transparent 100%);
    mask-composite: intersect;
}

.fl-sales-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0.99) 36%, rgba(255, 255, 255, 0.58) 58%, rgba(255, 255, 255, 0) 100%),
        linear-gradient(180deg, #fff 0, rgba(255, 255, 255, 0) 18%, rgba(255, 255, 255, 0) 78%, #fff 100%);
    pointer-events: none;
}

.fl-sales-hero__visual {
    display: none;
}

.fl-sales-badge {
    display: inline-flex;
    align-items: center;
    min-height: 29px;
    padding: 0 16px;
    border-radius: 4px;
    background: linear-gradient(135deg, var(--sales-gold), #bd8c2b);
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.02em;
}

.fl-sales-hero h1 {
    max-width: 64%;
    margin: 12px 0 7px;
    color: var(--sales-deep);
    font-family: var(--font-serif);
    font-size: clamp(28px, 8.15vw, 35px);
    line-height: 1.12;
    font-weight: 800;
    letter-spacing: 0;
}

.fl-sales-hero h1 span {
    display: block;
    white-space: nowrap;
}

.fl-sales-hero h1 em {
    display: inline-block;
    font-size: 1.08em;
    font-style: normal;
    line-height: 0.95;
}

.fl-sales-hero__lead {
    max-width: 57%;
    margin: 0 0 12px;
    color: var(--sales-deep);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.6;
}

.fl-sales-hero__row {
    display: grid;
    gap: 10px;
}

.fl-sales-price-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    width: min(100%, 276px);
    padding: 11px 12px 10px;
    border: 1px solid var(--sales-border);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 12px 26px rgba(6, 38, 74, 0.075);
}

.fl-sales-price-card span {
    align-self: start;
    min-width: 56px;
    padding-top: 6px;
    color: var(--sales-deep);
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
}

.fl-sales-price-card strong {
    justify-self: end;
    color: var(--sales-deep);
    font-size: 30px;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
}

.fl-sales-price-card strong em {
    display: inline-block;
    margin-left: 4px;
    color: var(--sales-deep);
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
    vertical-align: 0.18em;
}

.fl-sales-price-card small {
    grid-column: 1 / -1;
    display: flex;
    justify-content: center;
    min-height: 26px;
    margin-top: 8px;
    padding: 5px 8px;
    border-radius: 5px;
    background: var(--sales-soft-gold);
    color: #2f2410;
    font-size: 12px;
    font-weight: 900;
}

.fl-sales-cta {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    width: 100%;
    padding: 0 18px;
    border-radius: 999px;
    background: linear-gradient(135deg, #dcb34e, #bd8d2d);
    color: #fff;
    font-size: 15px;
    font-weight: 900;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(183, 132, 34, 0.16);
}

.fl-sales-cta::after {
    content: ">";
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    margin-left: 0;
    font-size: 22px;
    line-height: 1;
}

.fl-sales-cta:hover,
.fl-sales-cta:focus {
    color: #fff;
    filter: brightness(0.98);
    transform: translateY(-1px);
}

.fl-sales-trust {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
    margin-top: 10px;
}

.fl-sales-trust div {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-height: 44px;
    padding: 6px 4px;
    border: 1px solid var(--sales-border);
    border-radius: 7px;
    background: #fff;
    color: var(--sales-deep);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.2;
    white-space: nowrap;
}

.fl-sales-trust .fl-sales-icon {
    width: 17px;
    height: 17px;
    color: var(--sales-blue);
}

.fl-sales-heading,
.fl-sales-panel h2 {
    margin: 0 0 7px;
    color: var(--sales-deep);
    font-size: 20px;
    line-height: 1.35;
    font-weight: 900;
    text-align: center;
}

.fl-sales-center-text,
.fl-sales-panel > p {
    margin: 0 0 12px;
    color: var(--sales-deep);
    font-size: 13px;
    line-height: 1.6;
    text-align: center;
}

.fl-sales-problem {
    padding: 14px;
}

.fl-sales-compare {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.fl-sales-compare__card {
    display: grid;
    justify-items: center;
    gap: 5px;
    min-height: 106px;
    padding: 12px 8px;
    border: 1px solid var(--sales-border);
    border-radius: 8px;
    background: #fff;
    text-align: center;
}

.fl-sales-compare__card .fl-sales-icon {
    width: 32px;
    height: 32px;
}

.fl-sales-compare__card strong {
    color: var(--sales-deep);
    font-size: 14px;
}

.fl-sales-compare__card span {
    color: var(--sales-text);
    font-size: 12px;
    font-weight: 700;
}

.fl-sales-compare__card.is-muted {
    color: #9aa6b2;
    background: #f8fafc;
}

.fl-sales-compare__card.is-flex {
    border-color: var(--sales-blue);
    background: linear-gradient(135deg, #fff, var(--sales-light-blue));
    color: var(--sales-blue);
    box-shadow: inset 0 0 0 1px rgba(11, 115, 217, 0.12);
}

.fl-sales-split {
    display: grid;
    gap: 12px;
}

.fl-sales-steps {
    display: grid;
    gap: 7px;
}

.fl-sales-steps article {
    display: grid;
    grid-template-columns: 42px 30px minmax(0, 1fr);
    gap: 4px 10px;
    align-items: center;
    padding: 9px 10px;
    border: 1px solid var(--sales-border);
    border-radius: 8px;
    background: #fff;
}

.fl-sales-steps b {
    grid-row: span 2;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--sales-blue), var(--sales-navy));
    color: #fff;
    font-size: 13px;
}

.fl-sales-steps .fl-sales-icon {
    grid-row: span 2;
    color: var(--sales-blue);
}

.fl-sales-steps strong {
    color: var(--sales-deep);
    font-size: 14px;
    line-height: 1.2;
}

.fl-sales-steps span {
    color: var(--sales-muted);
    font-size: 12px;
}

.fl-sales-phone-mock {
    width: min(270px, 78vw);
    margin: 0 auto;
    padding: 10px 10px 0;
    border: 7px solid #1c2430;
    border-bottom: 0;
    border-radius: 34px 34px 0 0;
    background: #111827;
    box-shadow: 0 6px 18px rgba(6, 38, 74, 0.10);
}

.fl-sales-phone-mock__screen {
    overflow: hidden;
    min-height: 254px;
    padding: 12px;
    border-radius: 22px 22px 0 0;
    background: #fff;
}

.fl-sales-video {
    height: 96px;
    border-radius: 9px;
    background:
        linear-gradient(180deg, rgba(6, 38, 74, 0), rgba(6, 38, 74, 0.48)),
        var(--fl-sales-hero-image) center / cover;
}

.fl-sales-phone-mock h3 {
    margin: 12px 0 8px;
    color: var(--sales-deep);
    font-size: 13px;
}

.fl-sales-phone-mock ul {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fl-sales-phone-mock li {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--sales-text);
    font-size: 12px;
    font-weight: 700;
}

.fl-sales-phone-mock li span {
    width: 14px;
    height: 14px;
    border-radius: 4px;
    background: var(--sales-blue);
}

.fl-sales-member-grid,
.fl-sales-programs,
.fl-sales-posts,
.fl-sales-result-grid {
    display: grid;
    gap: 8px;
}

.fl-sales-member-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fl-sales-member-grid article {
    display: grid;
    gap: 6px;
    padding: 11px 8px;
}

.fl-sales-member-grid .fl-sales-icon {
    color: var(--sales-navy);
}

.fl-sales-member-grid strong,
.fl-sales-programs strong {
    color: var(--sales-deep);
    font-size: 12px;
    line-height: 1.35;
}

.fl-sales-member-grid span,
.fl-sales-programs p {
    margin: 0;
    color: var(--sales-muted);
    font-size: 11px;
    line-height: 1.5;
}

.fl-sales-programs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fl-sales-programs article {
    position: relative;
    overflow: hidden;
    min-height: 152px;
    padding: 8px;
}

.fl-sales-programs__image {
    height: 58px;
    margin: -2px -2px 8px;
    border-radius: 7px;
    background: var(--fl-sales-hero-image) center / cover;
}

.fl-sales-programs article span {
    position: absolute;
    top: 8px;
    left: 8px;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background: var(--sales-blue);
    color: #fff;
}

.fl-sales-programs .fl-sales-icon {
    width: 18px;
    height: 18px;
}

.fl-sales-posts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fl-sales-posts article {
    padding: 10px;
}

.fl-sales-posts b {
    display: block;
    color: var(--sales-deep);
    font-size: 12px;
}

.fl-sales-posts span,
.fl-sales-posts small {
    display: block;
    color: var(--sales-muted);
    font-size: 11px;
}

.fl-sales-posts p {
    min-height: 54px;
    margin: 8px 0;
    color: var(--sales-text);
    font-size: 11px;
    line-height: 1.5;
}

.fl-sales-before-after {
    display: grid;
    grid-template-columns: 1fr 26px 1fr;
    gap: 8px;
    align-items: center;
    padding: 10px;
}

.fl-sales-before-after div {
    position: relative;
    min-height: 78px;
    border-radius: 8px;
    background: var(--fl-sales-hero-image) center / cover;
}

.fl-sales-before-after div span {
    position: absolute;
    top: 5px;
    left: 50%;
    transform: translateX(-50%);
    padding: 2px 11px;
    border-radius: 999px;
    background: #5b6571;
    color: #fff;
    font-size: 11px;
    font-weight: 900;
}

.fl-sales-before-after div:last-of-type span {
    background: var(--sales-blue);
}

.fl-sales-before-after b {
    width: 24px;
    height: 16px;
    background: linear-gradient(90deg, transparent 0 20%, #9aa6b2 20% 70%, transparent 70% 100%);
    clip-path: polygon(0 30%, 60% 30%, 60% 0, 100% 50%, 60% 100%, 60% 70%, 0 70%);
}

.fl-sales-before-after strong,
.fl-sales-before-after p,
.fl-sales-before-after small {
    grid-column: 1 / -1;
}

.fl-sales-before-after strong {
    color: var(--sales-deep);
    font-size: 13px;
}

.fl-sales-before-after p {
    margin: 0;
    color: var(--sales-text);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.fl-sales-before-after small {
    color: var(--sales-muted);
    font-size: 11px;
}

.fl-sales-voice {
    display: grid;
    gap: 7px;
    padding: 14px;
}

.fl-sales-voice .fl-sales-icon {
    color: var(--sales-navy);
}

.fl-sales-voice strong {
    color: var(--sales-deep);
    font-size: 14px;
}

.fl-sales-voice p {
    margin: 0;
    color: var(--sales-text);
    font-size: 13px;
    line-height: 1.6;
}

.fl-sales-voice span {
    color: var(--sales-deep);
    font-size: 13px;
    font-weight: 800;
}

.fl-sales-offer {
    overflow: hidden;
}

.fl-sales-offer h2 {
    margin: 0;
    padding: 8px 12px;
    background: linear-gradient(135deg, var(--sales-navy), var(--sales-deep));
    color: #fff;
    font-size: 16px;
    line-height: 1.35;
    text-align: center;
}

.fl-sales-offer__body {
    display: grid;
    gap: 10px;
    padding: 13px 14px 10px;
}

.fl-sales-offer__body > div strong {
    display: block;
    color: var(--sales-deep);
    font-size: 40px;
    line-height: 1;
    text-align: center;
}

.fl-sales-offer__body > div span {
    display: block;
    margin-top: 5px;
    color: var(--sales-deep);
    font-size: 13px;
    font-weight: 900;
    text-align: center;
}

.fl-sales-offer ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px 9px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fl-sales-offer li {
    display: flex;
    align-items: center;
    gap: 5px;
    color: var(--sales-deep);
    font-size: 11px;
    font-weight: 800;
}

.fl-sales-offer li .fl-sales-icon {
    width: 14px;
    height: 14px;
    color: var(--sales-blue);
    stroke-width: 3;
}

.fl-sales-offer .fl-sales-cta {
    width: calc(100% - 28px);
    min-height: 44px;
    margin: 0 14px 14px;
}

.fl-sales-faq {
    padding-bottom: 16px;
}

.fl-sales-faq details {
    margin-bottom: 6px;
}

.fl-sales-faq summary {
    display: flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 12px;
    color: var(--sales-deep);
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.fl-sales-faq summary::after {
    content: "⌄";
    margin-left: auto;
    color: var(--sales-blue);
    font-size: 18px;
}

.fl-sales-faq details[open] summary::after {
    transform: rotate(180deg);
}

.fl-sales-faq p {
    margin: 0;
    padding: 0 12px 12px;
    color: var(--sales-muted);
    font-size: 12px;
    line-height: 1.65;
}

.fl-sales-sticky {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 100;
    padding: 10px 18px max(10px, env(safe-area-inset-bottom));
    border-top: 1px solid rgba(221, 231, 242, 0.9);
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(14px);
    box-shadow: 0 -10px 28px rgba(6, 38, 74, 0.12);
}

.fl-sales-sticky a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(100%, 520px);
    min-height: 52px;
    margin: 0 auto;
    border-radius: 999px;
    background: linear-gradient(135deg, #dcb34e, #bd8d2d);
    color: #fff;
    font-size: 16px;
    font-weight: 900;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(183, 132, 34, 0.16);
}

.fl-sales-sticky a::after {
    content: ">";
    position: absolute;
    right: 22px;
    top: 50%;
    transform: translateY(-50%);
    margin-left: 0;
    font-size: 22px;
}

@media (min-width: 781px) {
    .fl-sales-lp {
        padding-bottom: 104px;
    }

    .fl-sales-hero::before {
        top: -12px;
        right: -72px;
        width: 76%;
        height: calc(100% + 24px);
        background: var(--fl-sales-hero-image) center left / cover no-repeat;
        -webkit-mask-image:
            linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%),
            linear-gradient(180deg, transparent 0, #000 11%, #000 89%, transparent 100%);
        mask-image:
            linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%),
            linear-gradient(180deg, transparent 0, #000 11%, #000 89%, transparent 100%);
    }

    .fl-sales-hero::after {
        background:
            linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0.98) 31%, rgba(255, 255, 255, 0.62) 45%, rgba(255, 255, 255, 0) 64%),
            linear-gradient(180deg, #fff 0, rgba(255, 255, 255, 0) 18%, rgba(255, 255, 255, 0) 78%, #fff 100%);
    }

    .fl-sales-container {
        width: min(var(--container), calc(100% - 40px));
    }

    .fl-sales-section {
        padding: 16px 0;
    }

    .fl-sales-problem {
        padding: 22px 24px;
    }

    .fl-sales-heading,
    .fl-sales-panel h2 {
        margin-bottom: 10px;
    }

    .fl-sales-center-text,
    .fl-sales-panel > p {
        margin-bottom: 18px;
        font-size: 15px;
    }

    .fl-sales-hero h1 {
        max-width: 460px;
        font-size: clamp(42px, 4.8vw, 52px);
        line-height: 1.1;
    }

    .fl-sales-hero__lead {
        max-width: 430px;
        font-size: 15px;
    }

    .fl-sales-badge {
        font-size: 13px;
    }

    .fl-sales-price-card span,
    .fl-sales-price-card small {
        font-size: 13px;
    }

    .fl-sales-price-card strong {
        font-size: 34px;
    }

    .fl-sales-price-card strong em {
        font-size: 13px;
    }

    .fl-sales-cta {
        font-size: 17px;
    }

    .fl-sales-trust div {
        font-size: 13px;
    }

    .fl-sales-heading,
    .fl-sales-panel h2 {
        font-size: 24px;
    }

    .fl-sales-compare__card strong,
    .fl-sales-steps strong,
    .fl-sales-voice strong {
        font-size: 16px;
    }

    .fl-sales-compare__card span,
    .fl-sales-steps span,
    .fl-sales-before-after p,
    .fl-sales-voice p {
        font-size: 14px;
    }

    .fl-sales-member-grid strong,
    .fl-sales-programs strong,
    .fl-sales-posts b,
    .fl-sales-before-after strong {
        font-size: 14px;
    }

    .fl-sales-member-grid span,
    .fl-sales-programs p,
    .fl-sales-posts p,
    .fl-sales-voice span,
    .fl-sales-offer__body > div span {
        font-size: 13px;
    }

    .fl-sales-posts span,
    .fl-sales-posts small,
    .fl-sales-before-after small {
        font-size: 11px;
    }

    .fl-sales-offer h2 {
        font-size: 19px;
    }

    .fl-sales-offer li,
    .fl-sales-faq summary,
    .fl-sales-faq p {
        font-size: 13px;
    }

    .fl-sales-hero__row {
        grid-template-columns: 300px minmax(280px, 1fr);
        align-items: center;
        max-width: 780px;
    }

    .fl-sales-split,
    .fl-sales-result-grid {
        grid-template-columns: minmax(0, 1fr) minmax(280px, 0.75fr);
        align-items: center;
        gap: 20px;
    }

    .fl-sales-member-grid,
    .fl-sales-programs,
    .fl-sales-posts {
        gap: 16px;
    }

    .fl-sales-compare {
        gap: 14px;
    }
}

body.flui-lp-template:not(.logged-in) .fl-member-menu .fl-button:not(.fl-button--gold) {
    display: none;
}

body.flui-lp-template:not(.logged-in) .fl-nav__login {
    order: 1;
}

body.flui-lp-template:not(.logged-in) .fl-member-menu .fl-button--gold {
    order: 2;
}

@media (max-width: 780px) {
    body.flui-lp-template:not(.logged-in) .fl-header {
        position: sticky;
        top: 0;
        z-index: 90;
        border-bottom: 1px solid rgba(221, 231, 242, 0.9);
        background: rgba(255, 255, 255, 0.96);
        box-shadow: none;
        backdrop-filter: blur(12px);
    }

    body.flui-lp-template:not(.logged-in) .fl-header__inner {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        gap: 10px;
        min-height: 60px;
        padding: 7px 0;
    }

    body.flui-lp-template:not(.logged-in) .fl-brand img,
    body.flui-lp-template:not(.logged-in) .fl-brand .custom-logo {
        max-height: 34px;
    }

    body.flui-lp-template:not(.logged-in) .fl-menu-button,
    body.flui-lp-template:not(.logged-in) .fl-member-menu .fl-button:first-child {
        display: none;
    }

    body.flui-lp-template:not(.logged-in) .fl-header__menu {
        grid-column: auto;
        display: flex;
        justify-content: flex-end;
        width: auto;
        max-height: none;
        overflow: visible;
        opacity: 1;
        padding: 0;
        border: 0;
    }

    body.flui-lp-template:not(.logged-in) .fl-member-menu {
        display: flex;
        justify-content: flex-end;
        gap: 8px;
        width: auto;
    }

    body.flui-lp-template:not(.logged-in) .fl-member-menu .fl-button--gold,
    body.flui-lp-template:not(.logged-in) .fl-nav__login {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: auto;
        min-height: 38px;
        padding: 0 14px;
        border-radius: 8px;
        font-size: 14px;
        font-weight: 900;
        line-height: 1;
        text-decoration: none;
        white-space: nowrap;
    }

    body.flui-lp-template:not(.logged-in) .fl-member-menu .fl-button--gold {
        min-width: 82px;
        background: linear-gradient(135deg, #d8ab48, #bd8c2b);
        color: #fff;
        box-shadow: 0 8px 18px rgba(185, 137, 38, 0.2);
    }

    body.flui-lp-template:not(.logged-in) .fl-nav__login {
        min-width: 68px;
        border: 1px solid var(--color-blue);
        background: #fff;
        color: var(--color-blue);
    }

    .fl-lp-poster {
        background:
            linear-gradient(180deg, #fff 0%, #f8fbff 48%, #fff 100%);
        padding-bottom: 0;
    }

    .fl-lp-poster .fl-lp-hero-pro {
        min-height: 0;
        padding: 18px 0 14px;
        background:
            linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0.94) 43%, rgba(255, 255, 255, 0.24) 70%, rgba(255, 255, 255, 0) 100%),
            var(--lp-hero-image) right 4px top 10px / 68% auto no-repeat,
            #fff;
    }

    .fl-lp-poster .fl-lp-hero-pro__grid {
        display: block;
    }

    .fl-lp-poster .fl-lp-hero-pro__copy {
        display: grid;
        gap: 10px;
        max-width: none;
    }

    .fl-lp-poster .fl-lp-pill {
        justify-self: start;
        min-height: 28px;
        margin-left: 0;
        padding: 0 18px 0 16px;
        border-radius: 0 5px 5px 0;
        background: linear-gradient(135deg, #dcb34e, #bd8d2d);
        font-size: 12px;
        letter-spacing: 0.04em;
    }

    .fl-lp-poster .fl-lp-pill::before,
    .fl-lp-poster .fl-lp-pill::after {
        content: none;
    }

    .fl-lp-poster .fl-lp-eyebrow {
        display: none;
    }

    .fl-lp-poster .fl-lp-hero-pro h1 {
        max-width: 72%;
        margin: 2px 0 0;
        color: var(--color-deep-blue);
        font-size: clamp(26px, 7.9vw, 32px);
        line-height: 1.22;
        font-weight: 900;
    }

    .fl-lp-poster .fl-lp-hero-pro h1 span {
        display: block;
        color: inherit;
    }

    .fl-lp-poster .fl-lp-hero-pro__lead {
        max-width: 62%;
        color: var(--color-deep-blue);
        font-size: 12px;
        font-weight: 800;
        line-height: 1.5;
    }

    .fl-lp-hero-price {
        display: grid;
        grid-template-columns: auto 1fr auto;
        align-items: end;
        width: min(100%, 230px);
        margin-top: 2px;
        padding: 10px 12px 9px;
        border: 1px solid rgba(186, 210, 238, 0.9);
        border-radius: 8px;
        background: rgba(255, 255, 255, 0.92);
        box-shadow: 0 10px 24px rgba(6, 38, 74, 0.08);
    }

    .fl-lp-hero-price span {
        color: var(--color-deep-blue);
        font-size: 12px;
        font-weight: 900;
    }

    .fl-lp-hero-price strong {
        justify-self: center;
        color: var(--color-deep-blue);
        font-size: 27px;
        font-weight: 900;
        line-height: 1;
        letter-spacing: 0;
    }

    .fl-lp-hero-price small {
        grid-column: 1 / -1;
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 26px;
        margin-top: 8px;
        border-radius: 4px;
        background: #efd49a;
        color: #2f2410;
        font-size: 12px;
        font-weight: 900;
    }

    .fl-lp-poster .fl-lp-hero-pro .fl-lp-actions,
    .fl-lp-poster .fl-lp-hero-pro .fl-lp-actions:has(.fl-button:nth-child(2)) {
        grid-template-columns: 1fr;
        margin-top: 4px;
    }

    .fl-lp-poster .fl-lp-hero-pro .fl-lp-actions .fl-button--outline {
        display: none;
    }

    .fl-lp-poster .fl-lp-hero-pro .fl-lp-actions .fl-button--gold {
        min-height: 54px;
        border-radius: 999px;
        background: linear-gradient(135deg, #dcb34e, #bd8d2d);
        color: #fff;
        font-size: 17px;
        letter-spacing: 0.02em;
        box-shadow: 0 5px 14px rgba(179, 129, 35, 0.16);
    }

    .fl-lp-poster .fl-lp-hero-pro .fl-lp-actions .fl-button--gold::after {
        content: ">";
        margin-left: auto;
        font-size: 22px;
        line-height: 1;
    }

    .fl-lp-poster .fl-lp-proof-row {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 4px;
        margin-top: 4px;
    }

    .fl-lp-poster .fl-lp-proof-row span,
    .fl-lp-poster .fl-lp-proof-row span:nth-child(5) {
        grid-column: auto;
        flex-direction: row;
        min-height: 42px;
        gap: 5px;
        padding: 6px 5px;
        border-radius: 6px;
        background: rgba(255, 255, 255, 0.92);
        font-size: 11px;
        font-weight: 900;
    }

    .fl-lp-proof-row .fl-lp-icon {
        width: 19px;
        height: 19px;
    }

    .fl-lp-poster .fl-lp-hero-pro__visual {
        display: none;
    }

    .fl-lp-poster .fl-lp-trust {
        display: none;
    }

    .fl-lp-poster .fl-section {
        padding: 6px 0;
    }

    .fl-lp-duo {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    .fl-lp-panel,
    .fl-lp-program-board,
    .fl-lp-bonus-card,
    .fl-lp-recommend-card {
        padding: 12px;
        border-radius: 8px;
        box-shadow: 0 10px 24px rgba(6, 38, 74, 0.05);
    }

    .fl-lp-panel__head {
        margin-bottom: 8px;
        text-align: center;
    }

    .fl-lp-panel__head span {
        display: none;
    }

    .fl-lp-panel__head h2,
    .fl-lp-poster .fl-lp-section-head h2,
    .fl-lp-community-card h2,
    .fl-lp-recommend-card h2,
    .fl-lp-bonus-card h2 {
        font-size: 16px;
        line-height: 1.35;
        text-align: center;
    }

    .fl-lp-poster .fl-lp-pain-grid {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .fl-lp-poster .fl-lp-pain-grid div {
        min-height: 28px;
        padding: 5px 6px;
        border-radius: 5px;
        font-size: 11px;
        line-height: 1.35;
    }

    .fl-lp-panel__note,
    .fl-lp-panel p,
    .fl-lp-small {
        font-size: 11px;
        line-height: 1.5;
    }

    .fl-lp-panel--image {
        min-height: 0;
        padding-right: 12px;
        padding-bottom: 90px;
        background:
            linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0.96) 56%, rgba(255, 255, 255, 0.18) 100%),
            var(--lp-hero-image) center bottom / 120% auto no-repeat,
            #fff;
    }

    .fl-lp-poster .fl-lp-cause-list {
        grid-template-columns: 1fr;
        gap: 4px;
        margin-top: 8px;
    }

    .fl-lp-poster .fl-lp-cause-list span {
        min-height: 20px;
        font-size: 11px;
        line-height: 1.3;
    }

    .fl-lp-poster .fl-lp-cause-list .fl-lp-icon {
        width: 12px;
        height: 12px;
    }

    .fl-lp-poster .fl-lp-section-head {
        margin-bottom: 8px;
        text-align: center;
    }

    .fl-lp-heading-icon {
        width: 34px;
        height: 34px;
        margin: 0 auto 5px;
        border-radius: 9px;
    }

    .fl-lp-poster .fl-lp-section-head p {
        display: none;
    }

    .fl-lp-poster .fl-lp-journey article:nth-child(n+4) {
        display: none;
    }

    .fl-lp-poster .fl-lp-journey article {
        grid-template-columns: 34px minmax(0, 1fr);
        gap: 1px 9px;
        padding: 9px 10px;
    }

    .fl-lp-poster .fl-lp-journey article > span {
        width: 28px;
        height: 28px;
        font-size: 11px;
    }

    .fl-lp-poster .fl-lp-journey article .fl-lp-icon {
        display: none;
    }

    .fl-lp-poster .fl-lp-journey article h3 {
        font-size: 13px;
    }

    .fl-lp-poster .fl-lp-journey article p {
        font-size: 11px;
        line-height: 1.5;
    }

    .fl-lp-program-board {
        padding: 12px 10px;
        gap: 9px;
    }

    .fl-lp-program-board__copy {
        order: -1;
        text-align: center;
    }

    .fl-lp-program-board__copy .fl-lp-eyebrow {
        display: none;
    }

    .fl-lp-program-board__copy h2 {
        margin: 0;
        font-size: 17px;
        text-align: center;
    }

    .fl-lp-device {
        min-height: 230px;
        border-radius: 8px;
        background-size: cover;
    }

    .fl-lp-content-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
    }

    .fl-lp-content-list div {
        display: grid;
        grid-template-columns: 1fr;
        gap: 4px;
        min-height: 92px;
        padding: 8px 6px;
        border-radius: 7px;
        text-align: left;
    }

    .fl-lp-content-list .fl-lp-icon {
        width: 28px;
        height: 28px;
        padding: 6px;
    }

    .fl-lp-content-list strong {
        font-size: 11px;
        line-height: 1.35;
    }

    .fl-lp-content-list span {
        font-size: 11px;
        line-height: 1.35;
    }

    .fl-lp-video-strip {
        display: none;
    }

    .fl-lp-community-card {
        grid-template-columns: 0.78fr 1.22fr;
        gap: 10px;
    }

    .fl-lp-phone {
        min-height: 180px;
        border-width: 7px;
        border-radius: 22px;
    }

    .fl-lp-community-list {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .fl-lp-poster .fl-lp-community-list span {
        font-size: 11px;
    }

    .fl-lp-voice-grid {
        grid-template-columns: 1fr;
    }

    .fl-lp-offer-row {
        gap: 7px;
    }

    .fl-lp-poster .fl-lp-offer-pro {
        border-radius: 8px;
    }

    .fl-lp-poster .fl-lp-offer-pro__main {
        padding-top: 40px;
        text-align: center;
    }

    .fl-lp-poster .fl-lp-offer-pro__main h2 {
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        margin: 0;
        padding: 8px 10px;
        border-radius: 8px 8px 0 0;
        background: var(--color-deep-blue);
        color: #fff;
        font-size: 16px;
    }

    .fl-lp-poster .fl-lp-price {
        font-size: 36px;
    }

    .fl-lp-poster .fl-lp-offer-pro__main .fl-button {
        min-height: 42px;
        border-radius: 999px;
        background: linear-gradient(135deg, #dcb34e, #bd8d2d);
        color: #fff;
        font-size: 15px;
    }

    .fl-lp-poster .fl-lp-offer-pro__side ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5px 9px;
    }

    .fl-lp-poster .fl-lp-offer-pro__side li {
        font-size: 11px;
        line-height: 1.35;
    }

    .fl-lp-faq details {
        border-radius: 6px;
    }

    .fl-lp-faq summary {
        min-height: 30px;
        padding: 6px 12px;
        font-size: 11px;
    }

    .fl-lp-poster .fl-lp-final-pro {
        padding: 22px 0 26px;
    }

    .fl-lp-poster .fl-lp-final-pro h2 {
        font-size: 19px;
    }

    .fl-lp-mobile-sticky {
        display: none;
    }
}

.fl-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(280px, 0.7fr);
    align-items: center;
    min-height: calc(100vh - var(--header-height));
    gap: 48px;
    padding: 70px 0 120px;
}

.fl-hero h1 {
    max-width: 620px;
    margin: 0 0 22px;
    color: var(--color-white);
    font-family: var(--font-serif);
    font-size: clamp(38px, 5vw, 68px);
    font-weight: 700;
    line-height: 1.35;
}

.fl-hero p {
    max-width: 520px;
    margin: 0 0 34px;
    color: rgba(255, 255, 255, 0.86);
    line-height: 1.8;
}

.fl-hero__metrics {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 28px 0;
    background: rgba(6, 38, 74, 0.58);
    backdrop-filter: blur(16px);
}

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

.fl-hero__metric {
    padding: 16px 28px;
    border-left: 1px solid rgba(255, 255, 255, 0.18);
}

.fl-hero__metric strong {
    display: block;
    margin-bottom: 6px;
    color: var(--color-white);
}

.fl-hero__metric span {
    color: rgba(255, 255, 255, 0.72);
    font-size: 13px;
    line-height: 1.7;
}

.fl-flow {
    counter-reset: flow;
}

.fl-flow .fl-card__body {
    position: relative;
}

.fl-flow .fl-card__body::before {
    counter-increment: flow;
    content: counter(flow);
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin-bottom: 20px;
    border-radius: 50%;
    background: var(--color-light-blue);
    color: var(--color-blue);
    font-weight: 800;
}

.fl-price {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(280px, 0.45fr);
    align-items: center;
    gap: 28px;
    padding: 34px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, var(--color-navy), var(--color-deep-blue));
    color: var(--color-white);
    box-shadow: var(--shadow-md);
}

.fl-price h2 {
    margin-top: 0;
    color: var(--color-white);
}

.fl-price p {
    color: rgba(255, 255, 255, 0.78);
}

.fl-diagnosis-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 28px;
    align-items: start;
}

.fl-diagnosis-panel {
    overflow: hidden;
}

.fl-diagnosis-body {
    padding: 36px;
}

.fl-side-note {
    padding: 28px;
    text-align: center;
}

.fl-side-note__figure {
    display: grid;
    place-items: center;
    width: 130px;
    height: 220px;
    margin: 24px auto 0;
    border-radius: 70px;
    background: linear-gradient(180deg, #e9f5ff, #b7dcf7);
    color: var(--color-blue);
    font-size: 54px;
}

.fl-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.7fr);
    gap: 24px;
}

.fl-dashboard-stack {
    display: grid;
    gap: 24px;
}

.fl-program-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 24px;
    align-items: center;
    padding: 30px;
    background: linear-gradient(135deg, #ffffff, #edf6ff);
}

.fl-program-hero__visual {
    min-height: 190px;
    border-radius: var(--radius-md);
    background:
        linear-gradient(180deg, rgba(6, 38, 74, 0.08), rgba(11, 115, 217, 0.12)),
        url("https://images.unsplash.com/photo-1518611012118-696072aa579a?auto=format&fit=crop&w=900&q=80") center / cover;
}

.fl-play-page {
    display: grid;
    grid-template-columns: 340px minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

.fl-player {
    overflow: hidden;
}

.fl-player__frame {
    aspect-ratio: 16 / 9;
    background:
        linear-gradient(135deg, rgba(6, 38, 74, 0.35), rgba(11, 115, 217, 0.1)),
        url("https://images.unsplash.com/photo-1544367567-0f2fcb009e0b?auto=format&fit=crop&w=1200&q=80") center / cover;
}

.fl-player__body {
    padding: 26px;
}

.fl-eval-grid {
    display: grid;
    gap: 10px;
    margin: 18px 0;
}

.fl-faq {
    display: grid;
    gap: 12px;
}

.fl-faq details {
    padding: 18px 20px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-white);
}

.fl-faq summary {
    cursor: pointer;
    color: var(--color-navy);
    font-weight: 800;
}

.fl-auth-section {
    display: grid;
    align-items: center;
    min-height: calc(100vh - var(--header-height));
}

.fl-auth-layout {
    display: grid;
    grid-template-columns: minmax(320px, 0.9fr) minmax(280px, 0.8fr);
    gap: 40px;
    align-items: center;
}

.fl-auth-card .fl-section-title {
    margin-bottom: 22px;
}

.fl-auth-note {
    margin: 18px 0 0;
    color: var(--color-muted);
    font-size: 14px;
}

.fl-auth-buttons {
    display: grid;
    gap: 12px;
}

.fl-auth-buttons .fl-button {
    width: 100%;
}

.fl-auth-side {
    padding: 36px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(234, 244, 255, 0.95), rgba(255, 255, 255, 0.86));
}

.fl-auth-side h2 {
    margin: 0 0 14px;
    color: var(--color-navy);
    font-family: var(--font-serif);
    font-size: clamp(28px, 3vw, 42px);
    line-height: 1.35;
}

.fl-purchase-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 28px;
    align-items: start;
}

.fl-purchase-card {
    position: sticky;
    top: calc(var(--header-height) + 24px);
}

.fl-price-value {
    margin: 18px 0;
    color: var(--color-navy);
    font-size: 46px;
    font-weight: 900;
}

.fl-price-value span {
    margin-left: 8px;
    color: var(--color-muted);
    font-size: 14px;
    font-weight: 700;
}

.fl-purchase-card .fl-feature-list {
    margin: 18px 0 22px;
}

@media (max-width: 980px) {
    .fl-hero__inner,
    .fl-price,
    .fl-diagnosis-layout,
    .fl-dashboard-grid,
    .fl-program-hero,
    .fl-play-page,
    .fl-auth-layout,
    .fl-purchase-layout {
        grid-template-columns: 1fr;
    }

    .fl-hero__inner {
        min-height: auto;
        padding-bottom: 180px;
    }

    .fl-hero__metric-grid {
        grid-template-columns: 1fr;
    }
}

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

    .fl-hero__inner {
        padding-top: 54px;
        padding-bottom: 230px;
    }

    .fl-diagnosis-body,
    .fl-program-hero,
    .fl-price,
    .fl-auth-side {
        padding: 22px;
    }

    .fl-playlist-item {
        grid-template-columns: 34px 1fr;
    }

    .fl-playlist-item time {
        grid-column: 2;
    }
}

/* Mock-aligned LP and member pages */
.fl-hero {
    min-height: 620px;
    background:
        linear-gradient(112deg, #ffffff 0%, #ffffff 42%, rgba(234, 244, 255, 0.94) 72%, rgba(247, 250, 253, 1) 100%);
    color: var(--color-text);
}

.fl-hero::before {
    content: "";
    position: absolute;
    inset: 74px 0 auto auto;
    width: 52%;
    height: 560px;
    background:
        linear-gradient(135deg, rgba(11, 115, 217, 0.08), rgba(255, 255, 255, 0)),
        radial-gradient(circle at 70% 30%, rgba(11, 115, 217, 0.15), transparent 36%);
    clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%);
    pointer-events: none;
}

.fl-hero__inner {
    position: relative;
    grid-template-columns: minmax(0, 0.86fr) minmax(420px, 1fr);
    min-height: 560px;
    padding: 76px 0 118px;
}

.fl-hero__copy {
    position: relative;
    z-index: 2;
}

.fl-hero h1 {
    max-width: 590px;
    color: var(--color-navy);
    font-size: clamp(38px, 4.2vw, 58px);
    letter-spacing: 0;
}

.fl-hero p {
    max-width: 520px;
    color: var(--color-text);
    font-size: 16px;
}

.fl-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.fl-hero__visual {
    position: relative;
    z-index: 1;
    min-height: 430px;
}

.fl-hero__visual::before {
    content: "";
    position: absolute;
    inset: 18px 0 18px 22px;
    border-radius: 34px;
    background:
        linear-gradient(160deg, rgba(255, 255, 255, 0.15), rgba(234, 244, 255, 0.75)),
        url("https://images.unsplash.com/photo-1518611012118-696072aa579a?auto=format&fit=crop&w=1200&q=85") center / cover;
    box-shadow: 0 30px 80px rgba(6, 38, 74, 0.16);
}

.fl-hero__visual::after {
    content: "";
    position: absolute;
    inset: 18px 0 18px 22px;
    border-radius: 34px;
    background: linear-gradient(90deg, rgba(234, 244, 255, 0.22), rgba(255, 255, 255, 0.62));
}

.fl-hero__person {
    position: absolute;
    right: 50px;
    bottom: 48px;
    z-index: 2;
    width: 72%;
    height: 70%;
    border-radius: 999px 999px 26px 26px;
    background:
        radial-gradient(circle at 70% 10%, #fff 0 9%, transparent 10%),
        linear-gradient(135deg, rgba(11, 79, 134, 0.12), rgba(11, 115, 217, 0.22));
    opacity: 0.5;
    transform: rotate(-4deg);
}

.fl-hero__glass-card {
    position: absolute;
    right: 26px;
    bottom: 54px;
    z-index: 3;
    min-width: 142px;
    padding: 14px 16px;
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.74);
    box-shadow: 0 6px 18px rgba(6, 38, 74, 0.10);
    backdrop-filter: blur(14px);
}

.fl-hero__glass-card span {
    display: block;
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 700;
}

.fl-hero__glass-card strong {
    display: block;
    margin-top: 4px;
    color: var(--color-deep-blue);
    font-size: 22px;
}

.fl-hero__metrics {
    padding: 0;
    background: var(--color-deep-blue);
    box-shadow: 0 -1px 0 rgba(255, 255, 255, 0.08) inset;
    backdrop-filter: none;
}

.fl-hero__metric-grid {
    min-height: 92px;
}

.fl-hero__metric {
    display: grid;
    align-content: center;
    padding: 20px 34px;
}

.fl-section {
    padding: 66px 0;
}

.fl-section-title {
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.fl-eyebrow {
    color: var(--color-blue);
}

.fl-section-title h1,
.fl-section-title h2 {
    color: var(--color-deep-blue);
}

.fl-price {
    background: #fff;
    color: var(--color-text);
    border: 1px solid rgba(221, 231, 242, 0.95);
}

.fl-price h2 {
    color: var(--color-deep-blue);
}

.fl-price p {
    color: var(--color-muted);
}

.fl-diagnosis-layout,
.fl-dashboard-grid,
.fl-play-page,
.fl-purchase-layout {
    align-items: start;
}

.fl-diagnosis-body {
    padding: 34px 40px;
}

.fl-side-note {
    background: linear-gradient(180deg, #fff, #f5faff);
}

.fl-side-note__figure {
    background: linear-gradient(180deg, #eaf4ff, #d7ecff);
}

.fl-program-hero {
    background: linear-gradient(135deg, #ffffff, #f0f7ff);
    border: 1px solid rgba(221, 231, 242, 0.95);
}

.fl-player__frame {
    background:
        linear-gradient(135deg, rgba(6, 38, 74, 0.2), rgba(11, 115, 217, 0.05)),
        url("https://images.unsplash.com/photo-1593810450967-f9c42742e326?auto=format&fit=crop&w=1200&q=85") center / cover;
}

.fl-lp .fl-section-title {
    max-width: 820px;
}

.fl-lp-kicker {
    display: inline-flex;
    max-width: 100%;
    margin-bottom: 18px;
    padding: 8px 13px;
    border: 1px solid rgba(11, 115, 217, 0.2);
    border-radius: 999px;
    background: rgba(234, 244, 255, 0.86);
    color: var(--color-navy);
    font-size: 13px;
    font-weight: 800;
}

.fl-lp-hero .fl-hero__metric-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.fl-lp-split,
.fl-lp-diagnosis,
.fl-lp-two-lists,
.fl-lp-offer,
.fl-lp-price-box {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(320px, 1fr);
    gap: 34px;
    align-items: center;
}

.fl-lp-split .fl-section-title,
.fl-lp-diagnosis .fl-section-title {
    margin-right: 0;
    margin-left: 0;
    text-align: left;
}

.fl-lp-emphasis {
    width: fit-content;
    padding: 16px 18px;
    border-left: 4px solid var(--color-gold);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    background: #fff;
    color: var(--color-deep-blue);
    font-size: 20px;
    font-weight: 900;
    box-shadow: var(--shadow-sm);
}

.fl-lp-checks {
    display: grid;
    gap: 11px;
    margin: 0;
    padding: 20px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.88);
    box-shadow: var(--shadow-sm);
    list-style: none;
}

.fl-lp-checks li {
    position: relative;
    padding-left: 28px;
    color: var(--color-text);
    line-height: 1.7;
}

.fl-lp-checks li::before {
    content: "";
    position: absolute;
    top: 0.72em;
    left: 0;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--color-blue);
    box-shadow: 0 0 0 5px var(--color-light-blue);
}

.fl-lp-checks.is-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fl-lp-checks.is-muted li::before {
    background: var(--color-muted);
    box-shadow: 0 0 0 5px #f1f5f9;
}

.fl-lp-band {
    background:
        linear-gradient(135deg, rgba(234, 244, 255, 0.66), rgba(255, 255, 255, 0.92));
}

.fl-lp-cause-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin: 30px 0;
}

.fl-lp-cause-grid div,
.fl-lp-tags span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 8px 12px;
    border: 1px solid rgba(11, 115, 217, 0.18);
    border-radius: 999px;
    background: #fff;
    color: var(--color-deep-blue);
    font-size: 13px;
    font-weight: 800;
    text-align: center;
}

.fl-lp-lead {
    max-width: 780px;
    margin: 0 auto;
    color: var(--color-navy);
    font-size: 20px;
    font-weight: 800;
    line-height: 1.8;
    text-align: center;
}

.fl-lp-steps {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.fl-lp-steps .fl-card__body {
    min-height: 270px;
}

.fl-lp-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-top: 28px;
}

.fl-lp-proof {
    background: var(--color-deep-blue);
    color: #fff;
}

.fl-lp-proof h2,
.fl-lp-proof .fl-eyebrow {
    color: #fff;
}

.fl-lp-proof p {
    color: rgba(255, 255, 255, 0.82);
}

.fl-lp-note {
    font-size: 13px;
}

.fl-lp-proof-card {
    display: grid;
    gap: 10px;
    padding: 30px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.1);
}

.fl-lp-proof-card strong {
    color: var(--color-gold-soft);
    font-size: clamp(30px, 4vw, 52px);
    line-height: 1.2;
}

.fl-lp-proof-card span {
    color: rgba(255, 255, 255, 0.82);
}

.fl-lp-offer,
.fl-lp-price-box {
    padding: 34px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: var(--shadow-md);
}

.fl-lp-offer h2,
.fl-lp-two-lists h2,
.fl-lp-final h2,
.fl-lp-split h2 {
    margin-top: 0;
    color: var(--color-deep-blue);
    font-family: var(--font-serif);
    line-height: 1.35;
}

.fl-lp-includes {
    margin-bottom: 24px;
}

.fl-lp-price-box .fl-sale-programs {
    min-width: 0;
}

.fl-lp-price-box .fl-sale-programs--list .fl-sale-program {
    grid-template-columns: 160px minmax(0, 1fr);
}

.fl-lp-price-box .fl-sale-program__media,
.fl-lp-price-box .fl-sale-program__media img {
    min-height: 100%;
}

.fl-lp-trainer {
    min-height: 360px;
    border-radius: var(--radius-lg);
    background:
        linear-gradient(135deg, rgba(6, 38, 74, 0.2), rgba(11, 115, 217, 0.05)),
        url("https://images.unsplash.com/photo-1593810450967-f9c42742e326?auto=format&fit=crop&w=1200&q=85") center / cover;
    box-shadow: var(--shadow-md);
}

.fl-lp-final {
    background:
        linear-gradient(135deg, rgba(6, 38, 74, 0.96), rgba(11, 79, 134, 0.92)),
        url("https://images.unsplash.com/photo-1544367567-0f2fcb009e0b?auto=format&fit=crop&w=1600&q=80") center / cover;
    color: #fff;
}

.fl-lp-final .fl-container {
    display: grid;
    gap: 22px;
    max-width: 900px;
    text-align: center;
}

.fl-lp-final h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(30px, 4vw, 48px);
}

.fl-lp-final p {
    margin: 0 auto;
    max-width: 720px;
    color: rgba(255, 255, 255, 0.84);
    line-height: 1.8;
}

.fl-lp-final .fl-hero__actions {
    justify-content: center;
}

@media (max-width: 980px) {
    .fl-hero::before {
        width: 100%;
        height: 420px;
        opacity: 0.7;
    }

    .fl-hero__inner {
        grid-template-columns: 1fr;
        padding-bottom: 120px;
    }

    .fl-hero__visual {
        min-height: 360px;
    }

    .fl-lp-hero .fl-hero__metric-grid,
    .fl-lp-steps,
    .fl-lp-cause-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fl-lp-split,
    .fl-lp-diagnosis,
    .fl-lp-two-lists,
    .fl-lp-offer,
    .fl-lp-price-box {
        grid-template-columns: 1fr;
    }

    .fl-lp-steps .fl-card__body {
        min-height: auto;
    }
}

@media (max-width: 640px) {
    .fl-hero__inner {
        padding-top: 42px;
        padding-bottom: 210px;
    }

    .fl-hero h1 {
        font-size: 34px;
    }

    .fl-hero__actions .fl-button {
        width: 100%;
    }

    .fl-hero__visual {
        min-height: 280px;
    }

    .fl-hero__visual::before,
    .fl-hero__visual::after {
        inset: 0;
    }

    .fl-lp-kicker {
        border-radius: 14px;
        line-height: 1.6;
    }

    .fl-lp-hero .fl-hero__metric-grid,
    .fl-lp-steps,
    .fl-lp-cause-grid,
    .fl-lp-checks.is-compact {
        grid-template-columns: 1fr;
    }

    .fl-lp-checks,
    .fl-lp-offer,
    .fl-lp-price-box {
        padding: 18px;
    }

    .fl-lp-price-box .fl-sale-programs--list .fl-sale-program {
        grid-template-columns: 1fr;
    }

    .fl-lp-trainer {
        min-height: 260px;
    }
}

/* Sales-focused LP redesign */
.fl-lp-redesign {
    background:
        linear-gradient(180deg, #ffffff 0%, #f7fafd 42%, #ffffff 100%);
}

.fl-lp-hero-pro {
    position: relative;
    overflow: hidden;
    padding: 74px 0 34px;
    background:
        linear-gradient(112deg, #ffffff 0%, #ffffff 46%, rgba(234, 244, 255, 0.84) 100%);
}

.fl-lp-hero-pro::before {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 110px;
    background: var(--color-deep-blue);
}

.fl-lp-hero-pro__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(420px, 1fr);
    gap: 48px;
    align-items: center;
}

.fl-lp-hero-pro__copy {
    display: grid;
    gap: 18px;
    align-content: center;
}

.fl-lp-pill,
.fl-lp-eyebrow {
    width: fit-content;
    font-size: 13px;
    font-weight: 900;
}

.fl-lp-pill {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 13px;
    border-radius: 999px;
    background: var(--color-gold-soft);
    color: var(--color-deep-blue);
}

.fl-lp-eyebrow {
    margin: 0;
    color: var(--color-blue);
}

.fl-lp-hero-pro h1 {
    max-width: 680px;
    margin: 0;
    color: var(--color-deep-blue);
    font-family: var(--font-serif);
    font-size: clamp(40px, 4.8vw, 68px);
    line-height: 1.22;
}

.fl-lp-hero-pro__lead {
    max-width: 620px;
    margin: 0;
    color: var(--color-text);
    font-size: 17px;
    line-height: 1.8;
}

.fl-lp-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}

.fl-lp-proof-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 4px;
}

.fl-lp-proof-row span {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 11px;
    border: 1px solid rgba(11, 79, 134, 0.12);
    border-radius: 999px;
    background: #fff;
    color: var(--color-navy);
    font-size: 12px;
    font-weight: 800;
}

.fl-lp-hero-pro__visual {
    position: relative;
    min-height: 560px;
    border-radius: 30px;
    background:
        linear-gradient(180deg, rgba(6, 38, 74, 0.02), rgba(6, 38, 74, 0.26)),
        var(--lp-hero-image) center / cover;
    box-shadow: 0 34px 90px rgba(6, 38, 74, 0.18);
}

.fl-lp-hero-pro__visual::before {
    content: "";
    position: absolute;
    inset: 18px;
    border: 1px solid rgba(255, 255, 255, 0.58);
    border-radius: 22px;
    pointer-events: none;
}

.fl-lp-product-card {
    position: absolute;
    right: 24px;
    bottom: 24px;
    display: grid;
    gap: 5px;
    width: min(320px, calc(100% - 48px));
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.88);
    box-shadow: 0 6px 18px rgba(6, 38, 74, 0.10);
    backdrop-filter: blur(16px);
}

.fl-lp-product-card span,
.fl-lp-product-card small {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 800;
}

.fl-lp-product-card strong {
    color: var(--color-deep-blue);
    font-size: 22px;
    line-height: 1.35;
}

.fl-lp-trust {
    position: relative;
    z-index: 2;
    margin-top: -1px;
    padding: 0 0 40px;
    background: var(--color-deep-blue);
}

.fl-lp-trust__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.14);
}

.fl-lp-trust__grid div {
    display: grid;
    gap: 6px;
    padding: 20px 24px;
    background: rgba(255, 255, 255, 0.06);
}

.fl-lp-trust__grid strong {
    color: #fff;
}

.fl-lp-trust__grid span {
    color: rgba(255, 255, 255, 0.74);
    font-size: 13px;
    line-height: 1.7;
}

.fl-lp-section-head {
    max-width: 820px;
    margin: 0 auto 34px;
    text-align: center;
}

.fl-lp-section-head span {
    color: var(--color-blue);
    font-size: 13px;
    font-weight: 900;
}

.fl-lp-section-head h2,
.fl-lp-split-pro h2,
.fl-lp-offer-pro h2,
.fl-lp-fit h2,
.fl-lp-final-pro h2 {
    margin: 8px 0 14px;
    color: var(--color-deep-blue);
    font-family: var(--font-serif);
    font-size: clamp(30px, 3.4vw, 48px);
    line-height: 1.35;
}

.fl-lp-section-head p,
.fl-lp-split-pro p,
.fl-lp-offer-pro p {
    margin: 0;
    color: var(--color-muted);
    line-height: 1.8;
}

.fl-lp-pain-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.fl-lp-pain-grid div {
    min-height: 92px;
    padding: 18px;
    border: 1px solid rgba(221, 231, 242, 0.95);
    border-radius: 16px;
    background: #fff;
    color: var(--color-deep-blue);
    font-weight: 900;
    box-shadow: 0 10px 26px rgba(6, 38, 74, 0.05);
}

.fl-lp-difference,
.fl-lp-diagnosis-pro,
.fl-lp-fit {
    background:
        linear-gradient(135deg, rgba(234, 244, 255, 0.72), rgba(255, 255, 255, 0.96));
}

.fl-lp-split-pro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.9fr);
    gap: 42px;
    align-items: center;
}

.fl-lp-image-panel {
    min-height: 420px;
    border-radius: 26px;
    background:
        linear-gradient(135deg, rgba(6, 38, 74, 0.18), rgba(11, 115, 217, 0.06)),
        var(--lp-hero-image) center / cover;
    box-shadow: var(--shadow-md);
}

.fl-lp-cause-list,
.fl-lp-tags,
.fl-lp-community-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.fl-lp-cause-list span,
.fl-lp-tags span,
.fl-lp-community-list span {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 13px;
    border: 1px solid rgba(11, 115, 217, 0.18);
    border-radius: 999px;
    background: #fff;
    color: var(--color-navy);
    font-size: 13px;
    font-weight: 800;
}

.fl-lp-journey {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    border: 1px solid var(--color-border);
    border-radius: 24px;
    overflow: hidden;
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.fl-lp-journey article {
    display: grid;
    gap: 10px;
    align-content: start;
    min-height: 260px;
    padding: 24px;
    border-right: 1px solid var(--color-border);
}

.fl-lp-journey article:last-child {
    border-right: 0;
}

.fl-lp-journey article span,
.fl-lp-content-grid article span {
    color: var(--color-blue);
    font-size: 13px;
    font-weight: 900;
}

.fl-lp-journey h3,
.fl-lp-content-grid h3 {
    margin: 0;
    color: var(--color-deep-blue);
}

.fl-lp-journey p,
.fl-lp-content-grid p {
    margin: 0;
    color: var(--color-muted);
    line-height: 1.75;
}

.fl-lp-diagnosis-card {
    padding: 28px;
    border: 1px solid var(--color-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.fl-lp-diagnosis-card strong {
    display: block;
    margin-bottom: 14px;
    color: var(--color-deep-blue);
    font-size: 20px;
}

.fl-lp-diagnosis-card ul,
.fl-lp-offer-pro ul,
.fl-lp-fit ul {
    display: grid;
    gap: 11px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fl-lp-diagnosis-card li,
.fl-lp-offer-pro li,
.fl-lp-fit li {
    position: relative;
    padding-left: 26px;
    color: var(--color-text);
    line-height: 1.65;
}

.fl-lp-diagnosis-card li::before,
.fl-lp-offer-pro li::before,
.fl-lp-fit li::before {
    content: "";
    position: absolute;
    top: 0.68em;
    left: 0;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--color-blue);
    box-shadow: 0 0 0 5px var(--color-light-blue);
}

.fl-lp-content-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.fl-lp-content-grid article {
    display: grid;
    gap: 10px;
    padding: 24px;
    border: 1px solid var(--color-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.fl-lp-community-pro {
    background: var(--color-deep-blue);
    color: #fff;
}

.fl-lp-community-pro h2,
.fl-lp-community-pro .fl-lp-eyebrow {
    color: #fff;
}

.fl-lp-community-pro p {
    color: rgba(255, 255, 255, 0.8);
}

.fl-lp-community-list span {
    border-color: rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.fl-lp-offer-pro {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(340px, 0.8fr);
    gap: 0;
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: 28px;
    background: #fff;
    box-shadow: var(--shadow-md);
}

.fl-lp-offer-pro__main,
.fl-lp-offer-pro__side {
    padding: clamp(26px, 4vw, 46px);
}

.fl-lp-offer-pro__main {
    display: grid;
    gap: 16px;
    align-content: center;
}

.fl-lp-price {
    color: var(--color-deep-blue);
    font-size: clamp(38px, 5vw, 62px);
    font-weight: 900;
    line-height: 1;
}

.fl-lp-offer-pro small {
    color: var(--color-muted);
    font-weight: 800;
}

.fl-lp-offer-pro__side {
    background:
        linear-gradient(135deg, rgba(234, 244, 255, 0.78), rgba(255, 255, 255, 0.96));
}

.fl-lp-offer-pro__side h3 {
    margin: 0 0 18px;
    color: var(--color-deep-blue);
}

.fl-lp-fit__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.fl-lp-fit__grid > div {
    padding: 28px;
    border: 1px solid var(--color-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.fl-lp-fit h2 {
    font-size: clamp(24px, 2.5vw, 34px);
}

.fl-lp-fit .is-muted li::before {
    background: var(--color-muted);
    box-shadow: 0 0 0 5px #f1f5f9;
}

.fl-lp-proof-pro {
    background: #fff;
}

.fl-lp-proof-number {
    display: grid;
    gap: 6px;
    align-content: center;
    min-height: 280px;
    padding: 34px;
    border-radius: 26px;
    background:
        linear-gradient(135deg, rgba(6, 38, 74, 0.92), rgba(11, 79, 134, 0.88)),
        var(--lp-hero-image) center / cover;
    color: #fff;
    box-shadow: var(--shadow-md);
}

.fl-lp-proof-number strong {
    color: var(--color-gold-soft);
    font-size: clamp(46px, 7vw, 86px);
    line-height: 1;
}

.fl-lp-proof-number span,
.fl-lp-small {
    color: var(--color-muted);
    font-size: 13px;
    line-height: 1.8;
}

.fl-lp-proof-number span {
    color: rgba(255, 255, 255, 0.78);
    font-weight: 800;
}

.fl-lp-faq {
    max-width: 900px;
    margin: 0 auto;
}

.fl-lp-final-pro {
    background:
        linear-gradient(135deg, rgba(6, 38, 74, 0.96), rgba(11, 79, 134, 0.92));
    color: #fff;
    text-align: center;
}

.fl-lp-final-pro .fl-container {
    display: grid;
    gap: 20px;
    max-width: 920px;
}

.fl-lp-final-pro h2 {
    margin: 0;
    color: #fff;
}

.fl-lp-final-pro p {
    max-width: 720px;
    margin: 0 auto;
    color: rgba(255, 255, 255, 0.82);
    line-height: 1.8;
}

.fl-lp-final-pro .fl-lp-actions {
    justify-content: center;
}

@media (max-width: 1040px) {
    .fl-lp-hero-pro__grid,
    .fl-lp-split-pro,
    .fl-lp-offer-pro {
        grid-template-columns: 1fr;
    }

    .fl-lp-hero-pro__visual {
        min-height: 430px;
    }

    .fl-lp-journey {
        grid-template-columns: 1fr;
    }

    .fl-lp-journey article {
        min-height: auto;
        border-right: 0;
        border-bottom: 1px solid var(--color-border);
    }

    .fl-lp-journey article:last-child {
        border-bottom: 0;
    }
}

@media (max-width: 780px) {
    .fl-lp-hero-pro {
        padding-top: 44px;
    }

    .fl-lp-hero-pro h1 {
        font-size: 36px;
    }

    .fl-lp-hero-pro__lead {
        font-size: 15px;
    }

    .fl-lp-trust__grid,
    .fl-lp-pain-grid,
    .fl-lp-content-grid,
    .fl-lp-fit__grid {
        grid-template-columns: 1fr;
    }

    .fl-lp-actions .fl-button {
        width: 100%;
    }

    .fl-lp-hero-pro__visual,
    .fl-lp-image-panel {
        min-height: 300px;
        border-radius: 22px;
    }

    .fl-lp-product-card {
        right: 14px;
        bottom: 14px;
        width: calc(100% - 28px);
    }

    .fl-lp-proof-row span {
        width: 100%;
        justify-content: center;
    }
}

/* Compact poster-style LP inspired by product sales sheets */
.fl-lp-poster .fl-section {
    padding: 22px 0;
}

.fl-lp-poster .fl-container {
    width: min(1180px, calc(100% - 40px));
}

.fl-lp-poster .fl-lp-hero-pro {
    padding: 34px 0 18px;
    background:
        linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0.98) 42%, rgba(255, 255, 255, 0.72) 58%, rgba(255, 255, 255, 0.12) 82%),
        var(--lp-hero-image) right center / auto 100% no-repeat,
        #fff;
}

.fl-lp-poster .fl-lp-hero-pro::before {
    display: none;
}

.fl-lp-poster .fl-lp-hero-pro__grid {
    grid-template-columns: minmax(0, 0.86fr) minmax(460px, 1fr);
    gap: 20px;
}

.fl-lp-poster .fl-lp-hero-pro__copy {
    gap: 12px;
}

.fl-lp-poster .fl-lp-pill,
.fl-lp-ribbon {
    position: relative;
    min-height: 34px;
    padding: 0 24px;
    border-radius: 0;
    background: var(--color-gold);
    color: #fff;
    letter-spacing: 0.04em;
}

.fl-lp-poster .fl-lp-pill::before,
.fl-lp-ribbon::before,
.fl-lp-poster .fl-lp-pill::after,
.fl-lp-ribbon::after {
    content: "";
    position: absolute;
    top: 0;
    width: 0;
    height: 0;
    border-top: 17px solid transparent;
    border-bottom: 17px solid transparent;
}

.fl-lp-poster .fl-lp-pill::before,
.fl-lp-ribbon::before {
    left: -16px;
    border-right: 16px solid var(--color-gold);
}

.fl-lp-poster .fl-lp-pill::after,
.fl-lp-ribbon::after {
    right: -16px;
    border-left: 16px solid #c49a45;
}

.fl-lp-poster .fl-lp-hero-pro h1 {
    font-size: clamp(34px, 4vw, 54px);
    line-height: 1.22;
}

.fl-lp-poster .fl-lp-hero-pro__lead {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.8;
}

.fl-lp-hero-price {
    display: none;
}

.fl-lp-poster .fl-lp-actions .fl-button {
    min-height: 48px;
    min-width: 260px;
}

.fl-lp-poster .fl-lp-proof-row {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.fl-lp-poster .fl-lp-proof-row span {
    display: inline-flex;
    flex-direction: column;
    gap: 7px;
    align-items: center;
    justify-content: center;
    min-height: 72px;
    padding: 8px;
    border-color: rgba(11, 79, 134, 0.18);
    border-radius: 8px;
    color: var(--color-deep-blue);
    text-align: center;
    white-space: normal;
}

.fl-lp-icon {
    display: inline-block;
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fl-lp-proof-row .fl-lp-icon {
    width: 27px;
    height: 27px;
    color: var(--color-blue);
}

.fl-lp-poster .fl-lp-proof-row span:nth-child(4),
.fl-lp-poster .fl-lp-proof-row span:nth-child(5) {
    display: inline-flex;
}

.fl-lp-poster .fl-lp-proof-row span:nth-child(1)::before {
    content: none;
}

.fl-lp-poster .fl-lp-hero-pro__visual {
    min-height: 520px;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.fl-lp-poster .fl-lp-hero-pro__visual::before {
    display: none;
}

.fl-lp-poster .fl-lp-product-card {
    top: 70px;
    right: 24px;
    bottom: auto;
    place-items: center;
    width: 140px;
    height: 140px;
    min-width: 0;
    padding: 18px;
    border-radius: 50%;
    background: radial-gradient(circle at 28% 20%, #3f9bff, var(--color-blue) 58%, var(--color-navy));
    color: #fff;
    text-align: center;
}

.fl-lp-poster .fl-lp-product-card span,
.fl-lp-poster .fl-lp-product-card small,
.fl-lp-poster .fl-lp-product-card strong {
    color: #fff;
}

.fl-lp-poster .fl-lp-product-card strong {
    font-size: 18px;
}

.fl-lp-poster .fl-lp-product-card small {
    font-size: 11px;
}

.fl-lp-poster .fl-lp-trust {
    padding: 0;
    background: transparent;
}

.fl-lp-poster .fl-lp-trust__grid {
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.fl-lp-poster .fl-lp-trust__grid div {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 4px 12px;
    align-items: center;
    padding: 14px;
    background: #fff;
}

.fl-lp-poster .fl-lp-trust__grid .fl-lp-icon {
    grid-row: span 2;
    width: 28px;
    height: 28px;
    color: var(--color-blue);
}

.fl-lp-poster .fl-lp-trust__grid strong {
    color: var(--color-deep-blue);
}

.fl-lp-poster .fl-lp-trust__grid span {
    color: var(--color-muted);
}

.fl-lp-duo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
}

.fl-lp-panel,
.fl-lp-program-board,
.fl-lp-bonus-card,
.fl-lp-recommend-card {
    overflow: hidden;
    padding: 22px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(6, 38, 74, 0.05);
}

.fl-lp-panel__head {
    margin-bottom: 14px;
    text-align: center;
}

.fl-lp-panel__head span,
.fl-lp-poster .fl-lp-section-head span {
    color: var(--color-blue);
    font-size: 12px;
    font-weight: 900;
}

.fl-lp-panel__head h2,
.fl-lp-poster .fl-lp-section-head h2 {
    margin: 4px 0 0;
    color: var(--color-deep-blue);
    font-size: clamp(22px, 2.4vw, 32px);
}

.fl-lp-panel__note {
    margin: 14px 0 0;
    color: var(--color-navy);
    font-weight: 900;
    text-align: center;
}

.fl-lp-poster .fl-lp-pain-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.fl-lp-poster .fl-lp-pain-grid div {
    display: flex;
    gap: 8px;
    align-items: center;
    min-height: 44px;
    padding: 10px;
    border-radius: 9px;
    font-size: 13px;
    box-shadow: none;
}

.fl-lp-poster .fl-lp-pain-grid .fl-lp-icon {
    width: 15px;
    height: 15px;
    color: var(--color-blue);
    stroke-width: 3;
}

.fl-lp-poster .fl-lp-pain-grid div::before {
    content: none;
}

.fl-lp-panel--image {
    position: relative;
    min-height: 300px;
    padding-right: clamp(22px, 24%, 170px);
    background:
        linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0.98) 54%, rgba(255, 255, 255, 0.72) 74%, rgba(255, 255, 255, 0.18) 100%),
        var(--lp-hero-image) right bottom / 48% auto no-repeat,
        #fff;
}

.fl-lp-panel--image::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0) 20%),
        linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, #fff 100%);
    opacity: 0.18;
    pointer-events: none;
}

.fl-lp-panel--image > * {
    position: relative;
    z-index: 1;
    max-width: 620px;
}

.fl-lp-poster .fl-lp-cause-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 14px;
}

.fl-lp-poster .fl-lp-cause-list span {
    min-height: 30px;
    border: 0;
    background: transparent;
    padding: 0;
    color: var(--color-deep-blue);
}

.fl-lp-poster .fl-lp-cause-list .fl-lp-icon {
    width: 15px;
    height: 15px;
    margin-right: 7px;
    color: var(--color-blue);
}

.fl-lp-poster .fl-lp-section-head {
    margin-bottom: 18px;
}

.fl-lp-heading-icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    margin: 0 auto 10px;
    border: 1px solid rgba(11, 115, 217, 0.18);
    border-radius: 14px;
    background: linear-gradient(180deg, #fff, var(--color-light-blue));
    color: var(--color-blue);
    box-shadow: 0 10px 24px rgba(6, 38, 74, 0.06);
}

.fl-lp-heading-icon .fl-lp-icon {
    width: 28px;
    height: 28px;
}

.fl-lp-poster .fl-lp-journey {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    border-radius: 14px;
}

.fl-lp-poster .fl-lp-journey article {
    min-height: 180px;
    padding: 18px 14px;
    text-align: center;
}

.fl-lp-poster .fl-lp-journey article span {
    display: grid;
    place-items: center;
    width: 48px;
    height: 30px;
    margin: 0 auto 4px;
    border-radius: 999px;
    background: var(--color-light-blue);
}

.fl-lp-poster .fl-lp-journey article .fl-lp-icon {
    width: 34px;
    height: 34px;
    margin: 4px auto 8px;
    color: var(--color-blue);
}

.fl-lp-program-board {
    display: grid;
    grid-template-columns: minmax(280px, 0.72fr) 1fr;
    gap: 22px;
}

.fl-lp-program-board__media {
    display: grid;
    align-items: center;
}

.fl-lp-device {
    position: relative;
    min-height: 250px;
    border-radius: 12px;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.58), rgba(255, 255, 255, 0.08)),
        var(--lp-device-image, var(--lp-hero-image)) center / cover;
    box-shadow: inset 0 0 0 1px rgba(221, 231, 242, 0.72);
}

.fl-lp-device::before,
.fl-lp-device::after {
    content: "";
    position: absolute;
    background: #fff;
    box-shadow: 0 10px 26px rgba(6, 38, 74, 0.12);
}

.fl-lp-device::before {
    right: 28px;
    bottom: -16px;
    width: 110px;
    height: 170px;
    border-radius: 18px;
}

.fl-lp-device::after {
    right: 118px;
    bottom: -12px;
    width: 150px;
    height: 112px;
    border-radius: 12px;
}

.fl-lp-program-board__copy h2 {
    margin: 4px 0 14px;
    color: var(--color-deep-blue);
}

.fl-lp-content-list {
    display: grid;
    gap: 12px;
}

.fl-lp-content-list div {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 10px 14px;
    align-items: center;
}

.fl-lp-content-list .fl-lp-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(11, 115, 217, 0.24);
    border-radius: 8px;
    color: var(--color-blue);
    padding: 9px;
    background: #fff;
}

.fl-lp-content-list strong {
    color: var(--color-deep-blue);
}

.fl-lp-content-list span {
    grid-column: 2;
    color: var(--color-muted);
    font-size: 13px;
}

.fl-lp-video-strip {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(10, minmax(0, 1fr));
    gap: 8px;
    padding-top: 14px;
    border-top: 1px solid var(--color-border);
}

.fl-lp-video-strip div {
    display: grid;
    gap: 5px;
    text-align: center;
}

.fl-lp-video-strip span {
    min-height: 54px;
    border-radius: 8px;
    background: var(--lp-hero-image) center / cover;
}

.fl-lp-video-strip strong {
    color: var(--color-deep-blue);
    font-size: 11px;
    line-height: 1.3;
}

.fl-lp-community-card {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 20px;
    align-items: center;
}

.fl-lp-phone {
    min-height: 260px;
    border: 10px solid var(--color-deep-blue);
    border-radius: 28px;
    background:
        linear-gradient(180deg, rgba(234, 244, 255, 0.96), #fff),
        var(--lp-hero-image) center / cover;
    box-shadow: 0 6px 18px rgba(6, 38, 74, 0.10);
}

.fl-lp-community-card h2,
.fl-lp-recommend-card h2,
.fl-lp-bonus-card h2 {
    margin: 6px 0 12px;
    color: var(--color-deep-blue);
    font-size: clamp(22px, 2.4vw, 31px);
}

.fl-lp-community-card p {
    color: var(--color-muted);
    line-height: 1.8;
}

.fl-lp-poster .fl-lp-community-list span {
    gap: 7px;
    border-color: rgba(11, 115, 217, 0.14);
    background: var(--color-light-blue);
    color: var(--color-navy);
}

.fl-lp-poster .fl-lp-community-list .fl-lp-icon {
    width: 15px;
    height: 15px;
    color: var(--color-blue);
}

.fl-lp-voice-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.fl-lp-voice-grid div {
    min-height: 126px;
    padding: 12px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: linear-gradient(180deg, #fff, #f8fbff);
}

.fl-lp-voice-grid span {
    color: var(--color-blue);
    font-size: 12px;
    font-weight: 900;
}

.fl-lp-voice-grid p {
    margin: 8px 0 0;
    color: var(--color-muted);
    font-size: 13px;
    line-height: 1.7;
}

.fl-lp-offer-row {
    display: grid;
    grid-template-columns: minmax(0, 0.72fr) minmax(360px, 1.04fr) minmax(0, 0.72fr);
    gap: 12px;
}

.fl-lp-poster .fl-lp-offer-pro {
    grid-template-columns: 1fr;
    border-radius: 14px;
    text-align: center;
}

.fl-lp-poster .fl-lp-offer-pro__main,
.fl-lp-poster .fl-lp-offer-pro__side,
.fl-lp-bonus-card,
.fl-lp-recommend-card {
    padding: 22px;
}

.fl-lp-poster .fl-lp-offer-pro__side {
    text-align: left;
}

.fl-lp-poster .fl-lp-offer-pro__side ul {
    display: grid;
    gap: 9px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fl-lp-poster .fl-lp-offer-pro__side li {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    color: var(--color-text);
    line-height: 1.6;
}

.fl-lp-poster .fl-lp-offer-pro__side li .fl-lp-icon {
    width: 15px;
    height: 15px;
    margin-top: 0.28em;
    color: var(--color-blue);
    stroke-width: 3;
}

.fl-lp-poster .fl-lp-price {
    font-size: clamp(40px, 5vw, 56px);
}

.fl-lp-bonus-card,
.fl-lp-recommend-card {
    text-align: center;
}

.fl-lp-ribbon {
    display: inline-flex;
    align-items: center;
    margin-bottom: 12px;
}

.fl-lp-bonus-items {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 18px 0;
}

.fl-lp-bonus-items span {
    min-height: 86px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--color-gold-soft), #fff);
    box-shadow: inset 0 0 0 1px rgba(214, 179, 106, 0.22);
}

.fl-lp-recommend-card ul {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
    text-align: left;
}

.fl-lp-recommend-card li {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    padding-left: 0;
    color: var(--color-text);
    line-height: 1.6;
}

.fl-lp-recommend-card li .fl-lp-icon {
    width: 15px;
    height: 15px;
    margin-top: 0.28em;
    color: var(--color-blue);
    stroke-width: 3;
}

.fl-lp-recommend-card li::before {
    content: none;
}

.fl-lp-poster .fl-lp-final-pro {
    margin-top: 16px;
    padding: 34px 0;
}

.fl-lp-mobile-sticky {
    display: none;
}

@media (max-width: 1040px) {
    .fl-lp-poster .fl-lp-hero-pro__grid,
    .fl-lp-duo,
    .fl-lp-program-board,
    .fl-lp-offer-row {
        grid-template-columns: 1fr;
    }

    .fl-lp-video-strip {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

@media (max-width: 780px) {
    .fl-lp-poster {
        padding-bottom: 82px;
    }

    .fl-lp-poster .fl-container {
        width: min(100% - 24px, 1180px);
    }

    .fl-lp-poster .fl-section {
        padding: 14px 0;
    }

    .fl-lp-poster .fl-lp-hero-pro {
        padding: 18px 0 12px;
        background: #fff;
    }

    .fl-lp-poster .fl-lp-hero-pro__grid {
        gap: 14px;
    }

    .fl-lp-poster .fl-lp-hero-pro__copy {
        gap: 10px;
    }

    .fl-lp-poster .fl-lp-pill,
    .fl-lp-ribbon {
        min-height: 28px;
        padding: 0 16px;
        font-size: 12px;
    }

    .fl-lp-poster .fl-lp-pill::before,
    .fl-lp-ribbon::before,
    .fl-lp-poster .fl-lp-pill::after,
    .fl-lp-ribbon::after {
        border-top-width: 14px;
        border-bottom-width: 14px;
    }

    .fl-lp-poster .fl-lp-pill::before,
    .fl-lp-ribbon::before {
        left: -12px;
        border-right-width: 12px;
    }

    .fl-lp-poster .fl-lp-pill::after,
    .fl-lp-ribbon::after {
        right: -12px;
        border-left-width: 12px;
    }

    .fl-lp-poster .fl-lp-eyebrow {
        font-size: 12px;
        line-height: 1.5;
    }

    .fl-lp-poster .fl-lp-hero-pro h1 {
        font-size: clamp(26px, 7.6vw, 32px);
        line-height: 1.3;
        letter-spacing: 0;
    }

    .fl-lp-poster .fl-lp-hero-pro__lead {
        margin: 0;
        font-size: 14px;
        line-height: 1.75;
    }

    .fl-lp-poster .fl-lp-actions {
        display: grid;
        gap: 9px;
    }

    .fl-lp-poster .fl-lp-actions:has(.fl-button:nth-child(2)) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fl-lp-poster .fl-lp-actions .fl-button {
        width: 100%;
        min-width: 0;
        min-height: 46px;
        padding: 0 10px;
        font-size: 13px;
        white-space: nowrap;
    }

    .fl-lp-poster .fl-lp-hero-pro__visual {
        min-height: 232px;
        border-radius: 0;
        background:
            linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.72)),
            var(--lp-hero-image) center right / cover;
    }

    .fl-lp-poster .fl-lp-product-card {
        top: auto;
        right: 12px;
        bottom: 12px;
        width: 112px;
        height: 112px;
        padding: 14px;
    }

    .fl-lp-poster .fl-lp-product-card strong {
        font-size: 14px;
    }

    .fl-lp-poster .fl-lp-product-card small {
        display: none;
    }

    .fl-lp-poster .fl-lp-proof-row,
    .fl-lp-poster .fl-lp-pain-grid,
    .fl-lp-poster .fl-lp-cause-list,
    .fl-lp-voice-grid,
    .fl-lp-video-strip,
    .fl-lp-community-card {
        grid-template-columns: 1fr;
    }

    .fl-lp-poster .fl-lp-proof-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    .fl-lp-poster .fl-lp-proof-row span {
        min-height: 54px;
        gap: 4px;
        padding: 7px 5px;
        font-size: 11px;
        line-height: 1.35;
    }

    .fl-lp-proof-row .fl-lp-icon {
        width: 20px;
        height: 20px;
    }

    .fl-lp-poster .fl-lp-proof-row span:nth-child(5) {
        grid-column: 1 / -1;
        flex-direction: row;
        min-height: 46px;
    }

    .fl-lp-poster .fl-lp-trust__grid {
        gap: 0;
        border-radius: 10px;
    }

    .fl-lp-poster .fl-lp-trust__grid div {
        grid-template-columns: 30px minmax(0, 1fr);
        padding: 12px;
    }

    .fl-lp-poster .fl-lp-trust__grid .fl-lp-icon {
        width: 23px;
        height: 23px;
    }

    .fl-lp-panel,
    .fl-lp-program-board,
    .fl-lp-bonus-card,
    .fl-lp-recommend-card {
        padding: 16px;
        border-radius: 12px;
    }

    .fl-lp-panel__head {
        margin-bottom: 10px;
        text-align: left;
    }

    .fl-lp-panel__head h2,
    .fl-lp-poster .fl-lp-section-head h2,
    .fl-lp-community-card h2,
    .fl-lp-recommend-card h2,
    .fl-lp-bonus-card h2 {
        font-size: clamp(21px, 6.2vw, 26px);
        line-height: 1.38;
        letter-spacing: 0;
    }

    .fl-lp-poster .fl-lp-pain-grid {
        gap: 7px;
    }

    .fl-lp-poster .fl-lp-pain-grid div {
        min-height: 40px;
        padding: 9px 10px;
        font-size: 13px;
        line-height: 1.5;
    }

    .fl-lp-panel__note {
        text-align: left;
        font-size: 13px;
        line-height: 1.7;
    }

    .fl-lp-panel--image {
        padding-right: 22px;
        padding-bottom: 176px;
        background:
            linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0.99) 58%, rgba(255, 255, 255, 0.24) 100%),
            var(--lp-hero-image) center bottom / 100% auto no-repeat,
            #fff;
    }

    .fl-lp-panel--image::after {
        background:
            linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0) 34%),
            linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0) 24%, rgba(255, 255, 255, 0) 76%, #fff 100%);
        opacity: 0.28;
    }

    .fl-lp-poster .fl-lp-cause-list {
        gap: 7px;
    }

    .fl-lp-poster .fl-lp-cause-list span {
        min-height: 28px;
        font-size: 13px;
    }

    .fl-lp-poster .fl-lp-section-head {
        margin-bottom: 12px;
        text-align: left;
    }

    .fl-lp-heading-icon {
        width: 42px;
        height: 42px;
        margin: 0 0 8px;
        border-radius: 12px;
    }

    .fl-lp-poster .fl-lp-journey {
        grid-template-columns: 1fr;
        overflow: hidden;
        border: 1px solid var(--color-border);
        background: #fff;
    }

    .fl-lp-poster .fl-lp-journey article {
        display: grid;
        grid-template-columns: 46px minmax(0, 1fr);
        gap: 2px 12px;
        min-height: auto;
        padding: 14px;
        text-align: left;
        border-right: 0;
        border-bottom: 1px solid var(--color-border);
    }

    .fl-lp-poster .fl-lp-journey article > span {
        grid-column: 1;
        grid-row: 1 / span 3;
        width: 38px;
        height: 28px;
        margin: 0;
        font-size: 12px;
    }

    .fl-lp-poster .fl-lp-journey article .fl-lp-icon {
        grid-column: 2;
        width: 24px;
        height: 24px;
        margin: 0 0 2px;
    }

    .fl-lp-poster .fl-lp-journey article h3 {
        grid-column: 2;
        margin: 0;
        font-size: 16px;
    }

    .fl-lp-poster .fl-lp-journey article p {
        grid-column: 2;
        margin: 2px 0 0;
        font-size: 13px;
        line-height: 1.65;
    }

    .fl-lp-poster .fl-lp-journey article:last-child {
        border-bottom: 0;
    }

    .fl-lp-program-board {
        gap: 14px;
    }

    .fl-lp-device {
        min-height: 190px;
        border-radius: 10px;
    }

    .fl-lp-device::before,
    .fl-lp-device::after {
        display: none;
    }

    .fl-lp-content-list {
        gap: 10px;
    }

    .fl-lp-content-list div {
        grid-template-columns: 36px 1fr;
        gap: 8px 10px;
    }

    .fl-lp-content-list .fl-lp-icon {
        width: 36px;
        height: 36px;
        padding: 8px;
    }

    .fl-lp-video-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .fl-lp-video-strip span {
        min-height: 68px;
    }

    .fl-lp-community-card {
        gap: 12px;
    }

    .fl-lp-phone {
        min-height: 170px;
        border-width: 8px;
        border-radius: 24px;
    }

    .fl-lp-voice-grid {
        gap: 8px;
    }

    .fl-lp-voice-grid div {
        min-height: auto;
        padding: 12px;
    }

    .fl-lp-offer-row {
        gap: 10px;
    }

    .fl-lp-poster .fl-lp-price {
        font-size: clamp(34px, 10vw, 44px);
    }

    .fl-lp-poster .fl-lp-offer-pro__main,
    .fl-lp-poster .fl-lp-offer-pro__side,
    .fl-lp-bonus-card,
    .fl-lp-recommend-card {
        padding: 16px;
    }

    .fl-lp-poster .fl-lp-offer-pro__side ul,
    .fl-lp-recommend-card ul {
        gap: 8px;
    }

    .fl-lp-poster .fl-lp-final-pro {
        padding: 26px 0 30px;
    }

    .fl-lp-poster .fl-lp-final-pro .fl-container {
        gap: 14px;
    }

    .fl-lp-poster .fl-lp-final-pro h2 {
        font-size: 24px;
        line-height: 1.5;
    }

    .fl-lp-poster .fl-lp-final-pro p {
        font-size: 14px;
        line-height: 1.85;
    }

    .fl-lp-mobile-sticky {
        position: fixed;
        right: 12px;
        bottom: 12px;
        left: 12px;
        z-index: 80;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        padding: 8px;
        border: 1px solid rgba(221, 231, 242, 0.9);
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.94);
        box-shadow: 0 6px 18px rgba(6, 38, 74, 0.10);
        backdrop-filter: blur(14px);
    }

    .fl-lp-mobile-sticky a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 42px;
        border-radius: 999px;
        font-size: 14px;
        font-weight: 900;
        text-decoration: none;
    }

    .fl-lp-mobile-sticky__primary {
        background: linear-gradient(135deg, #0b73d9, #064db4);
        color: #fff;
    }

    .fl-lp-mobile-sticky__secondary {
        background: var(--color-gold);
        color: var(--color-deep-blue);
    }
}

@media (max-width: 780px) {
    body.flui-lp-template:not(.logged-in) .fl-header {
        position: sticky;
        top: 0;
        z-index: 90;
        border-bottom: 1px solid rgba(221, 231, 242, 0.9);
        background: rgba(255, 255, 255, 0.96);
        box-shadow: none;
        backdrop-filter: blur(12px);
    }

    body.flui-lp-template:not(.logged-in) .fl-header__inner {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        gap: 10px;
        min-height: 60px;
        padding: 7px 0;
    }

    body.flui-lp-template:not(.logged-in) .fl-brand img,
    body.flui-lp-template:not(.logged-in) .fl-brand .custom-logo {
        max-height: 34px;
    }

    body.flui-lp-template:not(.logged-in) .fl-menu-button,
    body.flui-lp-template:not(.logged-in) .fl-member-menu .fl-button:first-child {
        display: none;
    }

    body.flui-lp-template:not(.logged-in) .fl-header__menu {
        grid-column: auto;
        display: flex;
        justify-content: flex-end;
        width: auto;
        max-height: none;
        overflow: visible;
        opacity: 1;
        padding: 0;
        border: 0;
    }

    body.flui-lp-template:not(.logged-in) .fl-member-menu {
        display: flex;
        justify-content: flex-end;
        gap: 8px;
        width: auto;
    }

    body.flui-lp-template:not(.logged-in) .fl-member-menu .fl-button--gold,
    body.flui-lp-template:not(.logged-in) .fl-nav__login {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: auto;
        min-height: 38px;
        padding: 0 14px;
        border-radius: 8px;
        font-size: 14px;
        font-weight: 900;
        line-height: 1;
        text-decoration: none;
        white-space: nowrap;
    }

    body.flui-lp-template:not(.logged-in) .fl-member-menu .fl-button--gold {
        min-width: 82px;
        background: linear-gradient(135deg, #d8ab48, #bd8c2b);
        color: #fff;
        box-shadow: 0 8px 18px rgba(185, 137, 38, 0.2);
    }

    body.flui-lp-template:not(.logged-in) .fl-nav__login {
        min-width: 68px;
        border: 1px solid var(--color-blue);
        background: #fff;
        color: var(--color-blue);
    }

    .fl-lp-poster {
        background: linear-gradient(180deg, #fff 0%, #f8fbff 48%, #fff 100%);
        padding-bottom: 0;
    }

    .fl-lp-poster .fl-lp-hero-pro {
        min-height: 0;
        padding: 18px 0 14px;
        background:
            linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0.94) 39%, rgba(255, 255, 255, 0.32) 68%, rgba(255, 255, 255, 0) 100%),
            var(--lp-hero-image) right -16px top 104px / 84% auto no-repeat,
            #fff;
    }

    .fl-lp-poster .fl-lp-hero-pro__grid {
        display: block;
    }

    .fl-lp-poster .fl-lp-hero-pro__copy {
        display: grid;
        gap: 10px;
        max-width: none;
    }

    .fl-lp-poster .fl-lp-pill {
        justify-self: start;
        min-height: 28px;
        margin-left: 0;
        padding: 0 18px 0 16px;
        border-radius: 0 5px 5px 0;
        background: linear-gradient(135deg, #dcb34e, #bd8d2d);
        font-size: 12px;
        letter-spacing: 0.04em;
    }

    .fl-lp-poster .fl-lp-pill::before,
    .fl-lp-poster .fl-lp-pill::after {
        content: none;
    }

    .fl-lp-poster .fl-lp-eyebrow {
        display: none;
    }

    .fl-lp-poster .fl-lp-hero-pro h1 {
        max-width: 100%;
        margin: 2px 0 0;
        color: var(--color-deep-blue);
        font-size: clamp(21px, 5.9vw, 24px);
        line-height: 1.26;
        font-weight: 900;
    }

    .fl-lp-poster .fl-lp-hero-pro h1 span {
        display: block;
        color: inherit;
        white-space: nowrap;
    }

    .fl-lp-poster .fl-lp-hero-pro__lead {
        max-width: 58%;
        color: var(--color-deep-blue);
        font-size: 11px;
        font-weight: 500;
        line-height: 1.5;
    }

    .fl-lp-hero-price {
        display: grid;
        grid-template-columns: auto 1fr;
        align-items: end;
        width: min(100%, 230px);
        margin-top: 2px;
        padding: 10px 12px 9px;
        border: 1px solid rgba(186, 210, 238, 0.9);
        border-radius: 8px;
        background: rgba(255, 255, 255, 0.92);
        box-shadow: 0 10px 24px rgba(6, 38, 74, 0.08);
    }

    .fl-lp-hero-price span {
        display: inline-block;
        min-width: 50px;
        color: var(--color-deep-blue);
        font-size: 12px;
        font-weight: 900;
        white-space: nowrap;
    }

    .fl-lp-hero-price strong {
        justify-self: end;
        color: var(--color-deep-blue);
        font-size: 27px;
        font-weight: 900;
        line-height: 1;
        letter-spacing: 0;
        white-space: nowrap;
    }

    .fl-lp-hero-price small {
        grid-column: 1 / -1;
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 26px;
        margin-top: 8px;
        border-radius: 4px;
        background: #efd49a;
        color: #2f2410;
        font-size: 12px;
        font-weight: 900;
    }

    .fl-lp-poster .fl-lp-hero-pro .fl-lp-actions,
    .fl-lp-poster .fl-lp-hero-pro .fl-lp-actions:has(.fl-button:nth-child(2)) {
        grid-template-columns: 1fr;
        margin-top: 4px;
    }

    .fl-lp-poster .fl-lp-hero-pro .fl-lp-actions .fl-button--outline {
        display: none;
    }

    .fl-lp-poster .fl-lp-hero-pro .fl-lp-actions .fl-button--gold {
        justify-content: center;
        min-height: 54px;
        border-radius: 999px;
        background: linear-gradient(135deg, #dcb34e, #bd8d2d);
        color: #fff;
        font-size: 15px;
        letter-spacing: 0.02em;
        text-align: center;
        box-shadow: 0 5px 14px rgba(179, 129, 35, 0.16);
    }

    .fl-lp-poster .fl-lp-hero-pro .fl-lp-actions .fl-button--gold::after {
        content: ">";
        margin-left: auto;
        font-size: 22px;
        line-height: 1;
    }

    .fl-lp-poster .fl-lp-proof-row {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 4px;
        margin-top: 4px;
    }

    .fl-lp-poster .fl-lp-proof-row span {
        flex-direction: row;
        min-height: 42px;
        gap: 5px;
        padding: 6px 5px;
        border-radius: 6px;
        background: rgba(255, 255, 255, 0.92);
        font-size: 11px;
        font-weight: 900;
    }

    .fl-lp-proof-row .fl-lp-icon {
        width: 19px;
        height: 19px;
    }

    .fl-lp-poster .fl-lp-hero-pro__visual,
    .fl-lp-poster .fl-lp-trust,
    .fl-lp-mobile-sticky {
        display: none;
    }

    .fl-lp-poster .fl-section {
        padding: 6px 0;
    }

    .fl-lp-duo {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    .fl-lp-panel,
    .fl-lp-program-board,
    .fl-lp-bonus-card,
    .fl-lp-recommend-card {
        padding: 12px;
        border-radius: 8px;
        box-shadow: 0 10px 24px rgba(6, 38, 74, 0.05);
    }

    .fl-lp-panel__head {
        margin-bottom: 8px;
        text-align: center;
    }

    .fl-lp-panel__head span {
        display: none;
    }

    .fl-lp-panel__head h2,
    .fl-lp-poster .fl-lp-section-head h2,
    .fl-lp-community-card h2,
    .fl-lp-recommend-card h2,
    .fl-lp-bonus-card h2 {
        font-size: 16px;
        line-height: 1.35;
        text-align: center;
    }

    .fl-lp-poster .fl-lp-pain-grid {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .fl-lp-poster .fl-lp-pain-grid div {
        min-height: 28px;
        padding: 5px 6px;
        border-radius: 5px;
        font-size: 11px;
        line-height: 1.35;
    }

    .fl-lp-panel__note,
    .fl-lp-panel p,
    .fl-lp-small {
        font-size: 11px;
        line-height: 1.5;
    }

    .fl-lp-panel--image {
        min-height: 0;
        padding-right: 12px;
        padding-bottom: 90px;
        background:
            linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0.96) 56%, rgba(255, 255, 255, 0.18) 100%),
            var(--lp-hero-image) center bottom / 120% auto no-repeat,
            #fff;
    }

    .fl-lp-poster .fl-lp-cause-list {
        grid-template-columns: 1fr;
        gap: 4px;
        margin-top: 8px;
    }

    .fl-lp-poster .fl-lp-cause-list span {
        min-height: 20px;
        font-size: 11px;
        line-height: 1.3;
    }

    .fl-lp-poster .fl-lp-cause-list .fl-lp-icon {
        width: 12px;
        height: 12px;
    }

    .fl-lp-poster .fl-lp-section-head {
        margin-bottom: 8px;
        text-align: center;
    }

    .fl-lp-heading-icon {
        width: 34px;
        height: 34px;
        margin: 0 auto 5px;
        border-radius: 9px;
    }

    .fl-lp-poster .fl-lp-section-head p,
    .fl-lp-poster .fl-lp-journey article:nth-child(n+4),
    .fl-lp-video-strip {
        display: none;
    }

    .fl-lp-poster .fl-lp-journey article {
        grid-template-columns: 34px minmax(0, 1fr);
        gap: 1px 9px;
        padding: 9px 10px;
    }

    .fl-lp-poster .fl-lp-journey article > span {
        width: 28px;
        height: 28px;
        font-size: 11px;
    }

    .fl-lp-poster .fl-lp-journey article .fl-lp-icon {
        display: none;
    }

    .fl-lp-poster .fl-lp-journey article h3 {
        font-size: 13px;
    }

    .fl-lp-poster .fl-lp-journey article p {
        font-size: 11px;
        line-height: 1.5;
    }

    .fl-lp-program-board {
        padding: 12px 10px;
        gap: 9px;
    }

    .fl-lp-program-board__copy {
        order: -1;
        text-align: center;
    }

    .fl-lp-program-board__copy .fl-lp-eyebrow {
        display: none;
    }

    .fl-lp-program-board__copy h2 {
        margin: 0;
        font-size: 17px;
        text-align: center;
    }

    .fl-lp-device {
        min-height: 230px;
        border-radius: 8px;
        background-size: cover;
    }

    .fl-lp-content-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
    }

    .fl-lp-content-list div {
        display: grid;
        grid-template-columns: 1fr;
        gap: 4px;
        min-height: 92px;
        padding: 8px 6px;
        border-radius: 7px;
        text-align: left;
    }

    .fl-lp-content-list .fl-lp-icon {
        width: 28px;
        height: 28px;
        padding: 6px;
    }

    .fl-lp-content-list strong {
        font-size: 11px;
        line-height: 1.35;
    }

    .fl-lp-content-list span {
        font-size: 11px;
        line-height: 1.35;
    }

    .fl-lp-community-card {
        grid-template-columns: 0.78fr 1.22fr;
        gap: 10px;
    }

    .fl-lp-phone {
        min-height: 180px;
        border-width: 7px;
        border-radius: 22px;
    }

    .fl-lp-community-list {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .fl-lp-poster .fl-lp-community-list span {
        font-size: 11px;
    }

    .fl-lp-voice-grid {
        grid-template-columns: 1fr;
    }

    .fl-lp-offer-row {
        gap: 7px;
    }

    .fl-lp-poster .fl-lp-offer-pro {
        border-radius: 8px;
    }

    .fl-lp-poster .fl-lp-offer-pro__main {
        padding-top: 40px;
        text-align: center;
    }

    .fl-lp-poster .fl-lp-offer-pro__main h2 {
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        margin: 0;
        padding: 8px 10px;
        border-radius: 8px 8px 0 0;
        background: var(--color-deep-blue);
        color: #fff;
        font-size: 16px;
    }

    .fl-lp-poster .fl-lp-price {
        font-size: 36px;
    }

    .fl-lp-poster .fl-lp-offer-pro__main .fl-button {
        min-height: 42px;
        border-radius: 999px;
        background: linear-gradient(135deg, #dcb34e, #bd8d2d);
        color: #fff;
        font-size: 15px;
    }

    .fl-lp-poster .fl-lp-offer-pro__side ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5px 9px;
    }

    .fl-lp-poster .fl-lp-offer-pro__side li {
        font-size: 11px;
        line-height: 1.35;
    }

    .fl-lp-faq summary {
        min-height: 30px;
        padding: 6px 12px;
        font-size: 11px;
    }

    .fl-lp-poster .fl-lp-final-pro {
        padding: 22px 0 26px;
    }

    .fl-lp-poster .fl-lp-final-pro h2 {
        font-size: 19px;
    }

    .fl-lp-poster .fl-lp-hero-pro h1 .fl-lp-nowrap {
        display: inline;
        color: inherit;
        white-space: nowrap;
    }

    .fl-lp-poster .fl-lp-hero-pro h1 .fl-lp-hero-blue {
        display: block;
        color: var(--color-blue);
    }
}

.fl-playlist-section {
    padding-top: 32px;
}

body.logged-in.flui-template .fl-section {
    padding-top: 32px;
}

.fl-tutorial-section {
    padding-top: 48px;
}

/* 幅は .fl-container--narrow で統一する（個別指定はしない） */

.fl-tutorial-notice {
    margin-bottom: 20px;
    padding: 14px 16px;
    border: 1px solid rgba(214, 179, 106, 0.42);
    border-radius: 10px;
    background: #fff8e6;
    color: #06264a;
    font-weight: 800;
}

.fl-tutorial-content {
    color: #1f2a37;
    font-size: 17px;
    line-height: 1.8;
}

.fl-tutorial-content iframe,
.fl-tutorial-content video,
.fl-tutorial-content .wp-video,
.fl-tutorial-content .wp-block-embed {
    width: 100%;
    margin-bottom: 28px;
    border-radius: 12px;
    overflow: hidden;
}

.fl-tutorial-content p {
    margin-top: 0;
}

.fl-tutorial-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

@media (max-width: 640px) {
    .fl-playlist-section {
        padding-top: 12px;
    }

    body.logged-in.flui-template .fl-section {
        padding-top: 12px;
    }

    .fl-tutorial-content {
        font-size: 15px;
        line-height: 1.85;
    }

    .fl-tutorial-actions .fl-button {
        width: 100%;
    }
}

/* ---------------------------------------------------------------------------
   Bottom navigation (logged-in member pages)
--------------------------------------------------------------------------- */

.fl-bottom-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 60;
    display: none;
    background: var(--color-white);
    border-top: 1px solid var(--color-border);
    padding: 6px 8px calc(8px + env(safe-area-inset-bottom));
}

.fl-bottom-nav__item {
    flex: 1;
    display: grid;
    justify-items: center;
    gap: 2px;
    padding: 6px 0;
    color: var(--color-muted);
    font-size: 11px;
    font-weight: 600;
    text-decoration: none;
    border-radius: 10px;
}

.fl-bottom-nav__item svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fl-bottom-nav__item.is-active {
    color: var(--color-navy);
}

.fl-bottom-nav__item.is-active svg {
    stroke-width: 2.1;
}

@media (max-width: 780px) {
    .fl-bottom-nav {
        display: flex;
    }

    body.flui-has-bottom-nav .fl-shell {
        padding-bottom: calc(76px + env(safe-area-inset-bottom));
    }
}

/* ---------------------------------------------------------------------------
   Dashboard: today card
--------------------------------------------------------------------------- */

.fl-today-card {
    position: relative;
    display: grid;
    gap: 16px;
    overflow: hidden;
    margin: 0 0 22px;
    padding: 22px;
    border: 1px solid rgba(214, 179, 106, 0.34);
    border-radius: var(--radius-md);
    background: linear-gradient(135deg, var(--color-deep-blue) 0%, var(--color-navy) 100%);
    box-shadow: 0 14px 30px rgba(6, 38, 74, 0.18);
}

.fl-today-card::after {
    content: "";
    position: absolute;
    right: 20px;
    bottom: 0;
    left: 20px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(214, 179, 106, 0.5), transparent);
    pointer-events: none;
}

.fl-today-card__top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 108px;
    align-items: center;
    gap: 18px;
}

.fl-today-card__eyebrow {
    color: var(--color-gold);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.fl-today-card h2 {
    margin: 4px 0 5px;
    color: var(--color-white);
    font-size: 21px;
}

.fl-today-card p {
    margin: 0;
    color: #b9cde2;
    font-size: 13px;
}

.fl-today-card p.is-complete {
    color: var(--color-gold-soft);
    font-weight: 700;
}

.fl-today-card__ring {
    --fl-today-progress: 0%;
    position: relative;
    display: grid;
    width: 108px;
    height: 108px;
    place-items: center;
    border-radius: 50%;
    background: conic-gradient(var(--color-gold) var(--fl-today-progress), rgba(255, 255, 255, 0.13) 0);
    box-shadow: 0 7px 20px rgba(0, 0, 0, 0.18);
}

.fl-today-card__ring::before {
    content: "";
    position: absolute;
    inset: 9px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 50%;
    background: var(--color-deep-blue);
}

.fl-today-card__ring > span {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 2px;
    text-align: center;
}

.fl-today-card__ring strong {
    color: var(--color-white);
    font-size: 18px;
    line-height: 1;
    white-space: nowrap;
}

.fl-today-card__ring small {
    color: var(--color-gold-soft);
    font-size: 11px;
    font-weight: 700;
}

.fl-today-card__next {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    padding: 11px 12px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.07);
    color: var(--color-white);
}

.fl-today-card__next > span:nth-child(2) {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.fl-today-card__next small {
    color: #b9cde2;
    font-size: 10px;
}

.fl-today-card__next strong {
    overflow: hidden;
    color: var(--color-white);
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fl-today-card__play {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 50%;
    background: var(--color-white);
    color: var(--color-blue);
}

.fl-today-card__play svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.fl-today-card__play svg path {
    fill: currentColor;
    stroke: none;
}

.fl-today-card__cta {
    width: 100%;
    min-height: 48px;
    border-radius: 10px;
}

.fl-today-card__cta svg {
    width: 18px;
    height: 18px;
    margin-left: 4px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 640px) {
    .fl-today-card {
        gap: 14px;
        padding: 17px;
    }

    .fl-today-card__top {
        grid-template-columns: minmax(0, 1fr) 88px;
        gap: 12px;
    }

    .fl-today-card__ring {
        width: 88px;
        height: 88px;
    }

    .fl-today-card__ring::before {
        inset: 7px;
    }

    .fl-today-card__ring strong {
        font-size: 15px;
    }

    .fl-today-card__ring small {
        font-size: 10px;
    }

    .fl-today-card h2 {
        font-size: 18px;
    }
}

/* ---------------------------------------------------------------------------
   Free diagnosis quiz
--------------------------------------------------------------------------- */

.fl-quiz {
    max-width: 560px;
    margin: 0 auto;
}

.fl-quiz__intro,
.fl-quiz__body {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    padding: 28px 24px;
}

.fl-quiz__intro {
    text-align: center;
}

.fl-quiz__intro h1 {
    margin: 10px 0 8px;
    color: var(--color-deep-blue);
    font-size: 24px;
}

.fl-quiz__intro p {
    color: var(--color-muted);
    font-size: 14px;
    line-height: 1.8;
}

.fl-quiz__start {
    width: 100%;
    max-width: 320px;
    margin-top: 10px;
}

.fl-quiz__skip {
    margin: 16px 0 0;
    text-align: center;
    font-size: 12px;
}

.fl-quiz__skip a {
    color: var(--color-muted);
    text-decoration: underline;
}

.fl-quiz__progress-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.fl-quiz__count {
    color: var(--color-muted);
    font-size: 12px;
}

.fl-quiz__count em {
    font-style: normal;
    color: var(--color-navy);
    font-weight: 700;
}

.fl-quiz__progress {
    height: 6px;
    border-radius: 999px;
    background: var(--color-border);
    overflow: hidden;
}

.fl-quiz__progress-bar {
    height: 100%;
    width: 20%;
    border-radius: 999px;
    background: var(--color-blue);
    transition: width 0.25s ease;
}

.fl-quiz__question {
    margin: 18px 0 4px;
    color: var(--color-text);
    font-size: 18px;
    line-height: 1.6;
}

.fl-quiz__note {
    margin: 0 0 14px;
    color: var(--color-muted);
    font-size: 12px;
}

.fl-quiz__options {
    display: grid;
    gap: 10px;
}

.fl-quiz__option {
    display: block;
    width: 100%;
    padding: 15px 16px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-white);
    color: var(--color-text);
    font-size: 14px;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.fl-quiz__option:hover,
.fl-quiz__option:focus-visible {
    border-color: var(--color-blue);
    background: var(--color-light-blue);
}

.fl-quiz__result {
    background: var(--color-deep-blue);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    padding: 30px 24px;
    text-align: center;
}

.fl-quiz__result-eyebrow {
    color: var(--color-gold);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.fl-quiz__result-lead {
    margin: 14px 0 0;
    color: #b9cde2;
    font-size: 13px;
}

.fl-quiz__result-type {
    margin: 6px 0 0;
    color: var(--color-white);
    font-family: var(--font-serif);
    font-size: 22px;
    line-height: 1.5;
}

.fl-quiz__result-desc {
    margin: 16px 0 0;
    padding: 14px 16px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.06);
    text-align: left;
}

.fl-quiz__result-desc p {
    margin: 0;
    color: #d8e5f2;
    font-size: 13px;
    line-height: 1.8;
}

.fl-quiz__result-program {
    margin: 10px 0 0;
    padding: 14px 16px;
    border: 1px solid var(--color-gold);
    border-radius: 12px;
    text-align: left;
}

.fl-quiz__result-program strong {
    display: block;
    margin-bottom: 4px;
    color: var(--color-gold-soft);
    font-size: 13px;
}

.fl-quiz__result-program p {
    margin: 0;
    color: #d8e5f2;
    font-size: 13px;
    line-height: 1.8;
}

.fl-quiz__cta {
    display: block;
    margin: 18px auto 0;
    max-width: 340px;
}

.fl-quiz__cta-sub {
    display: block;
    margin: 10px auto 0;
    max-width: 340px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    color: #d8e5f2;
}

.fl-quiz__price-note {
    margin: 12px 0 0;
    color: #8fa9c4;
    font-size: 12px;
}

.fl-quiz__retry {
    margin: 14px 0 0;
}

.fl-quiz__retry button {
    background: none;
    border: 0;
    color: #b9cde2;
    font-size: 12px;
    text-decoration: underline;
    cursor: pointer;
}

.fl-quiz__disclaimer {
    margin: 14px 0 0;
    color: #7b93ad;
    font-size: 11px;
}

@media (max-width: 640px) {
    .fl-quiz__intro,
    .fl-quiz__body {
        padding: 22px 16px;
    }

    .fl-quiz__result {
        padding: 24px 16px;
    }
}

/* ---------------------------------------------------------------------------
   LP additions: free diagnosis banner, instructor, mid CTA, offer daily price
--------------------------------------------------------------------------- */

.fl-sales-freediag {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 18px;
    padding: 14px 18px;
    border-radius: var(--radius-md);
    background: var(--color-light-blue);
    border: 1px solid var(--color-border);
    text-decoration: none;
    transition: border-color 0.15s ease;
}

.fl-sales-freediag:hover {
    border-color: var(--color-blue);
}

.fl-sales-freediag .fl-sales-icon {
    width: 26px;
    height: 26px;
    flex-shrink: 0;
    stroke: var(--color-navy);
}

.fl-sales-freediag span {
    flex: 1;
    display: grid;
    gap: 2px;
}

.fl-sales-freediag strong {
    color: var(--color-deep-blue);
    font-size: 14px;
}

.fl-sales-freediag small {
    color: var(--color-navy);
    font-size: 12px;
}

.fl-sales-freediag em {
    color: var(--color-navy);
    font-style: normal;
    font-size: 18px;
}

.fl-sales-instructor {
    display: flex;
    gap: 20px;
    align-items: center;
    padding: 22px;
    border-radius: var(--radius-lg);
    background: var(--color-white);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
}

.fl-sales-instructor__photo {
    width: 96px;
    height: 96px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--color-light-blue);
    display: grid;
    place-items: center;
}

.fl-sales-instructor__photo span {
    color: var(--color-navy);
    font-family: var(--font-serif);
    font-size: 13px;
    letter-spacing: 0.08em;
}

.fl-sales-instructor__body strong {
    display: block;
    color: var(--color-deep-blue);
    font-size: 16px;
}

.fl-sales-instructor__body p {
    margin: 6px 0 10px;
    color: var(--color-muted);
    font-size: 13px;
    line-height: 1.8;
}

.fl-sales-instructor__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.fl-sales-instructor__chips span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--color-light-blue);
    color: var(--color-navy);
    font-size: 12px;
    font-weight: 600;
}

.fl-sales-instructor__chips .fl-sales-icon {
    width: 15px;
    height: 15px;
    stroke: var(--color-navy);
}

.fl-sales-midcta {
    margin-top: 22px;
    display: grid;
    justify-items: center;
    gap: 10px;
}

.fl-sales-midcta__sub {
    color: var(--color-navy);
    font-size: 13px;
    text-decoration: underline;
}

.fl-sales-offer__daily {
    display: block;
    margin-top: 6px;
    color: var(--color-gold-soft);
    font-size: 12px;
}

@media (max-width: 640px) {
    .fl-sales-instructor {
        flex-direction: column;
        text-align: center;
        padding: 18px;
    }

    .fl-sales-instructor__chips {
        justify-content: center;
    }
}

/* ---------------------------------------------------------------------------
   Purchase page: trust strip and post-purchase flow
--------------------------------------------------------------------------- */

.fl-purchase-trust {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin: 0 0 22px;
}

.fl-purchase-trust div {
    padding: 14px 16px;
    border-radius: var(--radius-md);
    background: var(--color-white);
    border: 1px solid var(--color-border);
    display: grid;
    gap: 2px;
}

.fl-purchase-trust strong {
    color: var(--color-deep-blue);
    font-size: 14px;
}

.fl-purchase-trust span {
    color: var(--color-muted);
    font-size: 12px;
    line-height: 1.6;
}

.fl-purchase-flow {
    margin-top: 26px;
    padding: 20px 22px;
    border-radius: var(--radius-md);
    background: var(--color-light-blue);
}

.fl-purchase-flow h2 {
    margin: 0 0 12px;
    color: var(--color-deep-blue);
    font-size: 16px;
}

.fl-purchase-flow ol {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    counter-reset: fl-flow;
}

.fl-purchase-flow li {
    counter-increment: fl-flow;
    background: var(--color-white);
    border-radius: 10px;
    padding: 12px 14px;
    display: grid;
    gap: 2px;
}

.fl-purchase-flow li::before {
    content: "0" counter(fl-flow);
    color: var(--color-gold);
    font-weight: 700;
    font-size: 13px;
}

.fl-purchase-flow strong {
    color: var(--color-deep-blue);
    font-size: 13px;
}

.fl-purchase-flow span {
    color: var(--color-muted);
    font-size: 12px;
}

@media (max-width: 640px) {
    .fl-purchase-trust,
    .fl-purchase-flow ol {
        grid-template-columns: 1fr;
    }
}

/* ---------------------------------------------------------------------------
   Community: floating post button
--------------------------------------------------------------------------- */

.fl-community-post-fab {
    position: fixed;
    right: 16px;
    bottom: calc(20px + env(safe-area-inset-bottom));
    z-index: 55;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 22px;
    border-radius: 999px;
    background: var(--color-navy);
    color: var(--color-white);
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    box-shadow: var(--shadow-md);
}

.fl-community-post-fab:hover {
    background: var(--color-deep-blue);
    color: var(--color-white);
}

@media (max-width: 780px) {
    body.flui-has-bottom-nav .fl-community-post-fab {
        bottom: calc(88px + env(safe-area-inset-bottom));
    }
}

/* ---------------------------------------------------------------------------
   Free diagnosis: result features and one-point advice
--------------------------------------------------------------------------- */

.fl-quiz__result-features {
    margin: 10px 0 0;
    padding: 14px 16px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.06);
    text-align: left;
}

.fl-quiz__result-features strong {
    display: block;
    margin-bottom: 6px;
    color: #d8e5f2;
    font-size: 13px;
}

.fl-quiz__result-features ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.fl-quiz__result-features li {
    position: relative;
    padding-left: 22px;
    color: #b9cde2;
    font-size: 13px;
    line-height: 1.8;
}

.fl-quiz__result-features li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: var(--color-gold);
    font-weight: 700;
}

.fl-quiz__result-tip {
    margin: 10px 0 0;
    padding: 14px 16px;
    border-radius: 12px;
    background: var(--color-gold-soft);
    text-align: left;
}

.fl-quiz__result-tip strong {
    display: block;
    margin-bottom: 4px;
    color: #6b4f1d;
    font-size: 13px;
}

.fl-quiz__result-tip p {
    margin: 0;
    color: #4c3a17;
    font-size: 13px;
    line-height: 1.8;
}

.fl-playlist-section--app {
    padding-top: 18px;
}

/* ---------------------------------------------------------------------------
   Member pages: hide header on mobile (bottom nav replaces it)
--------------------------------------------------------------------------- */

@media (max-width: 780px) {
    body.flui-has-bottom-nav .fl-header {
        display: none;
    }

    body.flui-has-bottom-nav .fl-shell .fl-section:first-child {
        padding-top: 14px;
    }
}

/* ---------------------------------------------------------------------------
   Dashboard: account row
--------------------------------------------------------------------------- */

.fl-account-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 26px;
    padding: 12px 16px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
}

.fl-account-row__id {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.fl-account-row__avatar {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--color-light-blue);
    color: var(--color-navy);
    font-size: 14px;
    font-weight: 700;
}

.fl-account-row__name {
    color: var(--color-text);
    font-size: 13px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fl-account-row__logout {
    flex-shrink: 0;
    color: var(--color-muted);
    font-size: 12px;
    text-decoration: underline;
}

.fl-account-row__actions {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0;
}

.fl-account-row__settings {
    color: var(--color-navy);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}

.fl-account-row__settings:hover,
.fl-account-row__settings:focus {
    color: var(--color-blue);
}

@media (max-width: 480px) {
    .fl-account-row__actions {
        gap: 9px;
    }

    .fl-account-row__settings,
    .fl-account-row__logout {
        font-size: 11px;
    }
}

@media (max-width: 780px) {
    body.flui-has-bottom-nav .fl-shell .fl-section.fl-playlist-section--app {
        padding-top: 0;
    }
}

/* ---------------------------------------------------------------------------
   Dashboard: app-style layout
--------------------------------------------------------------------------- */

.fl-dashboard-section {
    padding-top: 26px;
}

.fl-dashboard-section .fl-card {
    margin-top: 14px;
}

.fl-dash-greeting {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin: 0 0 14px;
}

.fl-dash-greeting p {
    margin: 0;
    color: var(--color-text);
    font-size: 17px;
    font-weight: 700;
}

.fl-dash-greeting__streak {
    flex-shrink: 0;
    color: #b08d4f;
    font-size: 13px;
    font-weight: 700;
}

.fl-card-head-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.fl-card-head-row a {
    color: var(--color-blue);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}

.fl-card-head-row a:hover {
    text-decoration: underline;
}

.fl-program-manage {
    margin-top: 14px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
}

.fl-program-manage summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 16px;
    cursor: pointer;
    list-style: none;
}

.fl-program-manage summary::-webkit-details-marker {
    display: none;
}

.fl-program-manage summary::after {
    content: "\203A";
    color: var(--color-muted);
    font-size: 18px;
    transition: transform 0.15s ease;
}

.fl-program-manage[open] summary::after {
    transform: rotate(90deg);
}

.fl-program-manage summary strong {
    color: var(--color-text);
    font-size: 13px;
}

.fl-program-manage summary span {
    flex: 1;
    color: var(--color-muted);
    font-size: 12px;
}

.fl-program-manage__body {
    padding: 0 16px 16px;
}

@media (max-width: 640px) {
    body.flui-has-bottom-nav .fl-dashboard-section {
        padding-top: 18px;
    }
}

/* ---------------------------------------------------------------------------
   Community: app-style section
--------------------------------------------------------------------------- */

.fl-community-section--app {
    padding-top: 22px;
}

@media (max-width: 780px) {
    body.flui-has-bottom-nav .fl-shell .fl-section.fl-community-section--app {
        padding-top: 14px;
    }
}

.fl-today-card h2 {
    font-family: var(--font-sans);
    font-size: 16px;
}

.fl-community-post-fab {
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.fl-community-post-fab.is-hidden {
    opacity: 0;
    transform: translateY(8px);
    pointer-events: none;
}

@media (max-width: 780px) {
    .fl-community-post-fab {
        min-height: 44px;
        padding: 0 18px;
        background: var(--color-navy);
        box-shadow: 0 10px 24px rgba(6, 38, 74, 0.2);
    }
}

/* ホームの文字サイズ微調整 */

.fl-dash-greeting p {
    font-size: 18px;
}

.fl-dash-greeting__streak {
    font-size: 14px;
}

.fl-program-manage summary strong {
    font-size: 14px;
}

.fl-program-manage summary span {
    font-size: 13px;
}

.fl-account-row__name {
    font-size: 14px;
}

.fl-account-row__logout {
    font-size: 13px;
}

/* ===========================================================================
   LP v2
=========================================================================== */

.fl2-lp {
    background: var(--color-bg);
    color: var(--color-text);
}

.fl2-member-return {
    border-bottom: 1px solid #e2e9f2;
    background: #fff;
    color: var(--color-text);
}

.fl2-member-return .fl2-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.7;
}

.fl2-member-return .fl2-container::before {
    content: "";
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: #d6b36a;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2306264a' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 5v8'/%3E%3Ccircle cx='12' cy='18' r='1.4' fill='%2306264a' stroke='none'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 12px 12px;
}

@media (max-width: 640px) {
    .fl2-member-return .fl2-container {
        justify-content: flex-start;
        gap: 10px;
        padding-top: 8px;
        padding-bottom: 8px;
        font-size: 12px;
    }
}

.fl2-container {
    width: min(560px, calc(100% - 32px));
    margin: 0 auto;
}

.fl2-section {
    padding: 52px 0;
}

.fl2-section--white {
    background: var(--color-white);
}

.fl2-eyebrow {
    display: block;
    color: #b08d4f;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.fl2-heading {
    margin: 8px 0 12px;
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--color-deep-blue);
}

.fl2-text {
    margin: 0 0 20px;
    font-size: 14px;
    line-height: 2;
    color: var(--color-muted);
}

.fl2-note {
    margin: 10px 0 0;
    font-size: 11px;
    color: #98a2b3;
    line-height: 1.7;
}

.fl2-note--center {
    text-align: center;
}

.fl2-img-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e8eef5;
    border: 1px dashed #b9c6d6;
    color: #64748b;
    font-size: 11px;
    text-align: center;
    padding: 8px;
}

.fl2-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: var(--color-gold);
    color: var(--color-deep-blue);
    font-size: 12px;
    font-weight: 700;
    padding: 7px 14px;
    border-radius: 999px;
}

.fl2-badge svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fl2-cta {
    display: block;
    background: var(--color-gold);
    color: var(--color-deep-blue);
    text-align: center;
    font-size: 16px;
    font-weight: 700;
    padding: 17px 20px;
    border-radius: 999px;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    box-shadow: 0 6px 16px rgba(214, 179, 106, 0.3);
}

.fl2-cta:hover,
.fl2-cta:focus {
    color: var(--color-deep-blue);
    filter: brightness(1.04);
}

.fl2-cta::after {
    content: "";
    position: absolute;
    top: 0;
    left: -80%;
    width: 45%;
    height: 100%;
    background: linear-gradient(105deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0) 100%);
    animation: fl2-shine 4.5s ease-in-out infinite;
}

@keyframes fl2-shine {
    0%, 78% { left: -80%; }
    92%, 100% { left: 130%; }
}

.fl2-cta-sub {
    display: block;
    margin-top: 10px;
    text-align: center;
    font-size: 13px;
    padding: 13px 18px;
    border-radius: 999px;
    text-decoration: none;
}

/* --- Hero --- */

.fl2-hero {
    background: var(--color-deep-blue);
    padding: 26px 0 30px;
}

.fl2-hero h1 {
    margin: 16px 0 0;
    font-family: var(--font-serif);
    font-size: 30px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--color-white);
}

.fl2-hero h1 span {
    display: block;
}

.fl2-hero h1 em {
    font-style: normal;
    color: var(--color-gold);
}

.fl2-hero__photo {
    margin: 16px 0 0;
}

.fl2-hero__img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 16px;
}

.fl2-hero__photo .fl2-img-placeholder {
    aspect-ratio: 4 / 3;
    border-radius: 16px;
    background: #12365e;
    border-color: #3f608f;
    color: #8fb0d1;
}

.fl2-hero__lead {
    margin: 14px 0 0;
    color: #b9cde2;
    font-size: 13px;
    line-height: 1.9;
}

.fl2-hero__price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 10px;
    margin: 14px 0 12px;
}

.fl2-hero__price strong {
    font-family: var(--font-serif);
    font-size: 26px;
    font-weight: 600;
    color: var(--color-white);
}

.fl2-hero__price span {
    color: #b9cde2;
    font-size: 12px;
}

.fl2-hero .fl2-cta-sub {
    border: 1px solid #4a6a8f;
    color: #d8e5f2;
}

.fl2-trust {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-top: 16px;
}

.fl2-trust span {
    color: #b9cde2;
    font-size: 12px;
    font-weight: 600;
}

/* --- Reveal animation --- */

.fl2-reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.55s ease, transform 0.55s ease;
}

.fl2-reveal.is-in {
    opacity: 1;
    transform: translateY(0);
}

/* --- System animation --- */

.fl2-anim-wrap {
    margin: 8px 0 18px;
}

.fl2-anim {
    max-width: 340px;
    margin: 0 auto;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 18px;
    padding: 18px;
    box-shadow: var(--shadow-sm);
}

.fl2-anim__caption {
    margin: 0 0 10px;
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 700;
}

.fl2-anim__chips {
    display: flex;
    gap: 8px;
}

.fl2-anim__chip {
    flex: 1;
    text-align: center;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    padding: 10px 0;
    font-size: 13px;
    background: var(--color-white);
    color: var(--color-text);
}

.fl2-anim__chip--active {
    border-color: var(--color-navy);
    background: var(--color-light-blue);
    color: var(--color-deep-blue);
    font-weight: 700;
}

.fl2-anim__chip--active b {
    color: var(--color-navy);
    font-weight: 700;
}

.fl2-anim__arrow {
    text-align: center;
    color: #b08d4f;
    font-size: 18px;
    margin: 8px 0;
}

.fl2-anim__list {
    display: grid;
    gap: 6px;
}

.fl2-anim__row {
    display: flex;
    gap: 9px;
    align-items: center;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 13px;
    color: var(--color-text);
}

.fl2-anim__row span {
    color: var(--color-navy);
    font-weight: 700;
}

.fl2-anim__row--new {
    background: #fdf9f0;
    border-color: var(--color-gold);
    font-weight: 700;
}

.fl2-anim__row--new b {
    background: var(--color-gold);
    color: var(--color-deep-blue);
    font-size: 11px;
    font-weight: 700;
    padding: 2px 9px;
    border-radius: 999px;
}

.fl2-anim__label {
    margin: 10px 0 0;
    text-align: center;
    color: #b08d4f;
    font-size: 12px;
    font-weight: 700;
}

.fl2-anim.is-play .fl2-anim__chip--active {
    animation: fl2-chip 5.5s ease infinite;
}

.fl2-anim.is-play .fl2-anim__row--new {
    animation: fl2-row 5.5s ease infinite;
    overflow: hidden;
}

.fl2-anim.is-play .fl2-anim__label {
    animation: fl2-label 5.5s ease infinite;
}

@keyframes fl2-chip {
    0%, 6% { background: #fff; border-color: var(--color-border); color: #1f2a37; font-weight: 400; }
    14%, 100% { background: var(--color-light-blue); border-color: var(--color-navy); color: var(--color-deep-blue); font-weight: 700; }
}

@keyframes fl2-row {
    0%, 18% { max-height: 0; padding-top: 0; padding-bottom: 0; opacity: 0; border-width: 0; }
    32%, 96% { max-height: 60px; padding-top: 10px; padding-bottom: 10px; opacity: 1; border-width: 1px; }
    100% { max-height: 0; padding-top: 0; padding-bottom: 0; opacity: 0; border-width: 0; }
}

@keyframes fl2-label {
    0%, 34% { opacity: 0; }
    46%, 92% { opacity: 1; }
    100% { opacity: 0; }
}

.fl2-steps {
    display: flex;
    gap: 8px;
}

.fl2-steps > div {
    flex: 1;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 12px 8px;
    text-align: center;
}

.fl2-steps b {
    display: block;
    font-family: var(--font-serif);
    color: #b08d4f;
    font-size: 16px;
    font-weight: 600;
}

.fl2-steps strong {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    color: var(--color-text);
}

.fl2-steps span {
    display: block;
    margin-top: 2px;
    font-size: 11px;
    color: var(--color-muted);
}

.fl2-steps > div.is-main {
    background: var(--color-deep-blue);
    border-color: var(--color-deep-blue);
}

.fl2-steps > div.is-main b {
    color: var(--color-gold);
}

.fl2-steps > div.is-main strong {
    color: var(--color-white);
}

.fl2-steps > div.is-main span {
    color: #b9cde2;
}

/* --- Instructor --- */

.fl2-instructor {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    padding: 18px;
    margin: 6px 0 34px;
    box-shadow: var(--shadow-sm);
}

.fl2-instructor__head {
    display: flex;
    gap: 14px;
    align-items: center;
}

.fl2-instructor__face {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.fl2-instructor__head .fl2-img-placeholder {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    flex-shrink: 0;
}

.fl2-instructor__head strong {
    display: block;
    font-size: 17px;
    color: var(--color-deep-blue);
}

.fl2-instructor__head span {
    color: var(--color-muted);
    font-size: 12px;
}

.fl2-stats {
    display: flex;
    gap: 8px;
    margin-top: 14px;
}

.fl2-stats > div {
    flex: 1;
    background: var(--color-bg);
    border-radius: 12px;
    padding: 10px 4px;
    text-align: center;
}

.fl2-stats b {
    font-family: var(--font-serif);
    font-size: 19px;
    font-weight: 600;
    color: var(--color-deep-blue);
}

.fl2-stats i {
    font-style: normal;
    font-size: 12px;
    color: var(--color-deep-blue);
}

.fl2-stats span {
    display: block;
    margin-top: 2px;
    font-size: 11px;
    color: var(--color-muted);
}

.fl2-sns {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
}

.fl2-sns span {
    background: var(--color-light-blue);
    color: var(--color-navy);
    font-size: 11px;
    font-weight: 600;
    padding: 5px 11px;
    border-radius: 999px;
}

.fl2-sns b {
    font-weight: 700;
}

/* --- Voice --- */

.fl2-voices {
    display: grid;
    gap: 14px;
    margin-top: 6px;
}

.fl2-voice {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    padding: 14px;
    box-shadow: var(--shadow-sm);
}

.fl2-voice__photos {
    position: relative;
    aspect-ratio: 16 / 10;
    border-radius: 12px;
    overflow: hidden;
}

.fl2-voice__photo {
    position: absolute;
    inset: 0;
}

.fl2-voice__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fl2-voice__photo .fl2-img-placeholder {
    width: 100%;
    height: 100%;
}

.fl2-voice__photo--after .fl2-img-placeholder {
    background: #12365e;
    color: #d6b36a;
    border-color: #3f608f;
}

.fl2-voice__tag {
    position: absolute;
    left: 10px;
    bottom: 8px;
    background: rgba(255, 255, 255, 0.9);
    color: #475467;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 999px;
}

.fl2-voice__tag--after {
    background: var(--color-gold);
    color: var(--color-deep-blue);
}

.fl2-voice__photo--after {
    animation: fl2-crossfade 7s ease-in-out infinite;
}

@keyframes fl2-crossfade {
    0%, 32% { opacity: 0; }
    48%, 88% { opacity: 1; }
    100% { opacity: 0; }
}

.fl2-voice > strong {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    color: var(--color-text);
}

/* --- Keep going / community --- */

.fl2-keep {
    display: grid;
    gap: 8px;
    margin: 6px 0 14px;
}

.fl2-keep > div {
    display: flex;
    gap: 12px;
    align-items: center;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 12px 14px;
}

.fl2-keep svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    fill: none;
    stroke: #b08d4f;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fl2-keep strong {
    display: block;
    font-size: 13px;
    color: var(--color-text);
}

.fl2-keep span {
    display: block;
    font-size: 12px;
    color: var(--color-muted);
}

.fl2-community {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    padding: 14px;
    box-shadow: var(--shadow-sm);
}

.fl2-community__post {
    padding: 8px 0;
}

.fl2-community__post + .fl2-community__post {
    border-top: 1px solid var(--color-border);
}

.fl2-community__post > div {
    display: flex;
    gap: 8px;
    align-items: center;
}

.fl2-community__avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--color-gold-soft);
    color: #8a6d3b;
    font-size: 11px;
}

.fl2-community__post b {
    font-size: 12px;
    color: var(--color-text);
}

.fl2-community__post em {
    font-style: normal;
    background: var(--color-light-blue);
    color: var(--color-navy);
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 999px;
}

.fl2-community__post p {
    margin: 6px 0 0;
    font-size: 13px;
    line-height: 1.7;
    color: var(--color-text);
}

/* --- Offer --- */

.fl2-offer-section {
    background: var(--color-deep-blue);
}

.fl2-bonus {
    background: #fdf9f0;
    border-radius: 16px;
    padding: 16px;
}

.fl2-bonus__body {
    display: flex;
    gap: 14px;
    align-items: center;
    margin-top: 12px;
}

.fl2-bonus__img {
    width: 96px;
    height: 80px;
    object-fit: cover;
    border-radius: 10px;
    flex-shrink: 0;
}

.fl2-bonus__body .fl2-img-placeholder {
    width: 96px;
    height: 80px;
    border-radius: 10px;
    flex-shrink: 0;
}

.fl2-bonus__body strong {
    display: block;
    font-size: 14px;
    color: #4c3a17;
}

.fl2-bonus__body span {
    display: block;
    margin-top: 3px;
    font-size: 12px;
    color: #8a6d3b;
    line-height: 1.7;
}

.fl2-offer {
    margin-top: 14px;
    background: #083058;
    border: 1px solid var(--color-gold);
    border-radius: 16px;
    padding: 20px 18px;
}

.fl2-offer h2 {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--color-white);
}

.fl2-offer__price {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-top: 8px;
}

.fl2-offer__price strong {
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    color: #e6cfa0;
}

.fl2-offer__price span {
    color: #9aa5b4;
    font-size: 12px;
}

.fl2-offer__daily {
    margin: 4px 0 12px;
    color: #9aa5b4;
    font-size: 12px;
}

.fl2-offer__list {
    margin: 0 0 16px;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
}

.fl2-offer__list li {
    position: relative;
    padding-left: 20px;
    color: #d8dee8;
    font-size: 12px;
    line-height: 1.5;
}

.fl2-offer__list li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: var(--color-gold);
    font-weight: 700;
}

.fl2-offer__list li.is-gift {
    color: #e6cfa0;
}

.fl2-offer .fl2-note {
    color: #8fa9c4;
}

.fl2-freediag {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
    background: #182233;
    border-radius: 14px;
    padding: 14px 16px;
    text-decoration: none;
}

.fl2-freediag strong {
    display: block;
    color: var(--color-white);
    font-size: 13px;
}

.fl2-freediag span {
    display: block;
    color: #9aa5b4;
    font-size: 12px;
}

.fl2-freediag div {
    flex: 1;
}

.fl2-freediag em {
    color: var(--color-gold);
    font-style: normal;
    font-size: 18px;
}

/* --- FAQ --- */

.fl2-faq details {
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 0 16px;
    margin-bottom: 8px;
}

.fl2-faq summary {
    padding: 14px 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text);
    cursor: pointer;
}

.fl2-faq details p {
    margin: 0 0 14px;
    font-size: 13px;
    line-height: 1.9;
    color: var(--color-muted);
}

/* --- Sticky CTA --- */

.fl2-sticky {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 70;
    display: flex;
    align-items: center;
    gap: 12px;
    background: rgba(6, 38, 74, 0.97);
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
    transform: translateY(110%);
    transition: transform 0.3s ease;
}

.fl2-sticky.is-visible {
    transform: translateY(0);
}

.fl2-sticky__price span {
    display: block;
    color: #9aa5b4;
    font-size: 10px;
}

.fl2-sticky__price b {
    color: var(--color-white);
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    white-space: nowrap;
}

.fl2-sticky a {
    flex: 1;
    background: var(--color-gold);
    color: var(--color-deep-blue);
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    padding: 13px;
    border-radius: 999px;
    text-decoration: none;
}

/* --- PC --- */

@media (min-width: 900px) {
    .fl2-container {
        width: min(1080px, calc(100% - 48px));
    }

    .fl2-section {
        padding: 84px 0;
    }

    .fl2-hero {
        padding: 60px 0 70px;
    }

    .fl2-hero .fl2-container {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 20px 48px;
        align-items: center;
        grid-template-areas:
            "badge photo"
            "title photo"
            "lead photo"
            "price photo"
            "cta photo"
            "ctasub photo"
            "trust photo";
    }

    .fl2-hero .fl2-badge { grid-area: badge; justify-self: start; }
    .fl2-hero h1 { grid-area: title; font-size: 44px; margin-top: 0; }
    .fl2-hero__photo { grid-area: photo; margin: 0; }
    .fl2-hero__lead { grid-area: lead; font-size: 15px; }
    .fl2-hero__price { grid-area: price; justify-content: flex-start; }
    .fl2-hero .fl2-cta { grid-area: cta; max-width: 380px; }
    .fl2-hero .fl2-cta-sub { grid-area: ctasub; max-width: 380px; }
    .fl2-hero .fl2-trust { grid-area: trust; justify-content: flex-start; }

    .fl2-heading {
        font-size: 32px;
    }

    .fl2-system .fl2-container {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 380px;
        gap: 20px 56px;
        align-items: center;
        grid-template-areas:
            "intro anim"
            "steps anim";
    }

    .fl2-system .fl2-reveal:first-child { grid-area: intro; align-self: end; }
    .fl2-anim-wrap { grid-area: anim; margin: 0; }
    .fl2-steps { grid-area: steps; align-self: start; }

    .fl2-voices {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }

    .fl2-keep {
        grid-template-columns: repeat(3, 1fr);
    }

    .fl2-keep > div {
        flex-direction: column;
        text-align: center;
        gap: 8px;
        padding: 20px 14px;
    }

    .fl2-offer-section .fl2-container {
        max-width: 640px;
    }

    .fl2-faq .fl2-container {
        max-width: 720px;
    }

    .fl2-sticky {
        left: auto;
        right: 28px;
        bottom: 28px;
        border-radius: 999px;
        padding: 8px 10px 8px 20px;
        box-shadow: 0 8px 24px rgba(6, 38, 74, 0.3);
    }

    .fl2-sticky a {
        flex: 0 0 auto;
        padding: 12px 26px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fl2-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .fl2-cta::after,
    .fl2-voice__photo--after,
    .fl2-anim.is-play .fl2-anim__chip--active,
    .fl2-anim.is-play .fl2-anim__row--new,
    .fl2-anim.is-play .fl2-anim__label {
        animation: none;
    }

    .fl2-voice__photo--after {
        opacity: 0;
    }

    .fl2-sticky {
        transition: none;
    }
}

/* ---------------------------------------------------------------------------
   LP v2: ヘッダーをLPデザインと統一（深紺・白ロゴ）
--------------------------------------------------------------------------- */

body.flui-lp-template:not(.logged-in) .fl-header {
    background: var(--color-deep-blue);
    border-bottom: 0;
    box-shadow: none;
    backdrop-filter: none;
}

body.flui-lp-template:not(.logged-in) .fl-brand img,
body.flui-lp-template:not(.logged-in) .fl-brand .custom-logo {
    filter: brightness(0) invert(1);
}

body.flui-lp-template:not(.logged-in) .fl-nav__login {
    color: #d8e5f2;
}

body.flui-lp-template:not(.logged-in) .fl-nav__login:hover,
body.flui-lp-template:not(.logged-in) .fl-nav__login:focus {
    color: var(--color-white);
}

body.flui-lp-template:not(.logged-in) .fl-member-menu .fl-button:not(.fl-button--gold) {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.35);
    color: #d8e5f2;
    box-shadow: none;
}

body.flui-lp-template:not(.logged-in) .fl-member-menu .fl-button--gold {
    background: var(--color-gold);
    color: var(--color-deep-blue);
    border-radius: 999px;
    box-shadow: none;
}

/* ---------------------------------------------------------------------------
   無料診断ページ: LPデザインと統一
--------------------------------------------------------------------------- */

.fl-quiz-shell .fl-section {
    padding-top: 34px;
}

.fl-quiz__intro h1 {
    font-family: var(--font-serif);
    font-weight: 600;
}

.fl-quiz-shell .fl-eyebrow {
    color: #b08d4f;
}

.fl-quiz__start.fl-button--gold {
    border-radius: 999px;
    font-weight: 700;
    box-shadow: 0 6px 16px rgba(214, 179, 106, 0.3);
}

.fl-quiz__progress-bar {
    background: var(--color-gold);
}

.fl-quiz__count em {
    color: #b08d4f;
}

.fl-quiz__question {
    font-family: var(--font-serif);
    font-weight: 600;
    color: var(--color-deep-blue);
}

.fl-quiz__option:hover,
.fl-quiz__option:focus-visible {
    border-color: var(--color-gold);
    background: #fdf9f0;
}

/* ---------------------------------------------------------------------------
   購入ページ: LPデザインと統一
--------------------------------------------------------------------------- */

body.flui-template .fl-section .fl-section-title .fl-eyebrow {
    color: #b08d4f;
}

body.flui-template .flpb-cart-panel .flpb-button:not(.flpb-button-secondary) {
    background: var(--color-gold);
    color: var(--color-deep-blue);
    font-weight: 700;
    box-shadow: 0 6px 16px rgba(214, 179, 106, 0.3);
}

body.flui-template .flpb-cart-panel .flpb-button:not(.flpb-button-secondary):hover,
body.flui-template .flpb-cart-panel .flpb-button:not(.flpb-button-secondary):focus {
    background: #c8a352;
    color: var(--color-deep-blue);
}

.fl-purchase-trust strong {
    font-family: var(--font-serif);
    font-weight: 600;
}

/* SNSチップ（アイコン化） */

.fl2-sns span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
}

.fl2-sns svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fl2-sns b {
    font-size: 12px;
}

/* ---------------------------------------------------------------------------
   ログイン・登録・購入・無料診断: LPベースのコンパクトデザインに統一
--------------------------------------------------------------------------- */

body.flui-page-compact .fl-section {
    padding: 34px 0 56px;
}

body.flui-page-compact .fl-section-title {
    margin-bottom: 22px;
}

body.flui-page-compact .fl-section-title h1,
body.flui-page-compact .fl-section-title h2 {
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--color-deep-blue);
}

body.flui-page-compact .fl-section-title p {
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.9;
    color: var(--color-muted);
}

body.flui-page-compact .fl-eyebrow {
    color: #b08d4f;
}

body.flui-page-compact .fl-card {
    border-radius: 16px;
    box-shadow: var(--shadow-sm);
}

body.flui-page-compact .fl-auth-side {
    background: var(--color-deep-blue);
    border-radius: 16px;
    padding: 22px 20px;
}

body.flui-page-compact .fl-auth-side .fl-eyebrow {
    color: var(--color-gold);
}

body.flui-page-compact .fl-auth-side h2 {
    margin: 8px 0 6px;
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.6;
    color: var(--color-white);
}

body.flui-page-compact .fl-auth-side p {
    margin: 0;
    font-size: 13px;
    line-height: 1.9;
    color: #b9cde2;
}

body.flui-page-compact .fl-auth-note {
    font-size: 13px;
}

/* ログイン・パスワード再設定: 会員ページと揃えた専用レイアウト */

body.flui-auth-page .fl-header--auth {
    position: static;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: none;
    backdrop-filter: none;
}

body.flui-auth-page .fl-header--auth .fl-header__inner {
    justify-content: flex-start;
    min-height: 68px;
    padding: 0;
}

body.flui-auth-page .fl-header--auth .fl-brand img,
body.flui-auth-page .fl-header--auth .fl-brand .custom-logo {
    width: auto;
    max-width: 154px;
    max-height: 38px;
}

body.flui-auth-page .fl-shell {
    min-height: calc(100svh - 69px);
    background: var(--color-bg);
}

body.flui-auth-page .fl-auth-section {
    display: block;
    min-height: 0;
    padding: 48px 0 72px;
}

body.flui-auth-page .fl-auth-container {
    width: min(520px, calc(100% - 40px));
}

body.flui-auth-page .fl-auth-layout {
    display: block;
}

body.flui-auth-page .fl-auth-card {
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-white);
    box-shadow: 0 18px 48px rgba(6, 38, 74, 0.08);
}

body.flui-auth-page .fl-auth-card__body {
    padding: 34px 36px 30px;
}

body.flui-auth-page .fl-auth-heading {
    margin-bottom: 26px;
    text-align: left;
}

body.flui-auth-page .fl-auth-heading h1 {
    margin: 0;
    color: var(--color-deep-blue);
    font-family: var(--font-sans);
    font-size: 28px;
    font-weight: 750;
    line-height: 1.4;
    letter-spacing: 0;
}

body.flui-auth-page .fl-auth-heading p {
    margin: 8px 0 0;
    color: var(--color-muted);
    font-size: 13px;
    line-height: 1.8;
}

body.flui-auth-page .fl-auth-social .flpb-social-login {
    gap: 10px;
    margin: 0;
}

body.flui-auth-page .fl-auth-social .flpb-social-button,
body.flui-auth-page .fl-auth-buttons .fl-button {
    min-height: 50px;
    border-radius: 8px;
    font-size: 14px;
    box-shadow: none;
    transition: border-color 0.16s ease, background 0.16s ease, transform 0.12s ease;
}

body.flui-auth-page .fl-auth-social .flpb-social-button:hover,
body.flui-auth-page .fl-auth-social .flpb-social-button:focus-visible {
    transform: translateY(-1px);
}

body.flui-auth-page .flpb-auth-divider {
    margin: 20px 0;
}

body.flui-auth-page .flpb-email-auth {
    border-color: var(--color-border);
    border-radius: 8px;
}

body.flui-auth-page .flpb-email-auth > summary {
    min-height: 50px;
    padding: 0 15px;
    color: var(--color-deep-blue);
    font-size: 13px;
}

body.flui-auth-page .flpb-email-auth__body {
    padding: 18px;
}

body.flui-auth-page .flpb-email-auth--open {
    border: 0;
}

body.flui-auth-page .flpb-email-auth--open .flpb-email-auth__body {
    padding: 0;
}

body.flui-auth-page .flpb-email-auth--open .flpb-email-auth__body > h2,
body.flui-auth-page .flpb-email-auth--open .flpb-email-auth__body > p {
    display: none;
}

body.flui-auth-page .flpb-email-form .flpb-button {
    min-height: 48px;
    border-radius: 8px;
    background: var(--color-navy);
}

body.flui-auth-page .fl-auth-new-user {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--color-border);
}

body.flui-auth-page .fl-auth-new-user > div {
    min-width: 0;
}

body.flui-auth-page .fl-auth-new-user strong {
    display: block;
    color: var(--color-deep-blue);
    font-size: 13px;
    font-weight: 750;
}

body.flui-auth-page .fl-auth-new-user p {
    margin: 4px 0 0;
    color: var(--color-muted);
    font-size: 11px;
    line-height: 1.7;
}

body.flui-auth-page .fl-auth-new-user > a,
body.flui-auth-page .fl-auth-back a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    color: var(--color-navy);
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
}

body.flui-auth-page .fl-auth-new-user > a:hover,
body.flui-auth-page .fl-auth-new-user > a:focus,
body.flui-auth-page .fl-auth-back a:hover,
body.flui-auth-page .fl-auth-back a:focus {
    color: var(--color-blue);
}

body.flui-auth-page .fl-auth-back {
    margin: 22px 0 0;
    text-align: center;
}

@media (max-width: 640px) {
    body.flui-auth-page .fl-header--auth .fl-header__inner {
        display: flex;
        min-height: 58px;
        padding: 0;
    }

    body.flui-auth-page .fl-header--auth .fl-brand img,
    body.flui-auth-page .fl-header--auth .fl-brand .custom-logo {
        max-width: 140px;
        max-height: 34px;
    }

    body.flui-auth-page .fl-shell {
        min-height: calc(100svh - 59px);
    }

    body.flui-auth-page .fl-auth-section {
        padding: 24px 0 48px;
    }

    body.flui-auth-page .fl-auth-container {
        width: calc(100% - 28px);
    }

    body.flui-auth-page .fl-auth-card__body {
        padding: 26px 20px 24px;
    }

    body.flui-auth-page .fl-auth-heading {
        margin-bottom: 22px;
    }

    body.flui-auth-page .fl-auth-heading h1 {
        font-size: 24px;
    }

    body.flui-auth-page .fl-auth-social .flpb-social-button,
    body.flui-auth-page .fl-auth-buttons .fl-button {
        min-height: 48px;
    }

    body.flui-auth-page .fl-auth-new-user {
        display: block;
        margin-top: 24px;
        padding-top: 20px;
    }

    body.flui-auth-page .fl-auth-new-user > a {
        margin-top: 12px;
    }
}

body.flui-page-compact .fl-purchase-flow h2 {
    font-family: var(--font-serif);
    font-weight: 600;
}

/* 講師統計: 「月」の文字を小さく */

.fl2-stats .fl2-stats__prefix {
    font-style: normal;
    font-size: 12px;
    color: var(--color-deep-blue);
    margin-right: 1px;
}

/* 購入ページ: ステップ表示とコンパクト化 */

.fl-checkout-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0 0 20px;
    padding: 0;
    list-style: none;
}

.fl-checkout-steps li {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--color-muted);
    font-size: 12px;
}

.fl-checkout-steps li b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--color-border);
    color: var(--color-muted);
    font-size: 11px;
    font-weight: 700;
}

.fl-checkout-steps li.is-current {
    color: var(--color-navy);
    font-weight: 700;
}

.fl-checkout-steps li.is-current b {
    background: var(--color-navy);
    color: var(--color-white);
}

.fl-checkout-steps li.is-complete {
    color: var(--color-navy);
}

.fl-checkout-steps li.is-complete b {
    background: #dcecff;
    color: var(--color-navy);
}

.fl-checkout-steps li + li::before {
    content: "";
    width: 18px;
    height: 1px;
    background: #c3cedb;
    margin-right: 6px;
}

body.flui-page-compact .fl-purchase-trust {
    max-width: 480px;
    margin: 20px auto 0;
}

body.flui-page-compact .fl-purchase-flow {
    max-width: 480px;
    margin: 20px auto 0;
}

/* 購入ページ: 安心チップと購入後の流れをスマホでも横並びに */

@media (max-width: 640px) {
    body.flui-page-compact .fl-purchase-trust {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }

    body.flui-page-compact .fl-purchase-trust div {
        padding: 10px 8px;
        text-align: center;
    }

    body.flui-page-compact .fl-purchase-trust strong {
        font-size: 12px;
    }

    body.flui-page-compact .fl-purchase-trust span {
        font-size: 11px;
    }

    body.flui-page-compact .fl-purchase-flow ol {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }

    body.flui-page-compact .fl-purchase-flow li {
        padding: 10px 8px;
        text-align: center;
    }

    body.flui-page-compact .fl-purchase-flow strong {
        font-size: 12px;
    }

    body.flui-page-compact .fl-purchase-flow span {
        font-size: 11px;
    }
}

/* 通知メッセージの再デザイン（テーマ側） */

.fl-tutorial-notice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid #e2e9f2;
    border-radius: 12px;
    background: var(--color-white);
    box-shadow: 0 4px 14px rgba(6, 38, 74, 0.07);
    color: var(--color-text);
    font-size: 13px;
    line-height: 1.7;
}

.fl-tutorial-notice::before {
    content: "";
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin-top: 1px;
    border-radius: 50%;
    background-color: #2e9e6b;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 13 4.5 4.5L19 7'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 12px 12px;
}

/* LP: ヘッダーの固定を解除（追従CTAに一本化） */

body.flui-lp-template .fl-header {
    position: static;
}

/* LP: ログイン状態でもヘッダーデザインを統一（深紺＋白ロゴ＋右に1ボタン） */

body.flui-lp-template .fl-header {
    background: var(--color-deep-blue);
    border-bottom: 0;
    box-shadow: none;
    backdrop-filter: none;
}

body.flui-lp-template .fl-brand img,
body.flui-lp-template .fl-brand .custom-logo {
    filter: brightness(0) invert(1);
}

body.flui-lp-template.logged-in .fl-menu-toggle,
body.flui-lp-template.logged-in .fl-menu-button,
body.flui-lp-template.logged-in .fl-header__menu {
    display: none;
}

body.flui-lp-template.logged-in .fl-header__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 60px;
    padding: 7px 0;
}

body.flui-lp-template.logged-in .fl-brand img,
body.flui-lp-template.logged-in .fl-brand .custom-logo {
    max-height: 34px;
    width: auto;
}

body.flui-lp-template.logged-in .fl-header-dashboard-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    min-width: 0;
    padding: 0 16px;
    border: 0;
    border-radius: 999px;
    background: var(--color-gold);
    color: var(--color-deep-blue);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transform: none;
    box-shadow: none;
}

body.flui-lp-template.logged-in .fl-header-dashboard-link:hover,
body.flui-lp-template.logged-in .fl-header-dashboard-link:focus {
    background: #c8a352;
    color: var(--color-deep-blue);
}

/* LP: ヘッダーを両状態で固定に統一＋文字コントラスト調整 */

body.flui-lp-template .fl-header {
    position: sticky;
    top: 0;
    z-index: 90;
}

body.flui-lp-template:not(.logged-in) .fl-nav__login {
    color: #ffffff;
    font-weight: 600;
}

body.flui-lp-template:not(.logged-in) .fl-nav__login:hover,
body.flui-lp-template:not(.logged-in) .fl-nav__login:focus {
    color: var(--color-gold-soft);
}

body.flui-lp-template.logged-in .fl-header-dashboard-link {
    padding: 0 22px;
    background: var(--color-white);
    color: var(--color-deep-blue);
}

body.flui-lp-template.logged-in .fl-header-dashboard-link:hover,
body.flui-lp-template.logged-in .fl-header-dashboard-link:focus {
    background: var(--color-light-blue);
    color: var(--color-deep-blue);
}

/* LP ヘッダー最終調整: 通常スクロール・ログインはゴースト・ボタン余白拡大 */

body.flui-lp-template .fl-header {
    position: static;
}

body.flui-lp-template:not(.logged-in) .fl-nav__login {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: 999px;
    color: #ffffff;
    font-weight: 600;
}

body.flui-lp-template:not(.logged-in) .fl-nav__login:hover,
body.flui-lp-template:not(.logged-in) .fl-nav__login:focus {
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

body.flui-lp-template.logged-in .fl-header-dashboard-link {
    padding: 0 28px;
}

/* LP: 未ログイン時ヘッダーの固定解除（旧ルールより高い詳細度で上書き） */

body.flui-lp-template:not(.logged-in) .fl-header {
    position: static;
}

/* Account settings */
.fl-account-page {
    padding: 28px 0 80px;
}

/* 幅は .fl-container--narrow で統一する（個別指定はしない） */

@media (max-width: 640px) {
    .fl-account-page {
        padding: 24px 0 76px;
    }
}

/* ===========================================================================
   ダッシュボードのリッチ化
=========================================================================== */

/* 進捗リングのアニメーション */

.fl-today-card__ring.is-animated {
    transition: --fl-today-progress 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

@property --fl-today-progress {
    syntax: '<percentage>';
    inherits: true;
    initial-value: 0%;
}

.fl-today-card__ring.is-complete {
    animation: fl-ring-pulse 0.7s ease;
}

@keyframes fl-ring-pulse {
    0% { transform: scale(1); }
    45% { transform: scale(1.07); }
    100% { transform: scale(1); }
}

/* 時間帯で変わるTODAYカード */

.fl-today-card.is-morning {
    background: linear-gradient(140deg, #0b4f86 0%, #06264a 78%);
}

.fl-today-card.is-day {
    background: linear-gradient(140deg, #0a4576 0%, #06264a 80%);
}

.fl-today-card.is-evening {
    background: linear-gradient(140deg, #123a63 0%, #05203f 80%);
}

.fl-today-card.is-night {
    background: linear-gradient(140deg, #0a2745 0%, #041729 80%);
}

/* 週間ストリークドット */

.fl-week-strip {
    display: flex;
    justify-content: space-between;
    gap: 6px;
    margin: 0 0 14px;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-white);
}

.fl-week-strip__day {
    display: grid;
    justify-items: center;
    gap: 4px;
    flex: 1;
}

.fl-week-strip__day i {
    display: block;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #e6ecf3;
    transition: transform 0.2s ease;
}

.fl-week-strip__day.has-practice i {
    background: var(--color-gold);
}

.fl-week-strip__day.is-today i {
    box-shadow: 0 0 0 2px var(--color-white), 0 0 0 3.5px var(--color-navy);
}

.fl-week-strip__day small {
    color: var(--color-muted);
    font-size: 11px;
}

.fl-week-strip__day.has-practice small {
    color: var(--color-navy);
    font-weight: 700;
}

/* 次の動画サムネイル */

.fl-today-card__thumb {
    position: relative;
    flex-shrink: 0;
    width: 68px;
    height: 44px;
    border-radius: 8px;
    overflow: hidden;
    background: #0a2b4d;
}

.fl-today-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fl-today-card__thumb svg {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 20px;
    height: 20px;
    transform: translate(-50%, -50%);
    fill: #fff;
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.5));
}

/* カードの出現アニメーションとマイクロインタラクション */

.fl-rise {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.45s ease, transform 0.45s ease;
}

.fl-rise.is-in {
    opacity: 1;
    transform: translateY(0);
}

.fl-button:active,
.fl-today-card__cta:active,
.fl2-cta:active {
    transform: scale(0.98);
}

.fl-button,
.fl-today-card__cta {
    transition: transform 0.12s ease, background 0.15s ease, color 0.15s ease;
}

@media (prefers-reduced-motion: reduce) {
    .fl-rise {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .fl-today-card__ring.is-animated,
    .fl-today-card__ring.is-complete {
        transition: none;
        animation: none;
    }
}

/* 次の動画: サムネイル使用時は1列目の幅をサムネイルに合わせる */

.fl-today-card__next:has(.fl-today-card__thumb) {
    grid-template-columns: 68px minmax(0, 1fr);
}

.fl-today-card__thumb {
    width: 68px;
    height: 44px;
}

@supports not selector(.a:has(b)) {
    .fl-today-card__next {
        display: flex;
        align-items: center;
    }

    .fl-today-card__next > span:nth-child(2) {
        flex: 1;
        min-width: 0;
    }
}

/* 次の動画サムネイル: 動画の向きに合わせて枠の形を変える */

.fl-today-card__thumb.is-portrait {
    width: 34px;
    height: 52px;
}

.fl-today-card__thumb.is-square {
    width: 48px;
    height: 48px;
}

.fl-today-card__next:has(.fl-today-card__thumb.is-portrait) {
    grid-template-columns: 34px minmax(0, 1fr);
}

.fl-today-card__next:has(.fl-today-card__thumb.is-square) {
    grid-template-columns: 48px minmax(0, 1fr);
}

.fl-today-card__thumb.is-portrait svg,
.fl-today-card__thumb.is-square svg {
    width: 16px;
    height: 16px;
}

/* LP: コミュニティイメージのリアクション表示 */

.fl2-community__head {
    display: flex;
    gap: 8px;
    align-items: center;
}

.fl2-community__reactions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}

.fl2-community__reactions span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 12px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-white);
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 600;
}

.fl2-community__reactions i {
    font-style: normal;
    font-size: 13px;
    line-height: 1;
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
}

.fl2-community__reactions b {
    color: var(--color-navy);
    font-weight: 700;
}

.fl2-community__reactions .is-active {
    border-color: var(--color-navy);
    background: var(--color-light-blue);
    color: var(--color-deep-blue);
}

/* LP: コミュニティイメージのコメント表示 */

.fl2-community__comments {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--color-border);
    display: grid;
    gap: 10px;
}

.fl2-community__comment {
    display: flex;
    gap: 8px;
    align-items: flex-start;
}

.fl2-community__comment > div {
    flex: 1;
    min-width: 0;
}

.fl2-community__comment b {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--color-text);
    font-size: 12px;
    font-weight: 700;
}

.fl2-community__comment em.is-admin {
    font-style: normal;
    background: var(--color-gold);
    color: var(--color-deep-blue);
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 999px;
}

.fl2-community__comment p {
    margin: 3px 0 0;
    color: var(--color-muted);
    font-size: 12px;
    line-height: 1.75;
}

.fl2-community__avatar.is-admin {
    background: var(--color-gold);
    color: var(--color-deep-blue);
}

.fl2-community__comment .fl2-community__avatar {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    font-size: 11px;
}

/* LP: 進化アニメの上に動画プレイヤーの下半分を表示 */

.fl2-anim__player {
    position: relative;
    height: 92px;
    margin: -18px -18px 0;
    overflow: hidden;
    border-radius: 18px 18px 0 0;
    background: #06264a;
}

.fl2-anim__player-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center bottom;
    display: block;
}

.fl2-anim__player .fl2-img-placeholder {
    width: 100%;
    height: 100%;
    background: #0b3c68;
    border: 0;
    color: #7ea9cf;
    border-radius: 0;
}

.fl2-anim__player-bar {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 12px;
    background: linear-gradient(180deg, rgba(6, 20, 38, 0) 0%, rgba(6, 20, 38, 0.82) 55%);
}

.fl2-anim__player-play svg {
    width: 15px;
    height: 15px;
    fill: #fff;
    display: block;
}

.fl2-anim__player-track {
    position: relative;
    flex: 1;
    height: 3px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.32);
}

.fl2-anim__player-track i {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 38%;
    border-radius: 999px;
    background: var(--color-gold);
}

.fl2-anim__player-bar small {
    color: rgba(255, 255, 255, 0.9);
    font-size: 10px;
    font-variant-numeric: tabular-nums;
}

.fl2-anim__player-title {
    margin: 12px 0 10px;
    color: var(--color-deep-blue);
    font-size: 14px;
    font-weight: 700;
}

/* ---------------------------------------------------------------------------
   診断ページ: サービス全体のデザインに統一
--------------------------------------------------------------------------- */

.fl-diagnosis-section {
    padding: 26px 0 56px;
}

@media (max-width: 780px) {
    body.flui-has-bottom-nav .fl-shell .fl-section.fl-diagnosis-section {
        padding-top: 16px;
    }
}

.fl-diagnosis-hero {
    margin: 0 0 18px;
    padding: 20px;
    border-radius: var(--radius-md);
    background: var(--color-deep-blue);
    box-shadow: var(--shadow-sm);
}

.fl-diagnosis-hero__eyebrow {
    display: block;
    color: var(--color-gold);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.fl-diagnosis-hero h2 {
    margin: 6px 0 6px;
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--color-white);
}

.fl-diagnosis-hero p {
    margin: 0;
    color: #b9cde2;
    font-size: 13px;
    line-height: 1.9;
}

.fl-diagnosis-hero__steps {
    display: flex;
    gap: 8px;
    margin-top: 14px;
}

.fl-diagnosis-hero__steps span {
    flex: 1;
    display: grid;
    justify-items: center;
    gap: 2px;
    padding: 9px 4px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.08);
    color: #d8e5f2;
    font-size: 11px;
    font-weight: 600;
}

.fl-diagnosis-hero__steps b {
    font-family: var(--font-serif);
    color: var(--color-gold);
    font-size: 14px;
    font-weight: 600;
}

/* ------------------------------------------------------------------ */
/* ウェイティングリスト（販売開始前の先行案内フォーム）                */
/* ------------------------------------------------------------------ */

.fl2-waitlist {
    margin-top: 22px;
    scroll-margin-top: 24px;
}

.fl2-waitlist__heading {
    font-size: 19px;
    font-weight: 700;
    line-height: 1.5;
    margin: 0 0 8px;
    color: var(--color-deep-blue);
}

.fl2-waitlist__lead {
    font-size: 14px;
    line-height: 1.8;
    color: var(--color-muted);
    margin: 0 0 18px;
}

.fl2-waitlist__form {
    display: grid;
    gap: 14px;
}

.fl2-waitlist__field {
    display: grid;
    gap: 6px;
    text-align: left;
}

.fl2-waitlist__field > span {
    font-size: 13px;
    font-weight: 700;
    color: var(--color-deep-blue);
}

.fl2-waitlist__field input {
    width: 100%;
    min-height: 50px;
    padding: 0 14px;
    border: 1px solid rgba(6, 38, 74, 0.18);
    border-radius: 10px;
    background: #fff;
    font-size: 16px; /* iOSで自動ズームさせない */
    color: var(--color-deep-blue);
}

.fl2-waitlist__field input:focus {
    outline: none;
    border-color: var(--color-gold);
    box-shadow: 0 0 0 3px rgba(214, 179, 106, 0.25);
}

.fl2-waitlist__form .fl2-cta {
    width: 100%;
    border: 0;
    cursor: pointer;
    font-family: inherit;
}

.fl2-waitlist__error {
    margin: 0 0 14px;
    padding: 11px 13px;
    border-radius: 8px;
    background: #fdecec;
    color: #9b2c2c;
    font-size: 13px;
    line-height: 1.7;
}

.fl2-waitlist__done {
    display: grid;
    gap: 6px;
    padding: 22px 20px;
    border-radius: 12px;
    background: var(--color-gold-soft);
    text-align: center;
}

.fl2-waitlist__done strong {
    font-size: 17px;
    color: var(--color-deep-blue);
}

.fl2-waitlist__done span {
    font-size: 14px;
    line-height: 1.8;
    color: var(--color-muted);
}

/* ---------------------------------------------------------------------------
   会員ページのヘッダー幅を本文と揃える
   （ヘッダーだけ1180pxのままだとロゴと本文の左端がずれる）
--------------------------------------------------------------------------- */

/*
 * ヘッダーは会員ページ全体で同じ幅に固定する。
 * ページごとに追従させると、遷移のたびにロゴが左右へ動いてしまうため、
 * いちばん広い本文（動画視聴ページの2カラム）に合わせて据え置く。
 */
body.flui-has-bottom-nav .fl-header__inner,
body.flui-template.logged-in:not(.flui-lp-template) .fl-header__inner {
    width: min(var(--container-app), calc(100% - 32px));
}

/* ---------------------------------------------------------------------------
   動画の消音トグル
   （消音中はiOSの音声セッションを奪わないため、音楽を流しながら実践できる）
--------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
   動画ライブラリ（折りたたみ）
   普段は使わない機能なので、閉じた状態を既定にする。
--------------------------------------------------------------------------- */

details.flpb-manual-library {
    padding: 0;
}

details.flpb-manual-library > summary {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 20px;
    color: var(--color-deep-blue);
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}

details.flpb-manual-library > summary::-webkit-details-marker {
    display: none;
}

/* 開閉を示す矢印 */
details.flpb-manual-library > summary::after {
    content: "";
    flex-shrink: 0;
    width: 9px;
    height: 9px;
    margin-left: auto;
    border-right: 2px solid var(--color-muted);
    border-bottom: 2px solid var(--color-muted);
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform .18s ease;
}

details.flpb-manual-library[open] > summary::after {
    transform: rotate(-135deg) translate(-2px, -2px);
}

details.flpb-manual-library > summary:hover,
details.flpb-manual-library > summary:focus-visible {
    color: #0a2f5c;
}

.flpb-manual-library__count {
    padding: 3px 9px;
    border-radius: 999px;
    background: var(--color-bg);
    font-size: 11px;
    font-weight: 600;
    color: var(--color-muted);
}

.flpb-manual-library__lead {
    margin: 0 20px 12px;
    font-size: 12px;
    line-height: 1.8;
    color: var(--color-muted);
}

details.flpb-manual-library .flpb-manual-library-list {
    padding: 0 20px 18px;
}

@media (prefers-reduced-motion: reduce) {
    details.flpb-manual-library > summary::after {
        transition: none;
    }
}

@media (max-width: 600px) {
    details.flpb-manual-library > summary {
        padding: 14px 16px;
        font-size: 14px;
    }

    .flpb-manual-library__lead {
        margin: 0 16px 10px;
    }

    details.flpb-manual-library .flpb-manual-library-list {
        padding: 0 16px 16px;
    }
}

/* ---------------------------------------------------------------------------
   プレイヤー下の操作バー
   消音・字幕・連続再生を、プレイヤーの一部として1か所にまとめる。
   背景はプレイヤーの下地（#101828）と同色にして、映像から地続きに見せる。
--------------------------------------------------------------------------- */

/*
 * プレイヤーの下端にぴったり付ける。
 * .flpb-vimeo の margin-bottom をバーへ移し替えることで、
 * 動画とバーが1つの部品に見えるようにする。
 */
.flui-template .flpb-program-player .flpb-vimeo {
    margin-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.flpb-player-bar {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    border-radius: 0 0 12px 12px;
    background: #101828;
    margin-bottom: clamp(22px, 3vw, 34px);
}

/* 縦動画は左右の帯が純黒なので、バーもそれに合わせる */
.flpb-vimeo--portrait + .flpb-player-bar {
    background: #000;
}

/* 連続再生スイッチは右端へ寄せる */
.flpb-player-bar .flpb-autoplay-switch {
    margin-left: auto;
}

/*
 * チャプター移動。設定ボタンと連続再生の間の空きに置く。
 * 区間が2つ以上ある動画でのみJSが表示する。
 */
.flpb-chapter-nav {
    display: flex;
    align-items: center;
    gap: 2px;
    margin-left: 10px;
}

.flpb-chapter-nav[hidden] {
    display: none;
}

.flpb-chapter-button {
    min-width: 40px;
    padding: 6px 8px;
}

.flpb-chapter-button svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* 端に達したら押せないことを示す */
.flpb-chapter-button[disabled] {
    opacity: 0.35;
    cursor: default;
}

.flpb-chapter-button[disabled]:hover {
    color: rgba(255, 255, 255, 0.8);
}

/*
 * スマホでは動画が画面幅いっぱいに広がるため、バーも同じ扱いにする。
 * order は動画と同じ値にして、直後に並ぶようにする。
 */
@media (max-width: 900px) {
    .flui-template .flpb-program-player .flpb-player-bar {
        order: -1;
        box-sizing: border-box;
        width: 100vw;
        max-width: 100vw;
        margin-left: calc(50% - 50vw);
        margin-bottom: 14px;
        border-radius: 0;
    }
}

.flpb-bar-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    box-sizing: border-box;
    /* 見た目は小さくても、タップ領域は44pxを確保する */
    min-width: 44px;
    min-height: 40px;
    padding: 6px 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    color: rgba(255, 255, 255, 0.8);
    cursor: pointer;
    transition: background-color .15s ease, color .15s ease;
}

.flpb-bar-button[hidden] {
    display: none;
}

.flpb-bar-button:hover,
.flpb-bar-button:focus-visible {
    background: transparent;
    color: #fff;
}

.flpb-bar-button:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.7);
    outline-offset: -2px;
}

/* 有効中はゴールドで示す。枠や塗りは使わない */
.flpb-bar-button[aria-pressed="true"] {
    background: transparent;
    color: var(--color-gold, #d6b36a);
}

.flpb-mute-toggle svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* 状態に応じてアイコンを入れ替える（色だけに頼らない） */
.flpb-mute-toggle__off { display: none; }

.flpb-mute-toggle[aria-pressed="true"] .flpb-mute-toggle__on { display: none; }
.flpb-mute-toggle[aria-pressed="true"] .flpb-mute-toggle__off { display: block; }

/* スマホは幅が厳しいので、消音と字幕はアイコンのみにする */
@media (max-width: 640px) {
    .flpb-bar-button {
        justify-content: center;
        padding: 8px;
    }

    .flpb-mute-toggle__label,
    .flpb-cc-toggle__label {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        padding: 0;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
}

@media (prefers-reduced-motion: reduce) {
    .flpb-bar-button {
        transition: none;
    }
}

/* ---------------------------------------------------------------------------
   連続再生
--------------------------------------------------------------------------- */

/* 空のメタ欄が余白だけ残していたので畳む */
.flpb-meta:empty {
    display: none;
}

/* 操作列との間隔を詰める（プラグイン既定の18pxを上書き） */
.flui-template .flpb-program-controls {
    margin-top: 12px;
}

.flpb-autoplay-switch {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 40px;
    padding: 0 6px 0 4px;
    font-size: 12px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.8);
    cursor: pointer;
    user-select: none;
}

.flpb-autoplay-switch input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.flpb-autoplay-switch__track {
    position: relative;
    flex-shrink: 0;
    width: 34px;
    height: 20px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.28);
    transition: background-color .18s ease;
}

.flpb-autoplay-switch__track::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(6, 38, 74, 0.35);
    transition: transform .18s ease;
}

.flpb-autoplay-switch input:checked + .flpb-autoplay-switch__track {
    background: var(--color-gold, #d6b36a);
}

.flpb-autoplay-switch input:checked + .flpb-autoplay-switch__track::after {
    transform: translateX(14px);
}

.flpb-autoplay-switch input:focus-visible + .flpb-autoplay-switch__track {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

.flpb-autoplay-switch input:checked ~ .flpb-autoplay-switch__text {
    color: #fff;
}

/*
 * hidden属性を確実に効かせる。
 * .flpb-button の display 指定が UA スタイルの display:none を上書きしてしまうため。
 */
.flpb-program-controls .flpb-button[hidden],
.flpb-program-controls [hidden] {
    display: none;
}

/*
 * 字幕トグルのCC表記。
 * 有効時は枠の内側を塗りつぶし、色だけに頼らずに状態を示す。
 */
.flpb-cc-toggle__badge {
    display: inline-grid;
    place-items: center;
    min-width: 27px;
    padding: 3px 4px;
    border: 1.5px solid currentColor;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    transition: background-color .15s ease, color .15s ease;
}

/*
 * currentColor は同じルール内の color を参照するため、
 * ここで背景に使うと文字色と同じ値になってしまう。塗りは明示する。
 */
.flpb-cc-toggle[aria-pressed="true"] .flpb-cc-toggle__badge {
    border-color: var(--color-gold, #d6b36a);
    background: var(--color-gold, #d6b36a);
    color: #101828;
}

@media (prefers-reduced-motion: reduce) {
    .flpb-cc-toggle__badge {
        transition: none;
    }
}

/* カウントダウン中の「次の動画へ」ボタン */
.flpb-button.is-counting {
    position: relative;
    overflow: hidden;
}

/*
 * 残り時間を背面のバーで示す。
 * 右端を基準に縮めることで、変化が左から右へ進むように見せる。
 */
.flpb-button.is-counting::before {
    content: "";
    position: absolute;
    inset: 0 0 0 auto;
    width: var(--flpb-countdown, 100%);
    background: rgba(255, 255, 255, 0.22);
    transition: width 1s linear;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .flpb-autoplay-switch__track,
    .flpb-autoplay-switch__track::after,
    .flpb-button.is-counting::before {
        transition: none;
    }
}

/* 初回だけ出す案内 */
.flpb-mute-toast {
    position: fixed;
    left: 50%;
    bottom: 90px;
    z-index: 120;
    transform: translate(-50%, 8px);
    /*
     * left:50% だけだと使える幅が画面の右半分に制限され、
     * 内容が不要に折り返される。max-content で内容幅を確保する。
     */
    width: max-content;
    max-width: min(560px, calc(100% - 32px));
    padding: 11px 18px;
    border-radius: 999px;
    background: rgba(16, 24, 40, 0.92);
    font-size: 13px;
    color: #fff;
    text-align: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease, transform .25s ease;
}

.flpb-mute-toast.is-visible {
    transform: translate(-50%, 0);
    opacity: 1;
}

/*
 * 通知はすべてトーストで出すため、その場には表示しない。
 * JSが無効な環境ではテンプレート側の <noscript> がこれを打ち消す。
 */
.flpb-program-notice[data-flpb-toast] {
    display: none;
}

/*
 * 「元に戻す」などの操作を含むトースト。
 * サーバー側の通知HTML（.flpb-success）をそのまま流し込むため、
 * 内側の装飾は打ち消して1行のバーとして見せる。
 */
.flpb-mute-toast.has-action {
    /* 複数行になりうるのでピル型をやめ、角丸の帯にする */
    padding: 14px 18px;
    border-radius: 14px;
    text-align: left;
    pointer-events: auto;
}

.flpb-mute-toast.has-action .flpb-success,
.flpb-mute-toast.has-action .flpb-notice {
    display: flex;
    align-items: center;
    gap: 18px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.75;
    color: #fff;
    text-align: left;
}

/* 既存の通知はアイコンを疑似要素で持っているので隠す */
.flpb-mute-toast.has-action .flpb-success::before,
.flpb-mute-toast.has-action .flpb-notice::before {
    display: none;
}

.flpb-mute-toast.has-action a {
    flex-shrink: 0;
    padding: 4px 2px;
    color: var(--color-gold, #d6b36a);
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.flpb-mute-toast.has-action a:hover,
.flpb-mute-toast.has-action a:focus-visible {
    color: #fff;
    text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
    .flpb-mute-toast {
        transition: none;
    }
}

/* ---------------------------------------------------------------------------
   運営からのお知らせ
--------------------------------------------------------------------------- */

.fl-notices-section {
    padding: 28px 0 56px;
}

.fl-notice-card .fl-card-head-row h2 {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 未読件数 */
.fl-notice-count {
    display: inline-grid;
    place-items: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: #b32d2e;
    font-size: 11px;
    font-weight: 700;
    color: var(--color-white);
}

/* アカウントメニュー内の未読バッジ */
.fl-member-menu__dropdown a,
.fl-member-menu__mobile-account a {
    display: flex;
    align-items: center;
    gap: 7px;
}

/* 未読があることをアバターの右上で知らせる（メニューを開かなくても気づける） */
.fl-member-menu__account.has-unread > summary .fl-member-menu__avatar {
    position: relative;
}

.fl-member-menu__account.has-unread > summary .fl-member-menu__avatar::after {
    content: "";
    position: absolute;
    top: -1px;
    right: -1px;
    width: 9px;
    height: 9px;
    border: 2px solid var(--color-white);
    border-radius: 50%;
    background: #b32d2e;
}

.fl-nav__badge {
    display: inline-grid;
    place-items: center;
    min-width: 17px;
    height: 17px;
    padding: 0 5px;
    border-radius: 999px;
    background: #b32d2e;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    color: #fff;
}

.fl-notice-list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fl-notice-item {
    display: grid;
    gap: 5px;
    padding: 13px 15px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-white);
}

.fl-notice-item.is-unread {
    border-color: rgba(176, 141, 79, 0.45);
    background: var(--color-gold-soft);
}

.fl-notice-item__meta {
    display: flex;
    align-items: center;
    gap: 8px;
}

.fl-notice-item__meta time {
    font-size: 11px;
    color: var(--color-muted);
}

/* 種別タグ */
.fl-notice-tag {
    padding: 3px 9px;
    border-radius: 999px;
    background: var(--color-bg);
    font-size: 11px;
    font-weight: 600;
    color: var(--color-deep-blue);
    white-space: nowrap;
}

.fl-notice-tag.is-video { background: #e8f1fb; color: #0b4f86; }
.fl-notice-tag.is-feature { background: #eef8f0; color: #1c7c34; }
.fl-notice-tag.is-maintenance { background: #fdf0e6; color: #a4561b; }

.fl-notice-new {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #b32d2e;
}

.fl-notice-item__title {
    font-size: 14px;
    line-height: 1.6;
    color: var(--color-deep-blue);
}

.fl-notice-item__body {
    margin: 0;
    font-size: 13px;
    line-height: 1.85;
    color: var(--color-text);
    white-space: pre-line;
}

.fl-notice-item__link {
    justify-self: start;
    margin-top: 3px;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-deep-blue);
    text-decoration: none;
}

.fl-notice-item__link:hover {
    text-decoration: underline;
}

.fl-notice-item__link span {
    margin-left: 2px;
}

.fl-notice-more {
    margin: 12px 0 0;
    font-size: 13px;
}

.fl-notice-empty {
    display: grid;
    justify-items: center;
    gap: 5px;
    padding: 30px 20px;
    border: 1px dashed var(--color-border);
    border-radius: 14px;
    background: var(--color-bg);
    text-align: center;
}

.fl-notice-empty strong {
    font-size: 14px;
    color: var(--color-deep-blue);
}

.fl-notice-empty span {
    font-size: 12px;
    line-height: 1.8;
    color: var(--color-muted);
}

.fl-notices-back {
    margin: 16px 0 0;
    font-size: 13px;
    text-align: center;
}

.fl-notices-back a {
    color: var(--color-muted);
    text-decoration: none;
}

.fl-notices-back a:hover {
    color: var(--color-deep-blue);
}

@media (max-width: 600px) {
    .fl-notices-section {
        padding: 20px 0 48px;
    }

    .fl-notice-item {
        padding: 12px 13px;
    }
}

/* ---------------------------------------------------------------------------
   会員ページ共通の見出し（LPの大見出しは使わない）
--------------------------------------------------------------------------- */

.fl-page-head {
    margin-bottom: 16px;
}

.fl-page-head h1 {
    margin: 0 0 4px;
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--color-deep-blue);
}

.fl-page-head p {
    margin: 0;
    font-size: 13px;
    line-height: 1.8;
    color: var(--color-muted);
}

/* ---------------------------------------------------------------------------
   使い方ガイド
--------------------------------------------------------------------------- */

.fl-tutorial-section {
    padding: 28px 0 56px;
}

.fl-tutorial__program {
    display: inline-block;
    margin-bottom: 14px;
    padding: 5px 12px;
    border-radius: 999px;
    background: var(--color-bg);
    font-size: 12px;
    font-weight: 600;
    color: var(--color-deep-blue);
}

.fl-tutorial__video {
    margin-bottom: 18px;
    border-radius: 14px;
    overflow: hidden;
    background: #000;
}

.fl-tutorial__video iframe,
.fl-tutorial__video video {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    border: 0;
}

/* 動画が未登録のときの表示 */
.fl-tutorial__empty {
    display: grid;
    justify-items: center;
    gap: 6px;
    margin-bottom: 18px;
    padding: 30px 20px;
    border: 1px dashed var(--color-border);
    border-radius: 14px;
    background: var(--color-bg);
    text-align: center;
}

.fl-tutorial__empty svg {
    width: 30px;
    height: 30px;
    margin-bottom: 2px;
    fill: none;
    stroke: var(--color-muted);
    stroke-width: 1.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fl-tutorial__empty strong {
    font-size: 14px;
    color: var(--color-deep-blue);
}

.fl-tutorial__empty span {
    font-size: 12px;
    line-height: 1.8;
    color: var(--color-muted);
}

/* 購入直後の通知は既存の .fl-tutorial-notice（チェックアイコン付き）をそのまま使う */

.fl-tutorial-content--notes {
    padding-top: 18px;
    border-top: 1px solid var(--color-border);
}

@media (max-width: 600px) {
    .fl-tutorial-section {
        padding: 20px 0 48px;
    }

    .fl-page-head h1 {
        font-size: 18px;
    }
}

/* ---------------------------------------------------------------------------
   プログラム管理のボタン
--------------------------------------------------------------------------- */

.fl-program-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    /* グリッド／フレックスの子要素は既定で縮まないため、明示的に許可する */
    min-width: 0;
    margin-top: 12px;
}

.fl-program-action {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    /* パディングを幅に含める。含めないと width:100% 指定時に左右30px分はみ出す */
    box-sizing: border-box;
    max-width: 100%;
    padding: 9px 15px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-white);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--color-deep-blue);
    text-decoration: none;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.fl-program-action svg {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fl-program-action:hover,
.fl-program-action:focus-visible {
    border-color: var(--color-deep-blue);
    background: rgba(11, 58, 112, 0.06);
    color: var(--color-deep-blue);
}

/* 主要動線：塗りつぶし */
.fl-program-action.is-primary {
    border-color: var(--color-deep-blue);
    background: var(--color-deep-blue);
    color: var(--color-white);
}

.fl-program-action.is-primary:hover,
.fl-program-action.is-primary:focus-visible {
    background: #0a2f5c;
    border-color: #0a2f5c;
    color: var(--color-white);
}

/* やり直し系：目立たせず、押し間違いを防ぐ */
.fl-program-action.is-quiet {
    border-color: transparent;
    background: transparent;
    color: var(--color-muted);
}

.fl-program-action.is-quiet:hover,
.fl-program-action.is-quiet:focus-visible {
    border-color: var(--color-border);
    background: var(--color-bg);
    color: var(--color-text);
}

@media (max-width: 480px) {
    .fl-program-actions {
        gap: 6px;
    }

    /* 主要動線は横幅いっぱいに置き、押し間違いを減らす */
    .fl-program-action.is-primary {
        flex: 1 1 100%;
        justify-content: center;
    }

    .fl-program-action {
        padding: 9px 13px;
        font-size: 12px;
    }
}

/* ---------------------------------------------------------------------------
   アカウント設定
--------------------------------------------------------------------------- */

.fl-account {
    display: grid;
    gap: 14px;
}

.fl-account-card .fl-card__body {
    padding: 20px;
}

.fl-account-lead {
    margin: -4px 0 16px;
    font-size: 13px;
    line-height: 1.85;
    color: var(--color-muted);
}

/* プロフィールフォーム */

.fl-account .flpb-wrap {
    padding: 0;
}

.fl-account .flpb-profile-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.fl-account .flpb-profile-grid .is-wide {
    grid-column: 1 / -1;
}

.fl-account .flpb-profile-grid label {
    display: grid;
    gap: 5px;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-deep-blue);
}

.fl-account .flpb-profile-grid input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: var(--color-white);
    font-size: 15px;
    color: var(--color-text);
}

.fl-account .flpb-profile-grid input:focus {
    border-color: var(--color-blue, #0b73d9);
    outline: none;
}

.fl-account .flpb-profile-grid small {
    font-size: 11px;
    font-weight: 400;
    line-height: 1.7;
    color: var(--color-muted);
}

.fl-account .flpb-button {
    margin-top: 16px;
}

/* ログイン方法 */

.fl-login-methods {
    display: grid;
    gap: 10px;
}

.fl-login-method {
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-white);
    overflow: hidden;
}

.fl-login-method__head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
}

.fl-login-method__icon {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--color-bg);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-deep-blue);
}

.fl-login-method__icon.is-google { background: #f1f4f9; }
.fl-login-method__icon.is-line { background: #e7f6e9; color: #1c7c34; }
.fl-login-method__icon.is-email { background: var(--color-gold-soft); color: #8a6a2f; }

.fl-login-method__label {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.fl-login-method__label strong {
    font-size: 14px;
    color: var(--color-deep-blue);
}

.fl-login-method__label span {
    overflow: hidden;
    font-size: 12px;
    color: var(--color-muted);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fl-login-method__action {
    flex-shrink: 0;
    margin-left: auto;
    padding: 7px 14px;
    border: 1px solid var(--color-deep-blue);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-deep-blue);
    text-decoration: none;
    white-space: nowrap;
}

.fl-login-method__action:hover {
    background: var(--color-deep-blue);
    color: var(--color-white);
}

.fl-login-method__action.is-unlink {
    border-color: rgba(179, 45, 46, 0.5);
    color: #b32d2e;
}

.fl-login-method__action.is-unlink:hover {
    background: #b32d2e;
    border-color: #b32d2e;
    color: var(--color-white);
}

.fl-login-method__action.is-static,
.fl-login-method__action.is-disabled {
    border-color: var(--color-border);
    background: var(--color-bg);
    color: var(--color-muted);
    cursor: default;
}

.fl-login-method__action.is-static.is-on {
    border-color: rgba(28, 124, 52, 0.35);
    background: #eef8f0;
    color: #1c7c34;
}

.fl-login-method__body {
    border-top: 1px solid var(--color-border);
    background: rgba(247, 250, 253, 0.65);
}

.fl-login-method__note {
    margin: 0;
    padding: 12px 16px;
    font-size: 12px;
    line-height: 1.8;
    color: var(--color-muted);
}

/* 開閉する設定フォーム */

.fl-account-disclosure + .fl-account-disclosure {
    border-top: 1px solid var(--color-border);
}

.fl-account-disclosure > summary {
    padding: 12px 16px;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-deep-blue);
    cursor: pointer;
    list-style: none;
}

.fl-account-disclosure > summary::-webkit-details-marker {
    display: none;
}

.fl-account-disclosure > summary::after {
    content: '＋';
    float: right;
    font-size: 12px;
    color: var(--color-muted);
}

.fl-account-disclosure[open] > summary::after {
    content: '−';
}

.fl-account-form {
    display: grid;
    gap: 12px;
    padding: 4px 16px 18px;
}

.fl-account-form label {
    display: grid;
    gap: 5px;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-deep-blue);
}

.fl-account-form input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: var(--color-white);
    font-size: 15px;
}

.fl-account-form input:focus {
    border-color: var(--color-blue, #0b73d9);
    outline: none;
}

.fl-account-form__note {
    margin: 0;
    font-size: 11px;
    line-height: 1.75;
    color: var(--color-muted);
}

.fl-account-form .fl-button {
    justify-self: start;
}

/* アカウント操作 */

.fl-account-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.fl-account-logout {
    font-size: 13px;
    color: var(--color-muted);
    text-decoration: none;
}

.fl-account-logout:hover {
    color: #b32d2e;
    text-decoration: underline;
}

@media (max-width: 600px) {
    .fl-account .flpb-profile-grid {
        grid-template-columns: 1fr;
    }

    .fl-account-card .fl-card__body {
        padding: 18px 16px;
    }

    .fl-login-method__head {
        padding: 12px 14px;
    }
}

/* 特典の配送先が未登録のときの案内 */

.fl-dash-alert {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
    padding: 14px 16px;
    border: 1px solid rgba(176, 141, 79, 0.42);
    border-radius: 14px;
    background: var(--color-gold-soft);
    text-decoration: none;
}

.fl-dash-alert:hover {
    border-color: rgba(176, 141, 79, 0.75);
}

.fl-dash-alert__icon {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--color-white);
}

.fl-dash-alert__icon svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: #b08d4f;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fl-dash-alert__text {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.fl-dash-alert__text strong {
    font-size: 14px;
    color: var(--color-deep-blue);
}

.fl-dash-alert__text small {
    font-size: 12px;
    line-height: 1.6;
    color: var(--color-muted);
}

.fl-dash-alert__arrow {
    margin-left: auto;
    font-size: 22px;
    line-height: 1;
    color: #b08d4f;
}

/* 購入直後の特典案内 */

.fl-tutorial-gift {
    display: grid;
    gap: 8px;
    justify-items: start;
    margin-bottom: 18px;
    padding: 18px;
    border: 1px solid rgba(176, 141, 79, 0.42);
    border-radius: 14px;
    background: var(--color-gold-soft);
}

.fl-tutorial-gift strong {
    font-size: 15px;
    color: var(--color-deep-blue);
}

.fl-tutorial-gift p {
    margin: 0;
    font-size: 13px;
    line-height: 1.85;
    color: var(--color-text);
}

.fl-tutorial-gift small {
    font-size: 12px;
    color: var(--color-muted);
}

/* アカウント設定：特典の配送先 */

.flpb-profile-shipping {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--color-border);
}

.flpb-profile-shipping__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.flpb-profile-shipping__head strong {
    font-size: 14px;
    color: var(--color-deep-blue);
}

.flpb-profile-shipping__status {
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--color-bg);
    font-size: 11px;
    color: var(--color-muted);
}

.flpb-profile-shipping__locked,
.flpb-profile-shipping__todo {
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: 10px;
    font-size: 12px;
    line-height: 1.8;
}

.flpb-profile-shipping__locked {
    background: var(--color-bg);
    color: var(--color-muted);
}

.flpb-profile-shipping__todo {
    background: var(--color-gold-soft);
    color: var(--color-deep-blue);
}

.flpb-profile-shipping input[disabled] {
    background: var(--color-bg);
    color: var(--color-muted);
    cursor: not-allowed;
}

/* 確認メールが迷惑メールに入った場合の案内 */
.fl2-waitlist__mailnote {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid rgba(17, 55, 95, 0.14);
    text-align: left;
}

.fl2-waitlist__mailnote p {
    margin: 0 0 8px;
    font-size: 13px;
    line-height: 1.85;
    color: var(--color-text);
}

.fl2-waitlist__mailnote p:last-child {
    margin-bottom: 0;
}

.fl2-waitlist__mailnote strong {
    font-size: inherit;
    font-weight: 700;
    color: var(--color-deep-blue);
}

/* ボット対策の隠しフィールド（display:none だと埋めるボットがいるため画面外へ） */
.fl2-waitlist__hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* 販売開始前の価格表記 */
.fl2-hero__price--soon strong,
.fl2-offer__price--soon strong {
    letter-spacing: 0.02em;
}

.fl2-hero__note {
    margin-top: 10px;
    font-size: 13px;
    line-height: 1.7;
    opacity: 0.82;
}

/* ローンチ前: LPヘッダーはロゴのみ（メニューボタンも隠す） */

body.flui-lp-template.flui-prelaunch .fl-menu-toggle,
body.flui-lp-template.flui-prelaunch .fl-menu-button,
body.flui-lp-template.flui-prelaunch .fl-header__menu {
    display: none;
}

body.flui-lp-template.flui-prelaunch .fl-header__inner {
    justify-content: center;
    min-height: 58px;
}

/* 先行案内フォーム: 深紺背景の上で読みやすい文字色にする */

.fl2-offer .fl2-waitlist__heading {
    color: var(--color-white);
}

.fl2-offer .fl2-waitlist__lead {
    color: #b9cde2;
}

.fl2-offer .fl2-waitlist__field > span {
    color: #d8e5f2;
    font-weight: 600;
}

.fl2-offer .fl2-waitlist__field input {
    border-color: rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.06);
    color: var(--color-white);
}

.fl2-offer .fl2-waitlist__field input::placeholder {
    color: rgba(216, 229, 242, 0.55);
}

.fl2-offer .fl2-waitlist__field input:focus {
    border-color: var(--color-gold);
    background: rgba(255, 255, 255, 0.1);
    outline: none;
}

.fl2-offer .fl2-waitlist__error {
    color: #ffd6d6;
}

.fl2-offer .fl2-waitlist .fl2-note {
    color: #8fa9c4;
}

/* ---------------------------------------------------------------------------
   法務ページ（特商法・プライバシーポリシー）
--------------------------------------------------------------------------- */

.fl-legal-section {
    padding: 30px 0 64px;
}

.fl-legal__head {
    margin-bottom: 22px;
}

.fl-legal__eyebrow {
    display: block;
    color: #b08d4f;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.fl-legal__head h1 {
    margin: 8px 0 10px;
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--color-deep-blue);
}

.fl-legal__head p {
    margin: 0;
    font-size: 13px;
    line-height: 1.9;
    color: var(--color-muted);
}

.fl-legal__body {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 22px;
    box-shadow: var(--shadow-sm);
}

.fl-legal__body section + section {
    margin-top: 22px;
}

.fl-legal__body h2 {
    margin: 0 0 8px;
    font-size: 15px;
    font-weight: 700;
    color: var(--color-deep-blue);
}

.fl-legal__body p {
    margin: 0 0 8px;
    font-size: 13px;
    line-height: 1.95;
    color: var(--color-text);
}

.fl-legal__body ul {
    margin: 0;
    padding-left: 20px;
}

.fl-legal__body li {
    font-size: 13px;
    line-height: 1.95;
    color: var(--color-text);
}

.fl-legal__list {
    margin: 0;
}

.fl-legal__list > div {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid var(--color-border);
}

.fl-legal__list > div:last-child {
    border-bottom: 0;
}

.fl-legal__list dt {
    font-size: 13px;
    font-weight: 700;
    color: var(--color-deep-blue);
}

.fl-legal__list dd {
    margin: 0;
    font-size: 13px;
    line-height: 1.95;
    color: var(--color-text);
}

.fl-legal__note {
    display: inline-block;
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.8;
    color: var(--color-muted);
}

.fl-legal__date {
    margin: 22px 0 0;
    font-size: 12px;
    color: var(--color-muted);
}

@media (max-width: 640px) {
    .fl-legal__list > div {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}

/* LPフッター（法務リンク + コピーライト） */

.fl2-footer {
    background: var(--color-deep-blue);
    color: #b9cde2;
}

.fl2-footer__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    width: min(var(--container), calc(100% - 40px));
    margin: 0 auto;
    padding: 40px 0 108px;
    text-align: center;
}

.fl2-footer__brand {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: var(--color-white);
}

.fl2-legal-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 22px;
}

.fl2-legal-links a {
    color: #b9cde2;
    font-size: 12px;
    text-decoration: none;
}

.fl2-legal-links a:hover {
    color: var(--color-white);
    text-decoration: underline;
}

.fl2-footer__copy {
    margin: 0;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    width: 100%;
    max-width: 620px;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.62);
}

/* LPではテーマ標準フッターを使わない */

body.flui-lp-template .site-footer {
    display: none;
}

@media (max-width: 640px) {
    .fl2-footer__inner {
        gap: 14px;
        padding: 32px 0 120px;
    }

    .fl2-legal-links {
        gap: 8px 16px;
    }
}

/* 法務ページ: LPのトーンに合わせたレイアウト */

/* 幅は共通の .fl-container--narrow に従う */

.fl-legal-section {
    padding: 48px 0 72px;
}

.fl-legal__back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 18px;
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}

.fl-legal__back:hover {
    color: var(--color-deep-blue);
}

.fl-legal__head h1 {
    font-size: 28px;
    letter-spacing: 0.02em;
}

.fl-legal__body {
    padding: 28px 30px;
    border-radius: var(--radius-lg, 18px);
    box-shadow: 0 18px 44px rgba(9, 45, 87, 0.07);
}

.fl-legal__switch {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.fl-legal__switch a {
    display: inline-flex;
    align-items: center;
    padding: 9px 16px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-white);
    color: var(--color-deep-blue);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}

.fl-legal__switch a:hover {
    border-color: var(--color-deep-blue);
}

@media (max-width: 640px) {
    .fl-legal-section {
        padding: 28px 0 56px;
    }

    .fl-legal__head h1 {
        font-size: 22px;
    }

    .fl-legal__body {
        padding: 20px 18px;
    }
}

/* 先行案内：販売前の状態・商品価格・無料登録をひとまとまりにする。 */
/* ローンチ前のヒーロー内カード。
   一番目立たせるのは「無料で登録」のボタン。価格はその判断材料なので、
   金額を主役にしない。カード自体もヒーローから浮かせず、面を重ねた程度に留める。 */

.fl2-launch-card {
    grid-area: price;
    margin-top: 22px;
    padding: 20px 18px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 14px;
    text-align: center;
}

.fl2-launch-status {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 12px;
    border-radius: 999px;
    background: #f3e4be;
    color: #06264a;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.5;
}

.fl2-launch-status::before {
    content: '';
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
}

/* 「販売価格」「¥22,000」「税込」でサイズを3段階に分け、金額だけを拾えるようにする */
.fl2-launch-price {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: baseline;
    gap: 0 8px;
    margin: 16px 0 0;
}

.fl2-launch-price__label {
    color: #b9c8d8;
    font-size: 11px;
    letter-spacing: 0.04em;
}

.fl2-launch-price__value {
    color: #fff;
    font-family: var(--font-serif);
    font-size: 32px;
    font-weight: 600;
    line-height: 1.1;
}

.fl2-launch-price__tax {
    color: #b9c8d8;
    font-size: 12px;
}

.fl2-launch-card .fl2-launch-terms {
    margin: 6px 0 18px;
    color: #b9c8d8;
    font-size: 12px;
    line-height: 1.7;
}

.fl2-hero .fl2-launch-card .fl2-cta {
    max-width: none;
    padding: 17px 12px;
    font-size: 15px;
    letter-spacing: 0.01em;
    line-height: 1.4;
}

.fl2-launch-card .fl2-launch-note {
    margin: 14px 0 0;
    color: #cfdcea;
    font-size: 12px;
    line-height: 1.7;
}

.fl2-sticky__price .fl2-launch-sticky-status {
    color: #f3e4be;
    font-weight: 700;
    font-size: 11px;
}

.fl2-sticky__price b small {
    margin-left: 4px;
    font-family: var(--font-sans);
    font-size: 10px;
    font-weight: 600;
    opacity: 0.75;
}
/* 先行案内ヒーロー: 1024px未満は1カラム（900px〜の販売版グリッドを打ち消す）、1024px以上で左に導線・右に診断結果の例 */
@media (min-width: 900px) {
    .fl2-hero--prelaunch .fl2-container {
        display: block;
        width: min(560px, calc(100% - 48px));
    }
    .fl2-hero--prelaunch h1 { margin-top: 16px; }
}

@media (min-width: 1024px) {
    .fl2-hero--prelaunch .fl2-container {
        display: grid;
        width: min(1080px, calc(100% - 48px));
        grid-template-columns: minmax(0, 560px) minmax(0, 420px);
        justify-content: space-between;
        align-items: start;
        gap: 18px 48px;
        grid-template-areas: "badge preview" "title preview" "lead preview" "cta preview" "trust preview";
    }
    .fl2-hero--prelaunch h1 { margin-top: 0; }
    .fl2-hero--prelaunch .fl2-hero__status { grid-area: badge; justify-self: start; }
    .fl2-hero--prelaunch .fl2-launch-card { grid-area: cta; margin-top: 0; }
    .fl2-hero--prelaunch .fl2-hero__preview,
    .fl2-hero--prelaunch .fl2-hero__photo { grid-area: preview; align-self: center; margin: 0; }
    .fl2-hero--prelaunch .fl2-trust { grid-area: trust; }
}

/* ---------------------------------------------------------------------------
   無料診断 v2（/free-diagnosis/）: チェック画面と結果画面
--------------------------------------------------------------------------- */

.fl-diag__note { margin-bottom: 16px; }

.fl-diag__screen {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    border: 0;
    min-width: 0;
}

/* display: grid が hidden 属性に勝ってしまうので、画面送りのために明示する */
.fl-diag__screen[hidden],
.fl-diag__nav .fl-button[hidden] {
    display: none;
}

.fl-diag__option {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 14px 14px 12px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-white);
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.fl-diag__option input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}

.fl-diag__check {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    margin-top: 1px;
    border: 2px solid #c9d5e3;
    border-radius: 7px;
    background: var(--color-white);
    position: relative;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.fl-diag__check::after {
    content: "";
    position: absolute;
    left: 6px;
    top: 2px;
    width: 6px;
    height: 11px;
    border: solid var(--color-deep-blue);
    border-width: 0 2.5px 2.5px 0;
    transform: rotate(45deg) scale(0);
    transition: transform 0.15s ease;
}

.fl-diag__option:hover,
.fl-diag__option:focus-within {
    border-color: var(--color-gold);
    background: #fdf9f0;
}

.fl-diag__option:has(input:checked) {
    border-color: var(--color-gold);
    background: var(--color-gold-soft);
}

.fl-diag__option input:checked + .fl-diag__check {
    border-color: var(--color-gold);
    background: var(--color-gold);
}

.fl-diag__option input:checked + .fl-diag__check::after { transform: rotate(45deg) scale(1); }

.fl-diag__text { display: grid; gap: 3px; min-width: 0; }
.fl-diag__text strong { color: var(--color-text); font-size: 15px; line-height: 1.5; }
.fl-diag__text small { color: var(--color-muted); font-size: 12px; line-height: 1.6; }
.fl-diag__text em { font-style: normal; font-size: 11px; color: #b08d4f; }

.fl-diag__nav {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}

.fl-diag__nav .fl-button { flex: 1 1 0; }
.fl-diag__nav .fl-diag__back { flex: 0 0 auto; min-width: 96px; }

/* 結果 */

.fl-diag-result {
    max-width: 560px;
    margin: 0 auto;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    padding: 26px 20px 24px;
}

.fl-diag-result__head { text-align: center; }

.fl-diag-result__title {
    margin: 8px 0 6px;
    color: var(--color-deep-blue);
    font-family: var(--font-serif);
    font-size: 23px;
    line-height: 1.4;
}

.fl-diag-result__title em {
    display: block;
    font-style: normal;
    color: #b08d4f;
    font-size: 28px;
    margin-top: 2px;
}

.fl-diag-result__summary {
    margin: 0;
    color: var(--color-muted);
    font-size: 13px;
    line-height: 1.8;
}

.fl-diag-result__summary b { color: var(--color-deep-blue); }

.fl-diag-result__answers {
    margin: 14px 0 0;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--color-bg);
    text-align: left;
}

.fl-diag-result__answers > span {
    display: block;
    margin-bottom: 6px;
    color: var(--color-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.fl-diag-result__answers ul {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fl-diag-result__answers li {
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    color: var(--color-text);
    font-size: 12px;
    line-height: 1.4;
}

.fl-diag-result__none {
    margin: 14px 0 0;
    color: var(--color-muted);
    font-size: 13px;
    line-height: 1.8;
    text-align: left;
}

.fl-diag-list {
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 8px;
}

.fl-diag-list__item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 12px 14px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-white);
}

.fl-diag-list__item.is-added {
    border-color: var(--color-gold);
    background: #fffaf0;
}

.fl-diag-list__num {
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--color-deep-blue);
    color: var(--color-white);
    font-size: 12px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}

.fl-diag-list__item.is-added .fl-diag-list__num { background: var(--color-gold); color: var(--color-deep-blue); }

.fl-diag-list__body { min-width: 0; flex: 1 1 auto; }

.fl-diag-list__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
}

.fl-diag-list__name {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-text);
    font-size: 15px;
    line-height: 1.5;
}

.fl-diag-lock {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: #9aa8b8;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    flex: 0 0 auto;
}

.fl-diag-list__badge {
    padding: 3px 8px;
    border-radius: 999px;
    background: var(--color-gold);
    color: var(--color-deep-blue);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.4;
    white-space: nowrap;
}

.fl-diag-list__badge.is-up { background: var(--color-light-blue); color: var(--color-navy); }

.fl-diag-list__why {
    margin: 6px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 3px;
}

.fl-diag-list__why li {
    color: var(--color-muted);
    font-size: 12px;
    line-height: 1.7;
}

.fl-diag-list__why em { font-style: normal; color: #b08d4f; }

.fl-diag-removed {
    margin: 14px 0 0;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--color-bg);
}

.fl-diag-removed strong { display: block; color: var(--color-deep-blue); font-size: 13px; margin-bottom: 6px; }
.fl-diag-removed ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.fl-diag-removed li { display: grid; gap: 2px; }
.fl-diag-removed li > span { color: var(--color-muted); font-size: 13px; text-decoration: line-through; }
.fl-diag-removed small { color: var(--color-muted); font-size: 11px; line-height: 1.6; }

.fl-diag-next {
    margin: 18px 0 0;
    padding: 14px 16px;
    border-radius: 12px;
    background: var(--color-light-blue);
}

.fl-diag-next strong { display: block; color: var(--color-navy); font-size: 14px; margin-bottom: 4px; }
.fl-diag-next p { margin: 0; color: var(--color-text); font-size: 13px; line-height: 1.8; }

.fl-diag-cta { margin-top: 22px; }
.fl-diag-cta__note {
    margin: 0 0 -8px;
    text-align: center;
    color: #9b2c2c;
    font-size: 13px;
    font-weight: 700;
}

.fl-diag-cta .fl-quiz__cta { width: 100%; }
.fl-diag-cta .fl-quiz__cta-sub { width: 100%; margin-top: 10px; }
.fl-diag-cta .fl-quiz__price-note { margin: 10px 0 0; text-align: center; color: var(--color-muted); font-size: 12px; }

.fl-diag-cta__save { margin-top: 18px; }
.fl-diag-cta__save summary {
    cursor: pointer;
    color: var(--color-navy);
    font-size: 13px;
    text-align: center;
    text-decoration: underline;
}
.fl-diag-cta__save .fl2-waitlist { margin-top: 12px; }

.fl-diag-actions {
    margin-top: 22px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px 18px;
}

.fl-diag-share {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 14px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-white);
    color: var(--color-navy);
    font-size: 13px;
    cursor: pointer;
}

.fl-diag-share svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.fl-diag-share__done { color: var(--color-muted); font-size: 12px; }
.fl-diag-retry { color: var(--color-muted); font-size: 12px; text-decoration: underline; }

.fl-diag-result .fl-quiz__disclaimer {
    margin: 18px 0 0;
    color: var(--color-muted);
    font-size: 11px;
    line-height: 1.8;
    text-align: left;
}

/* LP（先行案内中）: ヒーローの副導線（既存の .fl2-cta-sub の見た目を使い、余白だけ足す） */
.fl2-launch-card .fl2-cta-sub {
    margin-top: 10px;
}

/* 画面送りでスクロールしたとき、固定ヘッダーに進捗が隠れないようにする */
.fl-diag__form { scroll-margin-top: calc(var(--header-height) + 12px); }

/* 無料診断 v2: 導入部（紺のカード） */

.fl-diag-intro { max-width: 560px; margin: 0 auto; }

.fl-diag-intro__card {
    position: relative;
    overflow: hidden;
    padding: 30px 22px 24px;
    border-radius: var(--radius-md);
    background: linear-gradient(160deg, #0a2f5c 0%, var(--color-deep-blue) 70%);
    box-shadow: var(--shadow-md);
    text-align: center;
    color: var(--color-white);
}

.fl-diag-intro__card::before {
    content: "";
    position: absolute;
    inset: auto -40px -80px auto;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(214, 179, 106, 0.22), rgba(214, 179, 106, 0) 70%);
    pointer-events: none;
}

.fl-diag-intro__eyebrow {
    display: inline-block;
    color: var(--color-gold);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.22em;
}

.fl-diag-intro__title {
    margin: 12px 0 10px;
    color: var(--color-white);
    font-family: var(--font-serif);
    font-size: 25px;
    font-weight: 600;
    line-height: 1.45;
}

.fl-diag-intro__lead {
    margin: 0 auto;
    max-width: 30em;
    color: #c9d8e8;
    font-size: 13.5px;
    line-height: 1.85;
}

.fl-diag-intro__chips {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}

.fl-diag-intro__chips li {
    padding: 6px 12px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.07);
    color: #e6eef7;
    font-size: 12px;
    line-height: 1.4;
}

.fl-diag-intro__chips b { color: var(--color-gold); font-size: 14px; font-weight: 700; }

.fl-diag-intro__start {
    width: 100%;
    max-width: 340px;
    margin-top: 20px;
    box-shadow: 0 8px 20px rgba(214, 179, 106, 0.28);
}

.fl-diag-intro__steps {
    display: grid;
    gap: 8px;
    margin: 22px 0 0;
    padding: 16px 0 0;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    list-style: none;
    text-align: left;
}

.fl-diag-intro__steps li {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #d8e5f2;
    font-size: 13px;
    line-height: 1.6;
}

.fl-diag-intro__steps span {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--color-gold);
    color: var(--color-deep-blue);
    font-size: 11px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.fl-diag-skip {
    margin: 14px 0 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
    scroll-margin-top: calc(var(--header-height) + 12px);
}

.fl-diag-skip summary {
    padding: 15px 18px;
    cursor: pointer;
    color: var(--color-navy);
    font-size: 14px;
    font-weight: 700;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.fl-diag-skip summary::-webkit-details-marker { display: none; }

.fl-diag-skip summary::after {
    content: "";
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--color-navy);
    border-bottom: 2px solid var(--color-navy);
    transform: rotate(45deg);
    transition: transform 0.2s ease;
}

.fl-diag-skip[open] summary::after { transform: rotate(-135deg); }

.fl-diag-skip .fl2-waitlist {
    margin: 0;
    padding: 0 18px 20px;
}

.fl-diag-intro .fl-quiz__skip { margin-top: 14px; }

/* 無料診断 v2: 結果上部を紺の帯に */

.fl-diag-result { padding-top: 0; overflow: hidden; }

.fl-diag-result__head {
    margin: 0 -20px 0;
    padding: 26px 20px 22px;
    background: linear-gradient(160deg, #0a2f5c 0%, var(--color-deep-blue) 70%);
    color: var(--color-white);
}

.fl-diag-result__head .fl-eyebrow { color: var(--color-gold); }
.fl-diag-result__head .fl-eyebrow::before { background: var(--color-gold); }
.fl-diag-result__title { color: var(--color-white); }
.fl-diag-result__title em { color: var(--color-gold); font-size: 34px; }
.fl-diag-result__summary { color: #c9d8e8; }
.fl-diag-result__summary b { color: var(--color-white); }

.fl-diag-result__answers {
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.fl-diag-result__answers > span { color: #9fb6cf; }

.fl-diag-result__answers li {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.16);
    color: #eef4fa;
}

.fl-diag-result__none { color: #c9d8e8; }

/* 無料診断ページ内の登録フォーム: LP外では box-sizing が content-box のため、幅100%＋余白ではみ出さないようにする */
.fl-diag-skip .fl2-waitlist *,
.fl-diag-cta .fl2-waitlist *,
.fl-diag-skip .fl2-waitlist *::before,
.fl-diag-cta .fl2-waitlist *::before,
.fl-diag-skip .fl2-waitlist *::after,
.fl-diag-cta .fl2-waitlist *::after {
    box-sizing: border-box;
}

/* ---------------------------------------------------------------------------
   LP 先行案内ヒーロー: 無料診断への導線＋診断結果の例（写真の代わり）
--------------------------------------------------------------------------- */

/* 診断結果の例の光彩が画面外へ広がり、横スクロールが出ないようにする */
.fl2-hero--prelaunch { overflow: hidden; }

/* LP（.fl2-lp）は .fl-sales-lp の border-box 指定の外にあるため、幅100%＋余白ではみ出さないようにする */
.fl2-hero .fl2-waitlist *,
.fl2-hero .fl2-waitlist *::before,
.fl2-hero .fl2-waitlist *::after {
    box-sizing: border-box;
}

.fl2-hero--prelaunch .fl2-launch-card {
    margin-top: 20px;
    padding: 18px 16px 16px;
}

.fl2-hero--prelaunch .fl2-launch-card .fl2-launch-note {
    margin: 8px 0 0;
}

/* 副導線：開くとカード内にメール欄だけのフォームが出る（JSなしでも動く details） */
.fl2-hero-skip {
    margin-top: 12px;
}

.fl2-hero-skip > .fl2-cta-sub {
    max-width: none;
    margin-top: 0;
    cursor: pointer;
    list-style: none;
}

.fl2-hero-skip > .fl2-cta-sub::-webkit-details-marker { display: none; }

.fl2-hero-skip[open] > .fl2-cta-sub {
    border-color: rgba(255, 255, 255, 0.32);
    background: rgba(255, 255, 255, 0.06);
}

.fl2-hero-skip .fl2-waitlist {
    margin-top: 10px;
    text-align: left;
}

.fl2-hero .fl2-waitlist--compact .fl2-note {
    color: #b9c8d8;
}

/* テーマ既定の input[type="email"] 指定（角丸なし・灰色地）に負けないよう、ヒーロー内で詳細度を上げる */
.fl2-hero .fl2-waitlist__field input {
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 10px;
    background: var(--color-white);
    color: var(--color-deep-blue);
}

.fl2-hero .fl2-waitlist__field input:focus {
    border-color: var(--color-gold);
}

/* 省スペース版の登録フォーム（[flex_lab_waitlist compact="1"]）: 狭い画面は縦積み、広い画面は1行 */
.fl2-waitlist--compact .fl2-waitlist__form {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.fl2-waitlist--compact .fl2-waitlist__field {
    flex: 1 1 100%;
    min-width: 0;
}

.fl2-waitlist--compact .fl2-waitlist__form .fl2-cta {
    flex: 1 1 100%;
    width: auto;
    min-height: 50px;
    padding: 12px 18px;
    font-size: 14px;
    line-height: 1.4;
    white-space: nowrap;
}

.fl2-waitlist--compact .fl2-note {
    flex: 1 1 100%;
    margin: 2px 0 0;
}

@media (min-width: 480px) {
    .fl2-waitlist--compact .fl2-waitlist__field { flex: 1 1 0; }
    .fl2-waitlist--compact .fl2-waitlist__form .fl2-cta { flex: 0 0 auto; }
}

/* 価格と先着特典は判断材料として小さく添える */
.fl2-hero-price {
    margin: 16px 0 0;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    color: #b9c8d8;
    font-size: 12px;
    line-height: 1.7;
}

.fl2-hero-price strong {
    color: var(--color-white);
    font-family: var(--font-serif);
    font-size: 16px;
    font-weight: 600;
}

.fl2-hero-bonus {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 6px;
    margin: 6px 0 0;
    color: var(--color-gold-soft);
    font-size: 12px;
    line-height: 1.6;
    text-align: left;
}

.fl2-hero-bonus svg {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    margin-top: 2px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* 診断結果の例（カード全体が無料診断へのリンク） */
.fl2-hero__preview {
    position: relative;
    max-width: 420px;
    margin: 26px auto 0;
}

.fl2-hero__preview::before {
    content: "";
    position: absolute;
    top: 45%;
    left: 50%;
    width: 380px;
    height: 380px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(214, 179, 106, 0.22), rgba(214, 179, 106, 0) 70%);
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.fl2-preview {
    position: relative;
    z-index: 1;
    display: block;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: var(--radius-md);
    background: var(--color-white);
    box-shadow: var(--shadow-md);
    color: var(--color-text);
    text-decoration: none;
    transition: transform 0.2s ease;
}

.fl2-preview:hover,
.fl2-preview:focus-visible {
    color: var(--color-text);
    transform: translateY(-2px);
}

.fl2-preview__head {
    padding: 18px 18px 16px;
    background: linear-gradient(160deg, #0a2f5c 0%, var(--color-deep-blue) 70%);
    color: var(--color-white);
}

.fl2-preview__eyebrow {
    display: block;
    color: var(--color-gold);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.fl2-preview__title {
    margin: 6px 0 0;
    color: var(--color-white);
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.4;
}

.fl2-preview__title em {
    margin-left: 4px;
    color: var(--color-gold);
    font-size: 28px;
    font-style: normal;
}

.fl2-preview__summary {
    margin: 4px 0 0;
    color: #c9d8e8;
    font-size: 12px;
    line-height: 1.7;
}

.fl2-preview__summary b { color: var(--color-white); }

.fl2-preview .fl2-preview__list {
    margin: 0;
    padding: 12px 12px 0;
    gap: 6px;
}

.fl2-preview .fl-diag-list__item {
    gap: 10px;
    padding: 10px 12px;
    border-radius: 10px;
}

.fl2-preview .fl-diag-list__num {
    flex-basis: 24px;
    width: 24px;
    height: 24px;
    margin-top: 0;
    font-size: 11px;
}

.fl2-preview .fl-diag-list__name { font-size: 14px; }

.fl2-preview__more {
    margin: 8px 0 0;
    padding: 0 12px;
    color: var(--color-muted);
    font-size: 12px;
    text-align: center;
    opacity: 0.75;
}

.fl2-preview__foot {
    display: block;
    margin-top: 10px;
    padding: 12px 16px;
    border-top: 1px solid var(--color-border);
    color: var(--color-navy);
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}

.fl2-preview:hover .fl2-preview__foot { text-decoration: underline; }

.fl2-preview__caption {
    position: relative;
    z-index: 1;
    margin: 10px 0 0;
    color: #9fb6cf;
    font-size: 11px;
    line-height: 1.7;
}

/* 講師の顔写真＋肩書き（1行目に名前、2行目に実績） */
.fl2-hero-profile {
    display: grid;
    grid-template-columns: auto auto auto;
    justify-content: center;
    align-items: center;
    gap: 0 10px;
    margin-top: 22px;
    text-align: left;
}

.fl2-hero-profile__face {
    grid-row: 1 / span 2;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    object-fit: cover;
}

.fl2-hero-profile .fl2-hero-profile__name {
    grid-column: 2 / span 2;
    color: var(--color-white);
    font-size: 13px;
}

@media (min-width: 1024px) {
    .fl2-hero--prelaunch .fl2-hero__preview {
        width: 100%;
        margin: 0;
    }

    .fl2-hero--prelaunch .fl2-trust { margin-top: 4px; }
}

/* ---------------------------------------------------------------------------
   LP 先行案内ヒーロー: 診断結果の例をスマホの枠に入れ、画面の中を明るくする
--------------------------------------------------------------------------- */

.fl2-hero--prelaunch { position: relative; }

/* 紺一色の平坦さを崩す、斜めの淡い光の帯 */
.fl2-hero--prelaunch::after {
    content: "";
    position: absolute;
    inset: -20% -10%;
    background: linear-gradient(115deg, transparent 38%, rgba(255, 255, 255, 0.05) 50%, transparent 62%);
    pointer-events: none;
}

.fl2-hero--prelaunch .fl2-container { position: relative; z-index: 1; }

.fl2-hero__preview {
    max-width: 360px;
    padding: 10px 0 0;
}

/* 背面の金色の光を、スマホの大きさに合わせて広げる */
.fl2-hero__preview::before {
    width: 420px;
    height: 420px;
    opacity: 1;
}

.fl2-phone {
    position: relative;
    z-index: 1;
    max-width: 320px;
    margin: 0 auto;
    padding: 12px;
    border-radius: 46px;
    background: #0b1626;
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.22),
        0 30px 60px rgba(0, 0, 0, 0.45),
        inset 0 0 0 2px rgba(255, 255, 255, 0.05);
}

.fl2-phone__notch {
    position: absolute;
    top: 20px;
    left: 50%;
    z-index: 3;
    width: 104px;
    height: 24px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: #0b1626;
}

.fl2-phone__screen {
    overflow: hidden;
    border-radius: 36px;
    background: #f3f7fb;
    padding-top: 40px; /* ノッチ分 */
}

/* 画面の中：カード自身の枠と影は消し、アプリの画面に見せる */
.fl2-phone .fl2-preview {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: 0 12px 14px;
}

.fl2-phone .fl2-preview:hover,
.fl2-phone .fl2-preview:focus-visible { transform: none; }

.fl2-phone .fl2-preview__head {
    border-radius: 16px;
    padding: 14px 16px 13px;
}

.fl2-phone .fl2-preview__title { font-size: 15px; }
.fl2-phone .fl2-preview__title em { font-size: 24px; }

.fl2-phone .fl2-preview .fl2-preview__list {
    margin: 10px 0 0;
    padding: 0;
    gap: 6px;
}

.fl2-phone .fl2-preview .fl-diag-list__item {
    padding: 9px 10px;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(6, 38, 74, 0.06);
}

.fl2-phone .fl2-preview .fl-diag-list__name { font-size: 13.5px; }
.fl2-phone .fl2-preview .fl-diag-list__badge { font-size: 10px; padding: 2px 7px; }

.fl2-phone .fl2-preview__more {
    margin: 8px 0 0;
    padding: 0;
    border: 0;
    color: var(--color-muted);
    font-size: 12px;
    text-align: center;
}

/* 画面内の一番下は、金のボタン風にして「自分も試せる」と分かるようにする */
.fl2-phone .fl2-preview__foot {
    display: block;
    margin: 10px 0 0;
    padding: 12px;
    border: 0;
    border-radius: 999px;
    background: var(--color-gold);
    color: var(--color-deep-blue);
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    box-shadow: 0 6px 16px rgba(214, 179, 106, 0.3);
}

.fl2-phone .fl2-preview:hover .fl2-preview__foot { text-decoration: none; background: #c8a352; }

/* 枠に重ねる金のチップ */
.fl2-hero__float {
    position: absolute;
    top: 86px;
    right: 2px;
    z-index: 4;
    padding: 8px 12px;
    border-radius: 999px;
    background: var(--color-gold);
    color: var(--color-deep-blue);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
    transform: rotate(-4deg);
}

.fl2-hero__float b { font-size: 15px; }

.fl2-hero--prelaunch .fl2-preview__caption { max-width: 320px; margin-left: auto; margin-right: auto; }

@media (min-width: 1024px) {
    .fl2-hero--prelaunch .fl2-hero__preview { max-width: 380px; justify-self: center; }
    .fl2-phone { max-width: 330px; transform: rotate(-2deg); transition: transform 0.3s ease; }
    .fl2-phone:hover { transform: rotate(0deg); }
    .fl2-hero__float { right: -6px; top: 70px; }
}

/* 金のチップは画面の文字にかぶせず、スマホ枠の上端に乗せる */
.fl2-hero__float { top: 0; right: 6px; }

@media (min-width: 1024px) {
    .fl2-hero__float { top: -2px; right: -8px; }
}

/* スマホ表示でも枠をごく浅く傾ける（角が画面端に当たらないよう幅を少し絞る） */
@media (max-width: 1023px) {
    .fl2-phone { max-width: 300px; transform: rotate(-1.5deg); }
    .fl2-hero__float { right: 10px; }
}

/* 枠を細くしたぶん「全12本」が「全12／本」で折れないようにする（折れるときは本数ごと次の行へ） */
.fl2-phone .fl2-preview__title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
.fl2-phone .fl2-preview__title em { white-space: nowrap; }

/* 先行案内ヒーロー: 見出し右の空きに講師の切り抜きを置く（スマホ・タブレットのみ。PCは右にスマホ枠があるので出さない） */
.fl2-hero__cutout { display: none; }

@media (max-width: 1023px) {
    .fl2-hero--prelaunch .fl2-container { position: relative; }
    .fl2-hero__cutout {
        display: block;
        position: absolute;
        top: 8px;
        right: -6px;
        z-index: 0;
        width: 44vw;
        max-width: 230px;
        height: auto;
        pointer-events: none;
        /* 下端を紺に溶かし、リード文と重ならないようにする */
        -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 100%);
        mask-image: linear-gradient(180deg, #000 70%, transparent 100%);
        filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.35));
    }
    .fl2-hero--prelaunch .fl2-hero__status,
    .fl2-hero--prelaunch h1,
    .fl2-hero--prelaunch .fl2-hero__lead { position: relative; z-index: 1; }
    .fl2-hero--prelaunch h1 span { text-shadow: 0 2px 10px rgba(6, 38, 74, 0.7); }
}

@media (max-width: 360px) {
    .fl2-hero__cutout { width: 38vw; }
}

/* 先行案内ヒーロー: 切り抜きがないときは、写真を2層に重ねて背景をぼかし人物だけ残す（スマホ・タブレットのみ）
   写真をタイトルの右に送り、向かって左側の脚が足先までタイトルの右に出るようにする。
   向かって右側の脚は画面右端で切れてよい。顔は右上、脚のラインは「180度へ。」の行の高さ */
.fl2-hero__portrait { display: none; }

@media (max-width: 1023px) {
    .fl2-hero__portrait {
        display: block;
        position: absolute;
        top: -199px;
        left: 164px;
        z-index: 0;
        width: 69vw;
        max-width: 300px;
        aspect-ratio: 1 / 1.56; /* 顔（写真の縦40%）から脚（縦61%）まで箱に入れる */
        pointer-events: none;
        /* 人物（顔〜胴体）の周りの楕円 ＋ 脚の高さの横長の帯、の2つを足し合わせる。
           箱の縁は直線で見えず、向かって左の脚は足先まで帯に乗って残る（箱の中で顔は縦52%、脚は縦79%あたり） */
        -webkit-mask-image:
            radial-gradient(ellipse 48% 34% at 60% 62%, #000 45%, transparent 100%),
            radial-gradient(ellipse 74% 9% at 38% 79%, #000 60%, transparent 100%);
        -webkit-mask-composite: source-over;
        mask-image:
            radial-gradient(ellipse 48% 34% at 60% 62%, #000 45%, transparent 100%),
            radial-gradient(ellipse 74% 9% at 38% 79%, #000 60%, transparent 100%);
        mask-composite: add;
    }

    .fl2-hero__portrait-blur,
    .fl2-hero__portrait-focus {
        position: absolute;
        inset: 0;
        background-image: var(--fl2-portrait);
        background-repeat: no-repeat;
        /* 写真の左端（向かって左の足先）が箱の左端から少し内側に来るよう、右寄せで少し小さく敷く */
        background-size: 94% auto;
        background-position: 100% 0;
    }

    .fl2-hero__portrait-blur {
        filter: blur(6px) brightness(0.5) saturate(0.7);
        transform: scale(1.04);
    }

    /* 鮮明に残す範囲も「人物の楕円 ＋ 脚の帯」。帯は左端（向かって左の足先）まで届かせる */
    .fl2-hero__portrait-focus {
        -webkit-mask-image:
            radial-gradient(ellipse 44% 30% at 60% 62%, #000 50%, transparent 100%),
            radial-gradient(ellipse 72% 8% at 38% 79%, #000 60%, transparent 100%);
        -webkit-mask-composite: source-over;
        mask-image:
            radial-gradient(ellipse 44% 30% at 60% 62%, #000 50%, transparent 100%),
            radial-gradient(ellipse 72% 8% at 38% 79%, #000 60%, transparent 100%);
        mask-composite: add;
    }

    /* 写真の上に乗る文字は、影を少し強める */
    .fl2-hero--prelaunch h1 span,
    .fl2-hero--prelaunch .fl2-hero__lead { text-shadow: 0 2px 12px rgba(6, 38, 74, 0.85); }
}

@media (max-width: 360px) {
    .fl2-hero__portrait { left: 150px; width: 72vw; }
}

/* 幅に余裕があるとき（タブレット・小さめのPC窓）は、写真をコンテナの右端に寄せる。
   顔が常にチップの高さ（コンテナ上端から約16px）に来るよう、上端は幅から逆算する：
   顔は写真の縦40%＝箱の幅×0.81 の位置なので top = 16px − 0.81×幅。幅の上限360pxでは −276px */
@media (min-width: 480px) and (max-width: 1023px) {
    .fl2-hero__portrait {
        left: auto;
        right: 0;
        width: 52vw;
        max-width: 360px;
        top: max(calc(56px - 42.1vw), -236px); /* 顔がチップの少し下に来る高さ（40px下げ） */
    }
}
