/* =========================================================================
   Membership screens: join, sign in, forgot password, community, welcome, thank you,
   member area (My club, Library, Live, My build, Ask, Account), skier profile.
   ========================================================================= */

/* ---------- member head + tabs ---------- */
.sfl-member-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; margin-bottom: 24px; }
.sfl-member-head__text { display: flex; flex-direction: column; gap: 6px; max-width: 620px; }
.sfl-member-head .sfl-muted { font-size: 15px; }
.sfl-tabs ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 24px; }
.sfl-tabs a { position: relative; display: inline-block; padding: 6px 0; font: 500 14px/1.2 var(--sfl-font); color: var(--sfl-navy); text-decoration: none; white-space: nowrap; }
.sfl-tabs a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 1px; background: var(--sfl-coral); transform: scaleX(0); transition: transform .2s ease; }
.sfl-tabs a:hover::after { transform: scaleX(1); opacity: .5; }
.sfl-tabs a.is-active { color: var(--sfl-coral); font-weight: 600; }
.sfl-tabs a.is-active::after { transform: scaleX(1); opacity: 1; }

/* ---------- dashboard rows ---------- */
.sfl-dash { display: flex; flex-direction: column; gap: 20px; }
.sfl-dash__title { margin-top: 12px; }
.sfl-dash__row { display: grid; gap: 20px; }
.sfl-dash__row--hero { grid-template-columns: minmax(0, 780fr) minmax(0, 400fr); }
.sfl-dash__row--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sfl-dash__row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sfl-dash__row--live { grid-template-columns: minmax(0, 760fr) minmax(0, 420fr); }
.sfl-dash__row--build { grid-template-columns: minmax(0, 800fr) minmax(0, 380fr); }
.sfl-dash__row--ask { grid-template-columns: minmax(0, 800fr) minmax(0, 380fr); align-items: start; }
.sfl-dash__stack { display: flex; flex-direction: column; gap: 16px; }
.sfl-dash__stack > .sfl-card { flex: 1; }
.sfl-dash .sfl-card { border-radius: 20px; padding: 24px; gap: 10px; }

.sfl-continue { position: relative; min-height: 360px; border-radius: 24px; padding: 32px; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: 14px; text-decoration: none; color: #fff; background: var(--sfl-navy) center / cover no-repeat; isolation: isolate; overflow: hidden; }
.sfl-continue::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(16, 40, 74, .05) 20%, rgba(16, 40, 74, .85) 100%); }
.sfl-continue .sfl-chip { position: absolute; left: 32px; top: 28px; }
.sfl-continue__title { font: 700 26px/1.2 var(--sfl-font-h); }
.sfl-continue:hover .sfl-button { background: var(--sfl-coral-h); }
.sfl-weeks { display: flex; gap: 6px; }
.sfl-weeks span { flex: 1; height: 8px; border-radius: 999px; background: var(--sfl-ice); }
.sfl-weeks .is-done { background: var(--sfl-navy); }
.sfl-weeks .is-now { background: var(--sfl-coral); }
.sfl-countdown__num { font: 800 48px/1 var(--sfl-font-h); color: #fff; letter-spacing: -.02em; }
.sfl-countdown__label { font: 600 14px/1.3 var(--sfl-font); color: #fff; }
.sfl-live-mini__when { font: 800 26px/1.1 var(--sfl-font-h); color: #fff; letter-spacing: -.02em; }
.sfl-card--navy .sfl-small { color: #DCE6F2; }
.sfl-letter__quote { font: 700 20px/1.3 var(--sfl-font-h); color: var(--sfl-navy); }
.sfl-ask-mini .sfl-form { gap: 10px; }
.sfl-ask-mini textarea { min-height: 80px; }
.sfl-dash__row--4 > .sfl-card .sfl-textlink, .sfl-dash__row--3 > .sfl-card .sfl-textlink { margin-top: auto; }

/* Live */
.sfl-live-next { padding: 36px !important; gap: 14px !important; }
.sfl-live-next__when { font: 800 34px/1.1 var(--sfl-font-h); color: #fff; letter-spacing: -.02em; }
.sfl-live-next__title { font: 700 20px/1.3 var(--sfl-font-h); color: #DCE6F2; }
.sfl-live-next__text { font-size: 15px; color: var(--sfl-ondark); }
.sfl-live-img { border-radius: 24px; background: center / cover no-repeat; min-height: 355px; }
.sfl-webinars { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.sfl-webinar { display: flex; align-items: center; gap: 20px; padding: 19px 24px; border-radius: 20px; background: #fff; }
.sfl-date-tile { flex: none; width: 72px; height: 72px; border-radius: 14px; background: var(--sfl-ice); display: flex; flex-direction: column; align-items: center; justify-content: center; }
.sfl-date-tile strong { font: 800 26px/1 var(--sfl-font-h); color: var(--sfl-navy); }
.sfl-date-tile span { font: 700 11px/1.3 var(--sfl-font); color: var(--sfl-rose); letter-spacing: .06em; }
.sfl-webinar__text { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.sfl-webinar__text strong { font: 700 18px/1.3 var(--sfl-font-h); color: var(--sfl-navy); }
.sfl-webinar__text span { font-size: 14px; color: var(--sfl-muted); }

/* Library */
.sfl-filterbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.sfl-search { position: relative; display: flex; align-items: center; width: 300px; max-width: 100%; }
.sfl-search .sfl-ico { position: absolute; left: 16px; color: var(--sfl-muted); }
.sfl-search input { width: 100%; height: 44px; padding: 0 16px 0 44px; border: 1px solid var(--sfl-line); border-radius: 999px; background: #fff; font: 400 14px/1 var(--sfl-font); color: var(--sfl-navy); }
.sfl-search input:focus { outline: none; border-color: var(--sfl-navy); box-shadow: 0 0 0 3px rgba(156, 200, 236, .55); }
.sfl-shelf { display: flex; flex-direction: column; gap: 16px; margin-top: 8px; }
.sfl-shelf__head { display: flex; justify-content: space-between; align-items: center; }
.sfl-empty { padding: 24px; text-align: center; color: var(--sfl-muted); }
.sfl-locked { flex-direction: row !important; align-items: center; gap: 20px !important; flex-wrap: wrap; }
.sfl-locked > div:nth-child(2) { flex: 1; min-width: 240px; display: flex; flex-direction: column; gap: 6px; }

/* Build */
.sfl-progress { padding: 32px !important; }
.sfl-progress__title { font: 800 34px/1.1 var(--sfl-font-h); color: #fff; letter-spacing: -.02em; }
.sfl-stats { display: flex; gap: 48px; margin: 8px 0 0; flex-wrap: wrap; }
.sfl-stats div { display: flex; flex-direction: column; gap: 4px; }
.sfl-stats dt { font: 800 28px/1 var(--sfl-font-h); color: #fff; }
.sfl-stats dd { margin: 0; font-size: 13px; color: var(--sfl-ondark); }
.sfl-stats a { color: #fff; }
.sfl-weeks-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.sfl-week__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.sfl-week ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.sfl-week li a, .sfl-week li.is-locked { display: flex; align-items: center; gap: 10px; padding: 6px 0; font-size: 14px; color: var(--sfl-navy); text-decoration: none; }
.sfl-week li a:hover span { text-decoration: underline; }
.sfl-week li.is-done .sfl-ico { color: var(--sfl-ok); }
.sfl-week li.is-locked { color: var(--sfl-muted); }
.sfl-countdown-card { padding: 28px !important; }

/* Ask */
.sfl-ask { padding: 32px !important; gap: 16px !important; }
.sfl-answer { gap: 12px !important; }

/* ---------- account ---------- */
.sfl-account { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 24px; align-items: start; }
.sfl-account__menu { position: sticky; top: 110px; padding: 16px !important; }
.sfl-account__menu ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.sfl-account__menu a { display: flex; align-items: center; gap: 10px; padding: 11px 16px; border-radius: 14px; font: 500 14px/1.2 var(--sfl-font); color: var(--sfl-navy); text-decoration: none; }
.sfl-account__menu a:hover { background: var(--sfl-ice); }
.sfl-account__main, .sfl-account__form { display: flex; flex-direction: column; gap: 20px; }
.sfl-account__main .sfl-card { padding: 28px; gap: 16px; }
.sfl-plan-box { padding: 18px 20px; border-radius: 18px; background: var(--sfl-ice); display: flex; flex-direction: column; gap: 4px; }

/* ---------- join ---------- */
.sfl-join { display: flex; flex-direction: column; gap: 20px; }
.sfl-join__grid { display: grid; grid-template-columns: minmax(0, 768fr) minmax(0, 400fr); gap: 32px; align-items: start; }
/* Figma D/join 86:210: form card 768 · p32 · gap 18 · 1px line border; summary 400 · p28 · gap 16. */
.sfl-join__form { padding: 32px; box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-segment { display: flex; gap: 6px; padding: 6px; border: 0; margin: 0; border-radius: 999px; background: var(--sfl-ice); }
.sfl-segment input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sfl-segment label { flex: 1; text-align: center; padding: 11px 14px; border-radius: 999px; font: 600 13px/16px var(--sfl-font); color: #1B2A41; cursor: pointer; transition: background-color .15s, color .15s; }
.sfl-segment input:checked + label { background: var(--sfl-navy); color: #fff; }
.sfl-segment input:focus-visible + label { outline: 2px solid var(--sfl-navy); outline-offset: 2px; }
.sfl-step { font: 700 12px/1.5 var(--sfl-font); letter-spacing: .08em; text-transform: uppercase; color: #1672A6; }
.sfl-stripe-note { display: grid; grid-template-columns: 44px 1fr auto; gap: 16px; align-items: center; padding: 20px; border-radius: 16px; background: var(--sfl-ice); }
.sfl-stripe-note__ico { width: 44px; height: 44px; border-radius: 50%; background: #fff; color: var(--sfl-navy); display: inline-flex; align-items: center; justify-content: center; }
.sfl-stripe-note__title { font: 700 16px/1.3 var(--sfl-font-h); color: var(--sfl-navy); margin-bottom: 4px; }
.sfl-stripe-note p:not(.sfl-stripe-note__title) { font-size: 14px; line-height: 1.5; }
.sfl-stripe-note__chips { display: flex; gap: 6px; }
.sfl-stripe-note__chips span { padding: 6px 10px; border-radius: 8px; background: #fff; box-shadow: inset 0 0 0 1px var(--sfl-line); font: 700 11px/15px var(--sfl-font); color: var(--sfl-navy); }
.sfl-join__submit { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.sfl-secure { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; line-height: 1.5; color: var(--sfl-muted); }
.sfl-summary { position: sticky; top: 110px; border-radius: 24px; background: var(--sfl-navy); color: #fff; padding: 28px; }
.sfl-summary__plan { display: flex; flex-direction: column; gap: 16px; }
.sfl-summary .sfl-eyebrow { display: flex; align-items: center; gap: 10px; font-size: 13px; line-height: 1.5; }
.sfl-summary .sfl-eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; flex: none; }
.sfl-summary__title { font: 700 24px/1.2 var(--sfl-font-h); color: #fff; }
.sfl-summary__list { margin: 0; display: flex; flex-direction: column; }
.sfl-summary__list div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0 10px; border-bottom: 1px solid rgba(255, 255, 255, .12); font-size: 13px; line-height: 20px; }
.sfl-summary__list dd { margin: 0; font-weight: 600; text-align: right; }
.sfl-summary__total { display: flex; justify-content: space-between; align-items: center; }
.sfl-summary__total span { font: 600 14px/1.5 var(--sfl-font); }
.sfl-summary__total strong { font: 800 36px/1 var(--sfl-font-h); color: var(--sfl-coral); }
.sfl-summary .sfl-ticks { gap: 8px; padding-top: 6px; }
.sfl-summary .sfl-ticks li { padding-left: 24px; font-size: 13px; line-height: 1.45; }
.sfl-summary .sfl-ticks li::before { top: 1px; width: 16px; height: 16px; border-radius: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239CC8EC' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/16px no-repeat; }
.sfl-summary__note { font-size: 12px; line-height: 1.45; color: var(--sfl-sky); }

/* ---------- sign in ---------- */
.sfl-card--split { flex-direction: row !important; padding: 0 !important; gap: 0 !important; overflow: hidden; border-radius: 28px; }
.sfl-signin__form { flex: 680; padding: 56px 48px; display: flex; flex-direction: column; gap: 18px; }
.sfl-signin__art { flex: 520; display: flex; align-items: flex-end; padding: 40px; background: linear-gradient(180deg, rgba(16, 40, 74, 0) 30%, rgba(16, 40, 74, .7) 100%), url("../img/signin-art.jpg") center / cover no-repeat; }
.sfl-signin__art p { font: 700 26px/1.3 var(--sfl-font-h); color: #fff; }
.sfl-signin__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.sfl-signin__join { font-size: 14px; color: var(--sfl-muted); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* ---------- forgot password ---------- */
.sfl-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
/* Figma D/forgot-password 166:338: cards p28 · gap 16 · 1px line border · r24; back link 36 below. */
.sfl-step-card { gap: 16px !important; padding: 28px; border-radius: 24px; box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-step-card.is-waiting > :not(.sfl-eyebrow) { opacity: .75; }
.sfl-step-card .sfl-eyebrow { font-size: 11px; line-height: 1.3; }
.sfl-step-card .sfl-h4 { font-size: 20px; line-height: 1.25; letter-spacing: 0; }
.sfl-step-card > .sfl-muted { font-size: 15px; line-height: 1.55; }
.sfl-step-card .sfl-form { gap: 16px; }
.sfl-step-card .sfl-textlink { line-height: 1.2; }
.sfl-back { margin-top: 36px; }
.sfl-back .sfl-textlink { gap: 8px; font-size: 15px; line-height: 1.2; }

/* ---------- community, welcome, thank you ---------- */
.sfl-community-form { padding: 36px; gap: 18px; border-radius: 28px; }
.sfl-welcome { display: grid; grid-template-columns: minmax(0, 776fr) minmax(0, 400fr); gap: 24px; align-items: start; }
.sfl-welcome__main { padding: 40px; gap: 18px; border-radius: 28px; }
.sfl-welcome__side { display: flex; flex-direction: column; gap: 16px; }
.sfl-next-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.sfl-next-list a { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 16px; background: var(--sfl-ice); text-decoration: none; }
.sfl-next-list a:hover { box-shadow: inset 0 0 0 1.5px var(--sfl-coral); }
.sfl-next-list a > .sfl-ico { margin-left: auto; color: var(--sfl-navy); }
.sfl-next-list__ico { width: 40px; height: 40px; border-radius: 50%; background: #fff; color: var(--sfl-navy); display: inline-flex; align-items: center; justify-content: center; flex: none; }
.sfl-next-list a > span:nth-child(2) { display: flex; flex-direction: column; gap: 2px; }
.sfl-next-list strong { font: 600 15px/1.3 var(--sfl-font-h); color: var(--sfl-navy); }
.sfl-next-list a > span:nth-child(2) span { font-size: 13px; color: var(--sfl-muted); }
.sfl-member-card { border-radius: 20px; padding: 24px; background: var(--sfl-navy); color: #fff; display: flex; flex-direction: column; gap: 8px; min-height: 164px; }
.sfl-member-card__name { font: 700 24px/1.2 var(--sfl-font-h); }
.sfl-member-card p { font-size: 12px; }
.sfl-member-card__skis { margin-top: auto; font-weight: 700; letter-spacing: .3em; }
.sfl-trip-card .sfl-form--inline { gap: 12px; }
/* Figma D/thank-you 166:469: card 820 · p48/56 · gap 20 · centred. */
.sfl-thanks { max-width: 820px; width: 100%; margin: 0 auto; padding: 48px 56px; gap: 20px; border-radius: 32px; align-items: center; text-align: center; }
.sfl-thanks > .sfl-h2 { font-size: 40px; line-height: 1.1; }
.sfl-thanks > .sfl-lead-sm { max-width: 620px; font-size: 17px; line-height: 1.6; }
.sfl-thanks__next { align-self: stretch; text-align: left; padding: 24px 28px; border-radius: 20px; background: var(--sfl-ice); display: flex; flex-direction: column; gap: 12px; }
.sfl-thanks__next .sfl-h6 { font-size: 17px; line-height: 1.25; }
.sfl-thanks__next .sfl-numbered li { color: var(--sfl-navy); line-height: 1.5; padding-left: 40px; }

/* ---------- skier profile ---------- */
.sfl-profile { display: grid; grid-template-columns: minmax(0, 780fr) minmax(0, 380fr); gap: 40px; align-items: start; }
.sfl-profile__form { padding: 40px; gap: 20px; border-radius: 28px; }
.sfl-profile__form .sfl-form { gap: 24px; }
.sfl-profile__side { display: flex; flex-direction: column; gap: 20px; }
.sfl-stepper { list-style: none; margin: 0; padding: 0; display: flex; gap: 20px; flex-wrap: wrap; }
.sfl-stepper li { font: 600 12px/1.3 var(--sfl-font); color: var(--sfl-muted); }
.sfl-stepper .is-current { color: var(--sfl-rose); font-weight: 700; }
.sfl-stepper .is-done { color: var(--sfl-ok); }
.sfl-quote-light { font: 700 19px/1.35 var(--sfl-font-h); color: #fff; }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
	.sfl-member-head { flex-direction: column; align-items: flex-start; gap: 16px; }
	.sfl-tabs { width: 100%; overflow-x: auto; scrollbar-width: none; }
	.sfl-tabs::-webkit-scrollbar { display: none; }
	.sfl-dash__row--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
	.sfl-dash__row--hero, .sfl-dash__row--live, .sfl-dash__row--build, .sfl-dash__row--ask,
	.sfl-join__grid, .sfl-welcome, .sfl-profile { grid-template-columns: 1fr; }
	.sfl-dash__row--3 { grid-template-columns: 1fr; }
	.sfl-steps { grid-template-columns: 1fr; }
	.sfl-summary, .sfl-account__menu { position: static; }
	.sfl-account { grid-template-columns: 1fr; }
	.sfl-account__menu ul { flex-direction: row; flex-wrap: wrap; }
	.sfl-live-img { min-height: 260px; }
}
@media (max-width: 767px) {
	.sfl-dash__row--4 { grid-template-columns: 1fr; }
	.sfl-weeks-grid { grid-template-columns: 1fr; }
	.sfl-continue { min-height: 300px; padding: 22px; }
	.sfl-continue .sfl-chip { left: 22px; top: 20px; }
	.sfl-continue__title { font-size: 22px; }
	.sfl-continue .sfl-button { width: 100%; }
	.sfl-webinar { flex-wrap: wrap; padding: 16px; gap: 14px; }
	.sfl-webinar__text { min-width: calc(100% - 92px); }
	.sfl-live-next { padding: 24px !important; }
	.sfl-live-next__when, .sfl-progress__title { font-size: 26px; }
	.sfl-stats { gap: 24px; }
	.sfl-filterbar { flex-direction: column; align-items: stretch; }
	.sfl-filterbar .sfl-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -20px; padding: 0 20px; }
	.sfl-filterbar .sfl-chip-btn { flex: none; }
	.sfl-search { width: 100%; }
	.sfl-join__form, .sfl-welcome__main, .sfl-profile__form, .sfl-thanks, .sfl-community-form { padding: 24px; border-radius: 22px; }
	.sfl-segment { flex-direction: column; border-radius: 22px; }
	.sfl-stripe-note { grid-template-columns: 44px 1fr; }
	.sfl-stripe-note__chips { grid-column: 1 / -1; }
	.sfl-join__submit .sfl-button { width: 100%; white-space: normal; text-align: center; }
	.sfl-summary { padding: 24px; }
	.sfl-card--split { flex-direction: column !important; }
	.sfl-signin__form { padding: 28px 24px; }
	.sfl-signin__art { min-height: 220px; padding: 24px; }
	.sfl-signin__art p { font-size: 20px; }
	.sfl-account__menu ul { flex-wrap: nowrap; overflow-x: auto; }
	.sfl-account__menu a { white-space: nowrap; }
	.sfl-account__main .sfl-card { padding: 22px; }
	.sfl-actions .sfl-button { flex: 1 1 auto; }
	.sfl-locked { flex-direction: column !important; align-items: flex-start; }
	.sfl-profile__form .sfl-actions { flex-direction: column-reverse; }
	.sfl-profile__form .sfl-actions .sfl-button { width: 100%; }
}

/* Community: step-up cards + perk rows */
.sfl-stepup { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.sfl-stepup__card { display: flex; align-items: center; gap: 24px; padding: 20px; border-radius: 24px; background: #fff; box-shadow: inset 0 0 0 1px var(--sfl-line); text-decoration: none; transition: box-shadow .2s ease, transform .2s ease; }
.sfl-stepup__card:hover { box-shadow: inset 0 0 0 1.5px var(--sfl-coral), var(--sfl-shadow); transform: translateY(-4px); }
.sfl-stepup__img { flex: none; width: 160px; height: 140px; border-radius: 18px; background: var(--sfl-ice) center / cover no-repeat; }
.sfl-stepup__text { flex: 1; display: flex; flex-direction: column; gap: 8px; }
.sfl-stepup__card > .sfl-ico { color: var(--sfl-navy); }
.sfl-film-side .elementor-shortcode { display: flex; flex-direction: column; gap: 16px; }
@media (max-width: 1024px) {
	.sfl-stepup { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
	.sfl-stepup__card { flex-direction: column; align-items: stretch; gap: 16px; }
	.sfl-stepup__img { width: 100%; height: 160px; }
	.sfl-stepup__card > .sfl-ico { display: none; }
}

/* Horizontal scrollers inside grid/flex parents must be allowed to shrink. */
.sfl-account > *, .sfl-dash > *, .sfl-filterbar, .sfl-filterbar > *, .sfl-tabs, .sfl-member-head { min-width: 0; }
.sfl-member-head { width: 100%; }
@media (max-width: 767px) {
	.sfl-filterbar .sfl-chips { max-width: calc(100% + 40px); }
	.sfl-account__menu { overflow: hidden; }
	.sfl-account__menu ul { scrollbar-width: none; }
	.sfl-account__menu ul::-webkit-scrollbar, .sfl-filterbar .sfl-chips::-webkit-scrollbar { display: none; }
}

/* Community (Figma D/community 133:254) */
.sfl-tone-rose { color: var(--sfl-rose); }
/* Eyebrow + rule: Figma line box is 20px (13px / 1.5); the inline-flex title otherwise sits on a 25px strut. */
:is(.sfl-community-hero, .sfl-stepup-section, .sfl-member-band) .sfl-eyebrow-rule .elementor-heading-title { display: flex; line-height: 20px; }
.sfl-avatars { display: flex; gap: 14px; }
.sfl-avatars img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 3px #fff; display: block; }
.sfl-perk p, .sfl-perk .elementor-widget-text-editor { line-height: 1.4; }
.sfl-community-form .sfl-h3 { font-size: 30px; line-height: 1.1; }
.sfl-community-form .sfl-pills legend { margin-bottom: 18px; font-size: 13px; line-height: 16px; }
.sfl-community-form .sfl-pill { min-height: 32px; padding: 8px 14px; font-size: 13px; line-height: 16px; }
.sfl-community-form .sfl-check input { border-color: var(--sfl-navy); border-radius: 5px; margin-top: 1px; }
.sfl-community-form .sfl-check label { line-height: 1.5; }
.sfl-community-form .sfl-form > .sfl-small { font-size: 12px; line-height: 1.5; }
.sfl-stepup__card { box-shadow: none; border: 1px solid var(--sfl-line); padding: 20px 28px 20px 20px; }
.sfl-stepup__card:hover { box-shadow: var(--sfl-shadow); border-color: var(--sfl-coral); }
.sfl-stepup__text .sfl-eyebrow { font-size: 11px; line-height: 1.5; letter-spacing: .08em; }
.sfl-stepup__text .sfl-h5 { line-height: 1.25; }
.sfl-stepup__text .sfl-small { line-height: 1.5; }
.sfl-stepup__card > .sfl-ico { width: 22px; height: 22px; }

/* Welcome (Figma D/welcome 86:502) */
.sfl-welcome__main > .sfl-muted { font-size: 15px; line-height: 1.55; }
.sfl-next-list { gap: 12px; }
.sfl-next-list a > span:nth-child(2) span { line-height: 1.45; }
.sfl-next-list a > .sfl-ico { color: var(--sfl-navy); }
.sfl-member-card { padding: 22px 24px; gap: 26px; min-height: 164px; }
.sfl-member-card__top, .sfl-member-card__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.sfl-member-card__top img { display: block; width: 24px; height: 24px; }
.sfl-member-card .sfl-eyebrow { font-size: 11px; line-height: 1.5; letter-spacing: .08em; }
.sfl-member-card .sfl-member-card__name { font: 700 24px/1.1 var(--sfl-font-h); color: #fff; }
.sfl-member-card__foot p { font-size: 12px; line-height: 1.5; color: rgba(255, 255, 255, .8); }
.sfl-member-card .sfl-member-card__skis { margin: 0; font-weight: 700; letter-spacing: 0; }
.sfl-welcome__side .sfl-trip-card { padding: 22px 24px; gap: 8px; border-radius: 20px; }
.sfl-welcome__side .sfl-trip-card .sfl-h5 { font-size: 17px; line-height: 1.2; }
.sfl-welcome__side .sfl-trip-card > .sfl-small { font-size: 13px; line-height: 1.5; color: var(--sfl-ink2); }
.sfl-welcome__side .sfl-trip-card .sfl-form { gap: 12px; }
.sfl-welcome__side .sfl-profile-card { padding: 24px; gap: 12px; border-radius: 24px; box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-profile-card .sfl-eyebrow { font-size: 11px; line-height: 1.3; }
.sfl-welcome__side .sfl-profile-card .sfl-h5 { font-size: 18px; line-height: 1.25; }
.sfl-profile-card > .sfl-small { line-height: 1.5; }
:is(.sfl-welcome, .sfl-dash, .sfl-account, .sfl-film-side) .sfl-button.sfl-button--sm { min-height: 42px; font-size: 15px; }

/* Sign in (Figma D/sign-in 86:396): form 680 · p48 · gap 18, art 520 · p40. */
.sfl-eyebrow--rule, .sfl-signin__form > .sfl-eyebrow { display: flex; align-items: center; gap: 10px; font-size: 13px; line-height: 1.5; }
.sfl-eyebrow--rule::before, .sfl-signin__form > .sfl-eyebrow::before { content: ""; width: 28px; height: 2px; border-radius: 1px; background: var(--sfl-coral); flex: none; }
.sfl-signin__form { flex: 680 1 0; padding: 48px; }
.sfl-signin__art { flex: 520 1 0; }
.sfl-signin__form > .sfl-lead-sm { font-size: 15px; line-height: 1.55; }
.sfl-signin__row .sfl-check { gap: 8px; align-items: center; }
.sfl-signin__row .sfl-check input { border-color: var(--sfl-navy); }
.sfl-signin__row .sfl-check label { color: var(--sfl-navy); line-height: 1.5; }
.sfl-signin__row .sfl-textlink { font-size: 13px; line-height: 1.5; }
.sfl-signin__join { justify-content: center; gap: 6px; line-height: 1.5; }
.sfl-signin__join .sfl-textlink { line-height: 1.5; }

/* Member head + dashboard (Figma D/member-home 86:651): 24 between head, rows and row titles. */
.sfl-member-head { margin-bottom: 0; }
.sfl-member-head .sfl-eyebrow { font-size: 12px; line-height: 1.5; }
.sfl-member-head .sfl-h2 { font-size: 40px; line-height: 1.06; }
.sfl-member-head .sfl-muted { font-size: 15px; line-height: 1.5; }
.sfl-tabs a { display: inline-flex; flex-direction: column; gap: 6px; padding: 0 0 8px; font: 500 14px/1.5 var(--sfl-font); }
.sfl-tabs a::after { bottom: 0; }
.sfl-dash { gap: 24px; }
.sfl-dash__title { margin-top: 0; }
.sfl-dash .sfl-eyebrow { font-size: 11px; line-height: 1.3; }
.sfl-dash .sfl-h6, .sfl-dash .sfl-profile-card .sfl-h5 { font-size: 17px; line-height: 1.25; }
/* Row 1 */
.sfl-continue { min-height: 360px; padding: 24px; justify-content: space-between; gap: 12px; }
.sfl-continue .sfl-chip { position: static; padding: 6px 12px; font-size: 11px; line-height: 1.5; }
.sfl-continue__title { margin-top: auto; font: 700 26px/1.15 var(--sfl-font-h); }
.sfl-dash__stack > .sfl-card { flex: 1 1 0; }
.sfl-dash__stack > .sfl-card, .sfl-dash__row--3 > .sfl-card { padding: 22px 24px; border-radius: 20px; }
.sfl-build-mini { gap: 12px !important; }
.sfl-build-mini .sfl-eyebrow, .sfl-countdown .sfl-eyebrow, .sfl-dash__row--3 .sfl-eyebrow { line-height: 1.5; }
.sfl-dash .sfl-small { font-size: 13px; line-height: 1.5; }
.sfl-countdown { gap: 6px !important; }
.sfl-countdown__row { display: flex; align-items: flex-end; gap: 10px; }
.sfl-countdown__row .sfl-countdown__label { padding-bottom: 2px; font-size: 14px; line-height: 1.5; }
.sfl-countdown .sfl-small { color: var(--sfl-ondark); }
/* Row 2 */
.sfl-dash__row--4 > .sfl-card { min-height: 310px; padding: 24px; gap: 12px; border-radius: 24px; }
.sfl-live-mini .sfl-small, .sfl-dash__row--4 .sfl-small { font-size: 14px; line-height: 1.5; }
.sfl-live-mini .sfl-small { color: #DCE6F2; }
.sfl-live-mini__when { font-size: 26px; line-height: 1.1; }
.sfl-live-mini .sfl-actions { gap: 8px; }
.sfl-dash__row--4 > .sfl-card .sfl-actions + .sfl-textlink { margin-top: 0; }
.sfl-trip-mini__head { display: flex; align-items: center; gap: 12px; color: var(--sfl-navy); }
.sfl-trip-mini .sfl-small strong { font-weight: 600; line-height: 1.4; color: var(--sfl-navy); }
.sfl-trip-mini .sfl-badge { padding: 6px 12px; background: #fff; font-size: 12px; line-height: 1.2; }
.sfl-perks { box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-perk-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.sfl-perk-list li { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.4; color: var(--sfl-navy); }
.sfl-perk-list .sfl-ico { margin-top: 1px; color: var(--sfl-rose-dot); }
.sfl-perks .sfl-small.sfl-strong { padding-top: 12px; border-top: 1px solid var(--sfl-line); font-size: 13px; line-height: 1.4; color: var(--sfl-muted); }
.sfl-dash__row--4 > .sfl-card.sfl-perks .sfl-textlink { margin-top: 0; }
.sfl-profile-card .sfl-bar { height: 10px; }
.sfl-profile-card .sfl-bar span { background: var(--sfl-rose-dot); border-radius: 0; }
.sfl-dash .sfl-profile-card > .sfl-small { color: var(--sfl-navy); }
.sfl-dash .sfl-profile-card .sfl-textlink, .sfl-dash .sfl-trip-mini .sfl-textlink { margin-top: 0; }
/* Row 3 */
.sfl-dash__row--3 > .sfl-card { min-height: 315px; gap: 10px; }
.sfl-dash__row--3 > .sfl-card:first-child { gap: 12px; }
.sfl-dash__row--3 .sfl-card__head .sfl-textlink { font-size: 13px; gap: 4px; }
.sfl-film-row { gap: 12px; padding: 0; }
.sfl-film-row__img { width: 84px; height: 56px; border-radius: 10px; }
.sfl-film-row__text { flex: 1; min-width: 0; }
.sfl-film-row__text strong { font-size: 14px; line-height: 1.25; }
.sfl-film-row__text span { line-height: 1.5; }
.sfl-film-row__play { flex: none; display: inline-flex; color: var(--sfl-navy); }
.sfl-letter { gap: 10px !important; }
.sfl-letter__quote { font-size: 20px; line-height: 1.25; }
.sfl-dash .sfl-letter > .sfl-small { font-size: 13px; line-height: 1.52; color: var(--sfl-ink2); }
.sfl-letter .sfl-textlink { margin-top: auto; font-size: 13px; }
.sfl-ask-mini { box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-ask-mini .sfl-h6 { line-height: 1.2; }
.sfl-ask-mini .sfl-form { gap: 10px; }
.sfl-ask-mini textarea { min-height: 80px; height: 80px; }
.sfl-dash .sfl-tiny { line-height: 1.45; }

/* Library (Figma D/member-library 163:278): filters 44, then heading rows + film rows all 24 apart. */
.sfl-filterbar { gap: 12px; }
.sfl-filterbar .sfl-chips { gap: 8px; }
.sfl-shelf { gap: 24px; margin-top: 0; }
.sfl-shelf__head .sfl-h4, .sfl-dash__title.sfl-h4 { font-size: 22px; line-height: 1.2; letter-spacing: 0; }
.sfl-shelf__head .sfl-textlink { font-size: 14px; line-height: 1.2; }
.sfl-film-cell { gap: 10px; }
.sfl-film-card__note { line-height: 1.3; }

/* Live (Figma D/member-live 163:650) */
.sfl-live-next { gap: 16px !important; }
.sfl-live-next__when { font-size: 34px; line-height: 1.1; }
.sfl-live-next__title { line-height: 1.3; }
.sfl-live-next__text, .sfl-live-next > .sfl-small { font-size: 15px; line-height: 1.55; color: var(--sfl-ondark); }
.sfl-live-next .sfl-actions { gap: 12px; }
.sfl-webinar { padding: 18px 20px; box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-webinar__text strong { font-size: 18px; line-height: 1.25; }
.sfl-webinar__text span { line-height: 1.4; }
.sfl-date-tile strong { line-height: 1; }
.sfl-date-tile span { font-size: 11px; line-height: 1.5; }
.sfl-dash .sfl-webinar .sfl-button--sm { min-height: 45px; padding: 12px 20px; font-size: 15px; }

/* Build (Figma D/member-build 163:966) */
.sfl-progress { gap: 14px !important; }
.sfl-progress__title { line-height: 1.1; }
.sfl-weeks--light span { background: #2E4A6E; }
.sfl-weeks--light .is-done { background: #fff; }
.sfl-stats { gap: 32px; margin: 0; }
.sfl-stats div { gap: 2px; }
.sfl-stats dt { font-size: 28px; line-height: 1.1; }
.sfl-stats dd { line-height: 1.3; }
.sfl-plan-dl { padding: 28px !important; gap: 12px !important; border-radius: 24px !important; }
.sfl-plan-dl .sfl-h5 { line-height: 1.25; }
.sfl-dash .sfl-plan-dl > .sfl-small { font-size: 15px; line-height: 1.55; }
.sfl-weeks-grid { gap: 24px 20px; }
.sfl-week { padding: 24px !important; gap: 12px !important; border-radius: 24px !important; box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-week .sfl-h6 { font-size: 18px; line-height: 1.25; }
.sfl-week .sfl-badge { padding: 5px 10px; font-size: 11px; line-height: 13px; }
.sfl-week ul { gap: 12px; }
.sfl-week li a, .sfl-week li.is-locked { padding: 0; font-size: 14px; line-height: 1.4; gap: 10px; }
.sfl-week li .sfl-ico { width: 18px; height: 18px; }
.sfl-week--now li:not(.is-done) .sfl-ico { color: var(--sfl-coral); }
.sfl-countdown-card { padding: 28px !important; gap: 10px !important; border-radius: 24px !important; }
.sfl-countdown-card .sfl-h5 { line-height: 1.25; }
.sfl-dash .sfl-countdown-card > .sfl-small { font-size: 15px; line-height: 1.55; color: var(--sfl-navy); }

/* Ask (Figma D/member-ask 163:1344) */
.sfl-ask { box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-ask .sfl-h4 { font-size: 22px; line-height: 1.25; letter-spacing: 0; }
.sfl-ask textarea { min-height: 120px; height: 120px; }
.sfl-ask .sfl-form { gap: 16px; }
.sfl-ask .sfl-pills legend { margin-bottom: 16px; font-size: 13px; line-height: 16px; }
.sfl-ask .sfl-pill { min-height: 36px; padding: 9px 16px; font-size: 13px; line-height: 16px; }
.sfl-ask .sfl-toggle-row--left { padding: 0; gap: 12px; }
.sfl-ask .sfl-toggle-row--left label { font-size: 14px; line-height: 1.4; }
.sfl-dash__row--ask .sfl-dash__stack { gap: 20px; }
.sfl-dash__row--ask .sfl-card--pink { padding: 24px; gap: 10px; border-radius: 24px; }
.sfl-dash__row--ask .sfl-card--pink .sfl-h6 { font-size: 18px; line-height: 1.25; }
.sfl-dash__row--ask .sfl-card--pink > .sfl-small { font-size: 15px; line-height: 1.55; color: var(--sfl-navy); }
.sfl-ask-how { padding: 24px !important; gap: 12px !important; border-radius: 24px !important; box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-ask-how .sfl-numbered { gap: 12px; }
.sfl-ask-how .sfl-numbered li { min-height: 0; padding-left: 28px; font-size: 14px; line-height: 1.5; }
.sfl-ask-how .sfl-numbered li::before { content: ""; top: 3px; width: 18px; height: 18px; border-radius: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F2808C' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/18px no-repeat; }
.sfl-answer { padding: 24px !important; gap: 12px !important; border-radius: 24px !important; box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-answer .sfl-h6 { line-height: 1.35; }
.sfl-answer > .sfl-muted { font-size: 15px; line-height: 1.55; }
.sfl-answer__by { display: flex; align-items: center; gap: 10px; }
.sfl-answer__by img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
.sfl-answer__by .sfl-small { font-size: 13px; line-height: 1.3; }
.sfl-dash .sfl-grid-3 { gap: 20px; }

/* Account (Figma D/member-account 163:1660) */
.sfl-account { gap: 24px; }
.sfl-account__menu { padding: 16px !important; border-radius: 24px !important; box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-account__menu ul { gap: 4px; }
.sfl-account__menu a { gap: 10px; padding: 12px 14px; border-radius: 14px; font: 500 14px/17px var(--sfl-font); }
.sfl-account__menu a .sfl-ico { color: var(--sfl-navy); }
.sfl-account__menu a.is-active { background: var(--sfl-ice); font-weight: 600; }
.sfl-account__menu a.is-active .sfl-ico { color: var(--sfl-rose-dot); }
.sfl-account__main .sfl-card { padding: 28px; gap: 14px; border-radius: 24px; box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-account__main #profile { gap: 16px; }
.sfl-account__main .sfl-card > .sfl-h5 { line-height: 1.25; }
.sfl-account .sfl-grid-2 { gap: 16px; }
.sfl-plan-box { flex-direction: row; align-items: center; gap: 16px; padding: 18px 20px; color: var(--sfl-navy); }
.sfl-plan-box > div { display: flex; flex-direction: column; gap: 4px; }
.sfl-plan-box .sfl-h6 { font-size: 17px; line-height: 1.25; }
.sfl-plan-box .sfl-small { line-height: 1.4; }
.sfl-account__main .sfl-card > .sfl-small.sfl-muted { font-size: 15px; line-height: 1.55; }
.sfl-account .sfl-button--sm.sfl-button--outline { min-height: 45px; }
.sfl-account .sfl-toggle-row { padding: 0; border: 0; gap: 14px; }
.sfl-account .sfl-toggle-row label { font-size: 15px; line-height: 1.4; }
.sfl-account__delete { margin: 0; }
.sfl-account__delete .sfl-textlink { font-size: 14px; line-height: 1.2; }
.sfl-account__main .sfl-trip-card .sfl-h5 { font-size: 20px; line-height: 1.25; }

/* Skier profile (Figma D/skier-profile 134:266): form 780 · p40 · gap 24, side 380 · gap 20. */
.sfl-profile__form { gap: 24px; }
.sfl-profile__form .sfl-form { gap: 24px; }
.sfl-stepper { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.sfl-stepper li { display: flex; flex-direction: column; gap: 8px; font: 500 12px/14px var(--sfl-font); color: var(--sfl-muted); }
.sfl-stepper li::before { content: ""; height: 4px; border-radius: 2px; background: var(--sfl-line); }
.sfl-stepper .is-done::before { background: var(--sfl-navy); }
.sfl-stepper .is-done { color: var(--sfl-muted); }
.sfl-stepper .is-current::before { background: var(--sfl-coral); }
.sfl-profile__form > .sfl-h3 { font-size: 36px; line-height: 1.1; }
.sfl-profile__form > .sfl-muted { font-size: 15px; line-height: 1.5; }
.sfl-profile__form .sfl-pills legend { margin-bottom: 24px; font-size: 14px; line-height: 17px; }
.sfl-profile__form .sfl-pill { min-height: 39px; padding: 10px 16px; font-size: 14px; line-height: 17px; }
.sfl-profile__form .sfl-actions { justify-content: space-between; padding-top: 8px; }
.sfl-profile__side { gap: 20px; }
.sfl-why { padding: 28px !important; gap: 12px !important; border-radius: 24px !important; }
.sfl-why .sfl-eyebrow { line-height: 1.5; }
.sfl-quote-light { font-size: 19px; line-height: 1.35; }
.sfl-why__by { display: flex; align-items: center; gap: 12px; }
.sfl-why__by img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.sfl-why__by .sfl-small { font-size: 13px; }
.sfl-why-ticks { padding: 24px !important; gap: 12px !important; border-radius: 24px !important; }
.sfl-why-ticks .sfl-ticks { gap: 12px; }
.sfl-why-ticks .sfl-ticks li { padding-left: 28px; font-size: 14px; line-height: 1.4; }
.sfl-why-ticks .sfl-ticks li::before { top: 1px; width: 18px; height: 18px; border-radius: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F2808C' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/18px no-repeat; }

/* Film page (Figma D/film-template 84:508): main 796 · gap 20, side 380 · gap 16. */
.sfl-film-page .sfl-film-title { margin: 20px 0; font-size: 34px; line-height: 1.1; }
.sfl-film-page .sfl-meta-chips { gap: 10px; }
.sfl-film-page .sfl-meta-chips li { padding: 7px 12px; font-size: 12px; line-height: 14px; }
.sfl-film-page .sfl-film-text { margin-top: 20px; line-height: 1.62; }
.sfl-film-page .sfl-moves { margin-top: 20px; gap: 20px; background: linear-gradient(var(--sfl-line), var(--sfl-line)) 0 34px / 100% 1px no-repeat; }
.sfl-film-page .sfl-moves__tab { padding-bottom: 12px; font-size: 14px; line-height: 1.5; }
.sfl-film-page .sfl-moves li { gap: 14px; padding: 14px 16px; }
.sfl-film-page .sfl-moves li > span:last-child { gap: 3px; }
.sfl-film-page .sfl-moves strong { line-height: 1.2; }
.sfl-film-page .sfl-moves li > span:last-child span { line-height: 1.5; }
.sfl-film-side .elementor-shortcode { gap: 16px; }
.sfl-film-page .sfl-upnext { padding: 20px; gap: 12px; border-radius: 20px; }
.sfl-film-page .sfl-upnext .sfl-eyebrow { font-size: 11px; line-height: 1.5; }
.sfl-film-page .sfl-upnext a { align-items: center; padding: 10px 12px; font-size: 13px; line-height: 1.25; }
.sfl-film-page .sfl-upnext a span:last-child { line-height: 1.5; }
.sfl-film-page .sfl-side-build { padding: 20px; gap: 10px; border-radius: 20px; background: #fff; box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-film-page .sfl-side-build .sfl-eyebrow { font-size: 11px; line-height: 1.5; }
.sfl-film-page .sfl-side-build .sfl-h6 { font-weight: 600; font-size: 15px; line-height: 1.25; }
.sfl-film-page .sfl-side-build form { margin: 0; }
.sfl-film-page .sfl-side-build .sfl-textlink { font-size: 13px; }
.sfl-film-page .sfl-ask-side { padding: 20px; gap: 10px; border-radius: 20px; }
.sfl-film-page .sfl-ask-side .sfl-h6 { font-size: 16px; line-height: 1.2; }
.sfl-film-page .sfl-ask-side .sfl-small { font-size: 13px; line-height: 1.5; color: var(--sfl-ink2); }
.sfl-film-page .sfl-ask-side .sfl-button { min-height: 54px; padding: 18px 30px; font-size: 15px; }
.sfl-film-more .sfl-film-grid { gap: 16px; }
.sfl-film-more .sfl-film-card { aspect-ratio: auto; height: 200px; }

/* =========================================================================
   Figma pixel audit (03/10/2026) — mobile values from the M/<slug> frames.
   ========================================================================= */
@media (max-width: 1024px) {
	.sfl-join__grid { gap: 24px; }
}
@media (max-width: 767px) {
	/* M/join 173:3816 */
	.sfl-join .sfl-join__form { padding: 32px 24px; border-radius: 24px; }
	.sfl-join .sfl-segment { flex-direction: column; gap: 12px; border-radius: 25px; }
	.sfl-join .sfl-stripe-note { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
	.sfl-join__submit { flex-direction: column; align-items: stretch; gap: 12px; }
	.sfl-summary { padding: 28px; }
	.sfl-summary__title { font-size: 21px; }
	.sfl-summary__total strong { font-size: 24px; }
	/* M/member-home 173:4637 (cards hug their content on mobile) */
	.sfl-member-head { gap: 16px; }
	.sfl-member-head .sfl-h2 { font-size: 28px; }
	.sfl-tabs ul { gap: 22px; }
	.sfl-continue { min-height: 280px; padding: 24px; }
	.sfl-continue .sfl-button { width: auto; }
	.sfl-dash__stack > .sfl-card { flex: none; }
	.sfl-dash__row--4 > .sfl-card, .sfl-dash__row--3 > .sfl-card { min-height: 0; }
	.sfl-live-mini__when { font-size: 22px; }
	.sfl-dash .sfl-h6 { font-size: 16px; }
	.sfl-letter__quote { font-size: 18px; }
	.sfl-countdown__num { font-size: 32px; }
	.sfl-ask-mini.sfl-card > form > .sfl-button { align-self: stretch; }
	.sfl-live-mini .sfl-actions .sfl-button { flex: none; }
	.sfl-dash .sfl-profile-card .sfl-h5 { font-size: 16px; }
	/* M/member-library 173:4887 */
	.sfl-filterbar .sfl-chips { flex-wrap: wrap; overflow: visible; margin: 0; padding: 0; max-width: none; }
	.sfl-filterbar .sfl-chip-btn { border-radius: 14px; }
	.sfl-shelf__head { flex-direction: column; align-items: flex-start; gap: 16px; }
	.sfl-shelf__head .sfl-h4, .sfl-dash__title.sfl-h4 { font-size: 20px; }
	.sfl-dash .sfl-film-grid { gap: 20px; }
	.sfl-dash .sfl-film-card { min-height: 220px; }
	/* M/member-live 173:5135 */
	.sfl-live-next { padding: 36px 24px !important; }
	.sfl-live-next__when { font-size: 24px; }
	.sfl-live-next__title { font-size: 18px; }
	.sfl-live-next .sfl-actions { flex-direction: column; align-items: stretch; }
	.sfl-live-img { min-height: 280px; }
	.sfl-webinar { flex-direction: column; flex-wrap: nowrap; align-items: stretch; padding: 18px 20px; gap: 20px; }
	.sfl-webinar .sfl-date-tile { width: 64px; height: 64px; }
	.sfl-webinar .sfl-date-tile strong { font-size: 22px; }
	.sfl-webinar__text { min-width: 0; }
	.sfl-webinar__text strong { font-size: 17px; }
	/* M/member-build 173:5327 */
	.sfl-progress { padding: 32px 24px !important; }
	.sfl-progress__title { font-size: 24px; }
	.sfl-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.sfl-stats dt { font-size: 22px; }
	.sfl-plan-dl .sfl-h5, .sfl-countdown-card .sfl-h5 { font-size: 18px; }
	.sfl-plan-dl .sfl-button { align-self: stretch; }
	.sfl-week .sfl-h6 { font-size: 17px; }
	.sfl-weeks-grid { gap: 20px; }
	/* M/member-ask 173:5581 */
	.sfl-ask { padding: 32px 24px !important; }
	.sfl-ask .sfl-h4 { font-size: 20px; }
	.sfl-ask textarea { min-height: 76px; height: 76px; }
	.sfl-ask .sfl-form > .sfl-button { align-self: stretch; }
	.sfl-dash__row--ask .sfl-card--pink .sfl-h6 { font-size: 17px; }
	/* M/member-account 173:5773: the menu stays a vertical list */
	.sfl-account__menu { overflow: visible; }
	.sfl-account__menu ul { flex-direction: column; flex-wrap: nowrap; overflow: visible; }
	.sfl-account__main .sfl-card { padding: 28px; }
	.sfl-account__main .sfl-card > .sfl-h5 { font-size: 18px; }
	.sfl-account .sfl-button--sm { align-self: stretch; }
	.sfl-account .sfl-actions { flex-direction: column; align-items: stretch; }
	.sfl-plan-box { align-items: flex-start; }
	/* M/skier-profile 173:5985 */
	.sfl-profile { gap: 24px; }
	.sfl-profile__form { padding: 40px 24px; border-radius: 28px; }
	.sfl-stepper { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
	.sfl-profile__form > .sfl-h3 { font-size: 24px; }
	.sfl-profile__form .sfl-actions { flex-direction: column; gap: 12px; }
	/* M/film-template 173:2182 (its main column is broken in Figma; side + "More" follow the M frame) */
	.sfl-film-page .sfl-film-title { font-size: 24px; }
	.sfl-film-page .sfl-ask-side .sfl-button { align-self: stretch; }
	.sfl-film-more .sfl-film-card { height: 200px; min-height: 200px; }
	/* M/thank-you 173:6556 */
	.sfl-thanks { padding: 32px 24px; border-radius: 32px; }
	.sfl-thanks > .sfl-h2 { font-size: 28px; }
	.sfl-thanks > .sfl-lead-sm { font-size: 16px; }
	.sfl-thanks__next .sfl-h6 { font-size: 16px; }
	.sfl-thanks .sfl-actions { flex-direction: column; align-items: stretch; align-self: stretch; }
	/* M/forgot-password 173:4497 */
	.sfl-step-card { padding: 28px; border-radius: 24px; }
	.sfl-step-card .sfl-h4 { font-size: 18px; }
	.sfl-step-card .sfl-form .sfl-button { align-self: stretch; }
	/* M/sign-in 173:4378 */
	.sfl-card--split.sfl-signin { gap: 16px !important; border-radius: 28px; }
	.sfl-signin__form { flex: none; padding: 32px 24px; }
	.sfl-signin__row { flex-wrap: nowrap; gap: 0; }
	.sfl-signin__row .sfl-check { white-space: nowrap; }
	.sfl-signin__art { flex: none; min-height: 320px; padding: 40px 24px; }
	.sfl-signin__art p { font-size: 22px; line-height: 1.2; }
	/* M/welcome 173:4205 */
	.sfl-welcome__main { padding: 40px 24px; border-radius: 28px; }
	.sfl-welcome__main .sfl-actions { flex-direction: column; align-items: stretch; }
	.sfl-member-card .sfl-member-card__name { font-size: 21px; }
	.sfl-welcome__side .sfl-trip-card .sfl-h5 { font-size: 16px; }
	.sfl-welcome__side .sfl-profile-card .sfl-h5 { font-size: 17px; }
	.sfl-welcome__side .sfl-profile-card .sfl-button { align-self: stretch; }
	/* M/community 173:4013 */
	.sfl-community-form { padding: 36px 24px; border-radius: 28px; }
	.sfl-community-form .sfl-h3 { font-size: 24px; }
	.sfl-community-form .sfl-pill { min-height: 34px; padding: 9px 16px; }
	.sfl-stepup__card { padding: 20px 28px 20px 20px; gap: 24px; }
	.sfl-stepup__img { height: 140px; }
	.sfl-stepup__card > .sfl-ico { display: block; }
}

/* Skier profile: Years skiing | Your age band two-up (Figma D/skier-profile), stacked at mobile. */
.sfl-field-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 767px) { .sfl-field-pair { grid-template-columns: 1fr; gap: 24px; } }

/* Film page tabs (Figma D/film-template: 14px, gap 24, 12px under the label, 2px coral bar, 1px line under the row). */
.sfl-tabs__list { display: flex; gap: 24px; border-bottom: 1px solid var(--sfl-line); overflow-x: auto; scrollbar-width: none; }
.sfl-tabs__list::-webkit-scrollbar { display: none; }
.sfl-film-page .sfl-tabs { background: none; }
.sfl-tabs .sfl-moves__tab { flex: none; margin: 0 0 -1px; padding: 0 0 12px; border: 0; border-bottom: 2px solid transparent; background: none; font: 500 14px/1.5 var(--sfl-font); color: var(--sfl-navy); cursor: pointer; }
.sfl-tabs .sfl-moves__tab.is-on { font-weight: 600; color: var(--sfl-coral); border-bottom-color: var(--sfl-coral); }
.sfl-tabs .sfl-moves__tab:focus-visible { outline: 2px solid var(--sfl-navy); outline-offset: 2px; border-radius: 4px; }
.sfl-tabs__panel[hidden] { display: none; }
.sfl-tabs__panel:focus-visible { outline: 2px solid var(--sfl-sky); outline-offset: 4px; border-radius: 8px; }
.sfl-tabs__text { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; font-size: 15px; line-height: 1.6; color: var(--sfl-ink, var(--sfl-navy)); }
.sfl-tabs__text p { margin: 0; }
/* Up next: play / lock / tick icon before each session (Figma 14px, gap 10, padding 10/12). */
.sfl-upnext a { align-items: center; padding: 10px 12px; }
.sfl-upnext a > svg { flex: none; width: 14px; height: 14px; }
.sfl-upnext a > span:nth-of-type(1) { flex: 1 1 auto; min-width: 0; }
/* Downloads card (Figma: ice, padding 20, radius 20, gap 10; rows 14px medium, doc 16 + down 14). */
.sfl-downloads { padding: 20px; gap: 10px; border-radius: 20px; }
.sfl-downloads .sfl-eyebrow { font-size: 11px; line-height: 1.5; }
.sfl-downloads ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.sfl-downloads a, .sfl-downloads__soon { display: flex; align-items: center; gap: 10px; font: 500 14px/1.5 var(--sfl-font); color: var(--sfl-navy); text-decoration: none; }
.sfl-downloads a > span, .sfl-downloads__soon > span { flex: 1 1 auto; min-width: 0; }
.sfl-downloads a:hover > span { text-decoration: underline; }
.sfl-downloads svg { flex: none; }
.sfl-downloads__soon { color: var(--sfl-muted); }
.sfl-downloads__soon em { font-style: normal; font-size: 12px; }
