/*
Theme Name: 4-7-8-17 Global Success
Theme URI: https://47817.org/
Author: 47817.org
Description: A fast, plugin-free theme for the 4-7-8-17 Global Success Program. Organizes the Four-Way Test, Rotary Areas of Focus, Pillars of Positive Peace, and UN Global Goals into one clear framework, with showcase sections for The Panama Project and Democracy in a Box and a built-in contact form.
Version: 1.10.23
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fortyseven
*/

:root {
	--navy: #12305A;
	--royal: #17458F;
	--gold: #F7A81B;
	--reef: #1B7F79;
	--reef-light: #5FC4BA;
	--paper: #F5F7FA;
	--white: #FFFFFF;
	--ink: #1B2433;
	--muted: #4E5B6E;
	--line: #D6DCE5;
	--sans: "Archivo", "Helvetica Neue", Arial, sans-serif;
	--serif: "Newsreader", Georgia, "Times New Roman", serif;
	--wrap: 1180px;
	--gap: clamp(1.25rem, 3vw, 2.5rem);
	--sdg: linear-gradient(90deg, #E5243B, #DDA63A, #4C9F38, #C5192D, #FF3A21, #26BDE2, #FCC30B, #A21942, #FD6925, #DD1367, #FD9D24, #BF8B2E, #3F7E44, #0A97D9, #56C02B, #00689D, #19486A);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	margin: 0;
	background: var(--white);
	color: var(--ink);
	font-family: var(--serif);
	font-size: 1.1875rem;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--royal); }
a:hover { color: var(--navy); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }

h1, h2, h3, h4 {
	font-family: var(--sans);
	font-weight: 750;
	font-stretch: 88%;
	line-height: 1.12;
	letter-spacing: -0.01em;
	margin: 0 0 0.6em;
	color: var(--navy);
}
h1 { font-size: clamp(2.2rem, 4.8vw, 3.6rem); }
h2 { font-size: clamp(1.75rem, 3.2vw, 2.5rem); }
h3 { font-size: 1.35rem; }
p { margin: 0 0 1em; }

.fs-wrap { width: min(100% - 2 * var(--gap), var(--wrap)); margin-inline: auto; }
.fs-skip { position: absolute; left: -999px; top: 0; background: var(--gold); color: var(--ink); padding: .6rem 1rem; z-index: 100; font-family: var(--sans); }
.fs-skip:focus { left: 1rem; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Buttons and links */
.fs-btn {
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--sans); font-weight: 650; font-size: 1rem; line-height: 1.2;
	padding: .85rem 1.35rem; border-radius: 999px; text-decoration: none;
	border: 2px solid transparent; transition: background-color .15s, color .15s, border-color .15s;
}
.fs-btn--gold { background: var(--gold); color: var(--ink); }
.fs-btn--gold:hover { background: #FFC24D; color: var(--ink); }
.fs-btn--solid { background: var(--royal); color: var(--white); }
.fs-btn--solid:hover { background: var(--navy); color: var(--white); }
.fs-btn--ghost { border-color: rgba(255,255,255,.55); color: var(--white); }
.fs-btn--ghost:hover { border-color: var(--white); background: rgba(255,255,255,.08); color: var(--white); }
.fs-link { font-family: var(--sans); font-weight: 600; font-size: 1rem; text-underline-offset: .2em; }
.fs-link--light { color: var(--white); }
.fs-link--light:hover { color: var(--gold); }
.fs-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 1.75rem; }
.fs-actions--stack { flex-direction: column; align-items: flex-start; margin-top: 0; }

/* Brand mark: the four numbers */
.fs-brand__mark { display: inline-flex; gap: .3em; font-family: var(--sans); font-weight: 850; font-stretch: 75%; letter-spacing: -0.02em; margin: 0; }
.fs-brand__mark span:nth-child(1) { color: var(--white); }
.fs-brand__mark span:nth-child(2) { color: var(--gold); }
.fs-brand__mark span:nth-child(3) { color: var(--reef-light); }
.fs-brand__mark span:nth-child(4) { background: var(--sdg); -webkit-background-clip: text; background-clip: text; color: transparent; }
.fs-brand__mark--lg { font-size: 2.5rem; line-height: 1; margin-bottom: .75rem; }

/* Header */
.fs-header { position: sticky; top: 0; z-index: 50; background: var(--navy); color: var(--white); }
.fs-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.25rem; }
.fs-brand { display: flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--white); }
.fs-brand:hover { color: var(--white); }
.fs-brand__logo { width: 40px; height: 40px; object-fit: contain; }
.fs-brand .fs-brand__mark { font-size: 1.6rem; line-height: 1; }
.fs-brand__name { font-family: var(--sans); font-size: .95rem; font-weight: 500; opacity: .85; }
.fs-nav { display: flex; align-items: center; gap: 1.5rem; }
.fs-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 1.5rem; }
.fs-nav__list a { color: var(--white); text-decoration: none; font-family: var(--sans); font-size: .98rem; font-weight: 500; }
.fs-nav__list a:hover, .fs-nav__list .current-menu-item a { color: var(--gold); }
.fs-nav__cta { padding: .6rem 1.1rem; font-size: .95rem; }
.fs-nav-toggle { display: none; font-family: var(--sans); font-weight: 600; background: none; color: var(--white); border: 2px solid rgba(255,255,255,.5); border-radius: 999px; padding: .45rem 1rem; font-size: .95rem; cursor: pointer; }

@media (max-width: 960px) {
	.fs-brand__name { display: none; }
	.fs-nav-toggle { display: block; }
	.fs-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--navy); flex-direction: column; align-items: flex-start; padding: 1rem var(--gap) 1.5rem; border-top: 1px solid rgba(255,255,255,.15); }
	.fs-nav.is-open { display: flex; }
	.fs-nav__list { flex-direction: column; gap: .9rem; }
	.fs-nav__list a { font-size: 1.1rem; }
}

/* Hero */
.fs-hero { background: var(--navy); color: var(--white); padding: clamp(3rem, 8vw, 6rem) 0 clamp(3rem, 7vw, 5rem); }
.fs-hero__title { color: var(--white); max-width: 18ch; font-size: clamp(2.4rem, 5.6vw, 4.25rem); }
.fs-hero__lede { max-width: 60ch; font-size: 1.25rem; color: rgba(255,255,255,.86); }

.fs-stack { list-style: none; margin: clamp(2rem, 5vw, 3.5rem) 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr 1fr 1.6fr; border-top: 1px solid rgba(255,255,255,.2); }
.fs-stack__layer { border-right: 1px solid rgba(255,255,255,.2); }
.fs-stack__layer:last-child { border-right: 0; }
.fs-stack__layer a { display: block; padding: 1rem clamp(.5rem, 2vw, 1.5rem) 1.25rem; text-decoration: none; color: var(--white); transition: background-color .2s; }
.fs-stack__layer:first-child a { padding-left: 0; }
.fs-stack__layer a:hover { background: rgba(255,255,255,.05); }
.fs-stack__num { display: block; font-family: var(--sans); font-weight: 850; font-stretch: 72%; font-size: clamp(4.5rem, 14vw, 11rem); line-height: .9; letter-spacing: -0.04em; }
.fs-stack__label { display: block; font-style: italic; font-size: clamp(.95rem, 1.6vw, 1.15rem); margin-top: .6rem; color: rgba(255,255,255,.8); }
.fs-stack__layer--four .fs-stack__num { color: var(--white); }
.fs-stack__layer--seven .fs-stack__num { color: var(--gold); }
.fs-stack__layer--eight .fs-stack__num { color: var(--reef-light); }
.fs-stack__layer--seventeen .fs-stack__num { background: var(--sdg); -webkit-background-clip: text; background-clip: text; color: transparent; }

@media (prefers-reduced-motion: no-preference) {
	.fs-stack__layer { animation: fs-rise .7s cubic-bezier(.2,.7,.2,1) both; }
	.fs-stack__layer:nth-child(2) { animation-delay: .12s; }
	.fs-stack__layer:nth-child(3) { animation-delay: .24s; }
	.fs-stack__layer:nth-child(4) { animation-delay: .36s; }
	@keyframes fs-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
}
@media (max-width: 560px) {
	.fs-stack { grid-template-columns: 1fr 1fr; }
	.fs-stack__layer:nth-child(2) { border-right: 0; }
	.fs-stack__layer:nth-child(3) a { padding-left: 0; }
	.fs-stack__layer:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.2); }
}

/* Sections */
.fs-section { padding: clamp(3.5rem, 8vw, 6rem) 0; }
.fs-section__head { max-width: 62ch; margin-bottom: clamp(2rem, 5vw, 3.5rem); }
.fs-section__head p { color: var(--muted); font-size: 1.2rem; }

/* Framework layers */
.fs-framework { background: var(--paper); }
.fs-layer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--gap); padding: clamp(2rem, 4vw, 3rem) 0; border-top: 1px solid var(--line); }
.fs-layer:first-of-type { border-top: 0; padding-top: 0; }
.fs-layer__intro { align-self: start; position: sticky; top: 6rem; }
.fs-layer__num { font-family: var(--sans); font-weight: 850; font-stretch: 72%; font-size: clamp(4rem, 8vw, 6.5rem); line-height: .85; letter-spacing: -0.04em; margin: 0 0 .75rem; }
.fs-layer__intro p:not(.fs-layer__num) { color: var(--muted); }
.fs-layer--four .fs-layer__num { color: var(--royal); }
.fs-layer--seven .fs-layer__num { color: var(--gold); }
.fs-layer--eight .fs-layer__num { color: var(--reef); }
.fs-layer--seventeen .fs-layer__num { background: var(--sdg); -webkit-background-clip: text; background-clip: text; color: transparent; }
@media (max-width: 820px) {
	.fs-layer { grid-template-columns: 1fr; }
	.fs-layer__intro { position: static; }
}

.fs-items { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--gap); }
.fs-item a { display: block; padding: 1rem 0 1.1rem; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.fs-item__title { display: block; font-family: var(--sans); font-weight: 650; font-size: 1.1rem; line-height: 1.3; color: var(--navy); }
.fs-item__desc { display: block; font-size: 1rem; color: var(--muted); margin-top: .25rem; }
.fs-item a:hover .fs-item__title { text-decoration: underline; text-underline-offset: .2em; }
.fs-items--four .fs-item a { border-left: 4px solid var(--royal); padding-left: 1rem; border-bottom: 0; margin-bottom: 1rem; background: var(--white); padding-right: 1rem; }
.fs-items--four .fs-item__title { font-size: 1.25rem; }
.fs-items--seven .fs-item a:hover { border-bottom-color: var(--gold); }
.fs-items--eight .fs-item a:hover { border-bottom-color: var(--reef); }
.fs-item.is-current a { border-bottom-color: currentColor; }
.fs-item.is-current .fs-item__title::after { content: " (this page)"; font-weight: 400; color: var(--muted); font-size: .9em; }
@media (max-width: 560px) { .fs-items { grid-template-columns: 1fr; } }

/* Global Goals as colored tiles */
.fs-items--seventeen { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .6rem; }
.fs-items--seventeen .fs-item a { background: var(--goal); color: var(--white); border: 0; padding: .85rem .85rem 1rem; min-height: 132px; display: flex; flex-direction: column; justify-content: space-between; transition: transform .15s; }
.fs-items--seventeen .fs-item a:hover { transform: translateY(-3px); }
.fs-items--seventeen .fs-item__num { font-family: var(--sans); font-weight: 850; font-stretch: 75%; font-size: 2.2rem; line-height: 1; }
.fs-items--seventeen .fs-item__title { color: var(--white); font-size: .98rem; font-weight: 700; }
.fs-items--seventeen .fs-item.is-light a, .fs-items--seventeen .fs-item.is-light .fs-item__title { color: var(--ink); }
.fs-items--seventeen .fs-item.is-current a { outline: 3px solid var(--ink); outline-offset: 2px; }
.fs-items--seventeen .fs-item.is-current .fs-item__title::after { content: none; }
@media (prefers-reduced-motion: reduce) { .fs-items--seventeen .fs-item a { transition: none; } .fs-items--seventeen .fs-item a:hover { transform: none; } }

/* Story */
.fs-story__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: calc(var(--gap) * 1.5); align-items: start; }
.fs-story__quote { margin: 0; padding: 0; border-top: 6px solid var(--gold); padding-top: 1.25rem; }
.fs-story__quote p { font-family: var(--serif); font-style: italic; font-size: clamp(2.2rem, 4.5vw, 3.4rem); line-height: 1.1; color: var(--navy); margin: 0 0 .75rem; }
.fs-story__quote cite { font-style: normal; font-family: var(--sans); color: var(--muted); font-size: 1rem; }
.fs-story__text { max-width: 64ch; }
@media (max-width: 820px) { .fs-story__inner { grid-template-columns: 1fr; } }

/* Panama */
.fs-panama { background: #E9F4F3; }
.fs-panama__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: calc(var(--gap) * 1.5); align-items: center; }
.fs-panama__media { margin: 0; }
.fs-panama__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 4px; background: var(--reef); }
.fs-panama h2 { color: #0E4E4A; }
@media (max-width: 820px) { .fs-panama__inner { grid-template-columns: 1fr; } .fs-panama__media img { aspect-ratio: 16 / 10; } }

.fs-checks { list-style: none; padding: 0; margin: 1.25rem 0 0; }
.fs-checks li { position: relative; padding: .5rem 0 .5rem 2rem; border-bottom: 1px solid rgba(27,36,51,.1); }
.fs-checks li::before { content: ""; position: absolute; left: 0; top: 1.05rem; width: 1rem; height: .55rem; border-left: 3px solid var(--reef); border-bottom: 3px solid var(--reef); transform: rotate(-45deg); }

/* Steps (a true sequence) */
.fs-steps { list-style: none; counter-reset: step; margin: 0 0 2.5rem; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); }
.fs-steps li { counter-increment: step; border-top: 3px solid var(--royal); padding-top: 1rem; }
.fs-steps li::before { content: counter(step); display: block; font-family: var(--sans); font-weight: 850; font-stretch: 75%; font-size: 3rem; line-height: 1; color: var(--royal); margin-bottom: .5rem; }
.fs-steps p { color: var(--muted); }
@media (max-width: 820px) { .fs-steps { grid-template-columns: 1fr; } }

/* Democracy */
.fs-democracy { background: var(--royal); color: var(--white); }
.fs-democracy h2 { color: var(--white); }
.fs-democracy p { color: rgba(255,255,255,.9); max-width: 60ch; }
.fs-democracy__inner { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--gap); align-items: center; }
@media (max-width: 820px) { .fs-democracy__inner { grid-template-columns: 1fr; } }

/* Contact */
.fs-contact__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: calc(var(--gap) * 1.5); align-items: start; }
.fs-contact__form { background: var(--paper); padding: clamp(1.5rem, 3vw, 2.25rem); border-radius: 6px; }
@media (max-width: 820px) { .fs-contact__inner { grid-template-columns: 1fr; } }
.fs-form label { display: block; font-family: var(--sans); font-weight: 600; font-size: .95rem; color: var(--navy); margin-bottom: 1rem; }
.fs-form input, .fs-form textarea { display: block; width: 100%; margin-top: .35rem; font: inherit; font-family: var(--serif); font-weight: 400; font-size: 1.05rem; padding: .7rem .8rem; border: 1px solid #B9C3D1; border-radius: 4px; background: var(--white); color: var(--ink); }
.fs-form input:focus, .fs-form textarea:focus { outline: 3px solid var(--gold); outline-offset: 0; border-color: var(--royal); }
.fs-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 560px) { .fs-form__row { grid-template-columns: 1fr; } }
.fs-form__hp { position: absolute; left: -9999px; }
.fs-optional { font-weight: 400; color: var(--muted); }
.fs-form__note { font-family: var(--sans); font-size: 1rem; padding: .8rem 1rem; border-radius: 4px; }
.fs-form__note.is-ok { background: #E3F4E6; color: #1E5E2B; }
.fs-form__note.is-error { background: #FBE7E7; color: #8A1C1C; }

/* Inner page header */
.fs-pagehead { background: var(--navy); color: var(--white); padding: clamp(2.5rem, 6vw, 4.5rem) 0; }
.fs-pagehead h1 { color: var(--white); margin-bottom: .3em; }
.fs-pagehead__lede { font-size: 1.25rem; color: rgba(255,255,255,.85); max-width: 60ch; margin: 0; }
.fs-pagehead__inner { display: grid; grid-template-columns: auto 1fr; gap: clamp(1rem, 3vw, 2.5rem); align-items: center; }
.fs-pagehead__num { font-family: var(--sans); font-weight: 850; font-stretch: 72%; font-size: clamp(5rem, 12vw, 9rem); line-height: .85; letter-spacing: -0.04em; margin: 0; }
.fs-pagehead__crumb { font-family: var(--sans); font-size: .95rem; margin-bottom: .75rem; color: rgba(255,255,255,.7); }
.fs-pagehead__crumb a { color: rgba(255,255,255,.9); }
.fs-pagehead__crumb a:hover { color: var(--gold); }
.fs-pagehead__crumb span { margin: 0 .4rem; }
.fs-pagehead--four .fs-pagehead__num { color: var(--white); }
.fs-pagehead--seven .fs-pagehead__num { color: var(--gold); }
.fs-pagehead--eight .fs-pagehead__num { color: var(--reef-light); }
.fs-pagehead--seventeen { background: var(--goal, var(--navy)); }
.fs-pagehead--seventeen .fs-pagehead__num { color: var(--white); }
.fs-pagehead--democracy { background: var(--royal); }
.fs-pagehead.is-light, .fs-pagehead.is-light h1, .fs-pagehead.is-light .fs-pagehead__num, .fs-pagehead.is-light .fs-pagehead__lede, .fs-pagehead.is-light .fs-pagehead__crumb, .fs-pagehead.is-light .fs-pagehead__crumb a { color: var(--ink); }
@media (max-width: 560px) { .fs-pagehead__inner { grid-template-columns: 1fr; } }

/* Page content (also hosts Elementor output) */
.fs-content { padding: clamp(2.5rem, 5vw, 3.5rem) 0; }
.fs-content > *:not(.elementor):not(.alignwide):not(.alignfull) { max-width: 72ch; }
.fs-content .alignwide { max-width: var(--wrap); }
.fs-content ul, .fs-content ol { padding-left: 1.3rem; }
.fs-content li { margin-bottom: .4rem; }
.fs-content .elementor-section .elementor-container { max-width: 100%; }

.fs-pager { display: flex; justify-content: space-between; gap: 1rem; padding: 2.5rem 0; }
.fs-content + .fs-pager { padding-top: 0; }
.fs-pager a { display: flex; flex-direction: column; font-family: var(--sans); font-weight: 650; text-decoration: none; max-width: 45%; }
.fs-pager span { font-weight: 500; font-size: .9rem; color: var(--muted); }
.fs-pager__next { margin-left: auto; text-align: right; }

.fs-related { background: var(--paper); }
.fs-cta-band { margin-top: 2.5rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.5rem; background: var(--white); border-left: 6px solid var(--gold); }
.fs-cta-band p { margin: 0; font-size: 1.15rem; max-width: 55ch; }

.fs-excerpt { border-bottom: 1px solid var(--line); padding: 1.5rem 0; }

/* Footer */
.fs-footer { background: var(--navy); color: rgba(255,255,255,.85); padding: 3.5rem 0 2rem; font-size: 1rem; }
.fs-footer__inner { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--gap); }
.fs-footer__about p:last-child { max-width: 42ch; }
.fs-footer .fs-nav__list { flex-direction: column; gap: .6rem; }
.fs-footer__legal { grid-column: 1 / -1; border-top: 1px solid rgba(255,255,255,.15); padding-top: 1.5rem; margin: 1rem 0 0; font-size: .85rem; color: rgba(255,255,255,.6); font-family: var(--sans); }
@media (max-width: 640px) { .fs-footer__inner { grid-template-columns: 1fr; } }

/* Submit your project form */
.fs-pagehead--submit { background: var(--reef); }
.fs-content.fs-content--form > * { max-width: 800px; }
.fs-btn--ghost-dark { border-color: var(--line); color: var(--navy); background: var(--white); }
.fs-btn--ghost-dark:hover { border-color: var(--navy); color: var(--navy); }
.fs-btn[disabled] { opacity: .6; cursor: wait; }
.fs-pf { font-size: 1.05rem; }
.fs-pf__progress { display: none; }
.fs-pf.is-enhanced .fs-pf__progress { list-style: none; counter-reset: pf; display: grid; grid-template-columns: repeat(7, 1fr); gap: .35rem; margin: 0 0 2rem; padding: 0; }
.fs-pf__progress li { counter-increment: pf; border-top: 4px solid var(--line); padding-top: .45rem; font-family: var(--sans); font-size: .8rem; line-height: 1.25; color: var(--muted); }
.fs-pf__progress li::before { content: counter(pf); display: block; font-weight: 800; font-size: 1rem; }
.fs-pf__progress li.is-done { border-color: var(--reef); color: var(--ink); }
.fs-pf__progress li.is-current { border-color: var(--royal); color: var(--navy); font-weight: 650; }
@media (max-width: 700px) {
	.fs-pf__progress li span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}
.fs-pf__step { border: 0; margin: 0 0 2.5rem; padding: 0; min-width: 0; }
.fs-pf__step > legend { font-family: var(--sans); font-weight: 750; font-stretch: 88%; font-size: clamp(1.6rem, 3vw, 2.1rem); color: var(--navy); padding: 0; margin-bottom: .35rem; line-height: 1.15; }
.fs-pf__step > legend:focus { outline: none; }
.fs-pf__count { display: block; font-size: .95rem; font-weight: 600; font-stretch: 100%; color: var(--reef); margin-bottom: .2rem; }
.fs-pf__intro { color: var(--muted); margin-bottom: 1.75rem; }
.fs-pf__field { margin-bottom: 1.5rem; }
.fs-pf__field > label, .fs-pf__group > legend { display: block; font-family: var(--sans); font-weight: 650; font-size: 1rem; color: var(--navy); margin-bottom: .3rem; padding: 0; }
.fs-req { font-weight: 400; color: var(--muted); font-size: .9em; }
.fs-pf__help { display: block; font-size: .95rem; color: var(--muted); margin-bottom: .45rem; }
.fs-pf input[type=text], .fs-pf input[type=email], .fs-pf input[type=tel], .fs-pf input[type=url], .fs-pf textarea {
	display: block; width: 100%; font: inherit; font-size: 1.05rem; padding: .7rem .8rem; border: 1px solid #B9C3D1; border-radius: 4px; background: var(--white); color: var(--ink);
}
.fs-pf textarea { resize: vertical; line-height: 1.5; }
.fs-pf input:focus, .fs-pf textarea:focus { outline: 3px solid var(--gold); outline-offset: 0; border-color: var(--royal); }
.fs-pf input:user-invalid, .fs-pf textarea:user-invalid { border-color: #B42318; }
.fs-pf__counter { display: block; text-align: right; font-family: var(--sans); font-size: .8rem; color: var(--muted); margin-top: .25rem; }
.fs-pf__counter.is-near { color: #9A5B00; font-weight: 600; }
.fs-pf__group { border: 0; padding: 0; margin: 0; min-width: 0; }
.fs-pf__choice { display: inline-flex; align-items: center; gap: .45rem; margin: .2rem 1.25rem .2rem 0; font-size: 1.05rem; cursor: pointer; }
.fs-pf__choice--wide { display: flex; align-items: flex-start; margin-right: 0; padding: 1rem; background: var(--paper); border-radius: 4px; }
.fs-pf__choice--wide input { margin-top: .35rem; }
.fs-pf input[type=radio], .fs-pf input[type=checkbox] { width: 1.15rem; height: 1.15rem; accent-color: var(--royal); flex: none; }
.fs-pf__group > .fs-pf__chip { display: inline-flex; }
.fs-pf__chip { align-items: center; gap: .4rem; margin: 0 .4rem .5rem 0; padding: .45rem .8rem; border: 1px solid #B9C3D1; border-radius: 999px; font-family: var(--sans); font-size: .92rem; cursor: pointer; background: var(--white); }
.fs-pf__chip:has(input:checked) { background: #E7EEF9; border-color: var(--royal); color: var(--navy); font-weight: 600; }
.fs-pf__chip:has(input:focus-visible) { outline: 3px solid var(--gold); outline-offset: 2px; }
.fs-pf__group--grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .4rem; }
.fs-pf__group--grid > legend { grid-column: 1 / -1; }
.fs-pf__group--grid .fs-pf__chip { margin: 0; border-radius: 6px; }
.fs-pf__fwt-q { border-left: 4px solid var(--royal); background: var(--paper); padding: .9rem 1rem 1rem; margin-bottom: .75rem; }
.fs-pf__fwt-title { font-family: var(--sans); font-weight: 700; color: var(--navy); margin: 0 0 .35rem; }
.fs-pf__sub { display: block; font-family: var(--sans); font-size: .9rem; color: var(--muted); margin: .5rem 0 .25rem; }
.fs-pf input[type=file] { font: inherit; font-size: .98rem; padding: .9rem; border: 2px dashed #B9C3D1; border-radius: 6px; width: 100%; background: var(--paper); }
.fs-pf__files { display: block; font-size: .95rem; margin-top: .4rem; color: var(--reef); }
.fs-pf__files.is-error { color: #B42318; font-weight: 600; }
.fs-pf__nav { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: space-between; border-top: 1px solid var(--line); padding-top: 1.25rem; margin-top: 2rem; }
.fs-pf__nav .fs-pf__next, .fs-pf__nav .fs-pf__send { margin-left: auto; }
.fs-pf__draft { background: #FFF6E0; border-left: 4px solid var(--gold); padding: .75rem 1rem; font-size: 1rem; }
.fs-pf__draft button, .fs-pf__edit { font: inherit; font-family: var(--sans); font-size: .9rem; font-weight: 600; background: none; border: 0; color: var(--royal); text-decoration: underline; cursor: pointer; padding: 0 .25rem; }
.fs-pf__summary section { border: 1px solid var(--line); border-radius: 6px; padding: 1rem 1.1rem .5rem; margin-bottom: 1rem; }
.fs-pf__summary h3 { display: flex; justify-content: space-between; align-items: baseline; font-size: 1.1rem; margin-bottom: .6rem; }
.fs-pf__summary dl { margin: 0; }
.fs-pf__sum-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: .75rem; padding: .45rem 0; border-top: 1px solid #EDF0F4; font-size: .95rem; }
.fs-pf__sum-row dt { font-family: var(--sans); font-weight: 600; color: var(--navy); }
.fs-pf__sum-row dd { margin: 0; overflow-wrap: anywhere; }
.fs-pf__blank { color: var(--muted); font-style: italic; }
@media (max-width: 560px) { .fs-pf__sum-row { grid-template-columns: 1fr; gap: .1rem; } }
.fs-pf-done { border-left: 6px solid var(--reef); background: #E9F4F3; padding: 1.5rem 1.75rem; }
.fs-pf-done h2 { color: #0E4E4A; }

/* ================================================================
 * Project Library
 * ================================================================ */
.fs-pf__group--stack .fs-pf__choice { display: flex; margin: .35rem 0; }
.fs-pagehead--lib { background: var(--navy); }

.fs-teambar { background: #FFF6E0; border-bottom: 1px solid #EFD9A0; font-family: var(--sans); font-size: .95rem; }
.fs-teambar__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.5rem; padding: .6rem 0; }
.fs-teambar p { margin: 0; }
.fs-teambar__links { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.fs-teambar__links a, .fs-teambar__btn { font-weight: 650; color: var(--navy); }
.fs-teambar__btn { font: inherit; font-weight: 650; background: var(--navy); color: var(--white); border: 0; border-radius: 999px; padding: .4rem .9rem; cursor: pointer; }

.fs-lib { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: calc(var(--gap) * 1.5); padding: clamp(2rem, 5vw, 3.5rem) 0; align-items: start; }
@media (max-width: 900px) { .fs-lib { grid-template-columns: 1fr; } }
.fs-lib__summary { font-size: 1.35rem; line-height: 1.45; color: var(--navy); max-width: 60ch; }
.fs-lib__text { max-width: 70ch; }
.fs-lib__text h2 { font-size: 1.35rem; margin-top: 2rem; padding-top: .9rem; border-top: 3px solid var(--gold); }
.fs-lib__text ul { padding-left: 1.2rem; }
.fs-lib__photos { display: grid; gap: .5rem; margin: 1.5rem 0 1rem; }
.fs-lib__photos--2 { grid-template-columns: 1fr 1fr; }
.fs-lib__photos--3 { grid-template-columns: 2fr 1fr; grid-auto-rows: 1fr; }
.fs-lib__photos--3 a:first-child { grid-row: span 2; }
.fs-lib__photos a:nth-child(n+4) { display: none; }
.fs-lib__photos img { width: 100%; height: 100%; object-fit: cover; border-radius: 4px; aspect-ratio: 4 / 3; }
.fs-lib__photos--3 a:first-child img { aspect-ratio: auto; }
.fs-lib__facts { position: sticky; top: 6rem; background: var(--paper); border-top: 6px solid var(--royal); padding: 1.25rem 1.25rem .5rem; }
@media (max-width: 900px) { .fs-lib__facts { position: static; } }
.fs-lib__facts dl { margin: 0; }
.fs-lib__facts div { padding: 0 0 .85rem; }
.fs-lib__facts dt { font-family: var(--sans); font-size: .85rem; font-weight: 650; color: var(--muted); }
.fs-lib__facts dd { margin: .1rem 0 0; font-size: 1.02rem; overflow-wrap: anywhere; }
.fs-lib__card { background: var(--paper); }

/* Report card */
.fs-rc { max-width: 900px; margin: 0 auto; background: var(--white); padding: clamp(1rem, 3vw, 2rem); font-family: var(--sans); font-size: .98rem; line-height: 1.45; }
.fs-rc__banner { position: relative; max-width: 700px; margin: 0 auto; }
.fs-rc__banner img { width: 100%; height: auto; }
.fs-rc__fade { position: absolute; background: rgba(255, 255, 255, .8); pointer-events: none; }
.fs-rc__head { border-top: 4px solid var(--gold); margin-top: .75rem; padding-top: .75rem; }
.fs-rc__head h2 { font-size: clamp(1.4rem, 3vw, 1.9rem); color: var(--royal); margin-bottom: .2rem; }
.fs-rc__meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1rem; font-size: .88rem; color: var(--muted); margin: 0 0 1rem; }
.fs-rc__meta a { font-weight: 700; }
.fs-rc__score { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 0 1.25rem; border: 2px solid var(--royal); border-radius: 6px; background: #EEF3FA; }
.fs-rc__score > div { display: flex; flex-direction: column-reverse; align-items: center; padding: .6rem .5rem; text-align: center; border-left: 1px solid #C9D5E6; }
.fs-rc__score > div:first-child { border-left: 0; }
.fs-rc__score dt { font-size: .8rem; color: var(--muted); }
.fs-rc__score dd { margin: 0; color: var(--muted); font-weight: 600; }
.fs-rc__score dd strong { font-size: 2rem; font-weight: 850; font-stretch: 75%; color: var(--royal); line-height: 1; margin-right: .1rem; }
@media (max-width: 560px) { .fs-rc__score { grid-template-columns: 1fr 1fr; } .fs-rc__score > div:nth-child(3) { border-left: 0; } .fs-rc__score > div:nth-child(n+3) { border-top: 1px solid #C9D5E6; } }
.fs-rc h3 { font-size: 1.15rem; color: var(--royal); margin: 1.1rem 0 .45rem; padding-bottom: .25rem; border-bottom: 2px solid var(--gold); }
.fs-rc__list { list-style: none; margin: 0; padding: 0; }
.fs-rc__list li { margin: 0 0 .4rem; }
.fs-rc__list--dots li::before { content: "\2022"; color: var(--gold); font-weight: 800; margin-right: .45rem; }
.fs-rc__tag { display: inline-block; min-width: 3.3em; text-align: center; font-size: .78rem; font-weight: 750; padding: .05rem .4rem; border-radius: 3px; background: var(--royal); color: var(--white); margin-right: .3rem; }
.fs-rc__tag.is-check { background: transparent; color: #8A4B00; box-shadow: inset 0 0 0 1.5px #8A4B00; }
.fs-rc__none { color: var(--muted); font-style: italic; }
.fs-rc__foot { font-size: .82rem; color: var(--muted); margin: 1.25rem 0 0; }

/* Library index */
.fs-libx { padding: clamp(2rem, 5vw, 3rem) 0 clamp(3rem, 6vw, 4rem); }
.fs-libx__filters { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem; }
.fs-libx__years { display: flex; flex-wrap: wrap; gap: .4rem; }
.fs-libx__years a { font-family: var(--sans); font-weight: 650; text-decoration: none; padding: .45rem 1rem; border-radius: 999px; border: 1px solid var(--line); color: var(--navy); }
.fs-libx__years a[aria-current] { background: var(--navy); border-color: var(--navy); color: var(--white); }
.fs-libx__country { font-family: var(--sans); font-weight: 600; font-size: .95rem; color: var(--navy); display: flex; gap: .5rem; align-items: center; }
.fs-libx__country select { font: inherit; font-weight: 400; padding: .45rem .6rem; border: 1px solid #B9C3D1; border-radius: 4px; background: var(--white); }
.fs-libx__count { font-family: var(--sans); color: var(--muted); font-size: .95rem; margin: 1rem 0 0; }
.fs-libx__year { margin-top: 2.25rem; }
.fs-libx__year > h2 { font-size: 1.6rem; border-bottom: 3px solid var(--gold); padding-bottom: .35rem; }
.fs-libx__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.25rem; }
.fs-libx__card a { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.fs-libx__card a:hover { border-color: var(--royal); }
.fs-libx__card a:hover .fs-libx__title { text-decoration: underline; text-underline-offset: .15em; }
.fs-libx__img { display: block; position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--reef); }
.fs-libx__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fs-libx__noimg { display: flex; align-items: flex-end; height: 100%; padding: .75rem 1rem; font-family: var(--sans); font-weight: 850; font-stretch: 75%; font-size: 2rem; line-height: 1; color: rgba(255, 255, 255, .9); background: linear-gradient(160deg, var(--reef), var(--navy)); }
.fs-libx__body { display: flex; flex-direction: column; gap: .25rem; padding: .9rem 1rem 1rem; flex: 1; }
.fs-libx__title { font-family: var(--sans); font-weight: 700; font-size: 1.15rem; line-height: 1.25; color: var(--navy); }
.fs-libx__place { font-family: var(--sans); font-size: .9rem; color: var(--muted); }
.fs-libx__sum { font-size: .98rem; line-height: 1.45; margin-top: .25rem; }
.fs-libx__score { display: flex; gap: .3rem; margin-top: auto; padding-top: .75rem; }
.fs-libx__chip { font-family: var(--sans); font-size: .8rem; color: var(--muted); padding: .15rem .45rem; border-radius: 3px; background: var(--paper); border-left: 3px solid; }
.fs-libx__chip b { color: var(--ink); font-size: .95rem; }
.fs-libx__chip--0 { border-color: var(--royal); }
.fs-libx__chip--1 { border-color: var(--gold); }
.fs-libx__chip--2 { border-color: var(--reef); }
.fs-libx__chip--3 { border-color: #DD1367; }
.fs-libx__empty { background: var(--paper); padding: 2rem; margin-top: 2rem; border-left: 6px solid var(--gold); }
.fs-libx__key { font-family: var(--sans); font-size: .88rem; color: var(--muted); margin-top: 2.5rem; }
.fs-home-lib { background: var(--white); border-top: 1px solid var(--line); }

/* ================================================================
 * 47817.org Project Form sheets (team only)
 * ================================================================ */
.fs-form-sheets { padding: 2rem 0 3rem; background: #E4E8EE; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; }
.fs-sheet { width: min(100% - 2rem, 8.5in); margin: 0 auto 2rem; background: var(--white); box-shadow: 0 1px 3px rgba(18, 48, 90, .18); display: flex; flex-direction: column; min-height: 11in; }
.fs-sheet__bar { background: var(--royal); color: var(--white); padding: 20px 43px 16px; border-bottom: 5px solid var(--gold); }
.fs-sheet__title { font-weight: 700; font-size: 23px; margin: 0 0 4px; line-height: 1.15; }
.fs-sheet__sub { font-size: 14px; margin: 0; opacity: .95; }
.fs-sheet__body { padding: 14px 43px 10px; flex: 1; font-size: 13px; line-height: 1.35; color: #000; }
.fs-sheet__foot { padding: 0 43px 22px; font-size: 11px; color: #595959; }
.fs-sheet__top { font-size: 13px; margin: 0 0 6px; overflow-wrap: anywhere; }
.fs-sheet__top a { color: #0000EE; font-weight: 700; }
.fs-sheet__h { font-family: inherit; font-stretch: 100%; font-size: 15px; font-weight: 700; letter-spacing: 0; color: #3A7A1E; text-transform: uppercase; margin: 14px 0 8px; padding-bottom: 3px; border-bottom: 1.5px solid var(--gold); }
.fs-sheet__ready { list-style: none; margin: 0; padding: 8px 12px; display: flex; flex-wrap: wrap; gap: 6px 26px; background: #F4F7FB; border: 1px solid #99A6B8; border-radius: 5px; font-size: 12px; }
.fs-sheet__ready li { display: flex; align-items: center; gap: 6px; }
.fs-sheet__ready li.is-no { color: #8A4B00; }
.fs-sheet__tick { width: 13px; height: 13px; border: 1px solid #99A6B8; background: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; color: #3A7A1E; font-weight: 700; }
.fs-sheet__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.fs-sheet__row--3 { grid-template-columns: 2fr 1fr 1fr; }
.fs-sheet__field { margin: 0 0 8px; }
.fs-sheet__label { font-size: 11px; font-weight: 700; color: #595959; margin-bottom: 3px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; }
.fs-sheet__note { font-weight: 400; }
.fs-sheet__box { white-space: pre-wrap; overflow-wrap: anywhere; background: #F4F7FB; border: 1px solid #99A6B8; padding: 5px 7px; min-height: 26px; font-size: 13px; }
.fs-sheet__field.is-big .fs-sheet__box { min-height: 7in; }
.fs-sheet__box a { color: #0000EE; }
.fs-sheet__empty { color: #8A94A3; font-style: italic; }
.fs-sheet__copy { margin-left: auto; font: inherit; font-size: 11px; font-weight: 700; background: var(--royal); color: #fff; border: 0; border-radius: 3px; padding: 3px 10px; cursor: pointer; }
.fs-sheet__count { font-size: 11px; color: #3A7A1E; margin: 3px 0 0; }
.fs-sheet__count.is-over { color: #B42318; font-weight: 700; }
.fs-sheet__meta { font-size: 12px; margin: 4px 0 10px; }
.fs-sheet__body p { margin: 0 0 6px; }
.fs-sheet__body ul { margin: 0 0 6px; padding-left: 16px; }
.fs-sheet__results { background: #F4F7FB; border: 1px solid #99A6B8; padding: 8px 12px; }
.fs-sheet__results h3 { font-family: inherit; font-stretch: 100%; font-size: 13px; color: #3A7A1E; margin: 8px 0 3px; letter-spacing: 0; }
.fs-sheet__ital { font-style: italic; color: #595959; font-size: 12px; }
.fs-sheet__links a { color: #0000EE; overflow-wrap: anywhere; }
.fs-sheet--card .fs-sheet__body { padding-top: 22px; }
.fs-sheet--card .fs-rc { padding: 0; font-size: 12px; }
.fs-sheet--card .fs-rc__banner { max-width: 6.4in; }
.fs-sheet--card .fs-rc h3 { font-size: 15px; margin-top: 10px; }
.fs-sheet--card .fs-rc__score dd strong { font-size: 26px; }
.fs-sheet--card .fs-rc__foot { display: none; }
@media (max-width: 640px) {
	.fs-sheet { min-height: 0; }
	.fs-sheet__bar, .fs-sheet__body, .fs-sheet__foot { padding-left: 16px; padding-right: 16px; }
	.fs-sheet__row, .fs-sheet__row--3 { grid-template-columns: 1fr; }
	.fs-sheet__field.is-big .fs-sheet__box { min-height: 0; }
}

@media print {
	@page { size: letter; margin: 0; }
	.fs-print-form .fs-header, .fs-print-form .fs-footer, .fs-print-form .fs-teambar, .fs-print-form #wpadminbar, .fs-sheet__copy { display: none !important; }
	html.fs-print-form, .fs-print-form { margin-top: 0 !important; background: #fff; }
	.fs-form-sheets { padding: 0; background: #fff; }
	.fs-sheet { width: 8.5in; min-height: 10.95in; margin: 0; box-shadow: none; break-after: page; page-break-after: always; }
	.fs-sheet:last-child { break-after: auto; page-break-after: auto; }
	.fs-sheet__bar, .fs-rc__tag, .fs-sheet__copy, .fs-rc__score, .fs-sheet__box, .fs-sheet__ready, .fs-sheet__results, .fs-rc__fade { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
	.fs-sheet__field.is-big .fs-sheet__box { min-height: 7.9in; }
	.fs-sheet__bar { padding: 16px 43px 12px; }
	.fs-sheet__title { font-size: 21px; }
	.fs-sheet__body { font-size: 11px; padding-top: 10px; line-height: 1.3; }
	.fs-sheet__h { font-size: 13px; margin: 9px 0 5px; }
	.fs-sheet__field { margin-bottom: 5px; }
	.fs-sheet__label { font-size: 10px; margin-bottom: 2px; }
	.fs-sheet__box { font-size: 11px; padding: 3px 6px; min-height: 20px; }
	.fs-sheet__field.is-big .fs-sheet__box { font-size: 12px; }
	.fs-sheet__ready { padding: 5px 10px; font-size: 10.5px; }
	.fs-sheet__foot { padding-bottom: 16px; font-size: 9.5px; }
	.fs-sheet--card .fs-sheet__body { padding-top: 14px; }
	.fs-sheet--card .fs-rc { font-size: 10.5px; line-height: 1.35; }
	.fs-sheet--card .fs-rc__banner { max-width: 5.3in; }
	.fs-sheet--card .fs-rc h3 { font-size: 13px; margin: 7px 0 4px; }
	.fs-sheet--card .fs-rc__head h2 { font-size: 20px; }
	.fs-sheet--card .fs-rc__score { margin-bottom: 6px; }
	.fs-sheet--card .fs-rc__score > div { padding: 4px; }
	.fs-sheet--card .fs-rc__list li { margin-bottom: 2px; }
}
.fs-sheet__body .fs-rc__list { padding-left: 0; }

/* ================================================================
 * 1.4 look: the 4-7-8-17 banner palette, photo-led home page
 * ================================================================ */
:root {
	--c4: #F9A51B; --c7: #F2692B; --c8: #DC1666; --c17: #56B947; --sky: #1FA3D6;
	--sdg1: #E5243B; --sdg2: #DDA63A; --sdg3: #4C9F38; --sdg4: #C5192D; --sdg5: #FF3A21; --sdg6: #26BDE2; --sdg7: #FCC30B; --sdg8: #A21942; --sdg9: #FD6925;
	--sdg10: #DD1367; --sdg11: #FD9D24; --sdg12: #BF8B2E; --sdg13: #3F7E44; --sdg14: #0A97D9; --sdg15: #56C02B; --sdg16: #00689D; --sdg17: #19486A;
}

/* Brand mark follows the banner colors */
.fs-brand__mark span:nth-child(1) { color: var(--c4); }
.fs-brand__mark span:nth-child(2) { color: var(--c7); }
.fs-brand__mark span:nth-child(3) { color: #FF5C9A; }
.fs-brand__mark span:nth-child(4) { background: none; -webkit-background-clip: initial; background-clip: initial; color: var(--c17); }

/* Hero */
.fs-hero { position: relative; overflow: hidden; padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(3rem, 6vw, 4.5rem); background: var(--navy); }
.fs-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 8px; background: linear-gradient(90deg, var(--c4) 0 25%, var(--c7) 25% 50%, var(--c8) 50% 75%, var(--c17) 75%); }
.fs-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; }
@media (max-width: 900px) { .fs-hero__grid { grid-template-columns: 1fr; } }
.fs-hero__title { max-width: 16ch; font-size: clamp(2.5rem, 5.4vw, 4.4rem); font-weight: 850; font-stretch: 85%; letter-spacing: -0.02em; }
.fs-count { margin: 1.75rem 0 0; padding: 1rem 1.25rem; background: rgba(255, 255, 255, .07); border-left: 6px solid var(--c4); border-radius: 0 8px 8px 0; max-width: 34rem; }
.fs-count__num { font-family: var(--sans); font-size: 1.15rem; font-weight: 600; margin: 0; color: var(--white); }
.fs-count__num b { font-size: 2.6rem; font-weight: 850; font-stretch: 75%; color: var(--c4); line-height: 1; margin-right: .15rem; vertical-align: -.2rem; }
.fs-count__today { margin: .5rem 0 0; font-size: 1.05rem; color: rgba(255, 255, 255, .88); }
.fs-count__today a { color: var(--white); font-weight: 600; }
.fs-count__today a:hover { color: var(--c4); }
.fs-count__rc { display: inline-block; margin-left: .5rem; font-family: var(--sans); font-size: .9rem; }

.fs-mosaic { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.fs-mosaic__item:nth-child(even) { transform: translateY(1.75rem); }
@media (max-width: 900px) { .fs-mosaic__item:nth-child(even) { transform: none; } .fs-mosaic { margin-top: .5rem; } }
.fs-mosaic__item a { position: relative; display: block; aspect-ratio: 4 / 3; border-radius: 10px; overflow: hidden; background: var(--royal); box-shadow: 0 10px 30px rgba(0, 0, 0, .28); }
.fs-mosaic__item img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .35s ease; }
.fs-mosaic__item a:hover img { transform: scale(1.04); }
.fs-mosaic__item--0 a { border-top: 5px solid var(--c4); }
.fs-mosaic__item--1 a { border-top: 5px solid var(--c7); }
.fs-mosaic__item--2 a { border-top: 5px solid var(--c8); }
.fs-mosaic__item--3 a { border-top: 5px solid var(--c17); }
.fs-mosaic__stand { display: flex; align-items: flex-end; height: 100%; padding: .9rem; font-family: var(--sans); font-weight: 850; font-stretch: 75%; font-size: 1.8rem; color: rgba(255, 255, 255, .9); background: linear-gradient(150deg, var(--royal), var(--navy)); }
.fs-mosaic__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 2rem .8rem .7rem; font-family: var(--sans); font-weight: 650; font-size: .95rem; line-height: 1.25; color: var(--white); background: linear-gradient(transparent, rgba(8, 20, 40, .88)); }
.fs-mosaic__cap b { display: inline-block; min-width: 2.1em; text-align: center; margin-right: .35rem; padding: .05rem .3rem; border-radius: 4px; background: var(--c4); color: var(--navy); font-weight: 850; }
@media (prefers-reduced-motion: reduce) { .fs-mosaic__item img { transition: none; } .fs-mosaic__item a:hover img { transform: none; } }

/* The four layers as solid color blocks */
.fs-band { background: var(--navy); }
.fs-band__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); }
@media (max-width: 700px) { .fs-band__list { grid-template-columns: 1fr 1fr; } }
.fs-band__item a { display: flex; align-items: center; gap: .9rem; padding: 1.1rem clamp(1rem, 3vw, 2rem); min-height: 7rem; text-decoration: none; color: var(--navy); transition: filter .15s; }
.fs-band__item a:hover { filter: brightness(1.06); }
.fs-band__item--four a { background: var(--c4); }
.fs-band__item--seven a { background: var(--c7); }
.fs-band__item--eight a { background: var(--c8); color: var(--white); }
.fs-band__item--seventeen a { background: var(--c17); }
.fs-band__num { font-family: var(--sans); font-weight: 850; font-stretch: 72%; font-size: clamp(3rem, 7vw, 5rem); line-height: .85; letter-spacing: -0.03em; }
.fs-band__label { font-family: var(--sans); font-weight: 700; font-size: clamp(.95rem, 1.5vw, 1.1rem); line-height: 1.2; max-width: 10ch; }

/* Section heads with an action on the right */
.fs-section__head--row { max-width: none; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; }
.fs-section__head--row > div { max-width: 62ch; }
.fs-section__head--row p { margin-bottom: 0; }

/* Project cards */
.fs-home-count { background: var(--paper); }
.fs-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 1.25rem; }
.fs-card { --accent: var(--royal); position: relative; display: flex; flex-direction: column; background: var(--white); border-radius: 10px; overflow: hidden; box-shadow: 0 1px 2px rgba(18, 48, 90, .08), 0 6px 18px rgba(18, 48, 90, .07); border-top: 5px solid var(--accent); transition: transform .18s ease, box-shadow .18s ease; }
.fs-card:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgba(18, 48, 90, .1), 0 14px 30px rgba(18, 48, 90, .14); }
@media (prefers-reduced-motion: reduce) { .fs-card, .fs-card:hover { transition: none; transform: none; } }
.fs-card__img { position: relative; aspect-ratio: 16 / 10; background: var(--royal); overflow: hidden; }
.fs-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.fs-card__noimg { display: flex; align-items: flex-end; height: 100%; padding: .8rem 1rem; font-family: var(--sans); font-weight: 850; font-stretch: 75%; font-size: 2rem; color: rgba(255, 255, 255, .92); background: linear-gradient(150deg, var(--accent), var(--navy)); }
.fs-card__day { position: absolute; left: .75rem; bottom: .75rem; display: inline-flex; align-items: baseline; gap: .3rem; padding: .3rem .6rem; border-radius: 6px; background: var(--navy); color: var(--white); font-family: var(--sans); font-size: .82rem; font-weight: 600; }
.fs-card__day b { font-size: 1.15rem; font-weight: 850; color: var(--c4); }
.fs-card__date { margin-left: .35rem; padding-left: .45rem; border-left: 1px solid rgba(255, 255, 255, .3); color: rgba(255, 255, 255, .8); }
.fs-card__body { display: flex; flex-direction: column; gap: .25rem; padding: .95rem 1.1rem 1rem; flex: 1; }
.fs-card__title { font-size: 1.2rem; line-height: 1.25; margin: 0; }
.fs-card__title a { color: var(--navy); text-decoration: none; }
.fs-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.fs-card__title a:focus-visible { outline: none; }
.fs-card:has(.fs-card__title a:focus-visible) { outline: 3px solid var(--c4); outline-offset: 2px; }
.fs-card:hover .fs-card__title a { text-decoration: underline; text-underline-offset: .15em; }
.fs-card__place { font-family: var(--sans); font-size: .9rem; color: var(--muted); margin: 0; }
.fs-card__sum { font-size: .98rem; line-height: 1.45; margin: .35rem 0 0; }
.fs-card__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; margin: auto 0 0; padding-top: .85rem; }
.fs-card__score { display: flex; gap: .25rem; }
.fs-card__rc { position: relative; z-index: 2; font-family: var(--sans); font-size: .88rem; font-weight: 700; color: var(--royal); }
.fs-card__rc:hover { color: var(--c8); }
.fs-chip { font-family: var(--sans); font-size: .78rem; color: var(--muted); padding: .12rem .4rem; border-radius: 3px; background: var(--paper); border-bottom: 3px solid; }
.fs-chip b { color: var(--ink); font-size: .92rem; }
.fs-chip--0 { border-color: var(--c4); }
.fs-chip--1 { border-color: var(--c7); }
.fs-chip--2 { border-color: var(--c8); }
.fs-chip--3 { border-color: var(--c17); }

/* Website cards */
.fs-home-sites { background: var(--navy); color: var(--white); }
.fs-home-sites h2 { color: var(--white); }
.fs-home-sites .fs-section__head p { color: rgba(255, 255, 255, .8); }
.fs-sites { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1.25rem; }
.fs-site { --site: var(--royal); }
.fs-site__link { display: block; text-decoration: none; color: inherit; }
.fs-site__frame { display: block; border-radius: 8px; overflow: hidden; background: var(--white); box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 8px 22px rgba(0, 0, 0, .12); border-top: 4px solid var(--site); transition: transform .18s ease; }
.fs-site__link:hover .fs-site__frame { transform: translateY(-3px); }
@media (prefers-reduced-motion: reduce) { .fs-site__frame, .fs-site__link:hover .fs-site__frame { transition: none; transform: none; } }
.fs-site__bar { display: flex; align-items: center; gap: 4px; padding: 6px 8px; background: #EEF1F5; border-bottom: 1px solid #DCE2EA; }
.fs-site__bar > span { width: 7px; height: 7px; border-radius: 50%; background: #C3CCD8; flex: none; }
.fs-site__bar em { font-style: normal; font-family: var(--sans); font-size: .72rem; color: #5C6878; margin-left: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fs-site__frame img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: top; }
.fs-site__stand { display: flex; align-items: center; justify-content: center; text-align: center; aspect-ratio: 4 / 3; padding: 1rem; font-family: var(--sans); font-weight: 800; font-stretch: 80%; font-size: 1.35rem; line-height: 1.15; color: var(--white); background: linear-gradient(150deg, var(--site), var(--navy)); }
.fs-site__name { display: block; font-family: var(--sans); font-size: 1.02rem; font-weight: 700; line-height: 1.25; margin: .7rem 0 .1rem; color: inherit; }
.fs-site__link:hover .fs-site__name { text-decoration: underline; text-underline-offset: .15em; }
.fs-site__domain { display: block; font-family: var(--sans); font-size: .85rem; opacity: .75; }
.fs-site__social { margin: .35rem 0 0; display: flex; flex-wrap: wrap; gap: .25rem .75rem; font-family: var(--sans); font-size: .8rem; }
.fs-site__social a { color: inherit; opacity: .85; }
.fs-home-sites .fs-site__social a:hover { color: var(--c4); opacity: 1; }

/* Our Websites page */
.fs-pagehead--sites { background: var(--navy); }
.fs-sitespage { padding: clamp(2rem, 5vw, 3rem) 0 clamp(3rem, 6vw, 4rem); }
.fs-sitespage__jump { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .5rem; }
.fs-sitespage__jump a { font-family: var(--sans); font-weight: 650; font-size: .95rem; text-decoration: none; color: var(--navy); padding: .45rem .9rem; border-radius: 999px; background: var(--paper); border-left: 5px solid var(--site); }
.fs-sitespage__jump a span { color: var(--muted); font-weight: 500; margin-left: .2rem; }
.fs-sitespage__group { margin-top: 2.5rem; }
.fs-sitespage__group > h2 { font-size: 1.5rem; padding-bottom: .4rem; border-bottom: 4px solid var(--site); }
.fs-sitespage .fs-site__social a { color: var(--royal); }

/* Framework and other sections take the banner colors */
.fs-layer--four .fs-layer__num { color: var(--c4); }
.fs-layer--seven .fs-layer__num { color: var(--c7); }
.fs-layer--eight .fs-layer__num { color: var(--c8); }
.fs-layer--seventeen .fs-layer__num { background: none; -webkit-background-clip: initial; background-clip: initial; color: var(--c17); }
.fs-items--four .fs-item a { border-left-color: var(--c4); }
.fs-items--seven .fs-item a:hover { border-bottom-color: var(--c7); }
.fs-items--eight .fs-item a:hover { border-bottom-color: var(--c8); }
.fs-pagehead--four .fs-pagehead__num { color: var(--c4); }
.fs-pagehead--seven .fs-pagehead__num { color: var(--c7); }
.fs-pagehead--eight .fs-pagehead__num { color: #FF5C9A; }
.fs-story__quote { border-top-color: var(--c7); }
.fs-steps li:nth-child(1) { border-top-color: var(--c4); } .fs-steps li:nth-child(1)::before { color: #B86F00; }
.fs-steps li:nth-child(2) { border-top-color: var(--c8); } .fs-steps li:nth-child(2)::before { color: var(--c8); }
.fs-steps li:nth-child(3) { border-top-color: var(--c17); } .fs-steps li:nth-child(3)::before { color: #2F7A25; }
.fs-democracy { background: linear-gradient(120deg, var(--royal), #0E5A8A); }
.fs-libx__year > h2 { border-bottom-color: var(--c7); }
.fs-band__item--seven a { color: #081830; }

.fs-band__label { max-width: 15ch; }
.fs-mosaic__stand { align-items: flex-start; }
.fs-home-count .fs-cards { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
@media (max-width: 380px) { .fs-home-count .fs-cards { grid-template-columns: 1fr; } }

.fs-panama__inner--solo { grid-template-columns: 1fr; max-width: 760px; }
.fs-page-img { margin: 0 0 1.5rem; }
.fs-page-img img { border-radius: 6px; max-height: 420px; width: auto; }

/* Framework at a glance (1.6.0) */
.fs-glance { background: var(--white, #fff); }
.fs-glance__figure { margin: 0; background: #fff; border-radius: 18px; padding: clamp(.75rem, 2.5vw, 2rem); box-shadow: 0 18px 40px rgba(18,48,90,.12); border: 1px solid rgba(18,48,90,.08); }
.fs-glance__figure a { display: block; }
.fs-glance__figure img { display: block; width: 100%; height: auto; }

/* Rotary club strip above the footer (1.6.0) */
.fs-rotary { background: #fff; border-top: 6px solid #F7A81B; padding: 2rem 0; }
.fs-rotary__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem 2.5rem; flex-wrap: wrap; }
.fs-rotary__lede { margin: 0; font-family: var(--sans); font-weight: 700; color: var(--navy); font-size: 1.05rem; max-width: 30ch; }
.fs-rotary__logo { display: block; flex: 0 1 520px; }
.fs-rotary__logo img { display: block; width: 100%; height: auto; }
@media (max-width: 640px) { .fs-rotary__inner { justify-content: center; text-align: center; } .fs-rotary__lede { max-width: none; } }
@media print { .fs-rotary { display: none; } }

/* 4-7-8-17 tile logo (1.6.0) */
.fs-logo { display: block; height: auto; }
.fs-logo text { font-family: var(--sans); font-weight: 850; font-stretch: 75%; letter-spacing: -0.02em; }
.fs-logo--header { width: 38px; flex: none; }
.fs-brand__text { display: flex; flex-direction: column; line-height: 1.05; }
.fs-brand__title { font-family: var(--sans); font-weight: 850; font-stretch: 75%; font-size: 1.35rem; letter-spacing: .02em; }
.fs-brand__text .fs-brand__name { font-size: .85rem; }
.fs-footer__logo { margin: 0 0 1rem; }
.fs-logo--footer { width: 64px; }
.fs-card__noimg, .fs-mosaic__stand { flex-direction: column; justify-content: space-between; align-items: flex-start; gap: .5rem; }
.fs-logo--ph { width: 38px; opacity: .95; filter: drop-shadow(0 4px 10px rgba(0,0,0,.25)); }
.fs-mosaic__stand .fs-logo--ph { width: 32px; }

/* Facebook feed (1.6.0) */
.fs-fb { background: #EEF3FA; }
.fs-fb__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 500px); gap: var(--gap); align-items: start; }
.fs-fb__text p { max-width: 38ch; }
.fs-fb__frame { position: relative; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 14px 34px rgba(18,48,90,.12); min-height: 720px; }
.fs-fb__frame iframe { position: relative; z-index: 1; display: block; width: 100%; max-width: 500px; background: transparent; }
.fs-fb__fallback { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .6rem; padding: 2rem; text-align: center; color: var(--muted, #5C6878); }
.fs-fb__fallback .fs-logo--fb { width: 64px; height: auto; }
.fs-fb__fallback p { margin: 0; max-width: 34ch; }
.fs-fb__fallback .fs-fb__fallback-title { font-family: var(--sans); font-weight: 800; font-size: 1.2rem; color: var(--navy, #12305A); }
.fs-fb__note { margin: .8rem 0 0; font-size: .95rem; }
.fs-fb__note a { font-weight: 600; }
@media (max-width: 860px) { .fs-fb__inner { grid-template-columns: 1fr; } .fs-fb__col { max-width: 500px; } }
.fs-mosaic__stand { justify-content: center; align-items: center; padding-bottom: 2.5rem; background: linear-gradient(150deg, var(--royal), var(--navy)); }
.fs-mosaic__stand .fs-logo--ph { width: 30%; max-width: 72px; }

/* Programs (1.7.0) */
.fs-pf__programs { display: grid; gap: .75rem; }
.fs-pf__program { display: flex; align-items: flex-start; gap: .75rem; padding: 1rem 1.1rem; border: 2px solid #C9D2DE; border-radius: 10px; background: var(--white); cursor: pointer; }
.fs-pf__program:has(input:checked) { border-color: var(--royal); background: #EEF3FA; }
.fs-pf__program input { width: 1.25rem; height: 1.25rem; margin-top: .2rem; flex: none; }
.fs-pf__program strong { display: block; font-family: var(--sans); font-size: 1.1rem; color: var(--navy); }
.fs-pf__program-note { display: block; font-size: .98rem; color: #3F4A5A; margin-top: .2rem; }
.fs-enter { background: #EEF3FA; }
.fs-enter__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: var(--gap); }
.fs-enter__card { background: var(--white); border-radius: 14px; padding: clamp(1.25rem, 3vw, 2rem); box-shadow: 0 10px 28px rgba(18,48,90,.1); border-top: 8px solid var(--c17); }
.fs-enter__card--de100 { border-top: 8px solid #DD0000; box-shadow: 0 10px 28px rgba(18,48,90,.1), inset 0 8px 0 -4px #000; }
.fs-enter__card h3 { margin: 0 0 .5rem; font-family: var(--sans); font-size: 1.5rem; color: var(--navy); }
.fs-enter__card p { margin: 0 0 1rem; }
.fs-card__seal { position: absolute; top: .7rem; right: .7rem; z-index: 2; padding: .25rem .6rem; border-radius: 999px; background: linear-gradient(135deg, #F7D774, #C99A2E); color: #3B2A00; font-family: var(--sans); font-weight: 800; font-size: .78rem; box-shadow: 0 2px 6px rgba(0,0,0,.25); }
.fs-pagehead--de100 { background: #0B2A5B; position: relative; }
.fs-flagbar { display: flex; flex-direction: column; position: absolute; top: 0; left: 0; right: 0; }
.fs-flagbar span { height: 5px; }
.fs-flagbar span:nth-child(1) { background: #000; }
.fs-flagbar span:nth-child(2) { background: #DD0000; }
.fs-flagbar span:nth-child(3) { background: #FFCE00; }
.fs-pagehead__kicker { margin: 0 0 .5rem; font-family: var(--sans); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #F7A81B; font-size: .9rem; }
.fs-pagehead--de100 .fs-pagehead__lede + .fs-pagehead__lede { margin-top: .75rem; font-style: italic; }
.fs-pagehead--de100 .fs-actions { margin-top: 1.5rem; }
.fs-de100 { padding: clamp(2rem, 5vw, 3.5rem) 0; }
.fs-de100 h2 { font-family: var(--sans); color: var(--navy); }
.fs-de100__steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem; padding: 0; list-style: none; counter-reset: s; margin: 0 0 2.5rem; }
.fs-de100__steps li { counter-increment: s; background: var(--white); border: 1px solid #E2DDD0; border-radius: 10px; padding: 1.25rem; }
.fs-de100__steps li::before { content: counter(s); display: inline-grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: #F7A81B; color: #0B2A5B; font-weight: 800; font-family: var(--sans); margin-bottom: .5rem; }
.fs-de100__steps strong { display: block; }

/* Entry page (1.8.0) */
.fs-entry { background: #EEF3FA; padding-bottom: clamp(2rem, 5vw, 3.5rem); }
.fs-entry__h, .fs-entry__formh { font-family: var(--sans); color: var(--navy); margin-top: 0; }
.fs-entry__programs { list-style: none; margin: 0 0 2rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: var(--gap); }
.fs-entry__prog { display: flex; flex-direction: column; background: var(--white); border-radius: 14px; padding: 1.5rem; border-top: 8px solid var(--c17); box-shadow: 0 10px 28px rgba(18,48,90,.1); }
.fs-entry__prog--de100 { border-top-color: #DD0000; }
.fs-entry__prog--p100 { border-top-color: var(--c4); }
.fs-entry__prog.is-picked { outline: 3px solid var(--royal); outline-offset: 2px; }
.fs-entry__prog h3 { margin: .2rem 0 .5rem; font-family: var(--sans); font-size: 1.35rem; color: var(--navy); line-height: 1.2; }
.fs-entry__prog p { margin: 0 0 .9rem; }
.fs-entry__prog .fs-btn { margin-top: auto; align-self: flex-start; }
.fs-entry__dates { font-family: var(--sans); font-size: .85rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #5C6878; }
.fs-entry__needs { font-family: var(--sans); font-weight: 700; font-size: .95rem; color: #7A1010; background: #FDECEC; border-radius: 8px; padding: .5rem .75rem; }
.fs-entry__how { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: var(--gap); background: var(--white); border-radius: 14px; padding: clamp(1.25rem, 3vw, 2rem); }
.fs-entry__how h3 { margin-top: 0; font-family: var(--sans); color: var(--navy); }
.fs-entry__steps { margin: 0; padding-left: 1.25rem; }
.fs-entry__steps li { margin-bottom: .5rem; }
.fs-entry__note { color: #3F4A5A; }
#fs-form { scroll-margin-top: 90px; padding-top: clamp(2rem, 5vw, 3rem); }
.fs-pf__step[data-step="heritage"] > legend { color: #7A1010; }
.fs-heritage { margin-top: 2.5rem; padding: 1.5rem; border-radius: 12px; background: #FFF8E6; border: 1px solid #EBC96A; }
.fs-heritage h2 { margin-top: .25rem; }
.fs-heritage__seal { display: inline-block; margin: 0; padding: .2rem .7rem; border-radius: 999px; background: linear-gradient(135deg, #F7D774, #C99A2E); color: #3B2A00; font-family: var(--sans); font-weight: 800; font-size: .85rem; }
.fs-heritage__photo { margin: 0 0 1rem; }
.fs-heritage__photo img { width: 100%; height: auto; border-radius: 8px; }
.fs-heritage__meta { font-family: var(--sans); font-size: .95rem; color: #5A4A1A; }

/* Program pictures and logos (1.8.1) */
.fs-entry__prog { padding: 0; overflow: hidden; }
.fs-entry__prog > :not(.fs-entry__media) { margin-left: 1.5rem; margin-right: 1.5rem; }
.fs-entry__media { position: relative; aspect-ratio: 16 / 10; background: #E9EEF5; overflow: hidden; margin-bottom: .9rem; }
.fs-entry__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fs-entry__prog--de100 .fs-entry__media img { filter: sepia(.15); }
.fs-entry__media--logo { display: grid; place-items: center; background: linear-gradient(150deg, #EEF7EE, #E4EEF8); }
.fs-entry__media .fs-plogo { position: absolute; left: .8rem; bottom: .8rem; }
.fs-entry__media--logo .fs-plogo { position: static; }
.fs-entry__cap { margin-top: -.5rem !important; font-family: var(--sans); font-size: .8rem; color: #5C6878; }
.fs-entry__acts { margin-top: auto; padding-bottom: 1.5rem; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; }
.fs-entry__prog .fs-entry__acts .fs-btn { margin-top: 0; }
.fs-plogo { display: inline-grid; place-items: center; font-family: "Barlow Condensed", var(--sans); font-weight: 700; color: #fff; }
.fs-plogo--100 { width: 64px; height: 50px; border-radius: 12px; font-size: 1.9rem; background: linear-gradient(150deg, #66BB66, #0C7FB8); box-shadow: 0 4px 12px rgba(0,0,0,.3); letter-spacing: .02em; }
.fs-plogo--de { align-items: stretch; width: 60px; height: 38px; border-radius: 4px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 0 0 2px #fff, 0 4px 12px rgba(0,0,0,.3); }
.fs-plogo--de i { flex: 1; }
.fs-plogo--de i:nth-child(1) { background: #000; }
.fs-plogo--de i:nth-child(2) { background: #DD0000; }
.fs-plogo--de i:nth-child(3) { background: #FFCE00; }
.fs-plogo--ph { width: 150px; height: 150px; border-radius: 50%; border: 3px dashed #7A8699; color: #3F4A5A; text-align: center; line-height: 1.1; background: rgba(255,255,255,.6); }
.fs-plogo--ph b { display: block; font-size: 3rem; color: var(--navy); line-height: 1; }
.fs-plogo--ph span { font-family: var(--sans); font-weight: 600; font-size: .8rem; }
.fs-plogo__img { max-width: 70%; max-height: 80%; width: auto !important; height: auto !important; position: static !important; object-fit: contain !important; }
.fs-enter .fs-entry__programs { margin-bottom: 0; }
.fs-langswitch { margin: 0 0 1rem; display: flex; gap: .5rem; font-family: var(--sans); font-weight: 700; font-size: .9rem; }
.fs-langswitch a, .fs-langswitch span { padding: .3rem .8rem; border-radius: 999px; border: 1px solid rgba(255,255,255,.6); color: #fff; text-decoration: none; }
.fs-langswitch span[aria-current] { background: #fff; color: var(--navy); }

/* 2027 Global Success card mark (1.9.1) */
.fs-entry__prog--p365 .fs-entry__media--logo { background: var(--navy); }
.fs-entry__prog--p365 .fs-entry__media--logo::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 8px; background: linear-gradient(90deg, var(--c4) 0 25%, var(--c7) 25% 50%, var(--c8) 50% 75%, var(--c17) 75%); }
.fs-plogo--gsp { display: flex; align-items: center; gap: 1rem; color: #fff; font-family: var(--sans); text-align: left; padding: 0 1rem; }
.fs-logo--gsp { width: 72px; flex: none; filter: drop-shadow(0 6px 14px rgba(0,0,0,.35)); }
.fs-plogo__words { display: flex; flex-direction: column; line-height: 1.1; }
.fs-plogo__words b { font-weight: 850; font-stretch: 75%; font-size: 2.1rem; letter-spacing: .02em; }
.fs-plogo__words span { font-weight: 600; font-size: 1.05rem; opacity: .95; }
.fs-plogo__words em { font-style: normal; font-weight: 700; font-size: .85rem; margin-top: .45rem; color: var(--c4); letter-spacing: .02em; }

/* History page (1.10.0) */
.fs-history__head { display: flex; align-items: center; gap: clamp(1rem, 3vw, 2rem); }
.fs-logo--history { width: clamp(64px, 10vw, 110px); flex: none; filter: drop-shadow(0 8px 18px rgba(0,0,0,.35)); }
.fs-pagehead--history { position: relative; }
.fs-pagehead--history::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 8px; background: linear-gradient(90deg, var(--c4) 0 25%, var(--c7) 25% 50%, var(--c8) 50% 75%, var(--c17) 75%); }
.fs-history { padding: clamp(2rem, 5vw, 3.5rem) 0; }
.fs-history h2 { font-family: var(--sans); color: var(--navy); }
.fs-history__roots { background: #EEF3FA; border-radius: 14px; padding: clamp(1.25rem, 3vw, 2rem); margin-bottom: 3rem; }
.fs-history__rootlist { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: 1rem; }
.fs-history__rootlist li { background: #fff; border-radius: 10px; padding: 1rem; display: flex; flex-direction: column; gap: .3rem; }
.fs-history__rootlist b { font-family: var(--sans); font-weight: 850; font-stretch: 75%; font-size: 1.6rem; color: var(--royal); }
.fs-history__rootlist strong { font-family: var(--sans); color: var(--navy); }
.fs-history__rootlist span { font-size: .95rem; color: #3F4A5A; }
.fs-timeline { list-style: none; margin: 1.5rem 0 3rem; padding: 0 0 0 1.5rem; border-left: 4px solid #D9E1EC; }
.fs-timeline__item { position: relative; margin: 0 0 1.75rem; padding-left: 1.25rem; }
.fs-timeline__item::before { content: ""; position: absolute; left: calc(-1.5rem - 12px); top: .35rem; width: 20px; height: 20px; border-radius: 5px; background: var(--c4); box-shadow: 0 0 0 4px #fff; }
.fs-timeline__item--1::before { background: var(--c7); }
.fs-timeline__item--2::before { background: var(--c8); }
.fs-timeline__item--3::before { background: var(--c17); }
.fs-timeline__date { margin: 0 0 .35rem; font-family: var(--sans); font-weight: 850; font-stretch: 75%; font-size: 1.35rem; color: var(--navy); letter-spacing: .01em; }
.fs-timeline__card { background: #fff; border: 1px solid #E1E7EF; border-radius: 12px; padding: 1rem 1.25rem; box-shadow: 0 6px 18px rgba(18,48,90,.06); max-width: 52rem; }
.fs-timeline__card h3 { margin: 0 0 .35rem; font-family: var(--sans); color: var(--navy); font-size: 1.2rem; }
.fs-timeline__card p { margin: 0; }
.fs-timeline__photos { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .75rem; margin: .9rem 0 0; }
.fs-timeline__photos figure { margin: 0; }
.fs-timeline__photos:has(figure:only-child) { grid-template-columns: minmax(0, 420px); }
.fs-timeline__photos img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: center 25%; border-radius: 8px; border: 1px solid rgba(18,48,90,.12); }
.fs-timeline__photos figcaption { font-size: .82rem; color: var(--muted, #5C6878); margin-top: .3rem; line-height: 1.35; }
.fs-timeline__files { list-style: none; margin: .75rem 0 0; padding: 0; display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; }
.fs-timeline__files a { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; font-size: .95rem; color: var(--royal); text-decoration: none; border: 1px solid currentColor; border-radius: 18px; padding: .35rem .85rem; line-height: 1.3; }
.fs-timeline__files a:hover, .fs-timeline__files a:focus-visible { background: var(--royal); color: #fff; }
.fs-timeline__files svg { flex: none; }
.fs-history__people span a, .fs-history__rootlist span a,
.fs-timeline__card p a { color: var(--royal, #17458F); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.fs-history__people ul { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem; }
.fs-history__people li { background: #fff; border-top: 5px solid var(--c17); border-radius: 10px; padding: 1rem; box-shadow: 0 6px 18px rgba(18,48,90,.06); display: flex; flex-direction: column; gap: .3rem; }
.fs-history__people strong { font-family: var(--sans); color: var(--navy); }
.fs-history__note { margin-top: 2.5rem; color: #3F4A5A; }
.fs-history__now { margin-bottom: 3rem; }
.fs-history__banner { margin: 1.25rem 0; background: #fff; border-radius: 12px; padding: clamp(.5rem, 2vw, 1.25rem); } .fs-history__banner img { display: block; width: 100%; height: auto; }
