/*
Theme Name: FollowsFashion
Theme URI: https://followsfashion.com/
Author: FollowsFashion
Description: Editorial conversion theme for the Launch Feature Kit.
Version: 0.2.0
Requires at least: 6.5
Requires PHP: 8.1
License: GPL-2.0-or-later
Text Domain: followsfashion
*/

/* 01. Tokens */
@font-face {
	font-family: "Manrope";
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url("assets/fonts/manrope-latin-400-700.woff2") format("woff2");
}

@font-face {
	font-family: "Newsreader";
	font-style: normal;
	font-weight: 400 600;
	font-display: swap;
	src: url("assets/fonts/newsreader-latin-400-600.woff2") format("woff2");
}

:root {
	--color-canvas: #f7f4ee;
	--color-paper: #fff;
	--color-ink: #10100f;
	--color-ink-soft: #3f403c;
	--color-ink-muted: #6d6d67;
	--color-rule: #c9c6be;
	--color-rule-strong: #8b8a84;
	--color-signal: #e33a2c;
	--color-signal-hover: #bf2d22;
	--color-signal-active: #982219;
	--color-sand: #e7ded0;
	--color-success: #1e6a48;
	--color-error: #b42318;
	--color-warning: #8a4b08;
	--color-focus: #1769e0;
	--color-on-dark: #f7f4ee;
	--ff-canvas: var(--color-canvas);
	--ff-paper: var(--color-paper);
	--ff-ink: var(--color-ink);
	--ff-ink-soft: var(--color-ink-soft);
	--ff-rule: var(--color-rule);
	--ff-signal: var(--color-signal);
	--ff-signal-dark: var(--color-signal-hover);
	--ff-sand: var(--color-sand);
	--ff-success: var(--color-success);
	--ff-display: "Newsreader", "Iowan Old Style", "Baskerville", "Times New Roman", serif;
	--ff-body: "Manrope", Arial, "Helvetica Neue", sans-serif;
	--ff-space-1: .25rem;
	--ff-space-2: .5rem;
	--ff-space-3: .75rem;
	--ff-space-4: 1rem;
	--ff-space-5: 1.5rem;
	--ff-space-6: 2rem;
	--ff-space-7: 3rem;
	--ff-space-8: 4rem;
	--ff-space-9: 5rem;
	--ff-space-10: 6rem;
	--ff-space-11: 7.5rem;
	--ff-shell: 1280px;
	--ff-reading: 720px;
	--ff-header-height: 72px;
	--ff-transition: 160ms ease;
}

/* 02. Base */
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--ff-canvas);
	color: var(--ff-ink);
	font: 400 17px/1.62 var(--ff-body);
	-webkit-font-smoothing: antialiased;
	font-synthesis: none;
	text-rendering: optimizeLegibility;
}

body.menu-open { overflow: hidden; }

img { display: block; max-width: 100%; }
a { color: inherit; text-underline-offset: .22em; }
button, input, textarea, select { font: inherit; }

:where(a, button, summary):focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 4px;
}

h1,
h2,
h3,
p { margin-top: 0; }

h1,
h2,
h3 {
	font-family: var(--ff-display);
	font-weight: 500;
	letter-spacing: -.025em;
	font-optical-sizing: auto;
}

h1 {
	font-size: clamp(3rem, 6.2vw, 5.5rem);
	line-height: .96;
	margin-bottom: var(--ff-space-5);
}

h2 {
	font-size: clamp(2.25rem, 4vw, 3.5rem);
	line-height: 1;
	margin-bottom: var(--ff-space-5);
}

h3 {
	font-size: clamp(1.35rem, 2.2vw, 1.8rem);
	line-height: 1.1;
	margin-bottom: var(--ff-space-3);
}

.ff-skip-link {
	position: fixed;
	top: -5rem;
	left: var(--ff-space-4);
	z-index: 1000;
	background: var(--ff-ink);
	color: var(--ff-paper);
	padding: var(--ff-space-3) var(--ff-space-4);
}

.ff-skip-link:focus { top: var(--ff-space-4); }

/* 03. Layout */
.ff-shell {
	width: min(100% - 80px, var(--ff-shell));
	margin-inline: auto;
}

.ff-section { padding-block: clamp(var(--ff-space-8), 8vw, var(--ff-space-11)); }
.ff-section--compact { padding-block: clamp(var(--ff-space-7), 5vw, var(--ff-space-9)); }
.ff-section--paper { background: var(--ff-paper); }
.ff-section--sand { background: var(--ff-sand); }
.ff-reading { max-width: var(--ff-reading); }

.ff-grid-12 {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: var(--ff-space-5);
}

.ff-kicker,
.eyebrow {
	margin-bottom: var(--ff-space-4);
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .13em;
	line-height: 1.2;
	text-transform: uppercase;
}

.ff-lede {
	max-width: 680px;
	font-size: clamp(1.125rem, 1.7vw, 1.3rem);
	line-height: 1.5;
	color: var(--ff-ink-soft);
}

.ff-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--ff-space-4);
	margin-top: var(--ff-space-6);
}

/* 04. Header / navigation */
.ff-header {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid var(--ff-rule);
	background: color-mix(in srgb, var(--ff-canvas) 94%, transparent);
}

.ff-header__inner {
	display: flex;
	min-height: var(--ff-header-height);
	align-items: center;
	justify-content: space-between;
	gap: var(--ff-space-5);
}

.ff-wordmark {
	display: inline-flex;
	align-items: baseline;
	font-family: var(--ff-display);
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: -.055em;
	line-height: 1;
	text-decoration: none;
}

.ff-wordmark span:last-child {
	font-weight: 600;
	border-bottom: 2px solid var(--ff-signal);
}

.ff-header__actions,
.ff-nav__list {
	display: flex;
	align-items: center;
	gap: var(--ff-space-5);
}

.ff-nav__list,
.ff-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ff-nav a {
	font-size: .88rem;
	font-weight: 600;
	text-decoration: none;
}

.ff-nav a:hover,
.ff-nav .current-menu-item > a,
.ff-nav .current_page_item > a,
.ff-nav a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 2px; }
.ff-nav__mobile-cta { display: none; }

.ff-header__apply {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	padding-inline: 22px;
	border: 1px solid var(--ff-signal);
	background: var(--ff-signal);
	color: var(--ff-paper);
	font-size: .88rem;
	font-weight: 700;
	text-decoration: none;
}

.ff-menu-toggle {
	display: none;
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	gap: var(--ff-space-2);
	border: 0;
	background: transparent;
	color: var(--ff-ink);
	cursor: pointer;
}

.ff-menu-toggle__icon { display: grid; gap: 5px; width: 20px; }
.ff-menu-toggle__icon i { display: block; height: 1px; background: currentColor; transition: transform var(--ff-transition); }

/* 05. Components */
.ff-button {
	display: inline-flex;
	min-height: 52px;
	align-items: center;
	justify-content: space-between;
	gap: var(--ff-space-6);
	padding: .8rem 1.15rem;
	border: 1px solid var(--ff-ink);
	border-radius: 2px;
	font-size: .9rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	transition: background var(--ff-transition), color var(--ff-transition), border-color var(--ff-transition), transform var(--ff-transition);
}

.ff-button--primary { border-color: var(--ff-signal); background: var(--ff-signal); color: var(--ff-paper); }
.ff-button--primary:hover { border-color: var(--ff-signal-dark); background: var(--ff-signal-dark); transform: translateY(-1px); }
.ff-button--secondary { background: transparent; color: var(--ff-ink); }
.ff-button--secondary:hover { background: var(--ff-ink); color: var(--ff-paper); }
.ff-button[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }

.ff-text-link {
	display: inline-flex;
	align-items: center;
	gap: var(--ff-space-3);
	font-size: .9rem;
	font-weight: 700;
	text-decoration-thickness: 1px;
}

.ff-text-link span:last-child { transition: transform var(--ff-transition); }
.ff-text-link:hover span:last-child { transform: translate(2px, -2px); }

.ff-disclosure-chip {
	display: inline-block;
	padding: .42rem .62rem;
	background: var(--ff-ink);
	color: var(--ff-paper);
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .1em;
	line-height: 1;
	text-transform: uppercase;
}

.ff-disclosure-strip {
	border-top: 1px solid var(--ff-ink);
	border-bottom: 1px solid var(--ff-ink);
	padding-block: var(--ff-space-4);
	font-size: .92rem;
}

.ff-status-card,
.ff-boundary-panel {
	padding: var(--ff-space-6);
	border-left: 4px solid var(--ff-signal);
	background: var(--ff-paper);
}

.ff-status-card p:last-child,
.ff-boundary-panel p:last-child { margin-bottom: 0; }

.ff-proof-strip {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--ff-rule);
	border-bottom: 1px solid var(--ff-rule);
}

.ff-proof-fact { padding: var(--ff-space-5) var(--ff-space-4); border-right: 1px solid var(--ff-rule); }
.ff-proof-fact:last-child { border-right: 0; }
.ff-proof-fact strong { display: block; font-family: var(--ff-display); font-size: 1.65rem; font-weight: 500; }
.ff-proof-fact span { color: var(--ff-ink-soft); font-size: .82rem; }
.ff-proof-strip--two { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: var(--ff-space-7); }

.ff-editorial-image { width: 100%; height: 100%; object-fit: cover; background: var(--ff-sand); }
.ff-editorial-image + noscript,
picture:has(> .ff-editorial-image) { display: block; width: 100%; height: 100%; }
.ff-image-missing { display: grid; width: 100%; height: 100%; min-height: 240px; place-items: center; background: var(--ff-sand); color: var(--color-ink-muted); font-size: .85rem; }
.ff-ratio--portrait { aspect-ratio: 4 / 5; }
.ff-ratio--landscape { aspect-ratio: 16 / 10; }
.ff-ratio--square { aspect-ratio: 1; }

.ff-feature-frame {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--ff-rule);
	background: var(--ff-paper);
	box-shadow: 0 18px 60px rgba(16, 16, 15, .12);
}

.ff-feature-frame__media { aspect-ratio: 4 / 5; overflow: hidden; }
.ff-demo-preview__main .ff-feature-frame__media { aspect-ratio: 16 / 10; }
.ff-feature-frame__body { padding: var(--ff-space-5); }
.ff-feature-frame__body h3 { margin-bottom: var(--ff-space-2); }
.ff-feature-frame__body p { margin-bottom: 0; color: var(--ff-ink-soft); }

.ff-credit-line { margin: var(--ff-space-3) 0 0; color: var(--ff-ink-soft); font-size: .75rem; line-height: 1.4; }

.ff-output-grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: var(--ff-space-5);
}

.ff-output-card { display: flex; flex-direction: column; min-width: 0; border-top: 1px solid var(--ff-ink); padding-top: var(--ff-space-4); }
.ff-output-card__visual { position: relative; margin-bottom: var(--ff-space-5); overflow: hidden; background: var(--ff-sand); }
.ff-output-card__visual--page { aspect-ratio: 16 / 10; }
.ff-output-card__visual--square { aspect-ratio: 1; }
.ff-output-card__visual--story { aspect-ratio: 9 / 16; }
.ff-output-card p { color: var(--ff-ink-soft); }

.ff-process {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--ff-ink);
}

.ff-process-step { position: relative; padding: var(--ff-space-5) var(--ff-space-5) 0 0; }
.ff-process-step__number { display: block; margin-bottom: var(--ff-space-7); color: var(--ff-signal); font-weight: 700; }
.ff-process-step h3 { font-size: 1.45rem; }
.ff-process-step p { color: var(--ff-ink-soft); }

.ff-check-list { list-style: none; margin: 0; padding: 0; }
.ff-check-list li { position: relative; padding: var(--ff-space-4) 0 var(--ff-space-4) var(--ff-space-6); border-top: 1px solid var(--ff-rule); }
.ff-check-list li::before { content: "\2713"; position: absolute; left: 0; color: var(--ff-success); font-weight: 800; }

.ff-faq { border-bottom: 1px solid var(--ff-rule); }
.ff-faq details { border-top: 1px solid var(--ff-rule); }
.ff-faq summary { position: relative; padding: var(--ff-space-5) var(--ff-space-7) var(--ff-space-5) 0; cursor: pointer; font-weight: 700; list-style: none; }
.ff-faq summary::-webkit-details-marker { display: none; }
.ff-faq summary::after { content: "+"; position: absolute; top: var(--ff-space-5); right: 0; color: var(--ff-signal); font-size: 1.4rem; }
.ff-faq details[open] summary::after { content: "\2212"; }
.ff-faq details > div { max-width: 680px; padding-bottom: var(--ff-space-5); color: var(--ff-ink-soft); }

.ff-conversion-panel {
	overflow: hidden;
	background: var(--ff-ink);
	color: var(--ff-paper);
}

.ff-conversion-panel__media { grid-column: 1 / span 5; min-height: 430px; }
.ff-conversion-panel__body { grid-column: 7 / -1; align-self: center; padding: var(--ff-space-8) var(--ff-space-7); }
.ff-conversion-panel__body p { color: #d6d3cd; }

/* 06. Template: hero and home */
.ff-hero { min-height: 720px; align-items: center; }
.ff-hero__copy { grid-column: 1 / span 5; padding-block: var(--ff-space-9); }
.ff-hero__visual { position: relative; grid-column: 7 / -1; align-self: stretch; min-height: 620px; }
.ff-hero__visual > .ff-editorial-image { position: absolute; inset: 0; }
.ff-hero__visual > picture { position: absolute; inset: 0; }
.ff-hero__preview { position: absolute; right: -1px; bottom: var(--ff-space-6); width: min(360px, 72%); padding: var(--ff-space-5); background: var(--ff-paper); box-shadow: -10px 10px 0 var(--ff-signal); }
.ff-hero__preview p { margin-bottom: var(--ff-space-2); }
.ff-hero__preview strong { font-family: var(--ff-display); font-size: 1.5rem; line-height: 1.1; }
.ff-hero__preview .ff-disclosure-chip { margin-bottom: var(--ff-space-4); }
.ff-hero__asset-previews { display: flex; align-items: end; gap: var(--ff-space-3); margin-top: var(--ff-space-4); }
.ff-hero__asset-preview { position: relative; overflow: hidden; border: 1px solid var(--ff-rule); }
.ff-share-asset-label { position: absolute; right: 10px; bottom: 10px; left: 10px; z-index: 2; display: grid; gap: 2px; padding: 9px 10px; background: rgba(247, 245, 239, .94); color: var(--ff-ink); line-height: 1.15; }
.ff-share-asset-label strong { font-size: clamp(.56rem, 1.2vw, .74rem); letter-spacing: -.01em; }
.ff-share-asset-label small { color: var(--ff-ink-soft); font-size: clamp(.5rem, 1vw, .64rem); text-transform: uppercase; letter-spacing: .06em; }
.ff-hero__asset-preview .ff-share-asset-label { inset: auto 4px 4px; padding: 4px; }
.ff-hero__asset-preview .ff-share-asset-label strong { font-size: .36rem; }
.ff-hero__asset-preview .ff-share-asset-label small { font-size: .3rem; }
.ff-hero__asset-preview--square { width: 74px; aspect-ratio: 1; }
.ff-hero__asset-preview--story { width: 48px; aspect-ratio: 9 / 16; }
.ff-trust-line { margin-top: var(--ff-space-5); color: var(--ff-ink-soft); font-size: .82rem; }

.ff-demo-preview__intro { grid-column: 1 / span 4; align-self: end; }
.ff-demo-preview__main { grid-column: 5 / -1; }
.ff-demo-preview__support { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ff-space-5); margin-top: var(--ff-space-5); }
.ff-demo-preview__support figure { margin: 0; }

.ff-split__lead { grid-column: 1 / span 5; }
.ff-split__body { grid-column: 7 / -1; }
.ff-offer-preview { display: grid; grid-template-columns: minmax(0, 2fr) minmax(120px, 1fr); gap: var(--ff-space-5); align-items: end; }
.ff-offer-preview .ff-feature-frame__media { aspect-ratio: 16 / 10; }
.ff-offer-preview__assets { display: grid; gap: var(--ff-space-5); }
.ff-input-columns { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ff-space-6); }
.ff-timeline-note { max-width: 860px; margin-top: var(--ff-space-7); padding-top: var(--ff-space-6); border-top: 1px solid var(--ff-rule-strong); }
.ff-contract-card { border: 1px solid var(--ff-rule); background: var(--ff-paper); }
.ff-contract-card dl { margin: 0; }
.ff-contract-card dl > div { display: grid; grid-template-columns: minmax(120px, .7fr) 2fr; gap: var(--ff-space-5); padding: var(--ff-space-4) var(--ff-space-5); border-top: 1px solid var(--ff-rule); }
.ff-contract-card dl > div:first-child { border-top: 0; }
.ff-contract-card dt { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.ff-contract-card dd { margin: 0; }
.ff-paid-preview .ff-feature-frame__body { padding: var(--ff-space-7); }
.ff-limit-list { list-style: none; margin: 0; padding: 0; }
.ff-limit-list li { padding: var(--ff-space-4) 0; border-top: 1px solid var(--ff-rule); }

/* 07. Template: Demo */
.ff-demo-hero { padding-top: var(--ff-space-7); }
.ff-demo-hero__copy { grid-column: 1 / span 5; align-self: end; padding-bottom: var(--ff-space-7); }
.ff-demo-hero__media { grid-column: 7 / -1; min-height: 760px; }
.ff-demo-page .ff-section { padding-block: 40px; }
.ff-facts { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ff-rule); }
.ff-fact { padding: var(--ff-space-5) var(--ff-space-5) 0 0; }
.ff-fact span { display: block; color: var(--ff-ink-soft); font-size: .76rem; text-transform: uppercase; letter-spacing: .1em; }
.ff-demo-gallery { display: grid; grid-template-columns: repeat(12, 1fr); gap: var(--ff-space-5); }
.ff-demo-gallery > figure { margin: 0; }
.ff-demo-gallery__wide { grid-column: 1 / -1; }
.ff-demo-gallery__wide > .ff-editorial-image { height: auto; aspect-ratio: 16 / 9; }
.ff-demo-gallery__wide > picture > .ff-editorial-image { height: auto; aspect-ratio: 16 / 9; }
.ff-demo-gallery__portrait { grid-column: 1 / span 5; }
.ff-demo-gallery__portrait > .ff-editorial-image { height: auto; aspect-ratio: 4 / 5; }
.ff-demo-gallery__portrait > picture > .ff-editorial-image { height: auto; aspect-ratio: 4 / 5; }
.ff-demo-gallery__movement { grid-column: 7 / -1; }
.ff-demo-gallery__movement > .ff-editorial-image { height: auto; aspect-ratio: 4 / 5; }
.ff-demo-gallery__movement > picture > .ff-editorial-image { height: auto; aspect-ratio: 4 / 5; }
.ff-demo-gallery__details { grid-column: 7 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: var(--ff-space-5); align-self: center; }
.ff-demo-gallery__details figure { margin: 0; }
.ff-demo-gallery__details .ff-editorial-image { aspect-ratio: 1; }
.ff-qa { padding: var(--ff-space-5) 0; border-top: 1px solid var(--ff-rule); }
.ff-qa p { color: var(--ff-ink-soft); }
.ff-demo-qa .ff-qa { padding: 0; }
.ff-demo-qa summary { min-height: 56px; padding: var(--ff-space-4) var(--ff-space-7) var(--ff-space-4) 0; cursor: pointer; font-weight: 700; }
.ff-demo-qa .ff-qa p { padding: 0 0 var(--ff-space-5); }
.ff-demo-story-detail { margin-top: var(--ff-space-7); aspect-ratio: 1; }
.ff-demo-page .ff-demo-story-detail { max-width: 340px; margin-inline: auto; }
.ff-demo-page .ff-demo-gallery__wide picture { max-width: 700px !important; }
.ff-demo-page .ff-demo-gallery__portrait picture,
.ff-demo-page .ff-demo-gallery__movement picture { max-width: 300px !important; }
.ff-highlight-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ff-space-5); }
.ff-highlight-grid__media { aspect-ratio: 3 / 2; margin-bottom: var(--ff-space-5); overflow: hidden; }
.ff-paid-pattern { margin-top: var(--ff-space-7); padding-top: var(--ff-space-6); border-top: 1px solid var(--ff-rule); }
.ff-paid-pattern .ff-disclosure-chip { margin-bottom: var(--ff-space-4); }

/* 08. Template: Apply */
.ff-apply-hero__copy { grid-column: 1 / span 6; }
.ff-apply-hero__aside { grid-column: 8 / -1; align-self: end; }
.ff-application-panel { border: 1px solid var(--ff-rule); background: var(--ff-paper); padding: clamp(var(--ff-space-6), 6vw, var(--ff-space-9)); }
.ff-application-panel__state { display: flex; gap: var(--ff-space-4); align-items: flex-start; }
.ff-application-panel__mark { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 50%; background: var(--ff-sand); font-weight: 800; }
.ff-application-intro { margin-bottom: var(--ff-space-5); }
.ff-form-progress { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ff-space-3); margin-bottom: var(--ff-space-5); }
.ff-form-progress > span { padding-bottom: var(--ff-space-3); border-bottom: 3px solid var(--ff-rule); color: var(--ff-ink-soft); font-size: .8rem; font-weight: 700; }
.ff-form-progress > span[aria-current="step"] { border-color: var(--ff-signal); color: var(--ff-ink); }
.ff-form-progress p { margin-bottom: var(--ff-space-3); }
.ff-form-progress__track { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ff-space-2); }
.ff-form-progress__track span { height: 3px; background: var(--ff-rule); }
.ff-form-progress__track span:first-child { background: var(--ff-signal); }
.ff-next-step { margin-top: var(--ff-space-5); padding: var(--ff-space-5); border-left: 3px solid var(--ff-signal); background: var(--ff-sand); }
.ff-next-step p:last-child { margin-bottom: 0; }
.ff-conversion-panel .ff-button--secondary { border-color: var(--ff-paper); color: var(--ff-paper); }
.ff-conversion-panel .ff-button--secondary:hover { background: var(--ff-paper); color: var(--ff-ink); }

.application-form { display: grid; gap: var(--ff-space-5); }
.application-form fieldset { display: grid; min-width: 0; gap: var(--ff-space-5); margin: 0; padding: 0; border: 0; }
.application-form fieldset[hidden] { display: none; }
.application-form legend { margin-bottom: var(--ff-space-3); padding: 0; font-family: var(--ff-display); font-size: clamp(1.8rem, 4vw, 2.5rem); font-weight: 600; }
.ff-form-actions { display: flex; align-items: center; justify-content: space-between; gap: var(--ff-space-4); }
.ff-text-button { min-height: 44px; padding: 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--ff-ink); cursor: pointer; font: inherit; }
.application-form h2 { font-size: 2rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ff-space-5); }
.form-grid > p,
.application-form > p { margin: 0; }
.application-form label { display: block; margin-bottom: var(--ff-space-2); font-size: .875rem; font-weight: 650; }
.application-form :where(input:not([type="checkbox"]), select, textarea) { width: 100%; min-height: 52px; padding: .75rem .875rem; border: 1px solid var(--color-rule-strong); border-radius: 0; background: var(--ff-paper); color: var(--ff-ink); }
.application-form textarea { min-height: 150px; resize: vertical; }
.application-form :where(input, select, textarea):focus { outline: 2px solid var(--color-focus); outline-offset: 2px; border-color: var(--color-focus); }
.application-form [aria-invalid="true"] { border: 2px solid var(--color-error); }
.ff-field-error { display: block; margin-top: .45rem; color: var(--color-error); font-size: .82rem; font-weight: 650; }
.application-form .button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; padding: 0 24px; border: 1px solid var(--ff-signal); border-radius: 2px; background: var(--ff-signal); color: var(--ff-paper); font-size: .875rem; font-weight: 700; cursor: pointer; }
.application-form .button:hover { border-color: var(--color-signal-hover); background: var(--color-signal-hover); }
.application-form .button:active { border-color: var(--color-signal-active); background: var(--color-signal-active); transform: translateY(1px); }
.form-check { display: grid; grid-template-columns: 24px 1fr; gap: var(--ff-space-3); align-items: start; }
.form-check input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--ff-signal); }
.form-check label { margin: 0; font-weight: 400; }
.form-fineprint { color: var(--color-ink-muted); font-size: .875rem; }
.application-success,
.application-error { padding: var(--ff-space-5); border-left: 3px solid var(--color-success); background: color-mix(in srgb, var(--color-success) 8%, var(--ff-paper)); }
.application-error { border-color: var(--color-error); background: color-mix(in srgb, var(--color-error) 8%, var(--ff-paper)); }
.ff-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* 09. Footer */
.ff-footer { padding-top: var(--ff-space-9); background: var(--ff-ink); color: var(--ff-paper); }
.ff-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: var(--ff-space-7); }
.ff-wordmark--footer { margin-bottom: var(--ff-space-5); color: var(--ff-paper); font-size: 2rem; }
.ff-footer__brand p { max-width: 420px; color: #c8c6c0; }
.ff-footer__label { color: #8f8e89; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.ff-footer li + li { margin-top: var(--ff-space-3); }
.ff-footer a { text-decoration-color: #666; }
.ff-footer__base { display: flex; justify-content: space-between; margin-top: var(--ff-space-9); padding-block: var(--ff-space-5); border-top: 1px solid #343431; color: #8f8e89; font-size: .75rem; }
.ff-footer__base p { margin: 0; }

/* 10. Generic WordPress content */
.ff-content { max-width: var(--ff-reading); }
.ff-content > * + * { margin-top: var(--ff-space-5); }
.ff-content img { height: auto; }
.ff-feature-list { display: grid; gap: 0; }
.ff-feature-card { padding-block: var(--ff-space-6); border-top: 1px solid var(--ff-rule); }
.ff-feature-card h2 { font-size: 2rem; }

/* 11. Responsive */
@media (max-width: 1023px) {
	:root { --ff-header-height: 64px; }
	.ff-shell { width: min(100% - 64px, var(--ff-shell)); }
	.ff-grid-12 { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 20px; }
	.ff-hero__copy { grid-column: 1 / span 4; }
	.ff-hero__visual { grid-column: 5 / -1; }
	.ff-demo-preview__intro,
	.ff-split__lead,
	.ff-demo-hero__copy,
	.ff-apply-hero__copy { grid-column: 1 / span 3; }
	.ff-demo-preview__main,
	.ff-split__body,
	.ff-demo-hero__media,
	.ff-apply-hero__aside { grid-column: 4 / -1; }
	.ff-conversion-panel__media { grid-column: 1 / span 4; }
	.ff-conversion-panel__body { grid-column: 5 / -1; }
	.ff-output-grid { grid-template-columns: 1.5fr 1fr 1fr; }
	.ff-offer-preview { grid-template-columns: 1fr; }
	.ff-offer-preview__assets { grid-template-columns: 1fr 1fr; }
	.ff-conversion-panel__body { padding: var(--ff-space-7) var(--ff-space-5); }
	.ff-header__actions { gap: var(--ff-space-4); }
	.ff-header__apply { min-height: 44px; padding-inline: 0; border: 0; border-bottom: 2px solid var(--ff-signal); background: transparent; color: var(--ff-ink); }
	.ff-menu-toggle { display: none; }
	.js .ff-menu-toggle { display: inline-flex; }
	.ff-menu-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.ff-nav { position: absolute; top: 100%; left: 0; width: 100%; max-height: 420px; overflow: auto; background: var(--ff-paper); visibility: visible; border-bottom: 1px solid var(--ff-rule); }
	.js .ff-nav { max-height: 0; overflow: hidden; visibility: hidden; border-bottom: 0; transition: max-height 220ms ease, visibility 220ms; }
	.ff-nav__list { display: block; width: min(100% - 64px, var(--ff-shell)); margin-inline: auto; padding-block: var(--ff-space-4) var(--ff-space-6); }
	.ff-nav__list li { border-top: 1px solid var(--ff-rule); }
	.ff-nav__list a { display: flex; min-height: 56px; align-items: center; font-family: var(--ff-display); font-size: 1.5rem; }
	.ff-nav__mobile-cta { display: block; }
	.ff-nav__mobile-cta a { justify-content: center; margin-top: var(--ff-space-4); background: var(--ff-signal); color: var(--ff-paper); font-family: var(--ff-body); font-size: .875rem; }
	.js .ff-header.is-menu-open .ff-nav { max-height: 420px; overflow: auto; visibility: visible; border-bottom: 1px solid var(--ff-rule); }
	.ff-header.is-menu-open .ff-menu-toggle__icon i:first-child { transform: translateY(3px) rotate(45deg); }
	.ff-header.is-menu-open .ff-menu-toggle__icon i:last-child { transform: translateY(-3px) rotate(-45deg); }
}

@media (max-width: 767px) {
	:root { --ff-header-height: 64px; }
	body { font-size: 16px; }
	h1 { font-size: clamp(2.65rem, 12vw, 3.15rem); }
	h2 { font-size: clamp(2.1rem, 9vw, 2.45rem); }
	.ff-shell { width: min(100% - 40px, var(--ff-shell)); }
	.ff-section { padding-block: var(--ff-space-8); }
	.ff-demo-page .ff-section { padding-block: 24px; }
	.ff-demo-story .ff-split__body { order: 1; }
	.ff-demo-story .ff-split__lead { order: 2; }
	.ff-demo-page .ff-demo-story-detail { max-width: 220px; }
	.ff-demo-page .ff-demo-gallery__portrait picture,
	.ff-demo-page .ff-demo-gallery__movement picture { max-width: 180px !important; }
	.ff-demo-page .ff-highlight-grid { gap: var(--ff-space-4); }
	.ff-demo-page .ff-highlight-grid .ff-output-card { display: grid; grid-template-columns: 120px 1fr; grid-template-rows: auto 1fr; gap: 0 var(--ff-space-4); }
	.ff-demo-page .ff-highlight-grid__media { grid-row: 1 / span 2; width: 120px; height: 120px; margin: 0; aspect-ratio: 1; }
	.ff-demo-page .ff-highlight-grid h3 { margin-bottom: var(--ff-space-2); }
	.ff-demo-page .ff-highlight-grid p { margin: 0; font-size: .92rem; }
	.ff-demo-page .ff-output-grid { grid-template-columns: 1fr 1fr; gap: var(--ff-space-4); }
	.ff-demo-page .ff-output-grid > :last-child { grid-column: 1 / -1; }
	.ff-demo-page .ff-output-card__visual--story { width: 100%; margin-inline: auto; }
	.ff-demo-page .ff-conversion-panel__media { display: none; }
	.ff-demo-page .ff-conversion-panel__body { grid-column: 1 / -1; padding: var(--ff-space-5); }
	.ff-demo-page h2 { font-size: clamp(1.85rem, 8vw, 2.25rem); }
	.ff-demo-page p { line-height: 1.55; }
	.ff-section--compact { padding-block: var(--ff-space-7); }
	.ff-grid-12 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ff-space-4); }

	.ff-header__actions { gap: var(--ff-space-2); }
	.ff-nav__list { width: min(100% - 40px, var(--ff-shell)); }

	.ff-hero { min-height: 0; padding-top: var(--ff-space-7); }
	.ff-hero__copy,
	.ff-hero__visual,
	.ff-demo-preview__intro,
	.ff-demo-preview__main,
	.ff-split__lead,
	.ff-split__body,
	.ff-demo-hero__copy,
	.ff-demo-hero__media,
	.ff-apply-hero__copy,
	.ff-apply-hero__aside { grid-column: 1 / -1; }
	.ff-hero__copy { padding-block: 0 var(--ff-space-6); }
	.ff-hero__visual { min-height: 520px; }
	.ff-hero__preview { bottom: var(--ff-space-4); width: calc(100% - 20px); }
	.ff-trust-line { font-size: .76rem; }
	.ff-actions { align-items: stretch; flex-direction: column; }
	.ff-actions .ff-button { width: 100%; }

	.ff-proof-strip { grid-template-columns: 1fr 1fr; }
	.ff-proof-fact:nth-child(2) { border-right: 0; }
	.ff-proof-fact:nth-child(-n + 2) { border-bottom: 1px solid var(--ff-rule); }
	.ff-output-grid { grid-template-columns: 1fr 1fr; }
	.ff-output-card:first-child { grid-column: 1 / -1; }
	.ff-process { grid-template-columns: 1fr; }
	.ff-process-step { display: grid; grid-template-columns: 48px 1fr; gap: var(--ff-space-4); padding: var(--ff-space-5) 0; border-bottom: 1px solid var(--ff-rule); }
	.ff-process-step__number { grid-row: 1 / span 2; margin: 0; }
	.ff-process-step h3 { margin-bottom: var(--ff-space-2); }
	.ff-process-step p { margin: 0; }

	.ff-conversion-panel__media,
	.ff-conversion-panel__body { grid-column: 1 / -1; }
	.ff-conversion-panel__media { min-height: 360px; }
	.ff-conversion-panel__body { padding: var(--ff-space-7) var(--ff-space-5); }

	.ff-demo-hero__media { min-height: 520px; }
	.ff-facts { grid-template-columns: 1fr; }
	.ff-fact { padding-block: var(--ff-space-4); border-top: 1px solid var(--ff-rule); }
	.ff-demo-gallery__wide,
	.ff-demo-gallery__portrait,
	.ff-demo-gallery__movement,
	.ff-demo-gallery__details { grid-column: 1 / -1; }
	.ff-demo-gallery__details { grid-template-columns: 1fr 1fr; }
	.form-grid { grid-template-columns: 1fr; }
	.ff-input-columns,
	.ff-highlight-grid { grid-template-columns: 1fr; }

	.ff-footer__grid { grid-template-columns: 1fr 1fr; }
	.ff-footer__brand { grid-column: 1 / -1; }
	.ff-footer__base { align-items: flex-start; flex-direction: column; gap: var(--ff-space-2); }
}

@media (max-width: 479px) {
	.ff-wordmark { font-size: 1.25rem; }
	.ff-header__actions { gap: var(--ff-space-2); }
	.ff-output-grid { grid-template-columns: 1fr; }
	.ff-output-card:first-child { grid-column: auto; }
	.ff-demo-page .ff-output-grid { grid-template-columns: 1fr 1fr; }
	.ff-demo-page .ff-output-grid > :last-child { grid-column: 1 / -1; }
	.ff-demo-preview__support { grid-template-columns: 1fr; }
	.ff-footer__grid { grid-template-columns: 1fr; }
}

@media (max-width: 359px) {
	.ff-shell { width: min(100% - 32px, var(--ff-shell)); }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

@media (forced-colors: active) {
	.ff-button,
	.ff-feature-frame,
	.ff-status-card,
	.ff-boundary-panel { border: 1px solid CanvasText; }
}
