body.public-home-v5 {
    color: var(--fm-ink);
    background: var(--fm-paper);
    font-family: var(--fm-font-sans);
}

body.public-home-v5 main {
    overflow: clip;
}

body.public-home-v5 .section-label {
    display: block;
    margin-bottom: 16px;
    color: var(--fm-gold-500);
    font-size: 0.69rem;
    font-weight: 900;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}
   FMMSC v4.0 — public conversion homepage
   ====================================================================== */

.v4-hero {
    min-height: 92vh;
    padding: 142px 0 72px;
    background:
        radial-gradient(circle at 75% 28%, rgba(224,175,52,.14), transparent 28rem),
        radial-gradient(circle at 12% 64%, rgba(24,55,95,.62), transparent 34rem),
        linear-gradient(135deg, var(--navy-900), var(--navy-950));
    overflow: hidden;
}

.v4-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(360px, .98fr);
    align-items: center;
    gap: clamp(42px, 7vw, 104px);
}

.v4-hero-copy {
    max-width: 760px;
}

.v4-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0;
    color: var(--gold-300);
    font-size: .73rem;
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
}


.v4-hero h1 {
    margin: 24px 0 20px;
    max-width: 820px;
    font-size: clamp(3.25rem, 7.2vw, 7.25rem);
    line-height: .9;
    letter-spacing: -.055em;
    text-transform: uppercase;
}

.v4-hero h1 span {
    display: block;
    color: var(--gold-400);
}

.v4-hero-lead {
    margin: 0;
    color: #fff;
    font-size: clamp(1.25rem, 2.2vw, 1.8rem);
    font-weight: 800;
    line-height: 1.25;
}

.v4-hero-body {
    max-width: 700px;
    margin: 18px 0 0;
    color: rgba(255,255,255,.72);
    font-size: 1rem;
    line-height: 1.75;
}

.v4-hero-actions,
.v4-final-actions,
.v4-match-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.v4-hero-actions {
    margin-top: 30px;
}

.v4-button {
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 13px 20px;
    border: 1px solid transparent;
    border-radius: 12px;
    font-size: .86rem;
    font-weight: 900;
    line-height: 1.2;
    text-decoration: none;
    transition: transform .16s ease, border-color .16s ease, background .16s ease;
}

.v4-button > span {
    width: 1em;
    height: 1em;
    display: inline-grid;
    place-items: center;
    flex: 0 0 1em;
    color: currentColor;
    font-family: var(--fm-font-sans);
    font-size: 1em;
    font-weight: inherit;
    line-height: 1;
}

.v4-button:hover {
    transform: translateY(-2px);
}

.v4-button-primary {
    color: #07182d;
    background: var(--gold-400);
    border-color: var(--gold-400);
}

.v4-button-primary:hover {
    background: var(--gold-300);
}

.v4-button-secondary {
    color: #fff;
    border-color: rgba(255,255,255,.22);
    background: rgba(255,255,255,.055);
}

.v4-button-secondary:hover {
    border-color: rgba(224,175,52,.55);
    background: rgba(224,175,52,.08);
}

.v4-hero-helper {
    max-width: 650px;
    margin: 18px 0 0;
    color: rgba(255,255,255,.54);
    font-size: .83rem;
    line-height: 1.6;
}

.v4-hero-visual {
    position: relative;
    min-height: 560px;
    display: flex;
    align-items: flex-end;
}

.v4-hero-visual::before {
    content: "";
    position: absolute;
    inset: 5% 0 6% 14%;
    border: 1px solid rgba(224,175,52,.22);
    border-radius: 28px;
    transform: rotate(3deg);
}

.v4-hero-visual img {
    position: relative;
    z-index: 1;
    width: 100%;
    height: min(67vh, 650px);
    object-fit: cover;
    object-position: center;
    border-radius: 26px;
    box-shadow: 0 34px 80px rgba(0,0,0,.34);
}

.v4-hero-badge {
    position: absolute;
    z-index: 2;
    left: -28px;
    bottom: 34px;
    max-width: 290px;
    padding: 18px 20px;
    border: 1px solid rgba(224,175,52,.35);
    border-radius: 16px;
    background: rgba(2,9,20,.9);
    backdrop-filter: blur(16px);
}

.v4-hero-badge strong,
.v4-hero-badge span {
    display: block;
}

.v4-hero-badge strong {
    color: var(--gold-300);
    font-size: .76rem;
    letter-spacing: .11em;
}

.v4-hero-badge span {
    margin-top: 7px;
    color: rgba(255,255,255,.72);
    font-size: .8rem;
    line-height: 1.45;
}

.v4-conversion,
.v4-benefits,
.v4-story,
.v4-final-cta {
    background: var(--navy-950);
}

.v4-conversion,
.v4-onboarding,
.v4-about,
.v4-benefits,
.v4-proof,
.v4-story,
.v4-faq,
.v4-sponsor,
.v4-final-cta {
    padding: clamp(72px, 9vw, 126px) 0;
}

.v4-onboarding,
.v4-proof,
.v4-faq,
.v4-sponsor {
    color: var(--ink);
    background: var(--paper);
}

.v4-about {
    color: var(--ink);
    background: #fff;
}

.v4-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(300px, .92fr);
    gap: clamp(36px, 8vw, 112px);
    align-items: end;
    margin-bottom: 42px;
}

.v4-section-head h2,
.v4-about h2,
.v4-faq-intro h2,
.v4-final-cta h2 {
    margin: 12px 0 0;
    font-size: clamp(2.25rem, 4vw, 4.7rem);
    line-height: .98;
    letter-spacing: -.045em;
}

.v4-section-head > p,
.v4-section-head > div > p,
.v4-faq-intro p,
.v4-final-cta p {
    margin: 0;
    color: var(--muted);
    line-height: 1.75;
}

.v4-section-head-dark,
.v4-section-head-dark > p,
.v4-section-head-dark > div > p {
    color: rgba(255,255,255,.7);
}

.v4-section-head-dark h2 {
    color: #fff;
}

.v4-text-link,
.v4-inline-link,
.v4-step-card a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: 15px;
    color: inherit;
    font-size: .84rem;
    font-weight: 900;
    text-decoration: none;
}

.v4-text-link:hover,
.v4-inline-link:hover,
.v4-step-card a:hover {
    color: var(--gold-500);
}

.v4-match-rail-hint {
    margin: -8px 0 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    color: rgba(255,255,255,.52);
    font-size: .74rem;
}

.v4-match-rail-hint span {
    font-weight: 800;
}

.v4-match-rail-hint strong {
    color: var(--gold-400);
    font-weight: 850;
}

.v4-match-grid {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 20px) / 2);
    gap: 20px;
    padding: 0 0 14px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 0;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(224,175,52,.62) rgba(255,255,255,.08);
}

.v4-match-grid::-webkit-scrollbar {
    height: 8px;
}

.v4-match-grid::-webkit-scrollbar-track {
    border-radius: 999px;
    background: rgba(255,255,255,.07);
}

.v4-match-grid::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(224,175,52,.62);
}

.v4-match-grid:focus-visible {
    outline: 2px solid rgba(224,175,52,.72);
    outline-offset: 6px;
    border-radius: 20px;
}

.v4-match-card {
    min-width: 0;
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    scroll-snap-align: start;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 20px;
    background: rgba(255,255,255,.045);
}

.v4-match-card.is-registration-open {
    border-color: rgba(224,175,52,.4);
    box-shadow: 0 16px 50px rgba(0,0,0,.16);
}

.v4-match-date {
    min-height: 100%;
    padding: 24px 14px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-right: 1px solid rgba(255,255,255,.09);
    background: rgba(255,255,255,.025);
}

.v4-match-date span,
.v4-match-date small {
    color: rgba(255,255,255,.58);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.v4-match-date strong {
    margin: 4px 0;
    color: #fff;
    font-size: 2.55rem;
    line-height: 1;
}

.v4-match-main {
    padding: 24px;
}

.v4-match-status span {
    display: inline-flex;
    padding: 7px 10px;
    border-radius: 999px;
    color: rgba(255,255,255,.68);
    background: rgba(255,255,255,.07);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.v4-match-status span.is-open {
    color: #0b1a2d;
    background: var(--gold-400);
}

.v4-match-main h3 {
    margin: 14px 0 8px;
    color: #fff;
    font-size: 1.35rem;
}

.v4-match-main > p {
    margin: 0;
    color: rgba(255,255,255,.65);
    font-size: .88rem;
    line-height: 1.6;
}

.v4-capacity-meter {
    margin-top: 18px;
    padding: 14px 15px 13px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 14px;
    background: rgba(255,255,255,.05);
}

.v4-capacity-copy {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
}

.v4-capacity-copy span {
    color: rgba(255,255,255,.56);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.v4-capacity-copy strong {
    color: #fff;
    font-size: .88rem;
    white-space: nowrap;
}

.v4-capacity-track {
    height: 9px;
    margin-top: 10px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255,255,255,.1);
}

.v4-capacity-track > span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--gold-400);
    transition: width .35s ease;
}

.v4-capacity-meter small {
    display: block;
    margin-top: 7px;
    color: rgba(255,255,255,.5);
    font-size: .72rem;
    line-height: 1.35;
}

.v4-match-actions {
    margin-top: 20px;
}

.v4-inline-link {
    margin: 0;
    color: rgba(255,255,255,.7);
}

.v4-booking-note {
    max-width: 920px;
    margin: 22px 0 0;
    padding: 16px 18px;
    border-left: 3px solid var(--gold-400);
    color: rgba(255,255,255,.66);
    background: rgba(255,255,255,.035);
    font-size: .85rem;
    line-height: 1.65;
}

.v4-booking-note strong {
    color: #fff;
}

.v4-empty-state {
    padding: 34px;
    border: 1px dashed rgba(255,255,255,.17);
    border-radius: 18px;
    background: rgba(255,255,255,.035);
}

.v4-empty-state > span {
    color: var(--gold-300);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.v4-empty-state strong {
    display: block;
    margin-top: 8px;
    font-size: 1.35rem;
}

.v4-empty-state p {
    max-width: 720px;
    color: rgba(255,255,255,.62);
    line-height: 1.7;
}

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

.v4-step-card {
    position: relative;
    min-height: 220px;
    padding: 26px;
    border: 1px solid var(--light-line);
    border-radius: 18px;
    background: #fff;
}

.v4-step-card > span {
    color: var(--gold-500);
    font-size: .72rem;
    font-weight: 950;
    letter-spacing: .1em;
}

.v4-step-card h3 {
    margin: 32px 0 10px;
    font-size: 1.25rem;
}

.v4-step-card p {
    margin: 0;
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.65;
}

.v4-onboarding-cta {
    margin-top: 20px;
    padding: 24px 26px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border-radius: 18px;
    color: #fff;
    background: var(--navy-900);
}

.v4-onboarding-cta > div > strong,
.v4-onboarding-cta > div > span {
    display: block;
}

.v4-onboarding-cta > div > strong {
    font-size: 1.05rem;
}

.v4-onboarding-cta > div > span {
    margin-top: 5px;
    color: rgba(255,255,255,.62);
    font-size: .84rem;
}

.v4-onboarding-cta .v4-button > span {
    width: 20px;
    height: 20px;
    margin: 0;
    display: inline-grid;
    place-items: center;
    flex: 0 0 20px;
    color: inherit;
    font-size: 1rem;
    font-weight: inherit;
    line-height: 1;
}

.v4-about-grid {
    display: grid;
    grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr);
    gap: clamp(44px, 8vw, 118px);
    align-items: start;
}

.v4-lead-copy {
    margin: 22px 0 0;
    color: var(--muted);
    font-size: 1.05rem;
    line-height: 1.8;
}

.v4-difference-grid,
.v4-benefit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.v4-difference-grid article {
    padding: 26px;
    border: 1px solid var(--light-line);
    border-radius: 18px;
    background: var(--paper);
}

.v4-difference-grid article > span,
.v4-benefit-grid article > strong {
    color: var(--gold-500);
    font-family: var(--fm-font-sans);
    font-size: .72rem;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
    letter-spacing: .06em;
    line-height: 1;
}

.v4-difference-grid h3,
.v4-benefit-grid h3 {
    margin: 22px 0 9px;
    font-size: 1.12rem;
}

.v4-difference-grid p,
.v4-benefit-grid p {
    margin: 0;
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.65;
}

.v4-benefit-grid article {
    padding: 28px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 18px;
    background: rgba(255,255,255,.04);
}

.v4-benefit-grid h3 {
    color: #fff;
}

.v4-benefit-grid p {
    color: rgba(255,255,255,.62);
}

.v4-benefit-grid article:nth-child(5):last-child {
    grid-column: 1 / -1;
}

.v4-benefit-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    color: var(--gold-300);
    font-size: .78rem;
    font-weight: 850;
    text-decoration: none;
}

.v4-benefit-link:hover {
    color: #fff;
}

.v4-proof-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.v4-proof-card {
    padding: 30px 24px;
    border: 1px solid var(--light-line);
    border-radius: 18px;
    background: #fff;
}

.v4-proof-card strong,
.v4-proof-card span {
    display: block;
}

.v4-proof-card strong {
    color: var(--navy-900);
    font-size: clamp(2.2rem, 4vw, 4rem);
    line-height: 1;
    letter-spacing: -.04em;
}

.v4-proof-card span {
    margin-top: 9px;
    color: var(--muted);
    font-size: .8rem;
    font-weight: 800;
}

.v4-testimonial-grid {
    margin-top: 22px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.v4-testimonial-card {
    margin: 0;
    padding: 28px;
    border-radius: 18px;
    color: #fff;
    background: var(--navy-900);
}

.v4-testimonial-card blockquote {
    margin: 0;
    font-size: 1rem;
    line-height: 1.75;
}

.v4-testimonial-card figcaption {
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid rgba(255,255,255,.1);
}

.v4-testimonial-card figcaption strong,
.v4-testimonial-card figcaption span {
    display: block;
}

.v4-testimonial-card figcaption span {
    margin-top: 4px;
    color: rgba(255,255,255,.55);
    font-size: .78rem;
}

.v4-testimonial-empty {
    margin-top: 22px;
    padding: 20px 22px;
    border: 1px dashed #c7ced6;
    border-radius: 16px;
    background: rgba(255,255,255,.5);
}

.v4-testimonial-empty strong,
.v4-testimonial-empty span {
    display: block;
}

.v4-testimonial-empty span {
    margin-top: 4px;
    color: var(--muted);
    font-size: .84rem;
    line-height: 1.55;
}

.v4-story-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 24px;
}

.v4-story-photo {
    position: relative;
    align-self: start;
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 18px;
    background: var(--navy-850);
    box-shadow: 0 14px 34px rgba(0,0,0,.12);
}

.v4-story-photo.is-1,
.v4-story-photo.is-2,
.v4-story-photo.is-3 {
    grid-column: auto;
    grid-row: auto;
}

.v4-story-photo img {
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    transition: transform .3s ease;
}

.v4-story-photo:hover img {
    transform: scale(1.025);
}

.v4-story-photo figcaption {
    position: absolute;
    inset: auto 0 0;
    padding: 26px 18px 14px;
    color: #fff;
    background: linear-gradient(transparent, rgba(2,9,20,.86));
    font-size: .8rem;
}

.v4-story-placeholder {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.v4-story-placeholder > div {
    min-height: 210px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 18px;
    background: linear-gradient(145deg, rgba(24,55,95,.45), rgba(255,255,255,.025));
}

.v4-story-placeholder strong {
    font-size: 1.2rem;
}

.v4-story-placeholder span {
    margin-top: 6px;
    color: rgba(255,255,255,.6);
    font-size: .84rem;
}

.v4-faq-layout {
    display: grid;
    grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr);
    gap: clamp(42px, 8vw, 112px);
    align-items: start;
}

.v4-faq-intro {
    position: sticky;
    top: 118px;
}

.v4-faq-list {
    border-top: 1px solid var(--light-line);
}

.v4-faq-item {
    border-bottom: 1px solid var(--light-line);
}

.v4-faq-item summary {
    list-style: none;
    cursor: pointer;
    padding: 22px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    font-weight: 850;
}

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

.v4-faq-item summary i {
    position: relative;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    display: block;
    border: 1px solid var(--light-line);
    border-radius: 50%;
    color: var(--navy-950);
    font-size: 0;
    font-style: normal;
}

.v4-faq-item summary i::before,
.v4-faq-item summary i::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 10px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transform: translate(-50%, -50%);
}

.v4-faq-item summary i::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.v4-faq-item[open] summary i::after {
    opacity: 0;
}

.v4-faq-item p {
    margin: -2px 48px 22px 0;
    color: var(--muted);
    line-height: 1.75;
}

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

.v4-partner-card {
    min-height: 116px;
    padding: 18px;
    display: flex;
    align-items: center;
    gap: 16px;
    border: 1px solid var(--light-line);
    border-radius: 16px;
    color: var(--ink);
    background: #fff;
    text-decoration: none;
}

.v4-partner-card:hover {
    border-color: rgba(213,152,22,.55);
}

.v4-partner-card img {
    width: 72px;
    height: 72px;
    flex: 0 0 72px;
    object-fit: contain;
    border-radius: 12px;
    background: #f7f8fa;
}

.v4-partner-card strong,
.v4-partner-card span {
    display: block;
}

.v4-partner-card span {
    margin-top: 5px;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.5;
}

.v4-partner-empty {
    padding: 26px;
    border: 1px dashed #c7ced6;
    border-radius: 16px;
    background: #fff;
}

.v4-partner-empty strong,
.v4-partner-empty span {
    display: block;
}

.v4-partner-empty span {
    margin-top: 5px;
    color: var(--muted);
}

/* Final CTA: section background remains full-bleed, but the callout panel
   follows the same page gutter as the rest of the public layout. */
body.public-site.public-home-v5 .site-container.v4-final-cta-inner {
    width: calc(100% - (2 * var(--fm-page-gutter, clamp(16px, 3vw, 56px))));
    margin-inline: var(--fm-page-gutter, clamp(16px, 3vw, 56px));
    padding: clamp(30px, 5vw, 62px);
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 36px;
    align-items: center;
    border: 1px solid rgba(224,175,52,.22);
    border-radius: 24px;
    background:
        radial-gradient(circle at 85% 0, rgba(224,175,52,.1), transparent 20rem),
        var(--navy-900);
}

.v4-final-cta h2,
.v4-final-cta p {
    color: #fff;
}

.v4-final-cta p {
    max-width: 780px;
    margin-top: 16px;
    color: rgba(255,255,255,.62);
}

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

    .v4-hero-visual {
        min-height: 420px;
        max-width: 760px;
    }

    .v4-hero-visual img {
        height: 520px;
    }

    .v4-hero-badge {
        left: 20px;
    }

    .v4-faq-intro {
        position: static;
    }

    .v4-proof-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .v4-partner-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 820px) {
    .v4-hero {
        min-height: auto;
        padding: 118px 0 52px;
    }

    .v4-hero h1 {
        font-size: clamp(3rem, 14vw, 5.3rem);
    }

    .v4-section-head,
    .v4-final-cta-inner {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .v4-step-grid,
    .v4-testimonial-grid {
        grid-template-columns: 1fr;
    }

    .v4-match-grid {
        grid-auto-columns: 86%;
    }

    .v4-difference-grid,
    .v4-benefit-grid {
        grid-template-columns: 1fr;
    }

    .v4-benefit-grid article:nth-child(5):last-child {
        grid-column: auto;
    }

    .v4-story-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }

    .v4-story-placeholder,
    .v4-partner-grid {
        grid-template-columns: 1fr;
    }

    .v4-onboarding-cta {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 560px) {
    .v4-hero-actions,
    .v4-final-actions,
    .v4-match-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .v4-button {
        width: 100%;
    }

    .v4-hero-visual {
        min-height: 300px;
    }

    .v4-hero-visual img {
        height: 380px;
        border-radius: 18px;
    }

    .v4-hero-badge {
        right: 14px;
        left: 14px;
        bottom: 14px;
        max-width: none;
    }

    .v4-match-grid {
        grid-auto-columns: 94%;
        gap: 12px;
    }

    .v4-match-rail-hint {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .v4-match-card {
        grid-template-columns: 72px minmax(0, 1fr);
    }

    .v4-match-date {
        padding-inline: 8px;
    }

    .v4-match-date strong {
        font-size: 2rem;
    }

    .v4-match-main {
        padding: 18px;
    }

    .v4-capacity-copy {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .v4-capacity-copy strong {
        white-space: normal;
    }

    .v4-proof-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .v4-proof-card {
        padding: 22px 16px;
    }

    .v4-story-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .v4-faq-item p {
        margin-right: 0;
    }
}

/* FMMSC v4.0 — Jadwal as conversion hub */
.schedule-conversion-actions {
    margin-top: 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.schedule-conversion-note {
    display: block;
    max-width: 780px;
    margin-top: 14px;
    color: rgba(255,255,255,.62);
    font-size: .78rem;
    line-height: 1.6;
}

.schedule-registration-state {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: .75rem;
    font-weight: 850;
}

.schedule-registration-state.is-waiting {
    color: #6b5313;
    background: rgba(224,175,52,.14);
    border: 1px solid rgba(213,152,22,.25);
}

.schedule-registration-state.is-closed {
    color: #687281;
    background: #eef1f4;
    border: 1px solid #d9dee4;
}

@media (max-width: 560px) {
    .schedule-conversion-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .schedule-conversion-actions a {
        width: 100%;
        justify-content: center;
        text-align: center;
    }
}

/* ============================================================
   FMMSC v4.0.1 — STATIC MEMBER LOGIN ACCESS
   Login stays visible on compact screens; the drawer is only navigation.
   ============================================================ */
.header-login-static {
    display: none;
}

.header-login-cta,
.nav-login-cta {
    border-color: rgba(255,255,255,.16);
    background: rgba(255,255,255,.06);
    color: #fff;
}

.header-login-cta:hover,
.nav-login-cta:hover {
    border-color: rgba(224,175,52,.56);
    background: rgba(224,175,52,.12);
    color: #fff;
}

.v4-testimonial-heading {
    margin-top: 32px;
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
}

.v4-testimonial-heading h3 {
    margin: 7px 0 0;
    font-size: clamp(1.4rem, 2.6vw, 2.25rem);
}

.v4-testimonial-summary {
    text-align: right;
}

.v4-testimonial-summary strong,
.v4-testimonial-summary span {
    display: block;
}

.v4-testimonial-summary strong {
    color: var(--gold-300);
    font-size: 1.25rem;
}

.v4-testimonial-summary span {
    margin-top: 3px;
    color: rgba(255,255,255,.52);
    font-size: .78rem;
}

.v4-testimonial-stars {
    margin-bottom: 12px;
    color: var(--gold-400);
    letter-spacing: .05em;
}

.v4-testimonial-stars > span {
    color: rgba(255,255,255,.18);
}

@media (max-width: 1160px) {
    .header-inner {
        grid-template-columns: 1fr auto auto;
        gap: 10px;
    }

    .header-login-static {
        min-height: 42px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0 14px;
        border: 1px solid rgba(224,175,52,.45);
        border-radius: 12px;
        color: #f1c75d;
        background: rgba(224,175,52,.08);
        font-size: .78rem;
        font-weight: 900;
        text-decoration: none;
        white-space: nowrap;
    }

    .nav-toggle {
        justify-self: auto;
    }
}

@media (max-width: 620px) {
    .brand-copy {
        display: none;
    }

    .brand img {
        width: 50px;
        height: 50px;
    }

    .v4-testimonial-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .v4-testimonial-summary {
        text-align: left;
    }
}

@media (max-width: 1160px) {
    .header-login-static {
        grid-column: 2;
        grid-row: 1;
    }

    .nav-toggle {
        grid-column: 3;
        grid-row: 1;
    }
}


/* ============================================================
   FMMSC v4.0.3 — conversion CTA, community formula, sponsor split
   ============================================================ */
.schedule-conversion-actions .schedule-register-button,
.schedule-conversion-actions .schedule-detail-button {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    border-radius: 12px;
    font-size: .78rem;
    font-weight: 900;
    line-height: 1.2;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}

.schedule-conversion-actions .schedule-register-button {
    border-color: var(--gold-500);
    background: var(--gold-500);
    color: var(--navy-950);
    box-shadow: 0 10px 24px rgba(224, 175, 52, .18);
}

.schedule-conversion-actions .schedule-detail-button {
    border-color: rgba(255, 255, 255, .34);
    background: rgba(255, 255, 255, .08);
    color: #fff;
}

.schedule-conversion-actions .schedule-register-button:hover,
.schedule-conversion-actions .schedule-detail-button:hover {
    transform: translateY(-2px);
}

.schedule-conversion-actions .schedule-detail-button:hover {
    background: rgba(255, 255, 255, .14);
    border-color: rgba(255, 255, 255, .58);
}

.v4-community-formula {
    padding: 22px 0;
    background: var(--gold-500);
    color: var(--navy-950);
}

.v4-community-formula .site-container {
    display: grid;
    grid-template-columns: minmax(220px, .8fr) minmax(0, 1.6fr);
    gap: 28px;
    align-items: center;
}

.v4-formula-copy {
    min-height: 78px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.v4-formula-copy .section-label {
    display: none;
}

.v4-formula-copy > strong {
    max-width: 360px;
    margin: 0;
    font-size: 1rem;
    line-height: 1.35;
}

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

.v4-formula-grid > div {
    min-height: 78px;
    display: grid;
    align-content: center;
    gap: 2px;
    padding: 12px 16px;
    border: 1px solid rgba(4, 23, 43, .16);
    border-radius: 16px;
    background: rgba(255, 255, 255, .28);
}

.v4-formula-grid strong {
    font-size: clamp(1.35rem, 3vw, 2.2rem);
    line-height: 1;
}

.v4-formula-grid span {
    font-size: .76rem;
    font-weight: 850;
}

.v4-partner-group + .v4-partner-group {
    margin-top: 34px;
}

.v4-partner-group-head {
    margin-bottom: 14px;
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 12px;
    align-items: center;
}

.v4-partner-group-head > span {
    grid-row: 1 / span 2;
    min-width: 76px;
    padding: 8px 10px;
    border-radius: 999px;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-family: var(--fm-font-sans);
    font-size: .62rem;
    font-weight: 950;
    line-height: 1.1;
    color: var(--navy-950);
    background: var(--gold-500);
}

.v4-partner-group.is-partner .v4-partner-group-head > span {
    color: #fff;
    background: var(--navy-950);
}

.v4-partner-group-head h3 {
    margin: 0;
    color: var(--navy-950);
    font-family: var(--fm-font-sans);
    font-size: clamp(1rem, 1.2vw, 1.18rem);
    font-weight: 900;
    line-height: 1.25;
}

.v4-partner-group-head p {
    margin: 2px 0 0;
    color: rgba(7, 24, 45, .66);
    font-family: var(--fm-font-sans);
    font-size: .78rem;
    line-height: 1.5;
}

.v4-partner-card.is-sponsor {
    border-top: 3px solid var(--gold-500);
}

.v4-partner-card.is-partner {
    border-top: 3px solid var(--navy-950);
}

@media (max-width: 760px) {
    .v4-community-formula .site-container {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .v4-formula-copy {
        min-height: 0;
        justify-content: flex-start;
        text-align: left;
    }

    .v4-formula-copy > strong {
        margin: 0;
    }

    .v4-formula-grid {
        grid-template-columns: 1fr;
    }

    .v4-formula-grid > div {
        min-height: 62px;
        grid-template-columns: 72px 1fr;
        align-items: center;
    }

    .v4-partner-group-head {
        grid-template-columns: 1fr;
    }

    .v4-partner-group-head > span {
        grid-row: auto;
        justify-self: start;
        margin-bottom: 8px;
    }
}

/* ======================================================================
   FMMSC v4.0.15.1 — homepage clarity refinement
   - compact FAQ (no oversized editorial intro)
   - role-specific remaining capacity below the combined progress meter
   - more breathing room between headings and supporting copy
   ====================================================================== */
.v4-capacity-remaining {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 9px;
    color: rgba(255,255,255,.58);
    font-size: .74rem;
    line-height: 1.4;
}

.v4-capacity-remaining span {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
}

.v4-capacity-remaining strong {
    color: #fff;
    font-size: .8rem;
}

.v4-faq-compact-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
}

.v4-faq-compact-head .v4-text-link {
    margin-top: 0;
}

.v4-faq .v4-faq-list {
    width: 100%;
    max-width: none;
}

/* Headline and supporting text should not visually collide. */
.v4-about h2 + .v4-lead-copy,
.v4-final-cta h2 + p,
.v4-section-head > div > h2 + p {
    margin-top: 24px;
}

@media (max-width: 820px) {
    .v4-faq-compact-head {
        margin-bottom: 20px;
    }

    .v4-capacity-remaining {
        gap: 6px 14px;
    }
}

/* FMMSC homepage gallery: fixed media slots regardless of source orientation */
.v4-story-grid{
    align-items:stretch;
}
.v4-story-photo{
    aspect-ratio:4/3;
    min-height:0;
}
.v4-story-photo img{
    width:100%;
    height:100%;
    max-height:none;
    object-fit:cover;
    object-position:center;
}

/* Published collaborations remain visually useful even for older records that
   were created before the homepage featured flag became part of the workflow. */
.v4-partner-card img{
    display:block;
    object-fit:contain;
    object-position:center;
}
@media(max-width:760px){
    .v4-story-photo{aspect-ratio:1/1}
}

/* ============================================================
   FMMSC Partnership Hub v1 — Homepage 2027 bridge
   Current sponsors remain primary; 2027 is a separate prospect path.
   ============================================================ */
.public-site .v4-collab-bridge {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 28px;
    align-items: center;
    margin-top: clamp(34px, 5vw, 58px);
    padding: clamp(24px, 4vw, 36px);
    border: 1px solid rgba(225,173,49,.36);
    border-radius: 22px;
    background: #07182d;
    color: #fff;
}

.public-site .v4-collab-bridge > div > span {
    display: block;
    color: #e1ad31;
    font-size: .62rem;
    font-weight: 950;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.public-site .v4-collab-bridge h3 {
    margin: 10px 0 8px;
    color: #fff;
    font-size: clamp(1.55rem, 3vw, 2.6rem);
    line-height: 1.05;
    letter-spacing: -.03em;
}

.public-site .v4-collab-bridge p {
    max-width: 720px;
    margin: 0;
    color: rgba(255,255,255,.62);
    line-height: 1.6;
}

.public-site .v4-collab-bridge > a {
    display: inline-flex;
    align-items: center;
    gap: 18px;
    min-height: 46px;
    padding: 0 18px;
    border-radius: 999px;
    background: #e1ad31;
    color: #07182d;
    font-size: .72rem;
    font-weight: 950;
    text-decoration: none;
    white-space: nowrap;
}

@media (max-width: 760px) {
    .public-site .v4-collab-bridge {
        grid-template-columns: 1fr;
    }

    .public-site .v4-collab-bridge > a {
        justify-content: space-between;
        width: 100%;
    }
}

/* v5.1 visual recovery: remove generic split-layout feel. */
body.public-home-v5 .v4-section-head {
    grid-template-columns: minmax(0, 760px);
    gap: 14px;
    align-items: start;
}

body.public-home-v5 .v4-section-head > div:last-child {
    max-width: 720px;
}

/* Testimonials use the available width; one story no longer looks like half a layout. */
body.public-home-v5 .v4-testimonial-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 520px), 1fr));
}

/* Gallery is a disciplined editorial grid, not masonry. */
body.public-home-v5 .v4-story-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

body.public-home-v5 .v4-story-photo,
body.public-home-v5 .v4-story-photo.is-1,
body.public-home-v5 .v4-story-photo.is-2,
body.public-home-v5 .v4-story-photo.is-3 {
    display: block;
    grid-column: auto;
    grid-row: auto;
    aspect-ratio: 4 / 3;
}

body.public-home-v5 .v4-story-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Sponsor and Partner are deliberately separate editorial groups. */
body.public-home-v5 .v4-partner-group {
    padding-top: 30px;
    border-top: 1px solid var(--fm-line);
}

body.public-home-v5 .v4-partner-group + .v4-partner-group {
    margin-top: 54px;
}

body.public-home-v5 .v4-partner-group.is-sponsor .v4-partner-group-head > span {
    color: var(--fm-navy-950);
    background: var(--fm-gold-500);
}

body.public-home-v5 .v4-partner-group.is-partner .v4-partner-group-head > span {
    color: var(--fm-white);
    background: var(--fm-navy-950);
}

@media (max-width: 860px) {
    body.public-home-v5 .v4-story-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    body.public-home-v5 .v4-story-grid {
        grid-template-columns: 1fr;
    }

    body.public-home-v5 .v4-story-photo,
    body.public-home-v5 .v4-story-photo.is-1,
    body.public-home-v5 .v4-story-photo.is-2,
    body.public-home-v5 .v4-story-photo.is-3 {
        aspect-ratio: 1 / 1;
    }
}

/* FMMSC Public v5.3.3 — homepage UI polish: production-review corrections. */
