/* =========================================================================
   Page group B: For ski companies, Journal + article template, Research, Membership, Questions,
   Contact, Privacy / Cookies / Terms, 404.  Figma page 59:2 (D/… desktop, M/… mobile).
   Classes are prefixed .sfl-b-.  Markup: build/elementor/pages/b-*.php, build/elementor/templates-b.php,
   inc/pages-b.php.
   ========================================================================= */

/* ---------- shared ---------- */
.sfl-b-btnrow .elementor-widget-button { flex: none; }
.sfl-b-todo { color: var(--sfl-rose); font-weight: 600; }
.sfl-b-grid > .e-con { height: 100%; }
.sfl-b-num .elementor-heading-title { font-size: 32px; }
.sfl-b-rule-eyebrow { display: inline-flex; align-items: center; gap: 10px; font: 700 13px/1.3 var(--sfl-font); letter-spacing: .1em; text-transform: uppercase; color: var(--sfl-rose); margin: 0; }
.sfl-b-rule-eyebrow::before { content: ""; width: 28px; height: 2px; border-radius: 1px; background: var(--sfl-coral); flex: none; }
@media (max-width: 767px) {
	.sfl-b-btnrow .elementor-widget-button, .sfl-b-btnrow .elementor-button { width: 100%; }
	.sfl-b-btnrow .elementor-button { justify-content: center; }
	.sfl-b-num .elementor-heading-title { font-size: 28px; }
}

/* Contact and 404 have a photo header in Figma but a light site header (see report): no extra top offset. */
body.sfl-page-contact.sfl-header-light #content,
body.sfl-page-contact.sfl-header-light .elementor-location-header + *,
body.error404.sfl-header-light #content,
body.error404.sfl-header-light .elementor-location-header + * { padding-top: 0; }

/* ---------- PRO Elements forms (.sfl-form.sfl-b-form) ---------- */
.sfl-b-form .elementor-form-fields-wrapper { margin-bottom: 0; }
.sfl-b-form .elementor-field-group .elementor-field-label { font: 600 13px/1.4 var(--sfl-font); color: var(--sfl-navy); padding: 0; }
.sfl-b-form .elementor-field-group:not(.elementor-field-type-upload) .elementor-field:not(.elementor-select-wrapper) { min-height: 53px; }
.sfl-b-form .elementor-field-group .elementor-field::placeholder { color: var(--sfl-muted); opacity: 1; }
.sfl-b-form .elementor-field-group .elementor-field:hover { border-color: var(--sfl-muted); }
.sfl-b-form .elementor-field-group .elementor-field.elementor-select-wrapper { border: 0; padding: 0; min-height: 0; background: none; box-shadow: none; }
.sfl-b-form .select-caret-down-wrapper { display: none; }
.sfl-b-form .elementor-select-wrapper select { width: 100%; min-height: 53px; padding: 14px 44px 14px 16px; border: 1px solid var(--sfl-line); border-radius: 12px; background: #fff; font: 400 15px/1.4 var(--sfl-font); color: var(--sfl-navy); }
.sfl-b-form .elementor-select-wrapper.sfl-select select { position: absolute; }
.sfl-b-form textarea.elementor-field { min-height: 110px; resize: vertical; }
.sfl-b-form .elementor-field-type-acceptance .elementor-field-subgroup { display: block; }
.sfl-b-form .elementor-field-type-acceptance .elementor-field-option { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; width: 100%; }
.sfl-b-form .elementor-field-group .elementor-acceptance-field {
	appearance: none; -webkit-appearance: none; width: 18px; height: 18px; min-height: 0 !important; margin: 1px 0 0; padding: 0;
	border: 1.5px solid var(--sfl-muted); border-radius: 4px; background: #fff; cursor: pointer;
}
.sfl-b-form .elementor-field-group .elementor-acceptance-field:checked {
	border-color: var(--sfl-navy);
	background: var(--sfl-navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 13px no-repeat;
}
.sfl-b-form .elementor-field-type-acceptance label { font: 400 13px/1.55 var(--sfl-font); color: var(--sfl-muted); cursor: pointer; padding: 0; }
.sfl-b-form .elementor-field-type-acceptance label a { color: var(--sfl-navy); font-weight: 600; }
.sfl-b-form .e-form__buttons { justify-content: flex-start; margin-top: 4px; }
.sfl-b-form .e-form__buttons .elementor-button {
	flex: none; width: auto; min-height: 54px; padding: 18px 30px; border: 0; border-radius: 999px;
	background: var(--sfl-coral); color: var(--sfl-navy); font: 600 15px/1.2 var(--sfl-font); text-transform: none; letter-spacing: 0;
	transition: background-color .15s ease, box-shadow .2s ease;
}
.sfl-b-form--navy .e-form__buttons .elementor-button { background: var(--sfl-navy); color: #fff; }
.sfl-b-form .e-form__buttons .elementor-button:hover { background: var(--sfl-coral-h); box-shadow: 0 8px 20px rgba(16, 40, 74, .18); }
.sfl-b-form--navy .e-form__buttons .elementor-button:hover { background: var(--sfl-navy-h); color: #fff; }
.sfl-b-form .e-form__buttons .elementor-button-content-wrapper { display: inline-flex; align-items: center; gap: 10px; }
.sfl-b-form .e-form__buttons .elementor-button-content-wrapper::after {
	content: ""; width: 18px; height: 18px; flex: none; background: currentColor; transition: transform .2s ease;
	-webkit-mask: var(--sfl-b-mask) center / 18px no-repeat; mask: var(--sfl-b-mask) center / 18px no-repeat;
	--sfl-b-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='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}
.sfl-b-form--mail .e-form__buttons .elementor-button-content-wrapper::after {
	--sfl-b-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='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3.5 6.5 8.5 6.5 8.5-6.5'/%3E%3C/svg%3E");
}
.sfl-b-form .e-form__buttons .elementor-button:hover .elementor-button-content-wrapper::after { transform: translateX(4px); }
.sfl-b-form .elementor-message { margin-top: 12px; font-size: 14px; }
.sfl-b-form .elementor-message.elementor-message-danger { color: var(--sfl-err); }
.sfl-b-form .elementor-message.elementor-message-success { color: var(--sfl-ok); }
.sfl-b-form .elementor-message::before { display: none; }
.sfl-b-form .elementor-error .elementor-field:not(.elementor-select-wrapper),
.sfl-b-form .elementor-error .elementor-acceptance-field,
.sfl-b-form .elementor-error .sfl-select__button { border: 1.5px solid var(--sfl-err); }
.sfl-b-form .elementor-field-group .help-inline { display: block; margin-top: 6px; font-size: 13px; color: var(--sfl-err); }
@media (max-width: 767px) {
	.sfl-b-form .e-form__buttons .elementor-button { width: 100%; justify-content: center; }
}
.sfl-b-formcard--white { box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-b-formnote { font-size: 12px; }

/* ---------- journal hub ---------- */
.sfl-b-journal { display: flex; flex-direction: column; gap: 40px; scroll-margin-top: 110px; }
.sfl-b-chips ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.sfl-b-chip { display: inline-flex; align-items: center; min-height: 34px; padding: 8px 14px; border-radius: 999px; background: var(--sfl-ice); color: var(--sfl-navy); font: 600 13px/1.2 var(--sfl-font); text-decoration: none; transition: background-color .15s, color .15s; }
.sfl-b-chip:hover { background: var(--sfl-line); color: var(--sfl-navy); }
.sfl-b-chip.is-active { background: var(--sfl-navy); color: #fff; }
.sfl-b-empty { font-size: 16px; }
.sfl-b-featured { display: grid; grid-template-columns: 1fr 1fr; border-radius: 28px; overflow: hidden; background: var(--sfl-ice); min-height: 384px; margin-bottom: 72px; }
.sfl-b-featured__img { display: block; background: var(--sfl-line) center / cover no-repeat; min-height: 300px; }
.sfl-b-featured__text { display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: 14px; padding: 40px; }
.sfl-b-featured__cat { font: 700 11px/1.5 var(--sfl-font); letter-spacing: .08em; text-transform: uppercase; color: var(--sfl-rose); }
.sfl-b-featured__title { font: 800 32px/1.12 var(--sfl-font-h); letter-spacing: -.02em; }
.sfl-b-featured__title a { color: var(--sfl-navy); text-decoration: none; }
.sfl-b-featured__title a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.sfl-b-featured__excerpt { font-size: 15px; line-height: 1.58; color: var(--sfl-muted); }
.sfl-b-featured__meta, .sfl-b-card__meta { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; line-height: 1.5; color: var(--sfl-muted); }
.sfl-b-featured .sfl-button { margin-top: 0; }

/* ---------- post cards ---------- */
.sfl-b-posts { display: grid; gap: 20px; }
.sfl-b-posts--grid, .sfl-b-posts--plain, .sfl-b-posts--row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sfl-b-posts--grid { row-gap: 48px; }
.sfl-b-card { text-decoration: none; color: var(--sfl-navy); display: flex; min-width: 0; }
.sfl-b-card__img { display: block; flex: none; background: var(--sfl-ice) center / cover no-repeat; }
.sfl-b-card__text { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.sfl-b-card__cat { font: 700 11px/1.5 var(--sfl-font); letter-spacing: .08em; text-transform: uppercase; color: var(--sfl-rose); }
.sfl-b-card__title { font: 700 19px/1.22 var(--sfl-font-h); letter-spacing: 0; color: var(--sfl-navy); }
.sfl-b-card--grid { flex-direction: column; border-radius: 24px; overflow: hidden; background: #fff; box-shadow: inset 0 0 0 1px var(--sfl-line); transition: box-shadow .2s ease, transform .2s ease; }
.sfl-b-card--grid .sfl-b-card__img { height: 220px; margin: 1px 1px 0; }
.sfl-b-card--grid .sfl-b-card__text { padding: 20px 22px 22px; flex: 1; }
.sfl-b-card--grid .sfl-b-card__meta { padding-top: 0; }
.sfl-b-card--grid:hover, .sfl-b-card--row:hover { box-shadow: var(--sfl-shadow); transform: translateY(-4px); }
.sfl-b-card--plain { flex-direction: column; gap: 14px; }
.sfl-b-card--plain .sfl-b-card__img { height: 220px; border-radius: 20px; transition: transform .3s ease; }
.sfl-b-card--plain:hover .sfl-b-card__title { text-decoration: underline; text-underline-offset: 3px; }
.sfl-b-card--row { gap: 14px; align-items: center; padding: 12px 18px 12px 12px; min-height: 104px; border-radius: 20px; background: #fff; transition: box-shadow .2s ease, transform .2s ease; }
.sfl-b-card--row .sfl-b-card__img { width: 96px; height: 80px; border-radius: 12px; }
.sfl-b-card--row .sfl-b-card__text { gap: 4px; }
.sfl-b-card--row .sfl-b-card__cat { font-size: 10px; line-height: 1.5; }
.sfl-b-card--row .sfl-b-card__title { font: 600 14px/1.26 var(--sfl-font-h); }
.sfl-b-card--row .sfl-b-card__meta { font-size: 11px; }
@media (max-width: 1024px) {
	.sfl-b-posts--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sfl-b-posts--plain { gap: 16px; }
	.sfl-b-card--plain .sfl-b-card__img { height: 160px; }
	.sfl-b-card--plain .sfl-b-card__title { font-size: 16px; }
	.sfl-b-posts--row { grid-template-columns: 1fr; }
	.sfl-b-featured__text { padding: 32px; }
}
@media (max-width: 767px) {
	.sfl-b-journal { gap: 28px; }

	.sfl-b-featured { grid-template-columns: 1fr; gap: 16px; min-height: 0; border-radius: 28px; margin-bottom: 24px; }
	.sfl-b-featured__img { min-height: 0; height: 224px; }
	.sfl-b-featured__text { padding: 40px 24px; gap: 14px; }
	.sfl-b-featured__title { font-size: 24px; }
	.sfl-b-featured .sfl-button { align-self: stretch; }
	.sfl-b-posts--grid, .sfl-b-posts--plain { grid-template-columns: 1fr; row-gap: 20px; }
	.sfl-b-posts--grid > .sfl-b-card:nth-child(3n+4) { margin-top: 12px; }
	.sfl-b-card--grid .sfl-b-card__img { height: 200px; }
	.sfl-b-card--grid .sfl-b-card__title { font-size: 18px; }
	.sfl-b-card--grid .sfl-b-card__title, .sfl-b-card--plain .sfl-b-card__title { font-size: 18px; }
	.sfl-b-card--plain .sfl-b-card__img { height: 200px; }
	.sfl-b-posts--row { gap: 12px; }
}

/* ---------- letter band ---------- */
.sfl-b-letter { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: flex-end; }
.sfl-b-letter input[type="email"] { flex: 1 1 230px; max-width: 240px; min-height: 49px; padding: 12px 18px; border: 0; border-radius: 999px; background: #fff; font: 400 15px/1.4 var(--sfl-font); color: var(--sfl-navy); }
.sfl-b-letter input[type="email"]::placeholder { color: var(--sfl-muted); opacity: 1; }
.sfl-b-letter input[type="email"]:focus { outline: none; box-shadow: 0 0 0 2px var(--sfl-navy), 0 0 0 5px rgba(156, 200, 236, .55); }
.sfl-b-letter input[aria-invalid="true"] { box-shadow: 0 0 0 1.5px var(--sfl-err); }
.sfl-b-letter__err { flex: 1 0 100%; font-size: 13px; color: var(--sfl-err); text-align: right; }
@media (max-width: 1024px) { .sfl-b-letter { justify-content: flex-start; } .sfl-b-letter__err { text-align: left; } }
@media (max-width: 767px) {
	.sfl-b-letter { flex-direction: column; align-items: stretch; }
	.sfl-b-letter input[type="email"] { max-width: none; flex: none; text-align: center; }
	.sfl-b-letter .sfl-button { width: 100%; }
}

/* ---------- article template ---------- */
.sfl-b-article-head { display: flex; flex-direction: column; gap: 16px; }
.sfl-b-article-title { font: 800 52px/1.04 var(--sfl-font-h); letter-spacing: -.025em; color: var(--sfl-navy); max-width: 900px; }
.sfl-b-byline { display: flex; align-items: center; gap: 12px; min-height: 36px; font: 600 13px/1.5 var(--sfl-font); color: var(--sfl-muted); }
.sfl-b-avatar { width: 36px; height: 36px; border-radius: 999px; object-fit: cover; flex: none; box-shadow: 0 0 0 2px #fff; }
.sfl-b-avatar--ini { display: inline-flex; align-items: center; justify-content: center; background: var(--sfl-navy); color: #fff; font: 700 12px/1 var(--sfl-font); }
.sfl-b-article-image { margin: 0; }
.sfl-b-article-image img { display: block; width: 100%; height: 480px; object-fit: cover; border-radius: 28px; }
.sfl-b-prose { color: #1B2A41; font-size: 17px; line-height: 1.68; }
.sfl-b-prose > * { margin: 0; }
.sfl-b-prose > * + * { margin-top: 20px; }
.sfl-b-prose p { margin-bottom: 0; }
.sfl-b-prose h2 { font: 700 26px/1.18 var(--sfl-font-h); letter-spacing: -.01em; color: var(--sfl-navy); scroll-margin-top: 110px; }
.sfl-b-prose h3 { font: 700 20px/1.3 var(--sfl-font-h); color: var(--sfl-navy); }
.sfl-b-prose a { color: var(--sfl-navy); font-weight: 600; text-underline-offset: 3px; }
.sfl-b-prose ul, .sfl-b-prose ol { padding-left: 22px; }
.sfl-b-prose li + li { margin-top: 8px; }
.sfl-b-prose img { border-radius: 20px; }
.sfl-b-prose blockquote { display: flex; flex-direction: column; gap: 8px; padding: 24px 28px 24px 24px; border-left: 4px solid var(--sfl-coral); border-radius: 20px; background: var(--sfl-ice); } /* Figma quote: 4px coral left stroke, radius 20 */
.sfl-b-prose blockquote p { margin: 0; font: 600 20px/1.4 var(--sfl-font-h); color: var(--sfl-navy); }
.sfl-b-prose blockquote cite { display: block; font: 600 13px/1.5 var(--sfl-font); font-style: normal; color: var(--sfl-rose); }
.sfl-b-tags { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; } /* 20 gap + 8 padding */
.sfl-b-tags a, .sfl-b-tags span { display: inline-flex; align-items: center; min-height: 30px; padding: 6px 12px; line-height: 18px !important; border-radius: 999px; background: var(--sfl-ice); color: var(--sfl-navy); font: 600 12px/1.2 var(--sfl-font); text-decoration: none; }
.sfl-b-tags a:hover { background: var(--sfl-line); }
.sfl-b-sidebar { display: flex; flex-direction: column; gap: 16px; }
.sfl-b-side { border-radius: 20px; padding: 20px 24px; display: flex; flex-direction: column; gap: 10px; font-size: 14px; line-height: 1.52; }
.sfl-b-side--navy { background: var(--sfl-navy); color: var(--sfl-ondark); padding: 24px; gap: 12px; }
.sfl-b-side--navy .sfl-button { align-self: flex-start; }
.sfl-b-side--line { box-shadow: inset 0 0 0 1px var(--sfl-line); background: #fff; }
.sfl-b-side--ice { background: var(--sfl-ice); gap: 12px; }
.sfl-b-side--pink { background: var(--sfl-pink); color: var(--sfl-ink2); gap: 10px; }
.sfl-b-side__title { font: 700 20px/1.2 var(--sfl-font-h); color: #fff; }
.sfl-b-side__kicker { font: 700 11px/1.5 var(--sfl-font); letter-spacing: .08em; text-transform: uppercase; color: var(--sfl-rose); }
.sfl-b-side__name { font: 700 16px/1.2 var(--sfl-font-h); color: var(--sfl-navy); }
.sfl-b-side__bio { font-size: 13px; line-height: 1.5; }
.sfl-b-side--pink .sfl-textlink { line-height: 20px; }
.sfl-b-toc { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.sfl-b-toc li { line-height: 20px; }
.sfl-b-toc a { font: 500 14px/1.4 var(--sfl-font); color: var(--sfl-navy); text-decoration: none; }
.sfl-b-toc a:hover { color: var(--sfl-rose); text-decoration: underline; }
.sfl-b-related { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.sfl-b-card--mini { gap: 12px; align-items: center; }
.sfl-b-card--mini .sfl-b-card__img { width: 64px; height: 48px; border-radius: 8px; }
.sfl-b-card--mini .sfl-b-card__text { gap: 2px; }
.sfl-b-card--mini .sfl-b-card__title { font: 600 13px/1.35 var(--sfl-font); }
.sfl-b-card--mini .sfl-b-card__meta { font-size: 11px; }
.sfl-b-card--mini:hover .sfl-b-card__title { text-decoration: underline; }
@media (max-width: 1024px) {
	.sfl-b-article-title { font-size: 40px; }
	.sfl-b-article-image img { height: 380px; }
}
@media (max-width: 767px) {
	.sfl-b-article-head { gap: 14px; }
	.sfl-b-article-title { font-size: 32px; line-height: 1.04; }
	.sfl-b-byline { align-items: flex-start; font-size: 12px; }
	.sfl-b-avatar { width: 30px; height: 30px; }
	.sfl-b-article-image img { height: 240px; border-radius: 28px; }
	.sfl-b-prose { font-size: 16px; line-height: 1.68; }
	.sfl-b-prose h2 { font-size: 22px; }
	.sfl-b-prose blockquote p { font-size: 18px; }
	.sfl-b-side__title { font-size: 18px; }
	.sfl-b-side--navy .sfl-button { align-self: stretch; }
}

/* ---------- membership plans ---------- */
.sfl-b-plans { display: flex; flex-direction: column; gap: 40px; scroll-margin-top: 110px; }
.sfl-b-stones { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.sfl-b-stones li { display: flex; align-items: center; gap: 12px; font: 700 12px/1.5 var(--sfl-font); letter-spacing: .06em; text-transform: uppercase; color: var(--sfl-muted); }
.sfl-b-stones li::before { content: ""; flex: none; width: 10px; height: 10px; border-radius: 50%; box-shadow: inset 0 0 0 2px var(--sfl-coral); }
.sfl-b-stones li::after { content: ""; flex: 1; height: 1px; background: var(--sfl-line); min-width: 12px; }
.sfl-b-stones li.is-on { color: var(--sfl-rose); }
.sfl-b-stones li.is-on::before { width: 16px; height: 16px; background: var(--sfl-coral); box-shadow: none; }
.sfl-b-plans__row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.sfl-b-plan { display: flex; flex-direction: column; gap: 18px; padding: 32px 26px 26px; border-radius: 28px; background: #fff; box-shadow: inset 0 0 0 1px var(--sfl-line); color: var(--sfl-muted); }
.sfl-b-plan--ice { background: var(--sfl-ice); box-shadow: none; }
.sfl-b-plan--navy { background: var(--sfl-navy); box-shadow: none; color: var(--sfl-ondark2, #DCE6F2); }
.sfl-b-plan__badge { align-self: flex-start; margin-bottom: -4px; padding: 5px 10px; border-radius: 999px; background: var(--sfl-coral); color: var(--sfl-navy); font: 700 11px/1.3 var(--sfl-font); }
.sfl-b-plan__name { font: 700 20px/1.25 var(--sfl-font-h); color: var(--sfl-navy); }
.sfl-b-plan__price { font: 800 44px/1 var(--sfl-font-h); letter-spacing: -.02em; color: var(--sfl-navy); display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; }
.sfl-b-plan__price--sm { font-size: 34px; }
.sfl-b-plan__price span { font: 600 14px/1.3 var(--sfl-font); letter-spacing: 0; color: var(--sfl-muted); }
.sfl-b-plan__lead { font-size: 15px; line-height: 1.55; padding-bottom: 18px; border-bottom: 1px solid var(--sfl-line); }
.sfl-b-plan--ice .sfl-b-plan__lead { border-color: rgba(16, 40, 74, .1); }
.sfl-b-plan--navy .sfl-b-plan__name, .sfl-b-plan--navy .sfl-b-plan__price { color: #fff; }
.sfl-b-plan--navy .sfl-b-plan__price span { color: var(--sfl-ondark); }
.sfl-b-plan--navy .sfl-b-plan__lead { border-color: rgba(255, 255, 255, .14); }
.sfl-b-plan__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.sfl-b-plan__list li { position: relative; padding-left: 18px; font-size: 15px; line-height: 1.45; color: var(--sfl-navy); }
.sfl-b-plan__list li::before { content: ""; position: absolute; left: 0; top: .5em; width: 6px; height: 6px; border-radius: 50%; background: var(--sfl-coral); }
.sfl-b-plan--navy .sfl-b-plan__list li { color: #fff; }
.sfl-b-plan__cta { margin-top: auto; padding-top: 12px; }
.sfl-b-plan__cta .sfl-button { width: 100%; }
@media (max-width: 1024px) {
	.sfl-b-plans__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sfl-b-stones { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.sfl-b-stones { grid-template-columns: 1fr; gap: 12px; }
	.sfl-b-plans__row { grid-template-columns: 1fr; gap: 16px; }
	.sfl-b-plan { padding: 24px 18px 22px; border-radius: 24px; }
	.sfl-b-plan__price { font-size: 36px; }
	.sfl-b-plan__price--sm { font-size: 28px; }
}

/* "Growing through the season" strip */
.sfl-b-season-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.sfl-b-season-list li { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.45; color: var(--sfl-navy); }
.sfl-b-season-list .sfl-ico { color: var(--sfl-rose); margin-top: 1px; }
@media (max-width: 1024px) { .sfl-b-season-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .sfl-b-season-list { grid-template-columns: 1fr; gap: 14px; } }

/* ---------- FAQ accordion ---------- */
.sfl-b-faq { display: flex; flex-direction: column; gap: 10px; }
.sfl-b-q { border-radius: 20px; background: #fff; box-shadow: inset 0 0 0 1px var(--sfl-line); transition: background-color .15s; }
.sfl-b-faq--ice .sfl-b-q { box-shadow: none; }
.sfl-b-q[open] { background: var(--sfl-ice); box-shadow: none; }
.sfl-b-faq--ice .sfl-b-q[open] { background: transparent; box-shadow: none; }
.sfl-b-q summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 70px; padding: 18px 22px 18px 24px; cursor: pointer; border-radius: 20px; }
.sfl-b-q summary::-webkit-details-marker { display: none; }
.sfl-b-q summary:focus-visible { outline: 2px solid var(--sfl-navy); outline-offset: 2px; }
.sfl-b-q__title { font: 600 17px/1.35 var(--sfl-font-h); color: var(--sfl-navy); }
.sfl-b-q summary:hover .sfl-b-q__title { text-decoration: underline; text-underline-offset: 3px; }
.sfl-b-q__icon { flex: none; position: relative; width: 28px; height: 28px; border-radius: 50%; background: var(--sfl-ice); }
.sfl-b-q__icon::before, .sfl-b-q__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 11px; height: 1.8px; border-radius: 1px; background: var(--sfl-navy); transform: translate(-50%, -50%); transition: transform .2s ease; }
.sfl-b-q__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.sfl-b-q[open] .sfl-b-q__icon { background: var(--sfl-navy); }
.sfl-b-q[open] .sfl-b-q__icon::before, .sfl-b-q[open] .sfl-b-q__icon::after { background: #fff; }
.sfl-b-q[open] .sfl-b-q__icon::after { transform: translate(-50%, -50%) rotate(0deg); }
.sfl-b-q__body { padding: 0 24px 22px; margin-top: -6px; font-size: 15px; line-height: 1.6; color: var(--sfl-muted); }
.sfl-b-q__body p + p { margin-top: 10px; }
.sfl-b-q__body a { color: var(--sfl-navy); font-weight: 600; }
@media (max-width: 767px) {
	.sfl-b-q summary { min-height: 56px; padding: 14px 16px; }
	.sfl-b-q__title { font-size: 15px; }
	.sfl-b-q__body { padding: 0 16px 18px; font-size: 14px; }
}

/* ---------- contact cards ---------- */
.sfl-b-linkcards { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.sfl-b-linkcard { display: flex; align-items: center; gap: 14px; min-height: 72px; padding: 16px; border-radius: 16px; background: var(--sfl-ice); color: var(--sfl-navy); text-decoration: none; transition: box-shadow .2s ease, background-color .15s; }
a.sfl-b-linkcard:hover { box-shadow: var(--sfl-shadow); background: #fff; }
.sfl-b-linkcard__ico { flex: none; width: 40px; height: 40px; border-radius: 50%; background: #fff; display: inline-flex; align-items: center; justify-content: center; color: var(--sfl-navy); }
.sfl-b-linkcard__text { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sfl-b-linkcard__text strong { font: 600 15px/1.3 var(--sfl-font-h); }
.sfl-b-linkcard__text span { font-size: 13px; line-height: 1.45; color: var(--sfl-muted); overflow-wrap: anywhere; }
.sfl-b-linkcard__go { flex: none; color: var(--sfl-navy); line-height: 0; }

/* ---------- legal pages ---------- */
.sfl-b-legal-meta { font-size: 14px; color: var(--sfl-muted); }
.sfl-b-legal__body h2 { font: 700 22px/1.2 var(--sfl-font-h); color: var(--sfl-navy); margin: 26px 0 8px; }
.sfl-b-legal__body h2:first-child { margin-top: 0; }
.sfl-b-legal__body p, .sfl-b-legal__body li { font-size: 15px; line-height: 25px; color: #1B2A41; }
.sfl-b-legal__body p { margin: 0 0 8px; }
.sfl-b-legal__body p:last-child { margin-bottom: 0; }
.sfl-b-legal__body ul { margin: 0 0 10px; padding-left: 20px; }
.sfl-b-legal__body a { color: var(--sfl-navy); font-weight: 600; }
.sfl-b-legal__body .sfl-b-table-wrap { overflow-x: auto; margin: 6px 0 10px; border-radius: 14px; box-shadow: inset 0 0 0 1px var(--sfl-line); }
.sfl-b-legal__body table { width: 100%; min-width: 640px; margin: 0; border: 0; border-collapse: collapse; font-size: 14px; line-height: 1.5; color: #1B2A41; }
.sfl-b-legal__body table th, .sfl-b-legal__body table td { text-align: left; vertical-align: top; padding: 12px 14px; border: 0; border-bottom: 1px solid var(--sfl-line); background: transparent; }
.sfl-b-legal__body table tbody > tr:nth-child(odd) > td, .sfl-b-legal__body table tbody > tr:nth-child(even) > td, .sfl-b-legal__body table tbody tr:hover > td { background: transparent; }
.sfl-b-legal__body table tbody tr:last-child td { border-bottom: 0; }
.sfl-b-legal__body table th { font: 700 12px/1.3 var(--sfl-font); letter-spacing: .06em; text-transform: uppercase; color: var(--sfl-rose); background: var(--sfl-ice); }
.sfl-b-consent-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 14px 24px; border-radius: 999px; background: var(--sfl-navy); color: #fff; font: 600 15px/1.2 var(--sfl-font); cursor: pointer; }
.sfl-b-consent-btn.sfl-linkbtn:hover, .sfl-b-consent-btn.sfl-linkbtn:focus { background: var(--sfl-navy-h); color: #fff; text-decoration: none; }
.sfl-b-note { display: flex; gap: 12px; align-items: flex-start; padding: 16px 20px; border-radius: 14px; background: var(--sfl-pink); color: var(--sfl-ink2); font-size: 13px; line-height: 1.55; }
.sfl-b-note .sfl-ico { color: var(--sfl-navy); margin-top: 1px; }
@media (max-width: 767px) {
	.sfl-b-legal__body h2 { font-size: 20px; }
	.sfl-b-legal__body table th, .sfl-b-legal__body table td { padding: 10px; }
}

/* ---------- 404 ---------- */
.elementor .sfl-b-404-code .elementor-heading-title { font-size: 140px !important; line-height: 1 !important; letter-spacing: -.03em !important; }
.sfl-b-quicklinks ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.sfl-b-quicklinks a { display: inline-flex; align-items: center; min-height: 36px; padding: 8px 14px; border-radius: 999px; background: rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); color: #fff; font: 600 13px/1.2 var(--sfl-font); text-decoration: none; transition: background-color .15s; }
.sfl-b-quicklinks a:hover { background: rgba(255, 255, 255, .28); }
.sfl-b-404 :focus-visible { outline-color: #fff; }
@media (max-width: 767px) {
	.elementor .sfl-b-404-code .elementor-heading-title { font-size: 84px !important; }
	.sfl-b-quicklinks ul { justify-content: flex-start; gap: 10px; }
}

/* ---------- small fixed bits ---------- */
.sfl-b-icon-round { flex: none; width: 52px; height: 52px; border-radius: 50%; background: var(--sfl-navy); color: #fff; display: inline-flex; align-items: center; justify-content: center; }
.sfl-b-icon-round--white { width: 48px; height: 48px; background: #fff; color: var(--sfl-navy); }
.sfl-b-ext-btn .elementor-button-content-wrapper::after { -webkit-mask-image: 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"); mask-image: 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-b-ext-btn .elementor-button:hover .elementor-button-content-wrapper::after { transform: none; }

/* ---------- research ---------- */
.elementor .sfl-b-stat .elementor-widget-heading .elementor-heading-title { font-size: 72px !important; line-height: 1 !important; }
.sfl-b-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.sfl-b-checks li { position: relative; padding-left: 30px; font-size: 16px; line-height: 1.55; color: var(--sfl-navy); }
.sfl-b-checks li::before { content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; background: var(--sfl-rose); -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='M4.5 12.5l5 5L19.5 7'/%3E%3C/svg%3E") center / 18px 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='M4.5 12.5l5 5L19.5 7'/%3E%3C/svg%3E") center / 18px no-repeat; }
@media (max-width: 1024px) { .elementor .sfl-b-stat .elementor-widget-heading .elementor-heading-title { font-size: 56px !important; } }
@media (max-width: 767px) {
	.elementor .sfl-b-stat .elementor-widget-heading .elementor-heading-title { font-size: 44px !important; }
	.sfl-b-checks li { font-size: 15px; }
}

/* ---------- membership extras ---------- */
.sfl-b-season { display: flex; align-items: center; gap: 28px; padding: 28px; border-radius: 22px; background: var(--sfl-ice); }
.sfl-b-season__title { flex: none; white-space: nowrap; font: 700 16px/1.3 var(--sfl-font-h); color: var(--sfl-navy); }
.sfl-b-season .sfl-b-season-list { flex: 1; }
.sfl-b-extbtn .sfl-button { white-space: nowrap; }
@media (max-width: 1024px) { .sfl-b-season { flex-direction: column; align-items: flex-start; gap: 18px; } .sfl-b-season__title { width: auto; } }
@media (max-width: 767px) {
	.sfl-b-season { padding: 22px 18px; }
	.sfl-b-extbtn .sfl-button { width: 100%; }
}
@media (max-width: 767px) {
	.sfl-b-fullmobile, .sfl-b-fullmobile .elementor-button { width: 100%; }
	.sfl-b-fullmobile .elementor-button { justify-content: center; }
}
@media (max-width: 767px) {
	.sfl-b-ask .e-con.sfl-auto, .sfl-b-trip .e-con.sfl-auto { width: 100%; flex: 1 1 100%; }
	.sfl-b-q__title { font-size: 16px; }
}
/* Cookie table: stacked rows on phones (no sideways scrolling). */
@media (max-width: 767px) {
	.sfl-b-legal__body table { min-width: 0; }
	.sfl-b-legal__body thead { display: none; }
	.sfl-b-legal__body table tr { display: block; padding: 12px 0; border-bottom: 1px solid var(--sfl-line); }
	.sfl-b-legal__body table tbody tr:last-child { border-bottom: 0; }
	.sfl-b-legal__body table td { display: block; padding: 3px 14px; border: 0; }
	.sfl-b-legal__body table td:nth-child(3)::before { content: "Examples: "; font-weight: 700; color: var(--sfl-navy); }
	.sfl-b-legal__body table td:nth-child(4)::before { content: "How long: "; font-weight: 700; color: var(--sfl-navy); }
}

/* =========================================================================
   Figma pixel audit (AUDIT.md) — sizes the kit globals don't carry exactly.
   ========================================================================= */
/* Hero lead width per Figma frame (default 620 from site.css). */
.elementor .sfl-b-lead-680 .e-con > .elementor-widget.sfl-page-header__lead,
.elementor .sfl-b-lead-680 .sfl-page-header__lead .elementor-widget-container { max-width: 680px; }
.elementor .sfl-b-lead-560 .e-con > .elementor-widget.sfl-page-header__lead,
.elementor .sfl-b-lead-560 .sfl-page-header__lead .elementor-widget-container { max-width: 560px; }
/* Icon cards (For ski companies): title 18/22, text 14/21. */
.elementor .elementor-element.sfl-b-tile-title.sfl-b-tile-title .elementor-heading-title { font-size: 18px; line-height: 22px; letter-spacing: 0; }
/* Numbered step cards: number 32/32, title 19/23, text 14/21. */
.elementor .sfl-b-stepcard .elementor-element.sfl-b-num.sfl-b-num .elementor-heading-title { font-size: 32px; line-height: 32px; }
.elementor .elementor-element.sfl-b-step-title.sfl-b-step-title .elementor-heading-title { font-size: 19px; line-height: 23px; }
/* Forms: label 13/16, 8px to the field, 53px fields, 110px message, consent 13/19. */
.sfl-b-form .elementor-field-group .elementor-field-label { line-height: 16px; margin-bottom: 0; }
.sfl-b-form .elementor-field-group { margin-bottom: 16px; }
.sfl-b-form textarea.elementor-field { height: 110px; min-height: 110px; }
.sfl-b-form .elementor-field-type-acceptance label { line-height: 19px; }
.sfl-b-form .e-form__buttons { margin-top: 0; }
.sfl-b-form .elementor-field-group.e-form__buttons { margin-bottom: 0; }
@media (max-width: 767px) {
	.elementor .elementor-element.sfl-b-tile-title.sfl-b-tile-title .elementor-heading-title { font-size: 17px; line-height: 20px; }
	.elementor .sfl-b-stepcard .elementor-element.sfl-b-num.sfl-b-num .elementor-heading-title { font-size: 24px; line-height: 24px; }
	.elementor .elementor-element.sfl-b-step-title.sfl-b-step-title .elementor-heading-title { font-size: 18px; line-height: 22px; }
	.sfl-b-form textarea.elementor-field { height: 76px; min-height: 76px; }
}
/* Mobile type per the M/ frames: eyebrows 13px and section intros 16px (kit mobile values are 12 / 15 — see report).
   Scoped to this group's pages; remove once the kit globals carry the Figma mobile sizes. */
@media (max-width: 767px) {
	:is(.sfl-page-for-ski-companies, .sfl-page-journal, .sfl-page-research, .sfl-page-membership, .sfl-page-questions, .sfl-page-contact, .sfl-page-privacy, .sfl-page-cookies, .sfl-page-terms, .single-post, .error404) .elementor .elementor-element.sfl-eyebrow-rule .elementor-heading-title { font-size: 13px; letter-spacing: 1.3px; }
	:is(.sfl-page-for-ski-companies, .sfl-page-journal, .sfl-page-research, .sfl-page-membership, .sfl-page-questions, .sfl-page-contact, .single-post) .elementor .sfl-section-head .elementor-widget-text-editor { font-size: 16px; }
}
/* Journal letter band: title 36/1.06 (mobile 24), form input 230 + button, gap 10 (mobile stacked, gap 12). */
.elementor .elementor-element.sfl-b-letter-title.sfl-b-letter-title .elementor-heading-title { font-size: 36px; line-height: 1.06; }
.sfl-b-letter { flex-wrap: nowrap; }
.sfl-b-letter input[type="email"] { flex: 1 1 230px; min-width: 0; max-width: 230px; }
.sfl-b-letter .sfl-button { flex: none; }
@media (max-width: 767px) {
	.elementor .elementor-element.sfl-b-letter-title.sfl-b-letter-title .elementor-heading-title { font-size: 24px; }
	.sfl-b-letter { gap: 12px; }
	.sfl-b-letter input[type="email"] { flex: none; max-width: none; }
}
@media (max-width: 1024px) { .sfl-b-letter { flex-wrap: wrap; } }
/* Article breadcrumb: one line, long titles truncated (Figma shows a short crumb). */
.sfl-b-article .sfl-crumbs ol { flex-wrap: nowrap; min-width: 0; }
.sfl-b-article .sfl-crumbs li { flex: none; }
.sfl-b-article .sfl-crumbs li[aria-current] { flex: 0 1 auto; min-width: 0; display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sfl-b-article .sfl-crumbs li[aria-current]::before { display: inline-block; margin: 0 10px 1px 0; vertical-align: middle; }
/* Research (D/research 132:242, M 173:3274). */
.elementor .sfl-b-askcard .elementor-element.sfl-b-num.sfl-b-num .elementor-heading-title { font-size: 28px; line-height: 28px; }
.elementor .sfl-b-askcard .elementor-element.sfl-b-step-title.sfl-b-step-title .elementor-heading-title { font-size: 20px; line-height: 25px; }
.sfl-b-askcard .sfl-b-step-text { line-height: 1.53; }
.sfl-b-stat .sfl-b-stat-text { line-height: 1.5; }
.elementor .elementor-element.sfl-b-data-title.sfl-b-data-title .elementor-heading-title { font-size: 40px; line-height: 1.06; }
.sfl-b-checks { gap: 18px; }
.sfl-b-checks li { line-height: 1.56; }
body.sfl-page-research .elementor .e-con.sfl-cta-band { --padding-top: 64px; --padding-bottom: 64px; }
.sfl-b-card--plain .sfl-b-card__img { height: 220px; }
@media (max-width: 767px) {
	.elementor .sfl-b-askcard .elementor-element.sfl-b-num.sfl-b-num .elementor-heading-title { font-size: 22px; line-height: 22px; }
	.elementor .sfl-b-askcard .elementor-element.sfl-b-step-title.sfl-b-step-title .elementor-heading-title { font-size: 18px; line-height: 23px; }
	.elementor .sfl-b-stat .elementor-widget-heading .elementor-heading-title { font-size: 44px !important; }
	.elementor .elementor-element.sfl-b-data-title.sfl-b-data-title .elementor-heading-title { font-size: 28px; }
	.sfl-b-checks li { padding-left: 32px; }
	body.sfl-page-research .elementor .e-con.sfl-cta-band { --padding-top: 32px; --padding-bottom: 32px; }
	.sfl-b-card--plain .sfl-b-card__img { height: 199px; }
}
@media (max-width: 767px) { .elementor .sfl-b-stat .elementor-element.sfl-b-stat-text { font-size: 16px; } }
/* Membership (D/membership 86:2, M 173:3495). */
.sfl-b-plan { padding: 30px 26px; }
.sfl-b-plan__badge { margin-bottom: 0; padding: 6px 12px; line-height: 13px; }
.sfl-b-plan__list li { line-height: 1.4; }
.sfl-b-plan__cta { padding-top: 0; }
.sfl-b-stones li { gap: 12px; line-height: 18px; }
.sfl-b-stones li::before { width: 16px; height: 16px; box-shadow: inset 0 0 0 2px var(--sfl-coral); }
.sfl-b-stones li.is-on::before { width: 22px; height: 22px; }
.sfl-b-stones li::after { height: 2px; }
.sfl-b-season { gap: 28px; padding: 24px 28px; }
.sfl-b-season__title { width: 235px; white-space: normal; line-height: 1.3; }
.sfl-b-season-list { gap: 28px; }
.sfl-b-season-list li { line-height: 1.4; }
.elementor .elementor-element.sfl-b-trip-title.sfl-b-trip-title .elementor-heading-title { font-size: 22px; line-height: 1.2; }
.elementor .elementor-element.sfl-b-trip-text.sfl-b-trip-text { line-height: 1.52; }
.sfl-b-q summary { min-height: 0; padding: 20px 24px; }
.sfl-b-q[open] summary { padding-bottom: 10px; }
.sfl-b-q__title { line-height: 1.3; }
.sfl-b-q__body { margin-top: 0; padding: 0 24px 20px; line-height: 1.58; }
@media (max-width: 1024px) { .sfl-b-season__title { width: auto; } }
@media (max-width: 767px) {
	.sfl-b-stones { gap: 20px; }
	.sfl-b-plan__name { font-size: 18px; }
	.sfl-b-plan__price { font-size: 32px; }
	.sfl-b-plan__price--sm { font-size: 24px; }
	.sfl-b-season { gap: 24px; padding: 24px 28px; }
	.elementor .elementor-element.sfl-b-trip-title.sfl-b-trip-title .elementor-heading-title { font-size: 20px; }
	.sfl-b-q summary { padding: 20px 24px; }
	.sfl-b-q[open] summary { padding-bottom: 10px; }
	.sfl-b-q__title { font-size: 16px; }
	.sfl-b-q__body { padding: 0 24px 20px; font-size: 15px; }
}
.sfl-b-plan__cta { padding-top: 19px; }
.sfl-b-plan__price { align-items: flex-end; }
.sfl-b-plan__price span { line-height: 17px; margin-bottom: 4px; }
.sfl-b-q:not([open]) summary { padding-top: 21px; padding-bottom: 21px; }
@media (max-width: 767px) {
	.sfl-b-plan__cta { padding-top: 26px; }
	.sfl-b-plan__price span { margin-bottom: 2px; }
	.sfl-b-q:not([open]) summary { padding-top: 21px; padding-bottom: 21px; }
}
/* Questions (D/questions 87:2, M 173:6182). */
.elementor .elementor-element.sfl-b-faq-title.sfl-b-faq-title .elementor-heading-title { font-size: 28px; line-height: 1.1; }
.elementor .elementor-element.sfl-b-ask-title.sfl-b-ask-title .elementor-heading-title { font-size: 20px; line-height: 1.28; }
@media (max-width: 767px) {
	.elementor .elementor-element.sfl-b-faq-title.sfl-b-faq-title .elementor-heading-title { font-size: 22px; }
	.elementor .elementor-element.sfl-b-ask-title.sfl-b-ask-title .elementor-heading-title { font-size: 18px; }
}
/* Contact (D/contact 87:186, M 173:6379). */
.sfl-b-linkcard { padding: 16px 18px; min-height: 72px; }
.sfl-b-linkcard__text strong { line-height: 19px; }
.sfl-b-linkcard__text span { line-height: 19px; }
body.sfl-page-contact .sfl-b-form textarea.elementor-field { height: 120px; min-height: 120px; }
.elementor .elementor-element.sfl-b-formnote.sfl-b-formnote { line-height: 1.45; }
@media (max-width: 767px) { body.sfl-page-contact .sfl-b-form textarea.elementor-field { height: 76px; min-height: 76px; } }
/* Legal (D/legal-template 87:350, M 173:6688) and 404 (D/404 87:474, M 173:6815). */
.elementor .elementor-element.sfl-b-legal-title.sfl-b-legal-title .elementor-heading-title { font-size: 48px; line-height: 1.04; }
.sfl-b-legal-meta { line-height: 1.5; }
.sfl-b-note p { line-height: 1.5; }
.elementor .sfl-b-404-code .elementor-heading-title { line-height: .9 !important; }
.elementor .elementor-element.sfl-b-404-text.sfl-b-404-text { max-width: 560px; line-height: 1.58; }
.sfl-b-404-chips { padding-top: 12px; }
@media (max-width: 767px) {
	.elementor .elementor-element.sfl-b-legal-title.sfl-b-legal-title .elementor-heading-title { font-size: 32px; }
	.elementor .sfl-b-404-code .elementor-heading-title { font-size: 64px !important; }
	.elementor .elementor-element.sfl-b-404-title.sfl-b-404-title .elementor-heading-title { font-size: 32px; }
	.elementor .elementor-element.sfl-b-404-text.sfl-b-404-text { font-size: 16px; }
	.sfl-b-quicklinks ul { gap: 12px; }
}
