/* =========================================================================
   Fletcher Park Inn 2026 — main stylesheet
   Serene retirement-community palette: deep navy, warm cream, muted gold,
   soft sage. Senior-friendly: 18px+ base, high contrast, big touch targets,
   visible focus, reduced-motion friendly.
   ========================================================================= */

:root {
	--navy-900: #14243a;
	--navy-800: #1c3450;
	--navy-700: #274668;
	--navy-100: #dbe4ee;
	--cream: #faf6ec;
	--cream-deep: #f3ecdc;
	--white: #ffffff;
	--gold: #b08d3f;
	--gold-deep: #8f7130;
	--sage: #6f8a6f;
	--sage-deep: #55705a;
	--ink: #22292f;
	--ink-soft: #47525c;
	--ok: #2e6f40;
	--warn: #8a6d1f;
	--info: #275d8c;
	--muted: #6a7178;
	--radius-lg: 22px;
	--radius-md: 14px;
	--radius-sm: 8px;
	--shadow-soft: 0 8px 30px rgba(20, 36, 58, 0.12);
	--font-display: "Fraunces", "Georgia", serif;
	--font-body: "Source Sans 3", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
	--maxw: 1160px;
	--maxw-narrow: 780px;
}

/* ---- Reset-ish -------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--font-body);
	font-size: 1.1875rem;            /* 19px — senior-friendly base */
	line-height: 1.65;
	color: var(--ink);
	background: var(--cream);
}
img { max-width: 100%; height: auto; display: block; }
figure { margin: 0; }
a { color: var(--navy-700); text-decoration-thickness: from-font; text-underline-offset: 3px; }
a:hover { color: var(--gold-deep); }

h1, h2, h3, h4 {
	font-family: var(--font-display);
	color: var(--navy-900);
	line-height: 1.2;
	margin: 0 0 0.5em;
	font-weight: 600;
}
h1 { font-size: clamp(2rem, 4.5vw, 3rem); }
h2 { font-size: clamp(1.6rem, 3.2vw, 2.2rem); }
h3 { font-size: 1.35rem; }

p { margin: 0 0 1.1em; }
ul, ol { padding-left: 1.4em; }

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

/* ---- Accessibility helpers ------------------------------------------- */
.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden;
	padding: 0; position: absolute; word-wrap: normal !important;
}
.skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 100;
	background: var(--navy-900); color: var(--white); padding: 0.8em 1.2em;
	border-radius: 0 0 var(--radius-sm) 0;
}
.skip-link:focus { left: 0; clip: auto; clip-path: none; width: auto; height: auto; }

a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
	outline: 3px solid var(--gold);
	outline-offset: 2px;
	border-radius: 2px;
}

/* ---- Buttons ----------------------------------------------------------- */
.fpi-btn {
	display: inline-block;
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 1.05rem;
	line-height: 1.2;
	padding: 0.85em 1.6em;
	border-radius: 999px;
	border: 2px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.fpi-btn--lg { font-size: 1.15rem; padding: 1em 2em; }
.fpi-btn--gold { background: var(--gold); color: var(--white); }
.fpi-btn--gold:hover { background: var(--gold-deep); color: var(--white); }
.fpi-btn--navy { background: var(--navy-800); color: var(--white); }
.fpi-btn--navy:hover { background: var(--navy-700); color: var(--white); }
.fpi-btn--ghost { background: transparent; color: var(--navy-800); border-color: var(--navy-800); }
.fpi-btn--ghost:hover { background: var(--navy-800); color: var(--white); }
.fpi-btn--ghost-light { background: rgba(255,255,255,0.12); color: var(--white); border-color: var(--white); }
.fpi-btn--ghost-light:hover { background: var(--white); color: var(--navy-900); }

/* ---- Header ------------------------------------------------------------ */
.site-header {
	background: var(--white);
	border-bottom: 1px solid var(--cream-deep);
	position: relative;
	z-index: 20;
}
.site-header__inner {
	max-width: var(--maxw);
	margin: 0 auto;
	padding: 0.9rem 1.25rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}
.site-logo img { width: 170px; height: auto; }

.nav-toggle {
	display: none;
	align-items: center;
	gap: 0.5em;
	background: var(--navy-800);
	color: var(--white);
	border: 0;
	border-radius: var(--radius-sm);
	padding: 0.6em 1em;
	font-size: 1.05rem;
	font-weight: 700;
}
.nav-toggle__bars { display: inline-flex; flex-direction: column; gap: 4px; }
.nav-toggle__bars span { display: block; width: 22px; height: 3px; background: currentColor; border-radius: 2px; }

.site-nav { display: flex; align-items: center; gap: 1.1rem; flex-wrap: wrap; }
.site-nav__list {
	list-style: none; display: flex; gap: 0.2rem; margin: 0; padding: 0; flex-wrap: wrap;
}
.site-nav__list a {
	display: inline-block;
	padding: 0.55em 0.75em;
	color: var(--navy-900);
	font-weight: 600;
	text-decoration: none;
	border-radius: var(--radius-sm);
}
.site-nav__list a:hover { background: var(--cream-deep); color: var(--navy-900); }
.site-nav__list .current-menu-item > a,
.site-nav__list .current_page_item > a { color: var(--gold-deep); }

@media (max-width: 900px) {
	.nav-toggle { display: inline-flex; }
	.site-nav {
		display: none;
		width: 100%;
		flex-direction: column;
		align-items: stretch;
		padding: 0.5rem 0 1rem;
	}
	.site-nav.is-open { display: flex; }
	.site-nav__list { flex-direction: column; }
	.site-nav__list a { display: block; font-size: 1.15rem; padding: 0.75em 0.5em; }
	.site-nav__cta { text-align: center; }
}

/* ---- Hero -------------------------------------------------------------- */
.hero {
	background-size: cover;
	background-position: center;
	color: var(--white);
}
.hero__overlay {
	background: linear-gradient(180deg, rgba(20,36,58,0.55) 0%, rgba(20,36,58,0.75) 100%);
	padding: clamp(4rem, 10vw, 8rem) 1.25rem;
}
.hero__content { max-width: var(--maxw); margin: 0 auto; text-align: center; }
.hero__eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-weight: 700;
	font-size: 0.95rem;
	color: #e8d9ae;
	margin-bottom: 1rem;
}
.hero__title {
	color: var(--white);
	font-size: clamp(2.2rem, 5.5vw, 3.6rem);
	max-width: 21ch;
	margin: 0 auto 0.4em;
}
.hero__sub {
	font-size: clamp(1.1rem, 2vw, 1.35rem);
	max-width: 56ch;
	margin: 0 auto 1.8em;
	color: #f0ede4;
}
.hero__actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* ---- Shared section bits ---------------------------------------------- */
.section-eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-weight: 700;
	font-size: 0.9rem;
	color: var(--sage-deep);
	margin-bottom: 0.4rem;
}
.site-main--front section { padding: clamp(3rem, 7vw, 5rem) 1.25rem; }

/* ---- Story (image/text) ------------------------------------------------ */
.story { background: var(--white); }
.story__inner {
	max-width: var(--maxw);
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(1.5rem, 5vw, 4rem);
	align-items: center;
}
.story__media img {
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-soft);
	width: 100%;
	object-fit: cover;
}
@media (max-width: 820px) {
	.story__inner { grid-template-columns: 1fr; }
	.story__media { max-width: 460px; margin: 0 auto; }
}

/* ---- Homes teaser ------------------------------------------------------ */
.homes { background: var(--cream); }
.homes__inner { max-width: var(--maxw); margin: 0 auto; }
.homes__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
	gap: 1.75rem;
	margin-top: 1.75rem;
}
.homes__card {
	background: var(--white);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-soft);
	display: flex;
	flex-direction: column;
}
.homes__card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.homes__card-body { padding: 1.5rem 1.75rem 1.75rem; }
.homes__card-body a { font-weight: 700; text-decoration: none; }

/* ---- Amenities --------------------------------------------------------- */
.amenities { background: var(--navy-900); }
.amenities .section-eyebrow { color: #a9c0a9; }
.amenities h2 { color: var(--white); }
.amenities__inner { max-width: var(--maxw); margin: 0 auto; }
.amenities__grid {
	list-style: none;
	margin: 2rem 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 1.25rem;
}
.amenities__grid li {
	background: var(--navy-800);
	border-radius: var(--radius-md);
	padding: 1.5rem 1.6rem;
}
.amenities__grid h3 { color: #ecd9a8; font-size: 1.2rem; margin-bottom: 0.3em; }
.amenities__grid p { color: var(--navy-100); margin: 0; font-size: 1.05rem; }
.amenities__icon { font-size: 1.8rem; display: block; margin-bottom: 0.5rem; }

/* ---- Quote band -------------------------------------------------------- */
.quoteband { background: var(--cream-deep); text-align: center; }
.quoteband__quote { max-width: var(--maxw-narrow); margin: 0 auto; }
.quoteband__quote p {
	font-family: var(--font-display);
	font-size: clamp(1.35rem, 3vw, 1.9rem);
	color: var(--navy-800);
	line-height: 1.45;
}
.quoteband__quote cite { font-style: normal; font-weight: 700; color: var(--sage-deep); }

/* ---- Upcoming / agenda lists ------------------------------------------- */
.upcoming { background: var(--white); }
.upcoming__inner { max-width: var(--maxw-narrow); margin: 0 auto; }

.fpi-upcoming__day, .fpi-agenda__day {
	font-family: var(--font-display);
	color: var(--navy-800);
	font-size: 1.25rem;
	margin: 1.5rem 0 0.6rem;
	border-bottom: 2px solid var(--cream-deep);
	padding-bottom: 0.3rem;
}
.fpi-agenda__day--today { color: var(--gold-deep); }
.fpi-agenda__today-flag {
	font-family: var(--font-body);
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	background: var(--gold);
	color: var(--white);
	border-radius: 999px;
	padding: 0.15em 0.8em;
	vertical-align: middle;
}
.fpi-upcoming__list, .fpi-agenda__list { list-style: none; margin: 0; padding: 0; }
.fpi-upcoming__all { margin-top: 1.5rem; font-weight: 700; }

/* Activity chip — shared by calendar cells + agendas. Color-coded by category. */
.fpi-act { margin: 0.35rem 0; }
.fpi-act a {
	display: block;
	text-decoration: none;
	background: var(--cream);
	border-left: 5px solid var(--muted);
	border-radius: var(--radius-sm);
	padding: 0.5em 0.75em;
	color: var(--ink);
}
.fpi-act a:hover { background: var(--cream-deep); }
.fpi-act__title { display: block; font-weight: 600; line-height: 1.3; }
.fpi-act__meta { display: block; font-size: 0.9rem; color: var(--ink-soft); }
.fpi-act--fitness a { border-left-color: var(--sage); }
.fpi-act--social a { border-left-color: var(--gold); }
.fpi-act--spiritual a { border-left-color: var(--navy-700); }
.fpi-act--outing a { border-left-color: #a4653a; }
.fpi-act--arts a { border-left-color: #7d5a8a; }

.fpi-act-pill {
	display: inline-block; border-radius: 999px; padding: 0.15em 0.9em;
	font-weight: 700; font-size: 0.95rem; color: var(--white); background: var(--muted);
}
.fpi-act-pill--fitness { background: var(--sage-deep); }
.fpi-act-pill--social { background: var(--gold-deep); }
.fpi-act-pill--spiritual { background: var(--navy-700); }
.fpi-act-pill--outing { background: #a4653a; }
.fpi-act-pill--arts { background: #7d5a8a; }

/* ---- Closing CTA ------------------------------------------------------- */
.closing-cta { background: var(--navy-800); text-align: center; }
.closing-cta h2 { color: var(--white); }
.closing-cta p { color: var(--navy-100); max-width: 56ch; margin-left: auto; margin-right: auto; }
.closing-cta__inner { max-width: var(--maxw); margin: 0 auto; }
.closing-cta__phone { margin-top: 1.25rem; font-weight: 600; }

/* ---- Page hero / inner pages ------------------------------------------ */
.page-hero {
	background: linear-gradient(160deg, var(--navy-900), var(--navy-700));
	padding: clamp(2.5rem, 6vw, 4rem) 1.25rem;
}
.page-hero__inner { max-width: var(--maxw); margin: 0 auto; }
.page-hero__title { color: var(--white); margin-bottom: 0; }
.page-hero__eyebrow {
	color: #e8d9ae; text-transform: uppercase; letter-spacing: 0.14em;
	font-weight: 700; font-size: 0.9rem; margin-bottom: 0.5rem;
}
.page-hero__badge { margin: 0.9rem 0 0; }

.content-wrap {
	max-width: var(--maxw);
	margin: 0 auto;
	padding: clamp(2rem, 5vw, 3.5rem) 1.25rem;
}
.page-article .content-wrap > p:first-child { font-size: 1.25rem; color: var(--ink-soft); }

/* ---- Status badges ----------------------------------------------------- */
.fpi-badge {
	display: inline-block;
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 0.9rem;
	letter-spacing: 0.04em;
	border-radius: 999px;
	padding: 0.3em 1em;
	color: var(--white);
	background: var(--muted);
}
.fpi-badge--available { background: var(--ok); }
.fpi-badge--waitlist { background: var(--warn); }
.fpi-badge--coming-soon { background: var(--info); }
.fpi-badge--occupied { background: var(--muted); }

/* ---- Residences grid --------------------------------------------------- */
.fpi-residences__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2rem;
	align-items: center;
	background: var(--white);
	border-radius: var(--radius-md);
	padding: 1rem 1.25rem;
	box-shadow: var(--shadow-soft);
	margin-bottom: 1.75rem;
}
.fpi-filter-row { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.fpi-filter-label { font-weight: 700; color: var(--navy-800); }
.fpi-filter-btn {
	font-family: var(--font-body);
	font-size: 1rem;
	font-weight: 600;
	background: var(--cream);
	color: var(--navy-800);
	border: 2px solid var(--cream-deep);
	border-radius: 999px;
	padding: 0.45em 1.2em;
	cursor: pointer;
}
.fpi-filter-btn:hover { border-color: var(--gold); }
.fpi-filter-btn.is-active { background: var(--navy-800); border-color: var(--navy-800); color: var(--white); }
#fpi-availability-filter {
	font-family: var(--font-body);
	font-size: 1rem;
	padding: 0.45em 0.8em;
	border-radius: var(--radius-sm);
	border: 2px solid var(--cream-deep);
	background: var(--white);
	color: var(--ink);
}

.fpi-residences__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: 1.75rem;
}
.fpi-card--residence {
	background: var(--white);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-soft);
	display: flex;
	flex-direction: column;
}
.fpi-card--residence[hidden] { display: none; }
.fpi-card__media { position: relative; display: block; }
.fpi-card__media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.fpi-card__media-placeholder {
	display: block; width: 100%; aspect-ratio: 16 / 10;
	background: linear-gradient(160deg, var(--navy-100), var(--cream-deep));
}
.fpi-card__media .fpi-badge { position: absolute; top: 0.9rem; left: 0.9rem; box-shadow: 0 2px 8px rgba(0,0,0,0.25); }
.fpi-card__body { padding: 1.25rem 1.5rem 1.5rem; display: flex; flex-direction: column; flex: 1; }
.fpi-card__eyebrow {
	text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.8rem;
	font-weight: 700; color: var(--sage-deep); margin: 0 0 0.2rem;
}
.fpi-card__title { margin: 0 0 0.35rem; font-size: 1.3rem; }
.fpi-card__title a { text-decoration: none; color: var(--navy-900); }
.fpi-card__title a:hover { color: var(--gold-deep); }
.fpi-card__specs { color: var(--ink-soft); font-weight: 600; margin: 0 0 0.6rem; }
.fpi-card__desc { margin: 0 0 0.75rem; font-size: 1.02rem; }
.fpi-card__more { margin: auto 0 0; font-weight: 700; }
.fpi-card__more a { text-decoration: none; }

.fpi-residences__cta {
	margin-top: 2.5rem;
	text-align: center;
	background: var(--cream-deep);
	border-radius: var(--radius-lg);
	padding: 2rem 1.5rem;
}
.fpi-residences__none {
	background: var(--cream-deep);
	border-radius: var(--radius-md);
	padding: 1rem 1.25rem;
	font-weight: 600;
}

/* ---- Residence detail --------------------------------------------------- */
.residence-detail__wrap { max-width: var(--maxw-narrow); }
.residence-detail__photo img {
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-soft);
	width: 100%;
}
.residence-detail__specs {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin: 1.75rem 0;
	padding: 0;
}
.residence-detail__specs li {
	background: var(--white);
	border-radius: var(--radius-md);
	padding: 0.9rem 1.4rem;
	box-shadow: var(--shadow-soft);
	font-weight: 600;
	color: var(--ink-soft);
}
.residence-detail__spec-num {
	display: block;
	font-family: var(--font-display);
	font-size: 1.35rem;
	color: var(--navy-800);
}
.residence-detail__lead { font-size: 1.25rem; color: var(--ink-soft); }
.residence-detail__floorplan,
.residence-detail__tour,
.residence-detail__included { margin-top: 2.5rem; }
.residence-detail__included ul { columns: 2; column-gap: 2.5rem; }
@media (max-width: 640px) { .residence-detail__included ul { columns: 1; } }
.residence-detail__cta {
	margin-top: 3rem;
	text-align: center;
	background: var(--cream-deep);
	border-radius: var(--radius-lg);
	padding: 2.25rem 1.5rem;
}

/* ---- Responsive embed --------------------------------------------------- */
.fpi-embed {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-soft);
	background: var(--navy-900);
}
.fpi-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---- Virtual tour ------------------------------------------------------- */
.fpi-tour__placeholder {
	text-align: center;
	background: var(--white);
	border: 2px dashed var(--gold);
	border-radius: var(--radius-lg);
	padding: clamp(2rem, 5vw, 3.5rem) 1.5rem;
	margin-bottom: 2.5rem;
}
.fpi-tour__video { margin-bottom: 2.5rem; }
.fpi-tour__gallery-title { margin-top: 0; }
.fpi-gallery {
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: 1.5rem;
}
.fpi-gallery__item {
	background: var(--white);
	border-radius: var(--radius-md);
	overflow: hidden;
	box-shadow: var(--shadow-soft);
}
.fpi-gallery__item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.fpi-gallery__caption { display: block; padding: 0.7rem 1rem; font-size: 1rem; color: var(--ink-soft); }

/* ---- Forms -------------------------------------------------------------- */
.fpi-form {
	background: var(--white);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-soft);
	padding: clamp(1.5rem, 4vw, 2.5rem);
	max-width: var(--maxw-narrow);
}
.fpi-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 1.5rem;
}
@media (max-width: 640px) { .fpi-form__row { grid-template-columns: 1fr; } }
.fpi-form__field { display: flex; flex-direction: column; margin-bottom: 1.25rem; }
.fpi-form__field label { font-weight: 700; color: var(--navy-800); margin-bottom: 0.35rem; }
.fpi-form__field input,
.fpi-form__field select,
.fpi-form__field textarea {
	font-family: var(--font-body);
	font-size: 1.1rem;
	color: var(--ink);
	background: var(--cream);
	border: 2px solid var(--cream-deep);
	border-radius: var(--radius-sm);
	padding: 0.7em 0.9em;
}
.fpi-form__field input:focus,
.fpi-form__field select:focus,
.fpi-form__field textarea:focus { border-color: var(--gold); }
.fpi-form__hint { font-size: 0.95rem; color: var(--sage-deep); margin-top: 0.35rem; }
.fpi-form__hint.is-warning { color: #9a3412; font-weight: 700; }
.fpi-req { color: #9a3412; }
.fpi-form__submit { margin: 0.5rem 0 0.75rem; }
.fpi-form__fineprint { font-size: 1rem; color: var(--ink-soft); margin: 0; }

/* Honeypot: visually removed, still in the DOM for bots. */
.fpi-hp { position: absolute !important; left: -9999px !important; height: 1px; overflow: hidden; }

.fpi-notice {
	border-radius: var(--radius-md);
	padding: 1.25rem 1.5rem;
	margin-bottom: 1.75rem;
	max-width: var(--maxw-narrow);
}
.fpi-notice--success { background: #e5efe1; border-left: 6px solid var(--ok); }
.fpi-notice--success h3 { margin-bottom: 0.3em; color: var(--ok); }
.fpi-notice--error { background: #f7e4dc; border-left: 6px solid #9a3412; }
.fpi-notice p:last-child { margin-bottom: 0; }

/* ---- Calendar ------------------------------------------------------------ */
.fpi-calendar__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	margin-bottom: 1rem;
}
.fpi-calendar__month { margin: 0; }

.fpi-cal-legend {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.4rem;
	margin: 0 0 1.25rem;
	padding: 0;
	font-size: 1rem;
	font-weight: 600;
	color: var(--ink-soft);
}
.fpi-cal-legend__item { display: flex; align-items: center; gap: 0.45em; }
.fpi-cal-legend__dot { width: 0.9em; height: 0.9em; border-radius: 50%; background: var(--muted); }
.fpi-cal-legend__item--fitness .fpi-cal-legend__dot { background: var(--sage); }
.fpi-cal-legend__item--social .fpi-cal-legend__dot { background: var(--gold); }
.fpi-cal-legend__item--spiritual .fpi-cal-legend__dot { background: var(--navy-700); }
.fpi-cal-legend__item--outing .fpi-cal-legend__dot { background: #a4653a; }
.fpi-cal-legend__item--arts .fpi-cal-legend__dot { background: #7d5a8a; }

.fpi-calendar__grid {
	width: 100%;
	border-collapse: collapse;
	background: var(--white);
	border-radius: var(--radius-md);
	overflow: hidden;
	box-shadow: var(--shadow-soft);
}
.fpi-calendar__grid th {
	background: var(--navy-800);
	color: var(--white);
	font-family: var(--font-body);
	font-size: 0.95rem;
	letter-spacing: 0.05em;
	padding: 0.7em 0.4em;
	text-transform: uppercase;
}
.fpi-cal-dayabbr { display: none; }
.fpi-cal-cell {
	vertical-align: top;
	width: 14.28%;
	border: 1px solid var(--cream-deep);
	padding: 0.45rem;
	min-height: 7rem;
	height: 7rem;
}
.fpi-cal-cell--empty { background: var(--cream); }
.fpi-cal-cell__num {
	display: inline-block;
	font-weight: 700;
	color: var(--navy-800);
	margin-bottom: 0.2rem;
	min-width: 1.8em;
	text-align: center;
	border-radius: 999px;
	padding: 0.05em 0.3em;
}
.fpi-cal-cell--today { background: #fdf6e3; box-shadow: inset 0 0 0 3px var(--gold); }
.fpi-cal-cell--today .fpi-cal-cell__num { background: var(--gold); color: var(--white); }
.fpi-cal-cell__list { list-style: none; margin: 0; padding: 0; }
.fpi-cal-cell .fpi-act a { font-size: 0.85rem; padding: 0.3em 0.5em; }
.fpi-cal-cell .fpi-act__meta { font-size: 0.78rem; }

/* Month grid on larger screens; stacked agenda on phones. */
.fpi-calendar__agenda { display: none; }
@media (max-width: 760px) {
	.fpi-calendar__grid { display: none; }
	.fpi-calendar__agenda { display: block; }
}
@media (min-width: 761px) and (max-width: 1000px) {
	.fpi-cal-dayfull { display: none; }
	.fpi-cal-dayabbr { display: inline; }
}

/* ---- Footer -------------------------------------------------------------- */
.site-footer { background: var(--navy-900); color: var(--navy-100); margin-top: 0; }
.site-footer a { color: #d9c58c; }
.site-footer a:hover { color: var(--white); }
.site-footer__inner {
	max-width: var(--maxw);
	margin: 0 auto;
	padding: clamp(2.5rem, 6vw, 4rem) 1.25rem 2rem;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 2rem;
}
.site-footer__logo {
	width: 150px;
	background: var(--white);
	border-radius: var(--radius-sm);
	padding: 0.6rem;
	margin-bottom: 1rem;
}
.site-footer__heading {
	color: var(--white);
	font-size: 1.15rem;
	margin-bottom: 0.75rem;
}
.site-footer__address { font-style: normal; }
.site-footer__menu { list-style: none; margin: 0; padding: 0; }
.site-footer__menu li { margin-bottom: 0.5rem; }
.site-footer__menu a { text-decoration: none; }
.site-footer__bar {
	border-top: 1px solid var(--navy-700);
	text-align: center;
	padding: 1.1rem 1.25rem;
	font-size: 0.95rem;
}
.site-footer__bar p { margin: 0; }

/* ---- Posts list / misc ---------------------------------------------------- */
.post-list__item { margin-bottom: 2.25rem; }
.post-list__meta { color: var(--muted); font-size: 0.95rem; }
.error-404__links { font-size: 1.15rem; line-height: 2; }
.activity-facts {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2.5rem;
	background: var(--white);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-soft);
	padding: 1.25rem 1.5rem;
	margin: 0 0 2rem;
}
.activity-facts dt {
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 700;
	color: var(--sage-deep);
}
.activity-facts dd { margin: 0.15rem 0 0; font-weight: 600; color: var(--navy-800); }
