/* =========================================================================
   Specialized templates (Phase 4): Buyer's Guide, Events, Issues, gated
   assets, Executives, generic pages, and sales pages. Loaded conditionally.
   ========================================================================= */

/* --- Shared field + notice + facts ------------------------------------- */
.ft-field { display: grid; gap: 0.35rem; margin-block-end: 1rem; }
.ft-field label { font-weight: 600; font-size: 0.9rem; }
.ft-field input, .ft-field textarea, .ft-field select {
	padding: 0.65rem 0.8rem; border: 1px solid var(--ft-color-line);
	border-radius: var(--ft-radius-sm); background: var(--ft-color-bg);
	color: var(--ft-color-text); font: inherit; inline-size: 100%;
}
.ft-req { color: var(--ft-signal); }
.ft-formnotice { padding: 0.7rem 1rem; border-radius: var(--ft-radius-sm); font-weight: 600; margin-block-end: 1rem; }
.ft-formnotice--ok { background: #e3f5ec; color: #0a6b46; border: 1px solid #9bd9bd; }
.ft-formnotice--error { background: #fdeceb; color: #99231b; border: 1px solid #f1b6b1; }
.ft-muted { color: var(--ft-color-muted); }

.ft-facts { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 0.4rem 1rem; }
.ft-facts dt { font-weight: 600; color: var(--ft-color-muted); font-size: 0.85rem; }
.ft-facts dd { margin: 0; }
.ft-facts dd a { word-break: break-word; }
.ft-facts__tax { margin-block-start: 1rem; font-size: 0.85rem; color: var(--ft-color-muted); }

.ft-taxchips { display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; margin: 0.5rem 0; padding: 0; }
.ft-taxchips a { font-size: 0.72rem; background: var(--ft-color-surface-2); color: var(--ft-color-text); padding: 0.18rem 0.55rem; border-radius: 999px; text-decoration: none; }

/* --- Two-column profile layout (company / event) ----------------------- */
.ft-company__layout, .ft-event__layout {
	display: grid; grid-template-columns: minmax(0, 1fr) 300px;
	gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; margin-block: 2rem;
}
.ft-company__facts, .ft-event__facts {
	background: var(--ft-color-surface); border: 1px solid var(--ft-color-line);
	border-radius: var(--ft-radius); padding: 1.5rem; position: sticky;
	inset-block-start: calc(var(--ft-masthead-h) + 1rem);
}

/* --- Company profile ---------------------------------------------------- */
.ft-company__header { display: grid; grid-template-columns: 120px 1fr; gap: 1.5rem; align-items: center; margin-block: 1.5rem; }
.ft-company__logo { aspect-ratio: 1; border: 1px solid var(--ft-color-line); border-radius: var(--ft-radius); display: grid; place-items: center; overflow: hidden; background: var(--ft-color-bg); }
.ft-company__logo img { inline-size: 100%; block-size: 100%; object-fit: contain; padding: 0.5rem; }
.ft-company__logo-fallback { font-family: var(--ft-font-serif); font-size: 3rem; font-weight: 700; color: var(--ft-color-muted); }
.ft-company__name { font-size: clamp(1.6rem, 1.3rem + 1.6vw, 2.4rem); margin: 0 0 0.5rem; display: flex; align-items: center; gap: 0.5rem; }
.ft-company__verified { display: inline-grid; place-items: center; inline-size: 24px; block-size: 24px; font-size: 0.8rem; background: var(--ft-brand); color: #fff; border-radius: 999px; }

.ft-enquiry { margin-block-start: 2.5rem; background: var(--ft-color-surface); border: 1px solid var(--ft-color-line); border-radius: var(--ft-radius); padding: 1.5rem; }

/* --- Company directory cards ------------------------------------------- */
.ft-filters__group--grow { flex: 1 1 16rem; }
.ft-companycard { border: 1px solid var(--ft-color-line); border-radius: var(--ft-radius); overflow: hidden; background: var(--ft-color-bg); transition: box-shadow var(--ft-dur) var(--ft-ease); }
.ft-companycard:hover { box-shadow: var(--ft-shadow-md); }
.ft-companycard.is-featured { border-color: var(--ft-gold); box-shadow: inset 0 2px 0 var(--ft-gold); }
.ft-companycard__link { display: grid; gap: 0.4rem; padding: 1.25rem; text-decoration: none; text-align: center; color: var(--ft-color-text); }
.ft-companycard__logo { aspect-ratio: 1; display: grid; place-items: center; overflow: hidden; }
.ft-companycard__logo img { inline-size: 100%; block-size: 100%; object-fit: contain; }
.ft-companycard__name { font-family: var(--ft-font-serif); font-weight: 600; }
.ft-companycard__loc { font-size: 0.8rem; color: var(--ft-color-muted); }

/* --- Event -------------------------------------------------------------- */
.ft-event__hero-media img { inline-size: 100%; max-block-size: 420px; object-fit: cover; }
.ft-event__hero-body { padding-block: 1.5rem; }
.ft-event__title { font-size: clamp(1.8rem, 1.4rem + 2vw, 3rem); margin: 0.25rem 0; }
.ft-event__when { font-size: 1.1rem; color: var(--ft-color-muted); font-weight: 600; }
.ft-event__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block-start: 1rem; }
.ft-countdown { display: flex; gap: 1.25rem; margin-block: 1rem; }
.ft-countdown__unit { display: grid; text-align: center; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ft-color-muted); }
.ft-countdown__unit strong { font-family: var(--ft-font-serif); font-size: 2rem; color: var(--ft-color-heading); line-height: 1; }
.ft-countdown.is-live::after { content: "Live now"; color: var(--ft-signal); font-weight: 700; }

/* --- Issues ------------------------------------------------------------- */
.ft-issue__layout { display: grid; grid-template-columns: 280px 1fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: start; margin-block: 2rem; }
.ft-issue__cover img { inline-size: 100%; border-radius: var(--ft-radius); box-shadow: var(--ft-shadow-md); }
.ft-issue__edition { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ft-color-accent); margin: 0 0 0.4rem; }
.ft-issue__title { font-size: clamp(1.8rem, 1.4rem + 2vw, 3rem); margin: 0 0 1rem; }
.ft-issue__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block-start: 1.5rem; }
.ft-flipbook { margin-block: 3rem; }
.ft-flipbook__frame { position: relative; aspect-ratio: 16 / 10; border: 1px solid var(--ft-color-line); border-radius: var(--ft-radius); overflow: hidden; background: var(--ft-color-surface-2); }
.ft-flipbook__frame iframe { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; border: 0; }

.ft-issuecard { display: grid; gap: 0.4rem; }
.ft-issuecard__cover img { inline-size: 100%; border-radius: var(--ft-radius-sm); box-shadow: var(--ft-shadow-sm); transition: transform var(--ft-dur) var(--ft-ease); }
.ft-issuecard__cover:hover img { transform: translateY(-3px); }
.ft-issuecard__title { font-size: 1rem; margin: 0.4rem 0 0; }
.ft-issuecard__title a { color: var(--ft-color-heading); text-decoration: none; }
.ft-issuecard__meta { font-size: 0.8rem; color: var(--ft-color-muted); margin: 0; }
.ft-issuecard__pdf { font-size: 0.75rem; font-weight: 700; color: var(--ft-color-link); text-decoration: none; }

/* --- Gated asset -------------------------------------------------------- */
.ft-asset__layout { display: grid; grid-template-columns: 280px 1fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: start; margin-block: 2rem; }
.ft-asset__cover img { inline-size: 100%; border-radius: var(--ft-radius); box-shadow: var(--ft-shadow-md); }
.ft-asset__type { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ft-color-accent); margin: 0 0 0.3rem; }
.ft-asset__title { font-size: clamp(1.8rem, 1.4rem + 2vw, 2.8rem); margin: 0 0 1rem; }
.ft-asset__facts { display: flex; flex-wrap: wrap; gap: 1rem; list-style: none; margin: 0 0 1.25rem; padding: 0; font-size: 0.85rem; color: var(--ft-color-muted); }
.ft-asset__facts li:not(:last-child)::after { content: "·"; margin-inline-start: 1rem; }
.ft-gate { margin-block-start: 1.5rem; background: var(--ft-color-surface); border: 1px solid var(--ft-color-line); border-radius: var(--ft-radius); padding: 1.5rem; max-width: 32rem; }
.ft-gate__form { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ft-gate__form .ft-newsletter__field { flex: 1 1 14rem; padding: 0.7rem 0.9rem; border: 1px solid var(--ft-color-line); border-radius: var(--ft-radius-sm); }

/* --- Executive ---------------------------------------------------------- */
.ft-exec__header { display: grid; grid-template-columns: 160px 1fr; gap: 1.5rem; align-items: center; margin-block: 1.5rem; }
.ft-exec__photo img { inline-size: 160px; block-size: 160px; object-fit: cover; border-radius: 999px; }
.ft-exec__name { font-size: clamp(1.8rem, 1.4rem + 2vw, 2.6rem); margin: 0 0 0.3rem; }
.ft-exec__role { font-size: 1.1rem; color: var(--ft-color-muted); margin: 0 0 0.75rem; }
.ft-exec__links { display: flex; gap: 1rem; list-style: none; margin: 0; padding: 0; font-weight: 600; font-size: 0.9rem; }
.ft-exec__body { max-width: var(--ft-content); }

/* --- Generic page ------------------------------------------------------- */
.ft-page__article { max-width: var(--ft-content); margin-inline: auto; padding-block: 1.5rem; }
.ft-page__title { font-size: clamp(2rem, 1.5rem + 2.4vw, 3rem); }
.ft-page__hero { margin: 1.5rem 0; }
.ft-page__hero img { inline-size: 100%; border-radius: var(--ft-radius); }

/* --- Sales pages -------------------------------------------------------- */
.ft-salespage { padding-block: clamp(1.5rem, 4vw, 2.5rem); }
.ft-salespage__title { font-size: clamp(2rem, 1.5rem + 2.6vw, 3.25rem); }
.ft-salespage__intro { max-width: 60ch; }

.ft-ratecard__wrap { overflow-x: auto; }
.ft-ratecard__table { inline-size: 100%; border-collapse: collapse; min-inline-size: 600px; }
.ft-ratecard__table th, .ft-ratecard__table td { text-align: start; padding: 0.85rem 1rem; border-block-end: 1px solid var(--ft-color-line); }
.ft-ratecard__table thead th { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ft-color-muted); }
.ft-ratecard__rate { font-weight: 700; color: var(--ft-color-heading); font-family: var(--ft-font-mono); }
.ft-ratecard__foot { color: var(--ft-color-muted); font-size: 0.85rem; margin-block: 1rem; }

.ft-pricing__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: 1.5rem; }
.ft-pricecard { border: 1px solid var(--ft-color-line); border-radius: var(--ft-radius); padding: 1.75rem; display: flex; flex-direction: column; gap: 0.75rem; background: var(--ft-color-bg); }
.ft-pricecard.is-featured { border-color: var(--ft-brand); box-shadow: var(--ft-shadow-md); }
.ft-pricecard__badge { align-self: flex-start; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ft-color-on-brand); background: var(--ft-brand); padding: 0.2rem 0.6rem; border-radius: 999px; margin: 0; }
.ft-pricecard__name { font-size: 1.4rem; margin: 0; }
.ft-pricecard__amount { font-family: var(--ft-font-serif); font-size: 2.2rem; font-weight: 700; color: var(--ft-color-heading); }
.ft-pricecard__period { color: var(--ft-color-muted); font-size: 0.85rem; }
.ft-pricecard__features { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; flex: 1 1 auto; }
.ft-pricecard__features li { padding-inline-start: 1.5rem; position: relative; }
.ft-pricecard__features li::before { content: "✓"; position: absolute; inset-inline-start: 0; color: var(--ft-brand); font-weight: 700; }
.ft-pricecard .ft-btn { justify-content: center; }

.ft-advertise__layout { display: grid; grid-template-columns: 1fr 380px; gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
.ft-advertise__props { list-style: none; margin: 1.5rem 0; padding: 0; display: grid; gap: 1rem; }
.ft-advertise__props li { display: grid; gap: 0.2rem; }
.ft-advertise__props strong { font-family: var(--ft-font-serif); font-size: 1.1rem; }
.ft-advertise__form { background: var(--ft-color-surface); border: 1px solid var(--ft-color-line); border-radius: var(--ft-radius); padding: 1.75rem; position: sticky; inset-block-start: calc(var(--ft-masthead-h) + 1rem); }

/* --- Responsive --------------------------------------------------------- */
@media (max-width: 1024px) {
	.ft-company__layout, .ft-event__layout, .ft-advertise__layout { grid-template-columns: 1fr; }
	.ft-company__facts, .ft-event__facts, .ft-advertise__form { position: static; }
}
@media (max-width: 600px) {
	.ft-issue__layout, .ft-asset__layout { grid-template-columns: 1fr; }
	.ft-company__header, .ft-exec__header { grid-template-columns: 1fr; text-align: center; }
	.ft-exec__photo img { margin-inline: auto; }
	.ft-exec__links, .ft-event__actions { justify-content: center; }
}

/* =========================================================================
   Events archive — Calendar / List view toggle + month calendar
   ========================================================================= */

/* View switcher (revealed by JS; hidden for no-JS so List stays the baseline). */
.ft-events__toolbar { display: none; justify-content: flex-end; margin-block: 0 1.5rem; }
.ft-events__toolbar.is-ready { display: flex; }
.ft-viewtoggle { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid var(--ft-color-line); border-radius: var(--ft-radius-pill); background: var(--ft-color-elevated); }
.ft-viewtoggle__btn { display: inline-flex; align-items: center; gap: 0.45rem; border: 0; background: transparent; color: var(--ft-color-muted); font: inherit; font-weight: 600; font-size: 0.85rem; padding: 0.45rem 0.95rem; border-radius: var(--ft-radius-pill); cursor: pointer; transition: background var(--ft-dur) var(--ft-ease), color var(--ft-dur) var(--ft-ease); }
.ft-viewtoggle__btn:hover { color: var(--ft-color-text); }
.ft-viewtoggle__btn.is-active { background: var(--ft-brand); color: var(--ft-color-on-brand); }
.ft-viewtoggle__icon { inline-size: 15px; block-size: 15px; display: inline-block; }
.ft-viewtoggle__icon--list { background-image: linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor); background-size: 100% 2px; background-position: 0 2px, 0 7px, 0 12px; background-repeat: no-repeat; }
.ft-viewtoggle__icon--cal { border: 2px solid currentColor; border-radius: 3px; position: relative; }
.ft-viewtoggle__icon--cal::before { content: ""; position: absolute; inset-block-start: -1px; inset-inline: -2px; block-size: 4px; background: currentColor; border-radius: 2px 2px 0 0; }

/* Calendar shell */
.ft-cal { background: var(--ft-color-elevated); border: 1px solid var(--ft-color-line); border-radius: var(--ft-radius); padding: clamp(0.75rem, 2vw, 1.25rem); box-shadow: var(--ft-shadow-sm); }
.ft-cal__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-block-end: 1rem; }
.ft-cal__title { font-size: clamp(1.2rem, 1rem + 1vw, 1.6rem); margin: 0; }
.ft-cal__navgroup { display: flex; gap: 0.4rem; align-items: center; }
.ft-cal__nav { inline-size: 38px; block-size: 38px; display: grid; place-items: center; border: 1px solid var(--ft-color-line); background: var(--ft-color-bg); border-radius: var(--ft-radius-sm); cursor: pointer; color: var(--ft-color-text); font-size: 1.25rem; line-height: 1; transition: background var(--ft-dur) var(--ft-ease), border-color var(--ft-dur) var(--ft-ease); }
.ft-cal__nav:hover { background: var(--ft-color-surface); border-color: var(--ft-brand); }
.ft-cal__today { border: 1px solid var(--ft-color-line); background: var(--ft-color-bg); color: var(--ft-color-text); border-radius: var(--ft-radius-sm); padding-inline: 0.9rem; block-size: 38px; font: inherit; font-weight: 600; font-size: 0.85rem; cursor: pointer; transition: background var(--ft-dur) var(--ft-ease); }
.ft-cal__today:hover { background: var(--ft-color-surface); }

.ft-cal__weekdays,
.ft-cal__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.ft-cal__weekdays { margin-block-end: 6px; }
.ft-cal__weekday { text-align: center; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ft-color-muted); padding-block: 0.25rem; overflow: hidden; text-overflow: ellipsis; }

.ft-cal__day { position: relative; min-inline-size: 0; display: flex; flex-direction: column; gap: 4px; min-block-size: 94px; padding: 6px; text-align: start; border: 1px solid var(--ft-color-line); border-radius: var(--ft-radius-sm); background: var(--ft-color-bg); color: var(--ft-color-text); cursor: pointer; font: inherit; transition: border-color var(--ft-dur) var(--ft-ease), background var(--ft-dur) var(--ft-ease); }
.ft-cal__day:hover { border-color: var(--ft-brand); }
.ft-cal__day.is-outside { opacity: 0.4; }
.ft-cal__day.is-selected { border-color: var(--ft-brand); box-shadow: inset 0 0 0 1px var(--ft-brand); background: color-mix(in srgb, var(--ft-brand) 8%, var(--ft-color-bg)); }
.ft-cal__num { align-self: flex-start; inline-size: 1.7rem; block-size: 1.7rem; display: grid; place-items: center; font-weight: 700; font-size: 0.85rem; }
.ft-cal__day.is-today .ft-cal__num { background: var(--ft-brand); color: var(--ft-color-on-brand); border-radius: var(--ft-radius-pill); }
.ft-cal__chips { display: flex; flex-direction: column; gap: 3px; min-inline-size: 0; inline-size: 100%; }
.ft-cal__chip { font-size: 0.68rem; line-height: 1.3; padding: 1px 5px; border-radius: 4px; background: color-mix(in srgb, var(--ft-brand) 18%, transparent); color: var(--ft-color-heading); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-inline-size: 100%; }
.ft-cal__chip.is-past { background: var(--ft-color-surface-2); color: var(--ft-color-muted); }
.ft-cal__more { font-size: 0.65rem; color: var(--ft-color-muted); font-weight: 600; }
.ft-cal__dot { display: none; }

.ft-cal__agenda { margin-block-start: 1.25rem; padding-block-start: 1rem; border-block-start: 1px solid var(--ft-color-line); }
.ft-cal__agenda-title { font-size: 1rem; margin: 0 0 0.6rem; }
.ft-cal__agenda-empty { color: var(--ft-color-muted); margin: 0; }
.ft-cal__agenda-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.ft-cal__agenda-link { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 0.75rem; padding: 0.6rem 0.85rem; border: 1px solid var(--ft-color-line); border-radius: var(--ft-radius-sm); background: var(--ft-color-bg); text-decoration: none; color: var(--ft-color-text); transition: background var(--ft-dur) var(--ft-ease), transform var(--ft-dur-fast) var(--ft-ease); }
.ft-cal__agenda-link:hover { background: var(--ft-color-surface); transform: translateX(3px); }
.ft-cal__agenda-name { font-weight: 600; }
.ft-cal__agenda-meta { font-size: 0.8rem; color: var(--ft-color-muted); }
.ft-cal__agenda-item.is-past .ft-cal__agenda-name { color: var(--ft-color-muted); }

/* Mobile: compact grid, event dots instead of chips, agenda leads. */
@media (max-width: 640px) {
	.ft-cal { padding: 0.75rem; }
	.ft-cal__weekdays, .ft-cal__days { gap: 4px; }
	.ft-cal__day { min-block-size: 46px; align-items: center; justify-content: center; gap: 3px; padding: 2px; }
	.ft-cal__num { align-self: center; inline-size: 1.5rem; block-size: 1.5rem; font-size: 0.8rem; }
	.ft-cal__chips, .ft-cal__more { display: none; }
	.ft-cal__day.has-events .ft-cal__dot { display: block; inline-size: 5px; block-size: 5px; border-radius: 50%; background: var(--ft-brand); }
	.ft-events__toolbar.is-ready { justify-content: stretch; }
	.ft-viewtoggle { inline-size: 100%; }
	.ft-viewtoggle__btn { flex: 1 1 auto; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
	.ft-cal__agenda-link:hover { transform: none; }
}

/* =========================================================================
   Events archive — vertical date-grouped list (List view)
   ========================================================================= */
.ft-eventlist { display: flex; flex-direction: column; gap: 0.75rem; }
.ft-eventlist__month { font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ft-color-muted); margin: 1.75rem 0 0.35rem; padding-block-end: 0.5rem; border-block-end: 1px solid var(--ft-color-line); }
.ft-eventlist__month:first-child { margin-block-start: 0.5rem; }

/* Full-width row built on the home event card. */
.ft-eventcard--row { position: relative; grid-template-columns: auto 1fr auto; gap: 1.25rem; }
.ft-eventcard--row .ft-eventcard__title { font-size: 1.15rem; margin: 0 0 0.3rem; }
.ft-eventcard--row .ft-eventcard__title a { color: var(--ft-color-heading); text-decoration: none; }
.ft-eventcard--row .ft-eventcard__title a:hover { color: var(--ft-color-link-hover); }
/* Stretched link: whole row is clickable, one accessible link. */
.ft-eventcard--row .ft-eventcard__title a::after { content: ""; position: absolute; inset: 0; }
.ft-eventcard--row.is-past { opacity: 0.72; }

.ft-eventcard__meta { display: flex; flex-wrap: wrap; gap: 0.35rem 1.1rem; margin: 0; font-family: var(--ft-font-sans); font-size: 0.85rem; color: var(--ft-color-muted); }
.ft-eventcard__metaitem { display: inline-flex; align-items: center; gap: 0.35rem; }
.ft-eventcard__metaitem svg { color: var(--ft-color-accent); }
.ft-eventcard__cta { display: inline-flex; align-items: center; gap: 0.3rem; font-family: var(--ft-font-sans); font-weight: 600; font-size: 0.85rem; color: var(--ft-color-link); white-space: nowrap; transition: transform var(--ft-dur) var(--ft-ease-out); }
.ft-eventcard--row:hover .ft-eventcard__cta { transform: translateX(3px); }

@media (max-width: 560px) {
	.ft-eventcard--row { grid-template-columns: auto 1fr; }
	.ft-eventcard__cta { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.ft-eventcard--row:hover .ft-eventcard__cta { transform: none; }
}

/* Media-kit audience figures */
.ft-mediakit__audience { margin-block: clamp(1.5rem, 4vw, 2.5rem); }
.ft-statgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; list-style: none; margin: 0; padding: 0; }
.ft-stat { background: var(--ft-color-elevated); border: 1px solid var(--ft-color-line); border-radius: var(--ft-radius); padding: 1.25rem; text-align: center; box-shadow: var(--ft-shadow-sm); }
.ft-stat__value { display: block; font-family: var(--ft-font-serif); font-size: clamp(1.6rem, 1.3rem + 1.5vw, 2.4rem); font-weight: 700; color: var(--ft-color-heading); line-height: 1.1; }
.ft-stat__label { display: block; font-size: 0.85rem; color: var(--ft-color-muted); margin-block-start: 0.3rem; }
