/* =========================================================================
   Page group A — The four pillars, Pillar template, Your year, Inside the club, Sven & Lou.
   Figma page 59:2: D/pillars 83:2, D/pillar-template 83:231, D/your-year 84:2, D/films 84:200,
   D/sven-and-lou 85:2 (mobile M/… under each). Prefix: sfl-a-.
   ========================================================================= */

/* ---------- shared bits ---------- */
.sfl-a-rule { display: flex; align-items: center; gap: 10px; }
/* Figma eyebrow: 13px, line 20 (frame 20 tall). */
p.sfl-eyebrow.sfl-a-rule { font-size: 13px; line-height: 20px; }
.sfl-a-rule::before { content: ""; width: 28px; height: 2px; border-radius: 1px; background: var(--sfl-coral); flex: none; }
.sfl-a-head { display: flex; align-items: flex-end; gap: 48px; }
.sfl-a-head__left { flex: 0 1 752px; display: flex; flex-direction: column; gap: 16px; }
.sfl-a-head__intro { flex: 1 1 0; font-size: 17px; line-height: 1.6; color: var(--sfl-muted); }
.sfl-a-ticks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.sfl-a-ticks li { position: relative; padding-left: 22px; font: 500 13px/1.45 var(--sfl-font); color: var(--sfl-navy); }
.sfl-a-ticks li::before {
	content: ""; position: absolute; left: 0; top: 3px; width: 14px; height: 14px; background: var(--sfl-coral);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' 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 / 14px no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' 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 / 14px no-repeat;
}
.sfl-a-ticks--14 li { font-size: 14px; }
.sfl-a-coachline { display: inline-flex; align-items: center; gap: 8px; font: 700 11px/1.3 var(--sfl-font); letter-spacing: .08em; text-transform: uppercase; color: var(--sfl-rose); }
.sfl-a-hub .sfl-a-coachline img { width: 20px; height: 20px; border-radius: 50%; object-fit: cover; flex: none; }

/* Extra button icons (lock / external) for Elementor buttons. */
.sfl-btn.sfl-a-ico-lock .elementor-button-content-wrapper::after,
.sfl-btn.sfl-a-ico-ext .elementor-button-content-wrapper::after {
	content: ""; width: 16px; height: 16px; flex: none; background: currentColor;
	-webkit-mask: var(--sfl-a-mask) center / 16px no-repeat; mask: var(--sfl-a-mask) center / 16px no-repeat;
}
.sfl-btn.sfl-a-ico-lock { --sfl-a-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E"); }
.sfl-btn.sfl-a-ico-ext { --sfl-a-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E"); }
.sfl-a-btnrow .elementor-widget-button, .sfl-a-btnrow .elementor-widget-shortcode { width: auto; }

/* =========================================================================
   Piste map — [sfl_piste_map] (Home 60:63 + Your year 84:2)
   ========================================================================= */
.sfl-a-piste { padding-top: 40px; }
.sfl-a-piste__map { position: relative; height: 460px; }
.sfl-a-piste__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.sfl-a-piste__snow, .sfl-a-piste__track { fill: none; vector-effect: non-scaling-stroke; stroke-linecap: round; }
.sfl-a-piste__snow { stroke: #fff; stroke-width: 14; }
.sfl-a-piste__track { stroke: var(--sfl-sky); stroke-width: 2; stroke-dasharray: 8 10; stroke-linecap: butt; }
.sfl-a-gate { position: absolute; z-index: 1; width: 218px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; text-decoration: none; }
.sfl-a-gate--row { width: 268px; flex-direction: row; gap: 10px; }
.sfl-a-gate--row .sfl-a-gate__n { margin-top: 16px; }
.sfl-a-gate__n {
	flex: none; width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	background: var(--sfl-navy); color: #fff; font: 700 14px/1 var(--sfl-font-h); box-shadow: 0 0 0 3px #fff, 0 4px 10px rgba(16, 40, 74, .12);
}
.sfl-a-gate__n.is-first { background: var(--sfl-coral); }
.sfl-a-gate__card { width: 218px; display: flex; flex-direction: column; gap: 2px; padding: 8px 14px 10px; border-radius: 14px; background: #fff; box-shadow: 0 6px 18px rgba(16, 40, 74, .06); transition: box-shadow .2s ease, transform .2s ease; }
.sfl-a-gate__card strong, .sfl-a-piste__copy strong { font: 700 15px/1.25 var(--sfl-font-h); color: var(--sfl-navy); }
.sfl-a-gate__card span, .sfl-a-piste__copy span { font: 400 12px/1.4 var(--sfl-font); color: var(--sfl-muted); }
.sfl-a-gate:hover .sfl-a-gate__card { box-shadow: 0 10px 26px rgba(16, 40, 74, .14); transform: translateY(-2px); }
.sfl-a-piste__skier { position: absolute; left: 2.5%; top: 372px; z-index: 1; width: 56px; height: 56px; border-radius: 50%; background: var(--sfl-coral); color: var(--sfl-navy); display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 0 0 4px rgba(255, 255, 255, .7); }
.sfl-a-piste__pillpos { position: absolute; left: 8%; top: 296px; z-index: 1; }
.sfl-a-piste__pill { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; background: var(--sfl-navy); color: #fff; font: 600 12px/14px var(--sfl-font); text-decoration: none; white-space: nowrap; }
.sfl-a-piste__pill:hover { background: var(--sfl-navy-h); color: #fff; }
.sfl-a-piste__pill:hover .sfl-ico { transform: translateX(3px); }
.sfl-a-piste__pill .sfl-ico { transition: transform .2s ease; }
.sfl-a-piste__mobile { display: none; }
.sfl-a-piste__list { list-style: none; margin: 0; padding: 0; }
.sfl-a-piste__list a { display: flex; gap: 14px; text-decoration: none; }
.sfl-a-piste__rail { flex: none; width: 40px; display: flex; flex-direction: column; align-items: center; }
.sfl-a-piste__rail::after { content: ""; flex: 1 1 auto; width: 2px; min-height: 31px; background: var(--sfl-sky); }
.sfl-a-piste__list li:last-child .sfl-a-piste__rail::after { display: none; }
.sfl-a-piste__copy { display: flex; flex-direction: column; gap: 4px; padding: 8px 0 24px; }
.sfl-a-piste__list li:last-child .sfl-a-piste__copy { padding-bottom: 28px; }
.sfl-a-piste__list a:hover strong { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1024px) {
	.sfl-a-gate, .sfl-a-gate__card { width: 196px; }
	.sfl-a-gate--row { width: 246px; }
	.sfl-a-piste__pillpos { top: 290px; }
}
@media (max-width: 767px) {
	.sfl-a-piste__map { display: none; }
	.sfl-a-piste__mobile { display: block; }
}

/* =========================================================================
   The four pillars hub (D/pillars 83:2)
   ========================================================================= */
.sfl-a-hub { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
/* Figma card: image 220 (letter at 20/20) + body 22/22/24/22, gap 12. */
.sfl-a-hub__card { display: flex; flex-direction: column; border-radius: 24px; overflow: hidden; background: var(--sfl-ice); text-decoration: none; transition: box-shadow .2s ease, transform .2s ease; }
.sfl-a-hub__card:hover { box-shadow: var(--sfl-shadow); transform: translateY(-4px); }
.sfl-a-hub__img { position: relative; height: 220px; flex: none; background: var(--sfl-navy) center / cover no-repeat; }
.sfl-a-hub__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16, 40, 74, .25) 0%, rgba(16, 40, 74, 0) 45%); }
.sfl-a-hub__letter { position: absolute; left: 20px; top: 20px; z-index: 1; font: 800 56px/.9 var(--sfl-font-h); letter-spacing: -.03em; color: #fff; }
.sfl-a-hub__body { flex: 1; display: flex; flex-direction: column; gap: 12px; padding: 22px 22px 24px; }
.sfl-a-hub .sfl-a-coachline { min-height: 24px; letter-spacing: .08em; line-height: 1.5; }
.sfl-a-hub .sfl-a-coachline img { width: 24px; height: 24px; }
.sfl-a-hub__title { font: 700 22px/1.15 var(--sfl-font-h); letter-spacing: 0; color: var(--sfl-navy); }
.sfl-a-hub__text { font-size: 14px; line-height: 1.52; color: var(--sfl-muted); }
.sfl-a-hub .sfl-a-ticks li { line-height: 18px; }
.sfl-a-hub .sfl-a-ticks li::before { top: 2px; }
.sfl-a-hub__more { margin-top: auto; padding-top: 4px; display: inline-flex; align-items: center; gap: 6px; font: 600 14px/1.2 var(--sfl-font); color: var(--sfl-navy); }
.sfl-a-hub__more .sfl-ico { transition: transform .2s ease; }
.sfl-a-hub__card:hover .sfl-a-hub__more .sfl-ico { transform: translateX(4px); }
/* "How they combine" cards (Figma 26 all round, gap 12, title 19/1.2, text 14/1.52). */
.sfl-a-combine { --e-global-typography-sfl_h5-font-size: 19px; --e-global-typography-sfl_h5-line-height: 1.2em; --e-global-typography-sfl_h5-letter-spacing: 0; --e-global-typography-sfl_small-line-height: 1.52em; }
@media (max-width: 1024px) { .sfl-a-hub { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
	.sfl-a-hub { grid-template-columns: 1fr; }
	.sfl-a-hub__letter { font-size: 32px; }
	.sfl-a-hub__title { font-size: 20px; }
	.sfl-a-combine { --e-global-typography-sfl_h5-font-size: 18px; }
}

/* =========================================================================
   Pillar template (D/pillar-template 83:231)
   ========================================================================= */
.sfl-a-hero {
	position: relative; isolation: isolate; display: flex; align-items: flex-end;
	padding: 145px 24px 72px; background: var(--sfl-navy) center / cover no-repeat; overflow: hidden;
}
.sfl-a-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(75deg, rgba(16, 40, 74, .85) 0%, rgba(16, 40, 74, .25) 100%); }
.sfl-a-hero__inner { width: 100%; max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.sfl-a-hero__inner > * { max-width: 820px; }
.sfl-a-hero__title { font: 800 56px/1.04 var(--sfl-font-h); letter-spacing: -.03em; color: #fff; }
.sfl-a-hero__lead { font-size: 18px; line-height: 1.6; color: #fff; max-width: 680px; }
.sfl-a-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.sfl-a-hero .sfl-button .sfl-ico--play { width: 14px; height: 14px; }

.sfl-a-what { display: grid; grid-template-columns: minmax(0, 616fr) minmax(0, 520fr); gap: 64px; align-items: stretch; }
.sfl-a-what__text { display: flex; flex-direction: column; justify-content: flex-start; gap: 20px; }
.sfl-a-what__title { font: 800 40px/1.06 var(--sfl-font-h); letter-spacing: -.025em; color: var(--sfl-navy); }
.sfl-a-what__body { font-size: 17px; line-height: 1.6; color: var(--sfl-muted); }
.sfl-a-what__body p + p { margin-top: 12px; }
.sfl-a-what__img { min-height: 460px; border-radius: 24px; background: var(--sfl-ice) center / cover no-repeat; }
.sfl-a-chips-stat { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.sfl-a-chips-stat li { display: inline-flex; align-items: baseline; gap: 8px; padding: 10px 18px 10px 16px; border-radius: 999px; background: var(--sfl-ice); color: var(--sfl-navy); }
.sfl-a-chips-stat strong { font: 800 22px/22px var(--sfl-font-h); letter-spacing: -.01em; }
.sfl-a-chips-stat span { font: 600 13px/1.2 var(--sfl-font); }

.sfl-a-sessions { display: flex; flex-direction: column; gap: 48px; }
.sfl-a-weeks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 16px; }
.sfl-a-week { display: flex; flex-direction: column; gap: 12px; }
.sfl-film-card.sfl-a-week__card { aspect-ratio: auto; min-height: 200px; height: 200px; padding: 14px; }
.sfl-a-week__foot { display: flex; align-items: center; gap: 10px; }
.sfl-a-week__foot .sfl-play { position: static; width: 32px; height: 32px; }
.sfl-a-week__list { list-style: none; margin: 0; padding: 0 0 0 4px; display: flex; flex-direction: column; gap: 6px; }
.sfl-a-week__list li { display: flex; line-height: 17px; }
.sfl-a-week__list a { display: inline-flex; align-items: center; gap: 8px; font: 500 13px/17px var(--sfl-font); color: var(--sfl-navy); text-decoration: none; }
.sfl-a-week__list a:hover span { text-decoration: underline; }
.sfl-a-sessions .sfl-film-grid { gap: 48px 16px; }

.sfl-a-coach { display: flex; align-items: center; gap: 28px; padding: 28px 36px 28px 28px; border-radius: 28px; background: var(--sfl-sky); }
.sfl-a-coach .sfl-a-coach__img { flex: none; width: 180px; height: 225px; border-radius: 20px; object-fit: cover; object-position: center top; }
.sfl-a-coach__text { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.sfl-a-coach__text .sfl-eyebrow { color: var(--sfl-rose); }
.sfl-a-coach__quote { margin: 0; padding: 0; border: 0; font: 600 22px/1.35 var(--sfl-font-h); color: var(--sfl-navy); }
.sfl-a-coach__cred { font-size: 14px; line-height: 1.5; color: var(--sfl-ink2); }

.sfl-a-skis { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.sfl-a-skis li { display: flex; }
.sfl-a-skis__tile { flex: 1; display: flex; flex-direction: column; gap: 14px; padding: 22px; border-radius: 22px; background: var(--sfl-ice); text-decoration: none; transition: box-shadow .2s ease, transform .2s ease; }
a.sfl-a-skis__tile:hover { box-shadow: var(--sfl-shadow); transform: translateY(-3px); }
.sfl-a-skis__tile.is-current { background: var(--sfl-navy); }
.sfl-a-skis__top { display: flex; align-items: center; gap: 12px; }
.sfl-a-skis__thumb { flex: none; width: 56px; height: 56px; border-radius: 14px; background: var(--sfl-ice) center / cover no-repeat; }
.sfl-a-skis__letter { font: 800 44px/1 var(--sfl-font-h); color: var(--sfl-coral); }
.is-current .sfl-a-skis__letter { min-width: 74px; }
.sfl-a-skis__here { padding: 6px 12px; line-height: 13px !important; border-radius: 999px; background: var(--sfl-coral); color: var(--sfl-navy); font: 700 11px/1.3 var(--sfl-font); white-space: nowrap; }
.sfl-a-skis__arrow { margin-left: auto; color: var(--sfl-navy); display: inline-flex; transition: transform .2s ease; }
a.sfl-a-skis__tile:hover .sfl-a-skis__arrow { transform: translateX(4px); }
.sfl-a-skis__title { font: 700 20px/1.2 var(--sfl-font-h); color: var(--sfl-navy); }
.sfl-a-skis__coach { font: 600 13px/1.3 var(--sfl-font); color: var(--sfl-muted); }
.is-current .sfl-a-skis__title { color: #fff; }
.is-current .sfl-a-skis__coach { color: var(--sfl-ondark); }

/* Dynamic CTA band texts (pillar template). */
.sfl-a-cta-title { font: 800 44px/1.06 var(--sfl-font-h); letter-spacing: -.025em; color: #fff; }
.sfl-a-cta-text { font-size: 16px; line-height: 1.55; color: #fff; }

@media (max-width: 1024px) {
	.sfl-a-hero { padding: 120px 32px 56px; }
	.sfl-a-hero__title { font-size: 44px; }
	.sfl-a-what { grid-template-columns: 1fr; gap: 32px; }
	.sfl-a-what__img { min-height: 380px; }
	.sfl-a-what__title { font-size: 34px; }
	.sfl-a-weeks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sfl-a-skis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sfl-a-head { flex-direction: column; align-items: flex-start; gap: 20px; }
	.sfl-a-head__left { flex-basis: auto; }
	.sfl-a-cta-title { font-size: 36px; }
}
@media (max-width: 767px) {
	.sfl-a-hero { padding: 96px 20px 32px; }
	.sfl-a-hero__title { font-size: 32px; }
	.sfl-a-hero__lead { font-size: 16px; }
	.sfl-a-hero__actions { width: 100%; flex-direction: column; gap: 14px; }
	.sfl-a-hero__actions .sfl-button { width: 100%; }
	.sfl-a-what { gap: 24px; }
	.sfl-a-what__title { font-size: 28px; }
	.sfl-a-what__body { font-size: 16px; }
	.sfl-a-what__img { min-height: 310px; }
	.sfl-a-chips-stat { gap: 10px; }
	.sfl-a-chips-stat li { width: 100%; }
	.sfl-a-chips-stat strong { font-size: 20px; line-height: 20px; }
	.sfl-a-sessions { gap: 32px; }
	.sfl-a-weeks, .sfl-a-sessions .sfl-film-grid { grid-template-columns: 1fr; gap: 16px; }
	.sfl-a-weeks > .sfl-a-week:nth-child(4) { margin-top: 16px; }
	.sfl-a-head { gap: 24px; }
	.sfl-a-head__intro { font-size: 16px; }
	.sfl-a-coach { flex-direction: column; align-items: stretch; gap: 24px; padding: 28px 24px 28px 28px; }
	.sfl-a-coach .sfl-a-coach__img { width: 100%; height: 225px; }
	.sfl-a-coach__quote { font-size: 20px; }
	.sfl-a-skis__tile { gap: 14px; }
	.sfl-a-skis { grid-template-columns: 1fr; }
	.sfl-a-skis__letter, .is-current .sfl-a-skis__letter { font-size: 32px; min-width: 0; }
	.sfl-a-skis__arrow { margin-left: 0; }
	.sfl-a-skis__title { font-size: 18px; }
	.sfl-a-cta-title { font-size: 30px; }
}

/* =========================================================================
   Your year (D/your-year 84:2) — phase rows
   ========================================================================= */
.sfl-a-phase { scroll-margin-top: 110px; --e-global-typography-sfl_row_title-font-size: 28px; --e-global-typography-sfl_row_title-line-height: 1.12em; --e-global-typography-sfl_body_s-line-height: 1.58em; }
/* Figma: number 44/1 in an 80px column (mobile 32/1, full width). */
.sfl-a-phase .sfl-a-phase__n { width: 80px; --e-global-typography-sfl_h2-line-height: 1em; }
@media (max-width: 767px) {
	.sfl-a-phase { --e-global-typography-sfl_row_title-font-size: 22px; }
	.sfl-a-phase .sfl-a-phase__n { width: 100%; }
}
.sfl-a-phase .elementor-widget-image img { width: 100%; }
.sfl-a-open { display: inline-flex; align-items: center; gap: 6px; font: 600 14px/1.5 var(--sfl-font); color: var(--sfl-navy); text-decoration: none; }
.sfl-a-open:hover { text-decoration: underline; text-underline-offset: 3px; }
.sfl-a-open .sfl-ico { transition: transform .2s ease; }
.sfl-a-open:hover .sfl-ico { transform: translateX(4px); }

/* =========================================================================
   Inside the club (D/films 84:200)
   ========================================================================= */
/* Figma filter row is 100 tall (chips and search centred in it). */
.sfl-a-filters { display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; min-height: 100px; }
.sfl-a-filters__chips { display: flex; flex-wrap: wrap; gap: 12px; }
.sfl-a-chip { min-height: 34px; padding: 8px 14px; border: 0; border-radius: 999px; background: var(--sfl-ice); color: var(--sfl-navy); font: 600 13px/1.4 var(--sfl-font); cursor: pointer; transition: background-color .15s, color .15s, box-shadow .15s; }
.sfl-a-chip:hover { box-shadow: inset 0 0 0 1.5px var(--sfl-coral); background: var(--sfl-ice); color: var(--sfl-navy); }
.sfl-a-chip.is-active, .sfl-a-chip.is-active:hover { background: var(--sfl-navy); color: #fff; box-shadow: none; }
.sfl-a-chip:focus { background: var(--sfl-ice); color: var(--sfl-navy); }
.sfl-a-chip.is-active:focus { background: var(--sfl-navy); color: #fff; }
.sfl-a-search { display: inline-flex; align-items: center; gap: 8px; min-height: 43px; padding: 0 16px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--sfl-line); color: var(--sfl-muted); }
.sfl-a-search:focus-within { box-shadow: inset 0 0 0 1.5px var(--sfl-navy), 0 0 0 3px rgba(156, 200, 236, .55); }
.sfl-a-search input { width: 150px; border: 0; padding: 10px 0; background: transparent; font: 400 14px/1.4 var(--sfl-font); color: var(--sfl-navy); outline: none; box-shadow: none; }
.sfl-a-search input::placeholder { color: var(--sfl-muted); opacity: 1; }

.sfl-a-featured { display: grid; grid-template-columns: minmax(0, 760fr) minmax(0, 420fr); gap: 20px; }
.sfl-a-featured__story { display: flex; }
.sfl-a-featured__story .sfl-story-card { min-height: 528px; }
.sfl-a-featured__list { justify-content: space-between; }
.sfl-a-featured__list .sfl-snippet { min-height: 96px; padding: 10px 16px 10px 10px; }
.sfl-a-featured__list .sfl-snippet__text { flex: 1 1 0; min-width: 0; gap: 3px; }
.sfl-a-featured__list .sfl-snippet__text strong { line-height: 1.25; }
.sfl-a-featured__list .sfl-snippet__text span { line-height: 18px; }

.sfl-a-library .sfl-film-grid { gap: 48px 16px; }
.sfl-a-library .sfl-film-card[hidden] { display: none !important; }
/* Figma library card: 220 tall, padding 14. */
.sfl-a-library .sfl-film-card, .sfl-a-sessions .sfl-film-grid .sfl-film-card { aspect-ratio: auto; height: 220px; padding: 14px; }
.sfl-a-library__empty { padding: 24px; border-radius: 18px; background: #fff; color: var(--sfl-muted); text-align: center; }
.sfl-a-pager { display: flex; justify-content: center; gap: 8px; margin-top: 48px; }
.sfl-a-pager__btn { width: 36px; height: 36px; min-height: 36px; padding: 0; border: 0; border-radius: 50%; background: #fff; color: var(--sfl-navy); font: 600 13px/1 var(--sfl-font); cursor: pointer; }
.sfl-a-pager__btn:hover, .sfl-a-pager__btn:focus { background: var(--sfl-pink); color: var(--sfl-navy); }
.sfl-a-pager__btn.is-current, .sfl-a-pager__btn.is-current:hover { background: var(--sfl-navy); color: #fff; }

.sfl-a-shorts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.sfl-a-shorts__card { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; height: 320px; padding: 16px; border-radius: 18px; overflow: hidden; color: #fff; text-decoration: none; background: var(--sfl-navy); }
.sfl-a-shorts__img { position: absolute; inset: 0; z-index: -2; background: center / cover no-repeat; transition: transform .4s ease; }
.sfl-a-shorts__card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(16, 40, 74, 0) 40%, rgba(16, 40, 74, .85) 100%); }
a.sfl-a-shorts__card:hover .sfl-a-shorts__img { transform: scale(1.04); }
.sfl-a-shorts__text { display: flex; flex-direction: column; gap: 4px; }
.sfl-a-shorts__text strong { font: 700 15px/1.3 var(--sfl-font-h); }
.sfl-a-shorts__text span { display: inline-flex; align-items: center; gap: 6px; font: 600 11px/1.3 var(--sfl-font); }

@media (max-width: 1024px) {
	.sfl-a-featured { grid-template-columns: 1fr; }
	.sfl-a-featured__story .sfl-story-card { min-height: 420px; }
	.sfl-a-shorts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.sfl-a-library .sfl-film-grid { gap: 24px 16px; }
}
@media (max-width: 767px) {
	.sfl-a-filters { min-height: 0; gap: 8px; }
	.sfl-a-filters__chips { gap: 8px; }
	.sfl-a-featured__list .sfl-snippet__img { width: 120px; height: 76px; }
	.sfl-a-search { flex: 0 1 auto; }
	.sfl-a-search input { width: 140px; }
	.sfl-a-featured__story .sfl-story-card { min-height: 320px; }
	.sfl-a-library .sfl-film-grid { gap: 16px; }
	/* Figma groups the mobile library in threes, 32 apart. */
	.sfl-a-library .sfl-film-card.sfl-a-grp { margin-top: 16px; }
	.sfl-a-pager { margin-top: 32px; }
	.sfl-a-shorts { grid-template-columns: 1fr; }
	.sfl-a-shorts__card { height: 280px; }
}

/* =========================================================================
   Sven & Lou (D/sven-and-lou 85:2)
   ========================================================================= */
.sfl-a-profile { scroll-margin-top: 90px; --e-global-typography-sfl_body-line-height: 1.62em; }
/* Figma role line 18/1.3 (mobile 17). */
.sfl-a-profile .sfl-a-role { --e-global-typography-sfl_h5-font-size: 18px; --e-global-typography-sfl_h5-line-height: 1.3em; --e-global-typography-sfl_h5-letter-spacing: 0px; }
.sfl-a-cred { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.sfl-a-cred li { padding: 6px 12px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--sfl-line); font: 600 12px/1.5 var(--sfl-font); color: var(--sfl-navy); }
.sfl-a-service { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 23px; border-radius: 20px; background: #fff; box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-a-service__title { display: flex; align-items: center; gap: 10px; font: 700 18px/22px var(--sfl-font-h); color: var(--sfl-navy); }
.sfl-a-service__text { font-size: 14px; line-height: 1.55; color: var(--sfl-muted); }
.sfl-a-service .sfl-a-ticks li { line-height: 20px; }
.sfl-a-fill { height: 100%; }
.sfl-a-fill .elementor-widget-container, .sfl-a-fill img { height: 100% !important; }
.sfl-a-fill img { min-height: 520px; width: 100%; object-fit: cover; object-position: center top; border-radius: 28px; }
/* Figma tile: p24, number 48/1, gap 4, label 14/1.5, 1px white 14% stroke. */
.sfl-a-stat-tile { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); --e-global-typography-sfl_stat-font-size: 48px; --e-global-typography-sfl_stat-line-height: 1em; --e-global-typography-sfl_label-line-height: 1.5em; }
@media (max-width: 1024px) {
	.sfl-a-fill img { min-height: 0; height: 520px !important; }
}
@media (max-width: 767px) {
	.sfl-a-fill img { height: 414px !important; }
	.sfl-a-service__title { font-size: 17px; line-height: 20px; align-items: flex-start; }
	.sfl-a-profile { --e-global-typography-sfl_body-font-size: 16px; }
	.sfl-a-profile .sfl-a-role { --e-global-typography-sfl_h5-font-size: 17px; }
	.sfl-a-service .sfl-button { width: 100%; }
	.sfl-a-stat-tile { --e-global-typography-sfl_stat-font-size: 32px; }
}
@media (max-width: 767px) {
	.sfl-a-btnrow .elementor-widget-button, .sfl-a-btnrow .elementor-widget-shortcode { width: 100%; }
	.sfl-a-btnrow .elementor-button, .sfl-a-btnrow .sfl-button { width: 100%; justify-content: center; }
}
.sfl-a-portrait > .sfl-a-fill { flex: 1 1 auto; }
#lou .sfl-a-fill img { object-position: 30% top; }
.sfl-page-header .elementor-widget-shortcode .sfl-button[data-sfl-story] { width: auto; }
/* min-height + aspect-ratio on .sfl-film-card makes a card wider than its grid column at 768–900px. */
.sfl-a-library .sfl-film-card, .sfl-a-sessions .sfl-film-grid .sfl-film-card { min-height: 0; min-width: 0; }
@media (min-width: 768px) and (max-width: 1024px) {
	.sfl-a-fill img { max-width: 440px; }
}
