/*
 * Firehouse Webchurch. Loaded only on pages using the "Firehouse Webchurch"
 * template; every rule is scoped under .fw so nothing leaks into the site.
 * Source of truth: Main.dc.html (1440 px) and Phone.dc.html (390 px).
 */

.fw {
	--fw-navy: #0E1A2F;
	--fw-navy-footer: #09121F;
	--fw-navy-raised: #1A2A45;
	--fw-navy-line: #2B3D5C;
	--fw-navy-line-2: #3A4D6E;
	--fw-navy-rule: #22324F;
	--fw-gold: #C9A04A;
	--fw-gold-dark: #D9B25F;
	--fw-gold-light: #8A6A1F;
	--fw-gold-num: #B08A3A;
	--fw-warm: #FAF8F3;
	--fw-stone: #F1EDE4;
	--fw-line: #DDD6C8;
	--fw-ink: #16213A;
	--fw-muted: #4E5566;
	--fw-on-dark: #F7F3EA;
	--fw-on-dark-body: #C3CBD9;
	--fw-on-dark-cap: #A9B3C6;
	--fw-nav-link: #E3E8F0;
	--fw-placeholder: #8E9AB0;
	--fw-serif: 'Fraunces', Georgia, 'Times New Roman', serif;
	--fw-sans: 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--fw-pad: 40px;

	background: var(--fw-warm);
	color: var(--fw-ink);
	font-family: var(--fw-sans);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: clip;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

body.fw-body { margin: 0; background: #0E1A2F; }

:where(.fw) *, :where(.fw) *::before, :where(.fw) *::after { box-sizing: border-box; }
/* Resets use :where() so they never outrank the component classes below. */
:where(.fw) :where(h1, h2, h3, p, ul, ol, figure, blockquote) { margin: 0; padding: 0; }
:where(.fw) :where(ul, ol) { list-style: none; }
:where(.fw) img { max-width: 100%; height: auto; display: block; }
:where(.fw) em { font-style: italic; }
:where(.fw) a { color: inherit; }
.fw main { flex: 1 0 auto; }

.fw-wrap {
	max-width: 1280px;
	margin: 0 auto;
	width: 100%;
	padding-left: var(--fw-pad);
	padding-right: var(--fw-pad);
}

/* Focus: visible on light and dark grounds. */
.fw :focus { outline: none; }
.fw :focus-visible { outline: 3px solid var(--fw-ink); outline-offset: 3px; border-radius: 6px; }
.fw .fw-header :focus-visible,
.fw .fw-hero :focus-visible,
.fw .fw-plan--member :focus-visible,
.fw .fw-closing :focus-visible,
.fw .fw-formpage :focus-visible,
.fw .fw-footer :focus-visible { outline-color: var(--fw-gold-dark); }
.fw .fw-btn:focus-visible { border-radius: 999px; }

.fw-skip {
	position: absolute; left: 16px; top: -100px; z-index: 100;
	background: var(--fw-gold); color: var(--fw-navy) !important;
	padding: 12px 20px; border-radius: 999px; font-weight: 600; text-decoration: none;
}
.fw-skip:focus { top: 16px; }

.fw-sr, .fw .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.fw-hide-sm { display: inline; }
.fw-show-sm { display: none; }

/* ---------- Type ---------- */

.fw-eyebrow {
	font-family: var(--fw-sans);
	font-size: 13px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--fw-gold-light);
	line-height: 1.4;
}
.fw-eyebrow--dark { color: var(--fw-gold-dark); }
.fw-eyebrow--muted { color: #6E7486; }
.fw-eyebrow--rule { display: flex; align-items: center; gap: 14px; color: var(--fw-gold-dark); }
.fw-eyebrow--rule::before { content: ""; width: 40px; height: 1px; background: var(--fw-gold-dark); flex-shrink: 0; }

.fw-h1 {
	font-family: var(--fw-serif);
	font-weight: 400;
	font-size: 96px;
	line-height: 0.98;
	letter-spacing: -0.025em;
	color: var(--fw-on-dark);
}
.fw-h1 em, .fw-h2--closing em, .fw-h2--formpage em { color: var(--fw-gold-dark); }

.fw-h2 {
	font-family: var(--fw-serif);
	font-weight: 400;
	font-size: 64px;
	line-height: 1.02;
	letter-spacing: -0.02em;
	color: inherit;
}
.fw-h2--watch { font-size: 54px; line-height: 1.04; letter-spacing: -0.015em; }

.fw-h3 {
	font-family: var(--fw-serif);
	font-weight: 500;
	font-size: 27px;
	line-height: 1.2;
	color: var(--fw-ink);
}
.fw-h3--step { font-size: 28px; }

.fw-body { font-size: 18px; line-height: 1.65; color: var(--fw-muted); }
.fw-body--sm { font-size: 16px; line-height: 1.7; }

.fw-textlink { color: var(--fw-ink); font-size: 16px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.fw-textlink:hover { color: var(--fw-gold-light); }
.fw-textlink--gold { color: var(--fw-gold-dark); font-weight: 500; }
.fw-textlink--gold:hover { color: #E8C98A; }

.fw-stack { display: flex; flex-direction: column; gap: 20px; }

/* ---------- Buttons ---------- */

.fw-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 12px;
	border-radius: 999px; font-family: var(--fw-sans); font-size: 16px; font-weight: 600;
	line-height: 1.2; text-decoration: none; padding: 16px 28px; border: 1.5px solid transparent;
	cursor: pointer; transition: background-color .15s ease, color .15s ease, border-color .15s ease;
	text-align: center; min-height: 44px;
}
.fw-btn--lg { font-size: 17px; padding: 18px 32px; }
.fw-btn--sm { padding: 12px 22px; font-size: 15px; }
.fw-btn--gold { background: var(--fw-gold); color: var(--fw-navy); }
.fw-btn--gold:hover { background: #D9B25F; color: var(--fw-navy); }
.fw-btn--ghost-dark { color: var(--fw-on-dark); border: 1px solid var(--fw-navy-line-2); }
.fw-btn--ghost-dark:hover { border-color: var(--fw-gold-dark); color: var(--fw-on-dark); }
.fw-btn--outline { color: var(--fw-ink); border-color: var(--fw-ink); align-self: flex-start; }
.fw-btn--outline:hover { background: var(--fw-ink); color: var(--fw-warm); }

.fw-actions { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.fw-actions--center { justify-content: center; }

/* ---------- Header ---------- */

.fw-header { background: var(--fw-navy); color: var(--fw-on-dark); position: relative; z-index: 20; }
.fw-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding-top: 28px; padding-bottom: 28px; }
.fw-brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--fw-on-dark); }
.fw-brand svg { flex-shrink: 0; }
.fw-brand__text { display: flex; flex-direction: column; line-height: 1.15; }
.fw-brand__name { font-family: var(--fw-serif); font-size: 22px; font-weight: 500; }
.fw-brand__sub { font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--fw-on-dark-cap); }
.fw-nav { display: flex; align-items: center; gap: 34px; font-size: 15px; font-weight: 500; }
.fw-nav a:not(.fw-btn) { color: var(--fw-nav-link); text-decoration: none; }
.fw-nav a:not(.fw-btn):hover { color: var(--fw-gold-dark); }
.fw-menu-btn {
	display: none; width: 44px; height: 44px; border-radius: 999px; border: 1px solid var(--fw-navy-line-2);
	background: transparent; color: var(--fw-on-dark); align-items: center; justify-content: center; padding: 0; cursor: pointer;
}
.fw-menu-btn:hover { border-color: var(--fw-gold-dark); }

/* ---------- Hero ---------- */

.fw-hero { background: var(--fw-navy); color: var(--fw-on-dark); position: relative; overflow: hidden; }
.fw-glow { position: absolute; border-radius: 999px; pointer-events: none; }
.fw-glow--hero {
	right: -180px; top: 30px; width: 760px; height: 760px;
	background: radial-gradient(closest-side, rgba(201,160,74,0.38), rgba(201,160,74,0.10) 55%, rgba(201,160,74,0) 100%);
}
.fw-hero__grid {
	position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 40px; align-items: end; padding-top: 88px; padding-bottom: 96px;
}
.fw-hero__copy { grid-column: span 7; display: flex; flex-direction: column; gap: 32px; }
.fw-hero__lede { font-size: 21px; line-height: 1.6; color: var(--fw-on-dark-body); max-width: 560px; }
.fw-hero__photo {
	grid-column: span 5; height: 600px; border-radius: 28px 28px 200px 28px; background: var(--fw-navy-raised);
	border: 1px solid var(--fw-navy-line); display: flex; align-items: center; justify-content: center;
	padding: 40px; box-shadow: 0 40px 120px rgba(201,160,74,0.25); overflow: hidden;
}
.fw-media--photo { padding: 0; }
.fw-media--photo img { width: 100%; height: 100%; object-fit: cover; }
.fw-placeholder { font-size: 15px; color: var(--fw-placeholder); text-align: center; line-height: 1.6; }

.fw-nations { position: relative; border-top: 1px solid var(--fw-navy-rule); }
.fw-nations__inner { display: flex; align-items: center; gap: 36px; padding-top: 26px; padding-bottom: 26px; }
.fw-nations__label { font-size: 14px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 600; color: var(--fw-gold-dark); white-space: nowrap; }
.fw-nations__list { font-family: var(--fw-serif); font-size: 20px; color: var(--fw-nav-link); display: flex; flex-wrap: wrap; column-gap: 36px; row-gap: 6px; }

/* ---------- Sections ---------- */

.fw-section { padding: 128px 0; }
.fw-section--flush-top { padding-top: 0; }
.fw-ruled { border-top: 1px solid var(--fw-line); padding-top: 72px; }

.fw-watch__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px; align-items: center; }
.fw-watch__copy { grid-column: span 4; display: flex; flex-direction: column; gap: 20px; }
.fw-watch__browse { align-self: flex-start; }
.fw-video {
	grid-column: span 8; aspect-ratio: 16 / 9; border-radius: 24px; background: var(--fw-navy-raised);
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px;
	box-shadow: 0 30px 80px rgba(14,26,47,0.25); overflow: hidden;
}
.fw-video--embed iframe, .fw-video--embed video { width: 100%; height: 100%; border: 0; display: block; }
.fw-video__play {
	width: 96px; height: 96px; border-radius: 999px; background: var(--fw-gold); color: var(--fw-navy);
	display: flex; align-items: center; justify-content: center;
}
a.fw-video__play:hover { background: var(--fw-gold-dark); }
.fw-video__play svg { margin-left: 4px; }

.fw-why__head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px; align-items: end; margin-bottom: 72px; }
.fw-why__head > .fw-stack { grid-column: span 7; }
.fw-why__intro { grid-column: span 5; }
.fw-reasons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 56px; row-gap: 64px; }
.fw-reason { display: flex; flex-direction: column; gap: 16px; }
.fw-numeral { font-family: var(--fw-serif); font-style: italic; font-size: 56px; line-height: 1; color: var(--fw-gold-num); }

/* Quote band */
.fw-quote { background: var(--fw-gold); color: var(--fw-navy); }
.fw-quote__inner { max-width: 1100px; margin: 0 auto; padding: 120px 40px; display: flex; flex-direction: column; align-items: center; gap: 28px; text-align: center; }
.fw-quote blockquote p { font-family: var(--fw-serif); font-style: italic; font-size: 64px; line-height: 1.1; letter-spacing: -0.015em; }
.fw-quote figcaption { font-size: 14px; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 600; color: #2A3550; }

/* Membership */
.fw-center-head { display: flex; flex-direction: column; gap: 20px; align-items: center; text-align: center; margin-bottom: 64px; }
.fw-center-head .fw-h2 { max-width: 900px; }
.fw-plans { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: stretch; }
.fw-plan { border-radius: 28px; padding: 52px; display: flex; flex-direction: column; gap: 28px; }
.fw-plan--free { background: #FFFFFF; border: 1px solid #E4DDCF; }
.fw-plan--member { background: var(--fw-navy); color: var(--fw-on-dark); box-shadow: 0 40px 100px rgba(14,26,47,0.35); }
.fw-plan__head { display: flex; flex-direction: column; gap: 10px; }
.fw-plan__title { font-family: var(--fw-serif); font-size: 40px; font-weight: 400; line-height: 1.15; }
.fw-checks { display: flex; flex-direction: column; gap: 18px; font-size: 17px; line-height: 1.5; color: #2C3548; }
.fw-checks li { display: flex; gap: 14px; }
.fw-check { flex-shrink: 0; color: var(--fw-gold-light); margin-top: 1px; }
.fw-plan--member .fw-checks { color: var(--fw-nav-link); }
.fw-plan--member .fw-check { color: var(--fw-gold-dark); }
.fw-plan__foot { margin-top: auto; display: flex; flex-direction: column; gap: 22px; border-top: 1px solid #EDE7DC; padding-top: 28px; }
.fw-plan--member .fw-plan__foot { border-top-color: var(--fw-navy-line); }
.fw-plan--member .fw-btn { align-self: flex-start; }
.fw-plan__tithe { display: flex; flex-direction: column; gap: 8px; }
.fw-plan__amount { font-family: var(--fw-serif); font-size: 34px; line-height: 1.2; }
.fw-plan__per { font-family: var(--fw-sans); font-size: 16px; color: var(--fw-on-dark-cap); }
.fw-plan__note { font-size: 15px; line-height: 1.6; color: var(--fw-on-dark-cap); }

/* How to join */
.fw-how__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin-bottom: 64px; }
.fw-how__note { font-size: 17px; color: var(--fw-muted); }
.fw-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; }
.fw-step { display: flex; flex-direction: column; gap: 18px; }
.fw-step__marker { display: flex; align-items: center; gap: 16px; }
.fw-step__num {
	width: 56px; height: 56px; border-radius: 999px; background: var(--fw-navy); color: var(--fw-gold-dark);
	display: flex; align-items: center; justify-content: center; font-family: var(--fw-serif); font-size: 24px; flex-shrink: 0;
}
.fw-step__line { height: 1px; flex-grow: 1; background: var(--fw-line); }
.fw-step__text { display: flex; flex-direction: column; gap: 18px; }

/* Leaders */
.fw-leaders { background: var(--fw-stone); }
.fw-leaders__head { margin-bottom: 64px; }
.fw-leaders__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.fw-leader { display: flex; flex-direction: column; gap: 24px; }
.fw-leader__photo {
	height: 460px; border-radius: 28px; background: #DAD3C4; display: flex; align-items: center;
	justify-content: center; overflow: hidden; padding: 24px;
}
.fw-leader__photo .fw-placeholder { color: #5E6474; }
.fw-leader__text { display: flex; flex-direction: column; gap: 10px; }
.fw-leader__name { font-family: var(--fw-serif); font-size: 36px; font-weight: 400; line-height: 1.15; }
.fw-leader__bio { font-size: 17px; line-height: 1.7; max-width: 520px; }

/* Closing */
.fw-closing { background: var(--fw-navy); color: var(--fw-on-dark); position: relative; overflow: hidden; }
.fw-glow--closing {
	left: 50%; top: -260px; width: 900px; height: 900px; margin-left: -450px;
	background: radial-gradient(closest-side, rgba(201,160,74,0.30), rgba(201,160,74,0) 100%);
}
.fw-closing__inner {
	position: relative; max-width: 1000px; margin: 0 auto; padding: 150px 40px;
	display: flex; flex-direction: column; align-items: center; gap: 32px; text-align: center;
}
.fw-h2--closing { font-size: 84px; line-height: 1; letter-spacing: -0.025em; }
.fw-closing__lede { font-size: 19px; line-height: 1.65; color: var(--fw-on-dark-body); max-width: 620px; }
.fw-closing .fw-actions { padding-top: 8px; }
.fw-closing .fw-textlink--gold { padding: 10px; }

/* Footer */
.fw-footer { background: var(--fw-navy-footer); color: var(--fw-placeholder); }
.fw-footer__inner { display: flex; justify-content: space-between; align-items: center; gap: 24px; font-size: 15px; padding-top: 44px; padding-bottom: 44px; }
.fw-footer__name { font-family: var(--fw-serif); font-size: 20px; color: var(--fw-on-dark); }
.fw-footer a { color: var(--fw-gold-dark); }
.fw-footer a:hover { color: #E8C98A; }

/* ---------- Form pages (apply, give, prayer) ---------- */

.fw-formpage { background: var(--fw-navy); color: var(--fw-on-dark); position: relative; overflow: hidden; }
.fw-glow--form {
	left: 50%; top: -320px; width: 900px; height: 900px; margin-left: -450px;
	background: radial-gradient(closest-side, rgba(201,160,74,0.26), rgba(201,160,74,0) 100%);
}
.fw-formpage__head {
	position: relative; max-width: 880px; margin: 0 auto; padding: 72px 40px 96px;
	display: flex; flex-direction: column; align-items: center; gap: 24px; text-align: center;
}
.fw-h2--formpage { font-size: 64px; }
.fw-formpage__lede { font-size: 19px; line-height: 1.65; color: var(--fw-on-dark-body); max-width: 680px; }
.fw-formpage .fw-actions { padding-top: 8px; }

.fw-formwrap { padding: 0 var(--fw-pad) 128px; }
.fw-form, .fw-give { max-width: 820px; margin: -48px auto 0; position: relative; display: flex; flex-direction: column; gap: 24px; }

.fw-card {
	background: #FFFFFF; border: 1px solid #E4DDCF; border-radius: 28px; padding: 44px;
	display: flex; flex-direction: column; gap: 26px;
}
.fw-card--dark { background: var(--fw-navy); border-color: var(--fw-navy); color: var(--fw-on-dark); }
.fw-card__title { font-family: var(--fw-serif); font-size: 32px; font-weight: 400; line-height: 1.15; display: flex; align-items: center; gap: 16px; }
.fw-card__num {
	width: 44px; height: 44px; border-radius: 999px; background: var(--fw-navy); color: var(--fw-gold-dark);
	display: inline-flex; align-items: center; justify-content: center; font-size: 19px; flex-shrink: 0;
}
.fw-card--dark .fw-card__num { background: var(--fw-gold); color: var(--fw-navy); }
.fw-card__opt { font-family: var(--fw-sans); font-size: 15px; color: var(--fw-muted); }

.fw-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 24px; }
.fw-field--full, .fw-grid .fw-tz { grid-column: 1 / -1; }

.fw-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; border: 0; padding: 0; margin: 0; }
.fw-label { font-size: 16px; font-weight: 600; color: var(--fw-ink); line-height: 1.4; padding: 0; }
.fw-card--dark .fw-label { color: var(--fw-on-dark); }
.fw-req { color: #A3431F; font-weight: 700; }
.fw-card--dark .fw-req { color: var(--fw-gold-dark); }
.fw-hint { font-size: 14px; color: var(--fw-muted); line-height: 1.5; }

.fw-input {
	width: 100%; font: inherit; font-size: 16px; color: var(--fw-ink); background: var(--fw-warm);
	border: 1.5px solid #CFC7B6; border-radius: 14px; padding: 13px 16px; min-height: 50px; line-height: 1.4;
	transition: border-color .15s ease, background-color .15s ease; appearance: none; -webkit-appearance: none;
}
.fw-input:hover { border-color: #A89F8C; }
.fw .fw-input:focus-visible { outline: 3px solid var(--fw-ink); outline-offset: 1px; border-color: var(--fw-ink); background: #FFFFFF; border-radius: 14px; }
.fw-textarea { resize: vertical; min-height: 110px; }
.fw-select {
	padding-right: 44px; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2316213A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 16px center;
}

.fw-choice__opts { display: flex; flex-direction: column; gap: 10px; }
.fw-choice__opts--inline { flex-direction: row; flex-wrap: wrap; }
.fw-radio, .fw-checkbox { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; font-size: 16px; line-height: 1.5; }
.fw-radio {
	border: 1.5px solid #E0D9CB; border-radius: 999px; padding: 11px 18px 11px 14px; background: var(--fw-warm);
	align-items: center; min-height: 46px;
}
.fw-radio:hover { border-color: #A89F8C; }
.fw-radio:has(input:checked) { border-color: var(--fw-ink); background: #FFFFFF; }
.fw-radio input, .fw-checkbox input { accent-color: var(--fw-navy); width: 20px; height: 20px; margin: 0; flex-shrink: 0; }
.fw-checkbox input { margin-top: 3px; accent-color: var(--fw-gold); }
.fw-card--dark .fw-checkbox { color: var(--fw-nav-link); font-size: 17px; }
.fw-card--dark :focus-visible { outline-color: var(--fw-gold-dark); }

.fw-field__error { font-size: 15px; font-weight: 600; color: #A3431F; }
.fw-card--dark .fw-field__error { color: #F2B8A0; }
.fw-field--invalid .fw-input { border-color: #A3431F; }

.fw-alert {
	background: #FBEFE9; border: 1.5px solid #A3431F; color: #6E2A12; border-radius: 20px; padding: 22px 26px;
	font-size: 16px; line-height: 1.6;
}
.fw-alert ul { margin-top: 8px; display: flex; flex-direction: column; gap: 4px; list-style: disc; padding-left: 20px; }
.fw-alert a { color: #6E2A12; font-weight: 600; }
.fw-form__req-note { font-size: 15px; color: var(--fw-muted); background: #FFFFFF; border-radius: 999px; padding: 10px 18px; align-self: flex-start; border: 1px solid #E4DDCF; }
.fw-confidential { font-size: 15px; line-height: 1.6; color: var(--fw-muted); text-align: center; padding: 0 12px; }
.fw-form__submit { display: flex; justify-content: center; }
.fw-form__submit .fw-btn { border: 0; }

.fw-hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.fw-js [data-fw-show-when][hidden] { display: none !important; }

/* Giving step */
.fw-give__notes {
	background: #FFFFFF; border: 1px solid #E4DDCF; border-radius: 28px; padding: 32px 36px;
	display: flex; flex-direction: column; gap: 14px; font-size: 16px; line-height: 1.6; color: #2C3548;
}
.fw-give__notes li { display: flex; gap: 12px; }
.fw-give__embed { background: #FFFFFF; border: 1px solid #E4DDCF; border-radius: 28px; padding: 16px; overflow: hidden; min-height: 200px; }
.fw-give__frame { display: block; width: 100%; height: 640px; border: 0; } /* Givebutter's widget.js resizes this to fit. */
.fw-give__fallback { text-align: center; font-size: 15px; color: var(--fw-muted); }
.fw-give__fallback .fw-textlink { font-size: 15px; }

/* Embedded forms (the contact form on a theme page). */
.fw.fw--embed { min-height: 0; display: block; background: transparent; overflow: visible; }
.fw--embed .fw-form { margin: 0; max-width: none; }
.fw--embed .fw-card { gap: 22px; }
.fw-card__title em { color: var(--fw-gold-light); }
.fw-card--thanks .fw-card__title { display: block; }
.fw-form__submit--start { justify-content: flex-start; }

/* ---------- Tablet (768 to 1023) ---------- */

@media (max-width: 1023px) {
	.fw { --fw-pad: 32px; }

	.fw-menu-btn { display: inline-flex; }
	.fw-js .fw-nav {
		display: none; position: absolute; left: 0; right: 0; top: 100%;
		flex-direction: column; align-items: stretch; gap: 0; background: var(--fw-navy);
		border-top: 1px solid var(--fw-navy-rule); border-bottom: 1px solid var(--fw-navy-rule);
		padding: 8px var(--fw-pad) 24px; font-size: 18px; box-shadow: 0 24px 40px rgba(0,0,0,0.3);
	}
	.fw-js .fw-nav.is-open { display: flex; }
	.fw-js .fw-nav a:not(.fw-btn) { padding: 14px 0; border-bottom: 1px solid var(--fw-navy-rule); }
	.fw-js .fw-nav .fw-btn { margin-top: 20px; }
	html:not(.fw-js) .fw-header__inner { flex-wrap: wrap; }
	html:not(.fw-js) .fw-menu-btn { display: none; }
	html:not(.fw-js) .fw-nav { flex-wrap: wrap; gap: 16px 24px; }

	.fw-h1 { font-size: 72px; }
	.fw-h2 { font-size: 52px; }
	.fw-h2--watch { font-size: 46px; }
	.fw-h2--closing { font-size: 64px; }
	.fw-quote blockquote p { font-size: 48px; }

	.fw-hero__grid { grid-template-columns: 1fr; gap: 48px; padding-top: 64px; padding-bottom: 72px; }
	.fw-hero__copy, .fw-hero__photo { grid-column: auto; }
	.fw-hero__photo { height: 460px; border-radius: 28px 28px 160px 28px; }
	.fw-nations__inner { flex-direction: column; align-items: flex-start; gap: 12px; }

	.fw-section { padding: 96px 0; }
	.fw-section--flush-top { padding-top: 0; }
	.fw-watch__grid { grid-template-columns: 1fr; gap: 32px; }
	.fw-watch__copy, .fw-video { grid-column: auto; }

	.fw-why__head { grid-template-columns: 1fr; gap: 20px; margin-bottom: 56px; }
	.fw-why__head > .fw-stack, .fw-why__intro { grid-column: auto; }
	.fw-reasons { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; row-gap: 52px; }

	.fw-quote__inner { padding: 96px 40px; }
	.fw-plan { padding: 40px 32px; }
	.fw-plan__title { font-size: 34px; }

	.fw-how__head { flex-direction: column; align-items: flex-start; gap: 16px; }
	.fw-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 48px; }

	.fw-leader__photo { height: 400px; }
	.fw-leader__name { font-size: 30px; }

	.fw-closing__inner { padding: 120px 40px; }
	.fw-footer__inner { flex-direction: column; align-items: flex-start; gap: 10px; }
}

/* ---------- Phone (up to 767) ---------- */

@media (max-width: 767px) {
	.fw { --fw-pad: 24px; }

	.fw-hide-sm { display: none; }
	.fw-show-sm { display: inline; }

	.fw-header__inner { padding: 18px 20px; gap: 16px; }
	.fw-js .fw-nav { padding-left: 24px; padding-right: 24px; }
	.fw-brand { gap: 10px; }
	.fw-brand svg { width: 28px; height: 28px; }
	.fw-brand__name { font-size: 18px; }
	.fw-brand__sub { font-size: 9px; }

	.fw-eyebrow { font-size: 11px; }
	.fw-eyebrow--rule { gap: 10px; }
	.fw-eyebrow--rule::before { width: 28px; }

	.fw-h1 { font-size: 48px; line-height: 1.02; letter-spacing: -0.02em; }
	.fw-h2 { font-size: 36px; line-height: 1.08; letter-spacing: -0.01em; }
	.fw-h2--watch { font-size: 36px; }
	#why .fw-h2, #how .fw-h2 { font-size: 40px; line-height: 1.05; letter-spacing: -0.015em; }
	.fw-h2--closing { font-size: 44px; line-height: 1.04; letter-spacing: -0.015em; }
	.fw-h2--formpage { font-size: 40px; line-height: 1.05; }
	.fw-h3 { font-size: 24px; }
	.fw-body { font-size: 16px; }

	.fw-hero__grid { padding-top: 40px; padding-bottom: 48px; gap: 32px; }
	.fw-hero__copy { gap: 24px; }
	.fw-hero__lede { font-size: 17px; }
	.fw-glow--hero { right: -220px; top: 60px; width: 520px; height: 520px; background: radial-gradient(closest-side, rgba(201,160,74,0.30), rgba(201,160,74,0) 100%); }
	.fw-hero .fw-actions, .fw-closing .fw-actions, .fw-formpage .fw-actions { flex-direction: column; align-items: stretch; gap: 12px; width: 100%; }
	.fw-btn--lg { padding: 17px 24px; }
	.fw-hero__photo { height: 380px; border-radius: 24px 24px 120px 24px; padding: 28px; box-shadow: none; }
	.fw-placeholder { font-size: 14px; }

	.fw-nations__inner { padding-top: 22px; padding-bottom: 28px; }
	.fw-nations__label { font-size: 11px; }
	.fw-nations__list { font-size: 17px; line-height: 1.6; column-gap: 0; row-gap: 0; }
	.fw-nations__list li:not(:last-child)::after { content: "\00a0·\00a0"; }

	.fw-section { padding: 72px 0; }
	.fw-section--flush-top { padding-top: 0; }
	.fw-ruled { padding-top: 56px; }

	.fw-watch__grid { gap: 20px; }
	.fw-watch__copy { display: contents; }
	.fw-watch__copy > * { order: 0; }
	.fw-video { order: 1; border-radius: 18px; gap: 12px; margin-top: 8px; box-shadow: 0 20px 50px rgba(14,26,47,0.25); }
	.fw-watch__browse { order: 2; }
	.fw-video__play { width: 68px; height: 68px; }
	.fw-video__play svg { width: 26px; height: 26px; }
	.fw-video .fw-placeholder { font-size: 13px; }

	.fw-why__head { margin-bottom: 48px; }
	.fw-why__intro { display: none; }
	.fw-reasons { grid-template-columns: 1fr; row-gap: 48px; }
	.fw-reason { gap: 12px; }
	.fw-numeral { font-size: 44px; }

	.fw-quote__inner { padding: 72px 28px; gap: 20px; }
	.fw-quote svg { width: 32px; height: 32px; }
	.fw-quote blockquote p { font-size: 34px; line-height: 1.15; letter-spacing: 0; }
	.fw-quote figcaption { font-size: 12px; }

	#membership .fw-wrap { padding-left: 20px; padding-right: 20px; }
	.fw-center-head { align-items: flex-start; text-align: left; gap: 16px; margin-bottom: 36px; padding: 0 4px; }
	.fw-plans { grid-template-columns: 1fr; gap: 36px; }
	.fw-plan--member { order: -1; }
	.fw-plan { border-radius: 24px; padding: 32px 26px; gap: 22px; }
	.fw-plan--member { box-shadow: 0 24px 60px rgba(14,26,47,0.35); }
	.fw-plan__title { font-size: 32px; }
	.fw-checks { font-size: 16px; gap: 14px; }
	.fw-checks li { gap: 12px; }
	.fw-check { width: 20px; height: 20px; }
	.fw-plan__foot { gap: 22px; padding-top: 22px; }
	.fw-plan--free .fw-plan__amount { display: none; }
	.fw-plan--free .fw-plan__foot { border-top: 0; padding-top: 0; }
	.fw-plan__amount { font-size: 32px; }
	.fw-plan__per { display: block; font-size: 15px; margin-top: 8px; }
	.fw-plan__note { font-size: 14px; }
	.fw-plan .fw-btn { align-self: stretch; }

	.fw-how__head { gap: 14px; margin-bottom: 36px; }
	.fw-how__note { font-size: 15px; }
	.fw-steps { grid-template-columns: 1fr; gap: 36px; }
	.fw-step { flex-direction: row; gap: 18px; }
	.fw-step__num { width: 48px; height: 48px; font-size: 21px; }
	.fw-step__line { display: none; }
	.fw-step__text { gap: 6px; padding-top: 8px; }
	.fw-h3--step { font-size: 24px; }
	.fw-step .fw-body--sm { line-height: 1.65; }

	.fw-leaders__head { gap: 14px; margin-bottom: 40px; }
	.fw-leaders__grid { grid-template-columns: 1fr; gap: 40px; }
	.fw-leader { gap: 18px; }
	.fw-leader__photo { height: 320px; border-radius: 22px; }
	.fw-leader__text { gap: 18px; }
	.fw-leader__name { font-size: 28px; }
	.fw-leader__bio { font-size: 16px; }

	.fw-glow--closing { top: -200px; width: 560px; height: 560px; margin-left: -280px; background: radial-gradient(closest-side, rgba(201,160,74,0.26), rgba(201,160,74,0) 100%); }
	.fw-closing__inner { padding: 88px 24px; gap: 24px; }
	.fw-closing__lede { font-size: 16px; }

	.fw-footer__inner { padding-top: 36px; padding-bottom: 36px; font-size: 14px; }
	.fw-footer__name { font-size: 19px; }

	.fw-formpage__head { padding: 48px 24px 80px; }
	.fw-formpage__lede { font-size: 16px; }
	.fw-formwrap { padding: 0 16px 72px; }
	.fw-card { border-radius: 24px; padding: 28px 20px; gap: 22px; }
	.fw-card__title { font-size: 26px; gap: 12px; }
	.fw-card__num { width: 38px; height: 38px; font-size: 17px; }
	.fw-grid { grid-template-columns: 1fr; gap: 20px; }
	.fw-choice__opts--inline { flex-direction: column; }
	.fw-give__notes { padding: 24px 22px; border-radius: 24px; }
	.fw-give__embed { padding: 8px; border-radius: 24px; }
	.fw-form__submit .fw-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.fw * { transition: none !important; scroll-behavior: auto !important; }
}
@media (prefers-reduced-motion: no-preference) {
	html:has(.fw) { scroll-behavior: smooth; }
}
