.sf {
	--sf-cream: #F8F4EB;
	--sf-gold: #C7A26B;               /* placeholder: column titles */
	--sf-dim: rgba(248, 244, 235, .6);
	--sf-rule: rgba(248, 244, 235, .35);
	--sf-dark: #241A12;               /* placeholder: footer base */

	position: relative;
	isolation: isolate;
	overflow: hidden;
	width: 100%;
	color: var(--sf-cream);
	background: var(--sf-dark);
}
.sf a {  text-decoration: none; }
.sf ul { list-style: none; margin: 0; padding: 0; }

/* Background photo + fade to dark */
.sf__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; z-index: -2; }
.sf--overlay::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(36,26,18,.15) 0%, rgba(36,26,18,.3) 45%, rgba(36,26,18,.92) 68%, var(--sf-dark) 100%);
}

/* Call to action */
.sf__cta { text-align: center; padding: clamp(80px, 8.5vw, 112px) 24px clamp(140px, 24vw, 330px); }
.sf__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	font: 400 clamp(11px, .95vw, 13px)/1 'Jost', sans-serif;
	letter-spacing: .16em;
	text-transform: uppercase;
}
.sf__line { display: block; width: 28px; height: 1px; background: currentColor; }
.sf__cta-title {
	margin: 24px auto 40px;
	max-width: 900px;
	font: 300 clamp(38px, 5.2vw, 84px)/1.17 'Cormorant Garamond', serif;
	text-transform: uppercase;
	color: var(--sf-cream);
}
.sf__btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 46px;
	padding: 0 28px;
	background: var(--sf-cream);
	color: var(--sf-dark);
	font: 400 11px/1 'Jost', sans-serif;
	letter-spacing: .16em;
	text-transform: uppercase;
	border-radius: 2px;
	transition: background .2s ease;
}
.sf__btn:hover { background: #fff; }
.sf a:focus-visible, .sf button:focus-visible, .sf input:focus-visible { outline: 1px solid var(--sf-cream); outline-offset: 3px; }

/* Columns */
 
.sf__grid {
	display: grid;
	grid-template-columns: 340fr 203fr 271fr 249fr;
	column-gap: 35px;
	align-items: start;
}
.sf__logo { display: inline-block; font: 400 20px/1 'Cormorant Garamond', serif; }
.sf__logo img { display: block; width: auto; max-width: 110px; height: auto; }
.sf__tagline { margin: 26px 0 0; max-width: 270px; font: 300 clamp(15px, 1.25vw, 17px)/1.6 'Jost', sans-serif; color: var(--sf-dim); }

.sf__title { margin: 0 0 22px; font: 400 11px/1.2 'Jost', sans-serif; letter-spacing: .16em; text-transform: uppercase; color: var(--sf-gold); }
.sf__list { display: grid; gap: 14px; }
.sf__list li, .sf__list a, .sf__list span { font: 300 clamp(15px, 1.25vw, 16px)/1.6 'Jost', sans-serif; }
.sf__list a { transition: opacity .2s ease; }
.sf__list a:hover { opacity: .7; }

.sf__social { display: flex; gap: 14px; margin-top: 14px !important; }
.sf__social a { display: grid; place-items: center; width: 20px; height: 20px; }
.sf__social img { width: 16px; height: 16px; object-fit: contain; }

/* Newsletter */
.sf__news-text { margin: -6px 0 14px; max-width: 260px; font: 300 12px/1.5 'Jost', sans-serif; color: var(--sf-dim); }
.sf__form { display: flex; gap: 8px; max-width: 290px; }
.sf__form input[type="email"] {
	flex: 1;
	min-width: 0;
	height: 40px;
	padding: 0 14px;
	border: 1px solid var(--sf-rule);
	border-radius: 8px;
	background: transparent;
	color: var(--sf-cream);
	font: 300 13px/1 'Jost', sans-serif;
}
.sf__form input::placeholder { color: var(--sf-dim); }
.sf__form button {
	height: 40px;
	padding: 0 18px;
	border: 0;
	border-radius: 999px;
	background: #fff;
	color: var(--sf-dark);
	font: 500 13px/1 'Jost', sans-serif;
	cursor: pointer;
	transition: background .2s ease;
}
.sf__form button:hover { background: var(--sf-cream); }
.sf__hp { position: absolute; left: -9999px; opacity: 0; }
.sf__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sf__msg { margin: 12px 0 0; font: 300 12px/1.4 'Jost', sans-serif; color: var(--sf-cream); }
.sf__msg--err { color: #F0B8A8; }

/* Bottom bar */
.sf__bottom {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px 24px;
	margin-top: clamp(64px, 8.5vw, 110px);
	padding-top: 22px;
        padding-bottom: 22px;
	border-top: 1px solid var(--sf-rule);
	font: 300 11px/1.4 'Jost', sans-serif;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--sf-dim);
}
.sf__copy { margin: 0; }
.sf__legal { display: flex; flex-wrap: wrap; align-items: center; }
.sf__legal li + li::before { content: "•"; margin: 0 16px; }
.sf__legal a:hover { color: var(--sf-cream); }

/* Tablet */
@media (max-width: 1023px) {
	.sf__inner { padding-inline: 24px; }
	.sf__grid { grid-template-columns: 1fr 1fr; gap: 44px 32px; }
	.sf__brand { grid-column: 1 / -1; }
	.sf__cta { padding-bottom: clamp(120px, 22vw, 220px); }
}

/* Mobile */
@media (max-width: 575px) {
	.sf__grid { grid-template-columns: 1fr; gap: 36px; }
	.sf__cta-title { margin: 20px auto 32px; }
	.sf__form { max-width: none; }
	.sf__bottom { flex-direction: column; align-items: flex-start; }
	.sf__legal li + li::before { margin: 0 12px; }
}