/**
 * Main stylesheet — Food Safety Courses
 *
 * Component order:
 *   1. Layout helpers (container, grid)
 *   2. Buttons, pills, badges
 *   3. Header / Footer
 *   4. Trust strip / Accreditors
 *   5. Hero
 *   6. Sections (popular, categories, whyus, testimonials, b2b, resources)
 *   7. Breadcrumbs
 *   8. Course card
 *   9. Page hero (generic inner pages)
 *  10. Blog
 *  11. Forms
 *  12. Cookie banner
 */

/* ─── 1. Layout ──────────────────────────────────────────── */

.fsc-container {
	max-width: var(--fsc-container-max);
	margin: 0 auto;
	padding: 0 var(--fsc-container-gutter);
}

.fsc-section {
	padding-top: var(--fsc-section-pad);
	padding-bottom: var(--fsc-section-pad);
}
.fsc-section--tight {
	padding-top: var(--fsc-section-pad-sm);
	padding-bottom: var(--fsc-section-pad-sm);
}
.fsc-section--ink50  { background: var(--fsc-ink-50); }
.fsc-section--navy   { background: var(--fsc-brand-900); color: #fff; }
.fsc-section--navy h1,
.fsc-section--navy h2,
.fsc-section--navy h3 { color: #fff; }

.fsc-grid { display: grid; gap: 24px; align-items: stretch; }
.fsc-grid--2 { grid-template-columns: repeat(2, 1fr); }
.fsc-grid--3 { grid-template-columns: repeat(3, 1fr); }
.fsc-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) {
	.fsc-grid--3, .fsc-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.fsc-grid--2, .fsc-grid--3, .fsc-grid--4 { grid-template-columns: 1fr; }
}

.fsc-section-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 40px;
	flex-wrap: wrap;
	gap: 16px;
}
.fsc-section-head__inner { max-width: 680px; flex: 1 1 auto; min-width: 0; }
.fsc-section-head--center { justify-content: center; text-align: center; }
.fsc-section-head--center .fsc-section-head__inner { flex: 0 1 auto; }

.fsc-eyebrow {
	font-size: 13px;
	font-weight: 600;
	color: var(--fsc-brand-500);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 10px;
	display: block;
}
.fsc-eyebrow--accent { color: var(--fsc-accent-500); }
.fsc-eyebrow--muted  { color: var(--fsc-ink-500); letter-spacing: 0.1em; }

.fsc-h1 { font-size: clamp(40px, 5vw, 64px); line-height: 1.05; letter-spacing: -0.025em; }
.fsc-h2 { font-size: clamp(30px, 4vw, 44px); }
.fsc-h3 { font-size: 24px; }

.fsc-lede {
	font-size: 17px;
	color: var(--fsc-ink-700);
	line-height: 1.6;
}

/* ─── 2. Buttons / Pills ─────────────────────────────────── */

.fsc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 11px 18px;
	border-radius: var(--fsc-radius-btn);
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	border: 1px solid transparent;
	letter-spacing: -0.005em;
	transition: all var(--fsc-t-fast);
	cursor: pointer;
	text-decoration: none;
	white-space: nowrap;
	line-height: 1.2;
}
.fsc-btn:hover { text-decoration: none; }
.fsc-btn--sm  { padding: 8px 14px; font-size: 13px; }
.fsc-btn--lg  { padding: 14px 22px; font-size: 16px; }
.fsc-btn--full { width: 100%; }
.fsc-btn--accent {
	background: var(--fsc-accent-500);
	color: var(--fsc-brand-900);
	border: 1px solid var(--fsc-accent-500);
}
.fsc-btn--accent:hover {
	background: var(--fsc-accent-600);
	border-color: var(--fsc-accent-600);
	color: var(--fsc-brand-900);
}

.fsc-btn--primary {
	background: var(--fsc-accent-500);
	color: var(--fsc-brand-900);
	border-color: var(--fsc-accent-500);
}
.fsc-btn--primary:hover { background: var(--fsc-accent-600); border-color: var(--fsc-accent-600); }

.fsc-btn--navy {
	background: var(--fsc-brand-900);
	color: #fff;
	border-color: var(--fsc-brand-900);
}
.fsc-btn--navy:hover { background: var(--fsc-brand-700); border-color: var(--fsc-brand-700); color: #fff; }

.fsc-btn--ghost {
	background: transparent;
	color: var(--fsc-brand-900);
	border-color: var(--fsc-ink-200);
}
.fsc-btn--ghost:hover { border-color: var(--fsc-brand-900); color: var(--fsc-brand-900); }

.fsc-btn--ghost-light {
	background: transparent;
	color: #fff;
	border-color: rgba(255,255,255,0.25);
}
.fsc-btn--ghost-light:hover { border-color: #fff; color: #fff; }

.fsc-btn--link {
	background: transparent;
	color: var(--fsc-brand-500);
	border-color: transparent;
	padding: 0;
	text-decoration: none;
}
.fsc-btn--link:hover { text-decoration: underline; }

.fsc-pill {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 10px;
	border-radius: var(--fsc-radius-pill);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.01em;
	white-space: nowrap;
	font-family: var(--fsc-font-body);
}
.fsc-pill--sm { padding: 2px 8px; font-size: 11px; }
.fsc-pill--brand   { background: var(--fsc-brand-100); color: var(--fsc-brand-700); }
.fsc-pill--ink     { background: var(--fsc-ink-50); color: var(--fsc-ink-700); }
.fsc-pill--amber   { background: var(--fsc-accent-100); color: var(--fsc-accent-600); }
.fsc-pill--success { background: #E3F4EC; color: var(--fsc-success); }
.fsc-pill--navy    { background: var(--fsc-brand-900); color: #fff; }
.fsc-pill--outline { background: transparent; color: var(--fsc-ink-700); border: 1px solid var(--fsc-ink-200); }

/* ─── Stars ─── */
.fsc-stars {
	display: inline-flex;
	gap: 1px;
	color: var(--fsc-accent-500);
	line-height: 1;
}

/* ─── Icon wrapper ─── */
.fsc-icon-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

/* ─── 3. Site Header ──────────────────────────────────────── */

.fsc-header {
	background: var(--fsc-surface);
	border-bottom: 1px solid var(--fsc-ink-200);
	position: sticky;
	top: 0;
	z-index: 40;
}

.fsc-header__utility {
	background: var(--fsc-brand-900);
	color: rgba(255, 255, 255, 0.8);
	font-size: 12px;
	padding: 6px 0;
}
.fsc-header__utility-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
}
.fsc-header__utility-left,
.fsc-header__utility-right {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}
.fsc-header__utility-right a { color: inherit; }
.fsc-header__utility svg { flex-shrink: 0; }
@media (max-width: 760px) {
	.fsc-header__utility-right { display: none; }
	.fsc-header__utility-left span:not(:first-child) { display: none; }
}

.fsc-header__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 18px 0;
}
.fsc-header__logo { flex-shrink: 0; }
.fsc-header__logo img { max-height: 63px; width: auto; }
@media (max-width: 720px) {
	.fsc-header__logo img { max-height: 44px; }
}
.fsc-header__logo-fallback {
	font-family: var(--fsc-font-body);
	font-weight: 700;
	font-size: 18px;
	color: var(--fsc-brand-900);
	letter-spacing: -0.02em;
	text-decoration: none;
}
.fsc-header__logo-fallback-sub {
	display: block;
	font-size: 10px;
	font-weight: 500;
	color: var(--fsc-ink-500);
	letter-spacing: 0.04em;
	margin-top: 2px;
	text-transform: uppercase;
}

.fsc-header__actions {
	display: flex;
	gap: 10px;
	align-items: center;
}
.fsc-header__icon-btn {
	background: transparent;
	border: none;
	color: var(--fsc-ink-900);
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	padding: 8px 10px;
	border-radius: 6px;
	text-decoration: none;
	line-height: 1;
}
.fsc-header__icon-btn:hover {
	background: var(--fsc-ink-50);
	color: var(--fsc-brand-500);
	text-decoration: none;
}

.fsc-header__basket {
	position: relative;
	padding: 8px 12px;
	border-radius: var(--fsc-radius-btn);
	border: 1px solid var(--fsc-ink-200);
	background: transparent;
	color: var(--fsc-ink-900);
	font-size: 13px;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	text-decoration: none;
	line-height: 1;
}
.fsc-header__basket:hover {
	border-color: var(--fsc-brand-500);
	color: var(--fsc-brand-500);
	text-decoration: none;
}

.fsc-header__basket-count {
	font-variant-numeric: tabular-nums;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 9px;
	background: var(--fsc-accent-500);
	color: var(--fsc-brand-900);
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
}
.fsc-header__basket-count[data-count="0"] {
	display: none;
}

/* Mobile toggle */
.fsc-header__mobile-toggle {
	display: none;
	background: transparent;
	border: none;
	padding: 8px;
	cursor: pointer;
	color: var(--fsc-ink-900);
}

@media (max-width: 960px) {
	.fsc-header__actions .fsc-btn,
	.fsc-header__actions .fsc-header__icon-btn span,
	.fsc-header__basket span:not(.fsc-header__basket-count) { display: none; }
	.fsc-header__mobile-toggle { display: inline-flex; }
}

/* ─── 4. Trust Strip ──────────────────────────────────────── */

.fsc-trust-strip {
	padding: 20px 0;
	border-top: 1px solid var(--fsc-ink-200);
	border-bottom: 1px solid var(--fsc-ink-200);
	background: var(--fsc-ink-50);
}
.fsc-trust-strip__inner {
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	align-items: center;
	justify-content: center;
}
.fsc-trust-strip__item {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 500;
	color: var(--fsc-ink-700);
}
.fsc-trust-strip__item svg { color: var(--fsc-brand-500); }

@media (max-width: 760px) {
	.fsc-trust-strip { padding: 18px 0; }
	.fsc-trust-strip__inner { gap: 12px; justify-content: flex-start; }
}

/* ─── Accreditors row ─── */

.fsc-accreditors {
	padding: 72px 0;
	background: var(--fsc-surface);
	text-align: center;
}
.fsc-accreditors__heading {
	font-size: 12px;
	font-weight: 600;
	color: var(--fsc-ink-500);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 20px;
	font-family: var(--fsc-font-body);
}
.fsc-accreditors__list {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 14px;
}
.fsc-accreditor-chip {
	padding: 10px 16px;
	border: 1px solid var(--fsc-ink-200);
	border-radius: 8px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--fsc-surface);
	font-size: 12px;
	font-weight: 600;
	color: var(--fsc-ink-700);
	letter-spacing: 0.02em;
}
.fsc-accreditor-chip__tick {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--fsc-brand-100);
	color: var(--fsc-brand-700);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* ─── 5. Home Hero ───────────────────────────────────────── */

.fsc-hero {
	padding: 80px 0 96px;
}
.fsc-hero__grid {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 64px;
	align-items: center;
}
.fsc-hero__title {
	font-size: clamp(40px, 5vw, 64px);
	line-height: 1.05;
	letter-spacing: -0.025em;
	font-weight: 500;
	margin-top: 20px;
}
.fsc-hero__title em {
	font-style: italic;
	color: var(--fsc-accent-600);
}
.fsc-hero__subtitle {
	margin-top: 24px;
	font-size: 18px;
	color: var(--fsc-ink-700);
	max-width: 540px;
	line-height: 1.6;
}
.fsc-hero__buttons {
	display: flex;
	gap: 12px;
	margin-top: 32px;
	flex-wrap: wrap;
}
.fsc-hero__checks {
	display: flex;
	gap: 24px;
	margin-top: 40px;
	flex-wrap: wrap;
	font-size: 13px;
	color: var(--fsc-ink-700);
}
.fsc-hero__check {
	display: flex;
	align-items: center;
	gap: 8px;
}
.fsc-hero__check svg { color: var(--fsc-brand-500); }

.fsc-hero__media {
	position: relative;
}
.fsc-hero__image {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--fsc-radius-card);
	background: var(--fsc-brand-900);
}
.fsc-hero__frame {
	width: 100%;
	aspect-ratio: 4 / 5;
	border-radius: var(--fsc-radius-card);
	background-color: var(--fsc-brand-900);
	background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.05) 0, rgba(255,255,255,0.05) 1px, transparent 1px, transparent 10px);
}
.fsc-hero__float-card {
	position: absolute;
	bottom: -24px;
	left: -24px;
	background: var(--fsc-surface);
	border-radius: var(--fsc-radius-card);
	padding: 16px;
	width: 240px;
	box-shadow: var(--fsc-shadow-lg);
	border: 1px solid var(--fsc-ink-200);
}
.fsc-hero__float-rating { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.fsc-hero__float-rating span { font-size: 12px; font-weight: 600; color: var(--fsc-brand-900); }
.fsc-hero__float-quote { font-size: 13px; font-weight: 500; color: var(--fsc-ink-900); line-height: 1.4; }
.fsc-hero__float-author { font-size: 12px; color: var(--fsc-ink-500); margin-top: 8px; }

@media (max-width: 900px) {
	.fsc-hero { padding: 40px 0 56px; }
	.fsc-hero__grid { grid-template-columns: 1fr; gap: 36px; }
	.fsc-hero__float-card { width: 200px; left: 16px; }
}

/* ─── 6. Home sections ───────────────────────────────────── */

/* Category tile */
.fsc-cat-tile {
	padding: 24px;
	border-radius: var(--fsc-radius-card);
	border: 1px solid var(--fsc-ink-200);
	background: var(--fsc-surface);
	cursor: pointer;
	transition: all var(--fsc-t-fast);
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-height: 180px;
	text-decoration: none;
	color: inherit;
}
.fsc-cat-tile:hover {
	transform: translateY(-2px);
	box-shadow: var(--fsc-shadow-md);
	border-color: var(--fsc-brand-500);
	text-decoration: none;
}
.fsc-cat-tile__icon {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: var(--fsc-brand-100);
	color: var(--fsc-brand-700);
	display: flex;
	align-items: center;
	justify-content: center;
}
.fsc-cat-tile__header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
}
.fsc-cat-tile__name { font-size: 20px; font-weight: 500; }
.fsc-cat-tile__body { font-size: 13px; color: var(--fsc-ink-500); line-height: 1.55; flex: 1; }
.fsc-cat-tile__cta {
	color: var(--fsc-brand-500);
	font-size: 13px;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

/* Why Us */
.fsc-whyus {
	padding: var(--fsc-section-pad) 0;
	background: var(--fsc-brand-900);
	color: #fff;
}
.fsc-whyus__grid {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: 72px;
	align-items: center;
}
.fsc-whyus__image, .fsc-whyus__frame {
	width: 100%;
	aspect-ratio: 4 / 5;
	border-radius: var(--fsc-radius-card);
	object-fit: cover;
}
.fsc-whyus__frame {
	background-color: var(--fsc-accent-bg);
	background-image: repeating-linear-gradient(45deg, rgba(11,31,58,0.04) 0, rgba(11,31,58,0.04) 1px, transparent 1px, transparent 10px);
}
.fsc-whyus h2 { color: #fff; margin-bottom: 24px; }
.fsc-whyus__points { display: grid; gap: 24px; }
.fsc-whyus__point { display: flex; gap: 16px; }
.fsc-whyus__point-icon {
	width: 38px;
	height: 38px;
	border-radius: 10px;
	background: rgba(232, 163, 61, 0.15);
	color: var(--fsc-accent-500);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.fsc-whyus__point-title {
	font-size: 17px;
	font-weight: 600;
	color: #fff;
	margin-bottom: 4px;
	font-family: var(--fsc-font-display);
}
.fsc-whyus__point-body {
	font-size: 14px;
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.6;
}
@media (max-width: 900px) {
	.fsc-whyus__grid { grid-template-columns: 1fr; gap: 36px; }
}

/* Testimonials */
.fsc-testimonial {
	padding: 28px;
	border-radius: var(--fsc-radius-card);
	border: 1px solid var(--fsc-ink-200);
	background: var(--fsc-surface);
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.fsc-testimonial__text {
	font-size: 15px;
	color: var(--fsc-ink-900);
	line-height: 1.6;
	flex: 1;
	font-family: var(--fsc-font-display);
	font-weight: 400;
}
.fsc-testimonial__meta {
	border-top: 1px solid var(--fsc-ink-200);
	padding-top: 14px;
}
.fsc-testimonial__name { font-size: 14px; font-weight: 600; color: var(--fsc-brand-900); }
.fsc-testimonial__role { font-size: 12.5px; color: var(--fsc-ink-500); }
.fsc-testimonial__course {
	font-size: 11.5px;
	color: var(--fsc-brand-500);
	margin-top: 6px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* B2B CTA */
.fsc-b2b {
	padding: 0 var(--fsc-container-gutter) 48px;
}
.fsc-b2b__inner {
	max-width: var(--fsc-container-max);
	margin: 0 auto;
	border-radius: 16px;
	background: linear-gradient(120deg, var(--fsc-accent-500) 0%, #F5C370 100%);
	padding: 56px 64px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 28px;
	flex-wrap: wrap;
}
.fsc-b2b__heading { color: var(--fsc-brand-900); font-size: clamp(28px, 3vw, 40px); }
.fsc-b2b__body {
	color: var(--fsc-brand-900);
	font-size: 17px;
	margin-top: 10px;
	opacity: 0.85;
	line-height: 1.55;
	max-width: 640px;
}
@media (max-width: 760px) {
	.fsc-b2b__inner { padding: 36px 28px; }
}

/* Resource cards */
.fsc-article-card {
	display: flex;
	flex-direction: column;
	border-radius: var(--fsc-radius-card);
	overflow: hidden;
	border: 1px solid var(--fsc-ink-200);
	background: var(--fsc-surface);
	text-decoration: none;
	color: inherit;
	transition: all var(--fsc-t-fast);
	height: 100%;
}
.fsc-article-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--fsc-shadow-md);
	text-decoration: none;
}
.fsc-article-card__image {
	aspect-ratio: 16 / 9;
	object-fit: cover;
	background: var(--fsc-ink-50);
	width: 100%;
	display: block;
	flex-shrink: 0;
}
.fsc-article-card__frame {
	aspect-ratio: 16 / 9;
	background: var(--fsc-ink-50);
	background-image: repeating-linear-gradient(45deg, rgba(11,31,58,0.035) 0, rgba(11,31,58,0.035) 1px, transparent 1px, transparent 10px);
	flex-shrink: 0;
}
.fsc-article-card__body {
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1 1 auto;
}
.fsc-article-card__title {
	font-size: 18px;
	font-weight: 500;
	margin: 0;
	padding: 0;
	line-height: 1.3;
	color: var(--fsc-brand-900);
}
.fsc-article-card__meta { font-size: 12.5px; color: var(--fsc-ink-500); margin-top: auto; }

/* ─── 7. Breadcrumbs ─────────────────────────────────────── */

.fsc-breadcrumbs {
	border-bottom: 1px solid var(--fsc-ink-200);
	background: var(--fsc-ink-50);
}
.fsc-breadcrumbs__inner {
	padding: 14px 0;
	font-size: 12px;
	color: var(--fsc-ink-500);
}
.fsc-breadcrumbs a {
	color: var(--fsc-ink-500);
	text-decoration: none;
}
.fsc-breadcrumbs a:hover { color: var(--fsc-brand-500); }
.fsc-breadcrumbs__sep { margin: 0 6px; opacity: 0.5; }
.fsc-breadcrumbs__current { color: var(--fsc-brand-900); font-weight: 500; }

/* ─── 8. Course Card (WooCommerce product card) ──────────── */

.fsc-course-card {
	display: flex;
	flex-direction: column;
	border-radius: var(--fsc-radius-card);
	overflow: hidden;
	background: var(--fsc-surface);
	border: 1px solid var(--fsc-ink-200);
	box-shadow: var(--fsc-shadow-md);
	transition: transform var(--fsc-t), border-color var(--fsc-t);
	text-decoration: none !important;
	color: inherit !important;
	position: relative;
	width: 100%;
	height: auto;
	min-height: 0;
}
.fsc-course-card:hover {
	transform: translateY(-2px);
	border-color: var(--fsc-brand-500);
	text-decoration: none !important;
}
.fsc-course-card:hover .fsc-course-card__title {
	color: var(--fsc-brand-500);
}
.fsc-course-card__media {
	position: relative;
	width: 100%;
	height: 0;
	padding-bottom: 62.5%; /* 16:10 aspect ratio — works reliably inside flex/grid */
	background: var(--fsc-ink-50);
	overflow: hidden;
	flex-shrink: 0;
	display: block;
}
.fsc-course-card__media img,
.fsc-course-card__img,
img.fsc-course-card__img {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	max-width: none !important;
	border: none !important;
	border-radius: 0 !important;
}
/* Generated SVG placeholders fill the whole frame — no object-fit needed,
   and no grey background behind them. */
.fsc-course-card__img--placeholder {
	object-fit: fill !important;
	background: transparent !important;
}
.fsc-course-card__media-frame {
	width: 100%;
	height: 100%;
	background-color: var(--fsc-brand-900);
	background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.05) 0, rgba(255,255,255,0.05) 1px, transparent 1px, transparent 10px);
}
.fsc-course-card__badges {
	position: absolute;
	top: 12px;
	left: 12px;
	right: 12px;
	display: flex;
	justify-content: space-between;
	gap: 6px;
	pointer-events: none;
	z-index: 2;
}
.fsc-course-card__badges-left {
	display: inline-flex;
	gap: 6px;
	flex-wrap: wrap;
}
.fsc-course-card__badges-left:empty { display: none; }
.fsc-course-card__badges .fsc-pill { pointer-events: auto; }
.fsc-course-card__badges .fsc-pill--outline { background: rgba(255, 255, 255, 0.95); }

.fsc-course-card__body {
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1 1 auto;
	min-height: 0;
}
.fsc-course-card__cat {
	font-size: 11.5px;
	font-weight: 600;
	color: var(--fsc-brand-500);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	display: block;
	line-height: 1.2;
}
.fsc-course-card__title {
	font-family: var(--fsc-font-display);
	font-size: 18px;
	font-weight: 500;
	color: var(--fsc-brand-900);
	line-height: 1.3;
	margin: 0;
	padding: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	transition: color var(--fsc-t-fast);
	letter-spacing: -0.01em;
	word-break: break-word;
}
.fsc-course-card__desc {
	font-size: 13px;
	color: var(--fsc-ink-500);
	line-height: 1.55;
	flex: 1 1 auto;
	margin: 0;
	padding: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.fsc-course-card__footer {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	padding-top: 14px;
	border-top: 1px solid var(--fsc-ink-200);
	margin-top: auto;
	gap: 12px;
}
.fsc-course-card__price-wrap {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	flex: 1 1 auto;
}
.fsc-course-card__from {
	font-size: 10.5px;
	color: var(--fsc-ink-500);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 600;
	line-height: 1;
	display: block;
}
.fsc-course-card__price {
	font-family: var(--fsc-font-display);
	font-size: 18px;
	font-weight: 600;
	color: var(--fsc-brand-900);
	letter-spacing: -0.01em;
	line-height: 1.2;
	display: block;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.fsc-course-card__price .woocommerce-price-suffix {
	display: none; /* "(+ VAT if based in UK)" — too long for the card, we show "+VAT" instead */
}
.fsc-course-card__price .fsc-course-card__vat {
	font-family: var(--fsc-font-body);
	font-size: 11px;
	font-weight: 500;
	color: var(--fsc-ink-500);
	margin-left: 4px;
	letter-spacing: 0;
}
.fsc-course-card__price bdi,
.fsc-course-card__price .woocommerce-Price-amount,
.fsc-course-card__price .woocommerce-Price-currencySymbol {
	font-family: var(--fsc-font-display);
	color: inherit;
}
.fsc-course-card__price del {
	color: var(--fsc-ink-500);
	font-size: 13px;
	margin-right: 4px;
	font-weight: 400;
}
.fsc-course-card__price ins {
	background: transparent;
	text-decoration: none;
}
.fsc-course-card__link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--fsc-brand-500);
	font-size: 12px;
	font-weight: 600;
	white-space: nowrap;
	flex-shrink: 0;
	line-height: 1;
}

/* ─── 9. Page Hero (generic inner) ───────────────────────── */

.fsc-page-hero {
	background: var(--fsc-brand-900);
	color: #fff;
	padding: 72px 0;
}
/* Archive heroes (shop / category / tag) can be a bit more compact than marketing pages */
.post-type-archive-product .fsc-page-hero,
.tax-product_cat .fsc-page-hero,
.tax-product_tag .fsc-page-hero {
	padding: 56px 0 52px;
}
/* Cart / checkout / my-account heroes — even more compact (functional pages) */
.fsc-page-hero--wc {
	padding: 48px 0 44px !important;
}
.fsc-page-hero h1 { color: #fff; }
.fsc-page-hero__eyebrow {
	display: inline-block;
	padding: 5px 12px;
	background: rgba(232, 163, 61, 0.15);
	color: var(--fsc-accent-500);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	border-radius: var(--fsc-radius-pill);
	margin-bottom: 20px;
}
.fsc-page-hero__title { font-size: clamp(32px, 4vw, 48px); max-width: 900px; }
.fsc-page-hero__subtitle {
	margin-top: 16px;
	max-width: 720px;
	font-size: 17px;
	color: rgba(255, 255, 255, 0.75);
	line-height: 1.6;
}

/* Page content area */
.fsc-page-content {
	padding: 64px 0;
}
.fsc-page-content__inner {
	max-width: 780px;
	margin: 0 auto;
	font-size: 16px;
	line-height: 1.75;
	color: var(--fsc-ink-900);
}

/* On WooCommerce cart / checkout / my-account pages, release the narrow
   reading-width constraint so 2-column layouts can breathe to the full
   container width. These pages render via page.php because they contain
   the WC shortcode, not via woocommerce.php. */
.woocommerce-cart .fsc-page-content__inner,
.woocommerce-checkout .fsc-page-content__inner,
.woocommerce-account .fsc-page-content__inner,
.woocommerce-order-received .fsc-page-content__inner {
	max-width: none;
	font-size: 15px;
	line-height: 1.6;
}

/* Suppress duplicate page-title H1 on these WC pages — the hero above
   already shows the title. The block editor often outputs its own <h1>
   which creates a double heading. */
.woocommerce-cart .fsc-page-content__inner > h1:first-child,
.woocommerce-checkout .fsc-page-content__inner > h1:first-child,
.woocommerce-account .fsc-page-content__inner > h1:first-child,
.woocommerce-order-received .fsc-page-content__inner > h1:first-child {
	display: none;
}
/* Also hide duplicate H1s from [woocommerce_cart] / [woocommerce_checkout]
   shortcode output (some themes wrap with their own title). */
.fsc-page-content__inner > .woocommerce > h1:first-child {
	display: none;
}
.fsc-page-content__inner h2 { margin: 48px 0 16px; font-size: 30px; }
.fsc-page-content__inner h3 { margin: 32px 0 12px; font-size: 22px; }
.fsc-page-content__inner p { margin: 0 0 16px; }
.fsc-page-content__inner ul,
.fsc-page-content__inner ol { margin: 0 0 16px 1.5em; }
.fsc-page-content__inner li { margin-bottom: 6px; }
.fsc-page-content__inner a { color: var(--fsc-brand-500); text-decoration: underline; }
.fsc-page-content__inner blockquote {
	border-left: 3px solid var(--fsc-accent-500);
	padding: 8px 0 8px 20px;
	margin: 24px 0;
	font-family: var(--fsc-font-display);
	font-size: 20px;
	line-height: 1.5;
	color: var(--fsc-ink-900);
}
.fsc-page-content__inner img {
	border-radius: var(--fsc-radius-card);
	margin: 24px 0;
}

/* ─── 10. Blog ───────────────────────────────────────────── */

.fsc-blog-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 48px;
	padding: 64px 0;
}
.fsc-blog-layout--no-sidebar { grid-template-columns: 1fr; max-width: 820px; margin: 0 auto; }
@media (max-width: 1100px) {
	.fsc-blog-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: 36px; }
}
@media (max-width: 960px) {
	.fsc-blog-layout { grid-template-columns: 1fr; gap: 32px; }
}

.fsc-blog-archive {
	display: grid;
	gap: 32px;
}
.fsc-blog-card {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 24px;
	padding-bottom: 32px;
	border-bottom: 1px solid var(--fsc-ink-200);
	text-decoration: none;
	color: inherit;
}
.fsc-blog-card:hover { text-decoration: none; }
.fsc-blog-card:hover .fsc-blog-card__title { color: var(--fsc-brand-500); }
.fsc-blog-card__image {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--fsc-radius-card);
	background: var(--fsc-ink-50);
}
.fsc-blog-card__frame {
	aspect-ratio: 4 / 3;
	border-radius: var(--fsc-radius-card);
	background: var(--fsc-ink-50);
	background-image: repeating-linear-gradient(45deg, rgba(11,31,58,0.035) 0, rgba(11,31,58,0.035) 1px, transparent 1px, transparent 10px);
}
.fsc-blog-card__meta {
	font-size: 12px;
	color: var(--fsc-ink-500);
	display: flex;
	gap: 8px;
	margin-top: 4px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-weight: 600;
}
.fsc-blog-card__meta span:first-child { color: var(--fsc-brand-500); }
.fsc-blog-card__title {
	font-size: 26px;
	margin: 12px 0;
	line-height: 1.25;
	transition: color var(--fsc-t-fast);
}
.fsc-blog-card__excerpt { font-size: 15px; color: var(--fsc-ink-700); line-height: 1.6; }
.fsc-blog-card__readmore {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600;
	font-size: 14px;
	color: var(--fsc-brand-500);
	margin-top: 12px;
}
@media (max-width: 760px) {
	.fsc-blog-card { grid-template-columns: 1fr; gap: 16px; }
	.fsc-blog-card__title { font-size: 22px; }
}

/* ─── Blog sidebar (commercial CTAs + content discovery) ─── */

.fsc-blog-sidebar {
	align-self: start;
	display: grid;
	gap: 20px;
}
@media (max-width: 960px) {
	.fsc-blog-sidebar {
		gap: 16px;
	}
}

/* Base sidebar card */
.fsc-sidebar-card {
	padding: 22px;
	border: 1px solid rgba(11, 31, 58, 0.08);
	border-radius: 14px;
	background: #fff;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.fsc-sidebar-card__eyebrow {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--fsc-accent-500);
}
.fsc-sidebar-card__title {
	font-family: var(--fsc-font-display);
	font-size: 19px;
	font-weight: 500;
	color: var(--fsc-brand-900);
	margin: 0;
	line-height: 1.25;
	letter-spacing: -0.01em;
}
.fsc-sidebar-card__text {
	font-size: 14px;
	line-height: 1.55;
	color: rgba(11, 31, 58, 0.7);
	margin: 0;
}
.fsc-sidebar-card__icon {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(232, 163, 61, 0.12);
	color: var(--fsc-accent-500);
	margin-bottom: 4px;
}

/* Primary CTA variant — navy, stands out */
.fsc-sidebar-card--primary {
	background: var(--fsc-brand-900);
	border-color: var(--fsc-brand-900);
	color: #fff;
}
.fsc-sidebar-card--primary .fsc-sidebar-card__eyebrow { color: var(--fsc-accent-500); }
.fsc-sidebar-card--primary .fsc-sidebar-card__title { color: #fff; }
.fsc-sidebar-card--primary .fsc-sidebar-card__text { color: rgba(255, 255, 255, 0.72); }

/* Advisor variant — warm tinted background */
.fsc-sidebar-card--advisor {
	background: rgba(232, 163, 61, 0.06);
	border-color: rgba(232, 163, 61, 0.18);
}

/* Newsletter variant - slight tint */
.fsc-sidebar-card--newsletter {
	background: rgba(11, 31, 58, 0.03);
	border-color: rgba(11, 31, 58, 0.08);
}
.fsc-sidebar-newsletter {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 4px;
}
.fsc-sidebar-newsletter input {
	padding: 10px 12px;
	font-size: 14px;
	font-family: inherit;
	border: 1px solid rgba(11, 31, 58, 0.15);
	border-radius: var(--fsc-radius-btn, 8px);
	outline: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.fsc-sidebar-newsletter input:focus {
	border-color: var(--fsc-accent-500);
	box-shadow: 0 0 0 3px rgba(232, 163, 61, 0.18);
}

/* Course list in sidebar */
.fsc-sidebar-courses {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.fsc-sidebar-course__link {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 10px 12px;
	margin: 0 -4px;
	border-radius: 8px;
	text-decoration: none;
	transition: background 0.12s ease;
}
.fsc-sidebar-course__link:hover {
	background: rgba(11, 31, 58, 0.04);
}
.fsc-sidebar-course__title {
	font-size: 14px;
	font-weight: 500;
	color: var(--fsc-brand-900);
	line-height: 1.4;
}
.fsc-sidebar-course__price {
	font-size: 13px;
	color: var(--fsc-accent-500);
	font-weight: 600;
}
.fsc-sidebar-course__price del {
	color: rgba(11, 31, 58, 0.45);
	margin-right: 4px;
	font-weight: 400;
}

/* Recent posts list in sidebar */
.fsc-sidebar-posts {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
}
.fsc-sidebar-post {
	border-top: 1px solid rgba(11, 31, 58, 0.06);
}
.fsc-sidebar-post:first-child { border-top: none; }
.fsc-sidebar-post__link {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 11px 0;
	text-decoration: none;
}
.fsc-sidebar-post__title {
	font-size: 14px;
	font-weight: 500;
	color: var(--fsc-brand-900);
	line-height: 1.4;
	transition: color 0.12s ease;
}
.fsc-sidebar-post__link:hover .fsc-sidebar-post__title {
	color: var(--fsc-accent-500);
}
.fsc-sidebar-post__date {
	font-size: 12px;
	color: rgba(11, 31, 58, 0.5);
}

/* Topic pill list */
.fsc-sidebar-tags {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.fsc-sidebar-tag {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	font-size: 13px;
	color: var(--fsc-brand-900);
	background: rgba(11, 31, 58, 0.04);
	border: 1px solid rgba(11, 31, 58, 0.08);
	border-radius: 999px;
	text-decoration: none;
	transition: background 0.12s ease, border-color 0.12s ease;
}
.fsc-sidebar-tag:hover {
	background: var(--fsc-accent-500);
	border-color: var(--fsc-accent-500);
	color: var(--fsc-brand-900);
}
.fsc-sidebar-tag__count {
	font-size: 11px;
	opacity: 0.6;
	font-weight: 600;
}

/* ─── Mid-post inline CTA ─────────────────────────────────── */

.fsc-midpost-cta {
	margin: 36px 0;
	padding: 24px 26px;
	background: linear-gradient(135deg, rgba(232, 163, 61, 0.08) 0%, rgba(232, 163, 61, 0.02) 100%);
	border: 1px solid rgba(232, 163, 61, 0.22);
	border-radius: 14px;
	position: relative;
}
.fsc-midpost-cta::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	width: 4px;
	background: var(--fsc-accent-500);
	border-radius: 14px 0 0 14px;
}
.fsc-midpost-cta__inner {
	display: flex;
	gap: 24px;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
}
.fsc-midpost-cta__body {
	flex: 1;
	min-width: 260px;
}
.fsc-midpost-cta__title {
	font-family: var(--fsc-font-display);
	font-size: 20px;
	font-weight: 500;
	color: var(--fsc-brand-900);
	margin: 0 0 6px;
	letter-spacing: -0.01em;
	line-height: 1.25;
}
.fsc-midpost-cta__text {
	font-size: 14px;
	line-height: 1.55;
	color: rgba(11, 31, 58, 0.75);
	margin: 0;
}
.fsc-midpost-cta__action {
	flex-shrink: 0;
}
@media (max-width: 640px) {
	.fsc-midpost-cta__inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
	}
	.fsc-midpost-cta__action,
	.fsc-midpost-cta__action .fsc-btn {
		width: 100%;
		justify-content: center;
	}
}

/* Single post */
.fsc-post-header { margin-bottom: 32px; }
.fsc-post-meta {
	font-size: 12px;
	color: var(--fsc-ink-500);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 600;
	margin-bottom: 12px;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.fsc-post-meta span:first-child { color: var(--fsc-brand-500); }
.fsc-post-title { font-size: clamp(32px, 4vw, 48px); line-height: 1.1; letter-spacing: -0.015em; }
.fsc-post-excerpt {
	margin-top: 16px;
	font-size: 18px;
	color: var(--fsc-ink-700);
	font-family: var(--fsc-font-display);
	line-height: 1.5;
}
.fsc-post-featured {
	margin: 32px 0;
	width: 100%;
	aspect-ratio: 2 / 1;
	object-fit: cover;
	border-radius: var(--fsc-radius-card);
}

.fsc-post-share {
	display: flex;
	gap: 12px;
	align-items: center;
	padding: 24px 0;
	margin-top: 32px;
	border-top: 1px solid var(--fsc-ink-200);
	border-bottom: 1px solid var(--fsc-ink-200);
	font-size: 13px;
	color: var(--fsc-ink-500);
}
.fsc-post-share a {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid var(--fsc-ink-200);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--fsc-ink-700);
	text-decoration: none;
	transition: all var(--fsc-t-fast);
}
.fsc-post-share a:hover { background: var(--fsc-brand-500); color: #fff; border-color: var(--fsc-brand-500); }

.fsc-related-posts { padding: 64px 0; background: var(--fsc-ink-50); }

/* Pagination */
.fsc-pagination {
	display: flex;
	gap: 6px;
	justify-content: center;
	padding: 40px 0;
	flex-wrap: wrap;
}
.fsc-pagination a,
.fsc-pagination span {
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border-radius: var(--fsc-radius-btn);
	border: 1px solid var(--fsc-ink-200);
	background: var(--fsc-surface);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 600;
	color: var(--fsc-ink-700);
	text-decoration: none;
}
.fsc-pagination a:hover { border-color: var(--fsc-brand-500); color: var(--fsc-brand-500); }
.fsc-pagination .current { background: var(--fsc-brand-900); color: #fff; border-color: var(--fsc-brand-900); }

/* ─── 11. Forms ──────────────────────────────────────────── */

.fsc-input, .fsc-textarea, .fsc-select {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--fsc-ink-200);
	border-radius: var(--fsc-radius-btn);
	background: var(--fsc-surface);
	font-family: inherit;
	font-size: 14px;
	color: var(--fsc-ink-900);
	transition: border-color var(--fsc-t-fast);
}
.fsc-input:focus, .fsc-textarea:focus, .fsc-select:focus {
	outline: none;
	border-color: var(--fsc-brand-500);
	box-shadow: 0 0 0 3px rgba(42, 90, 160, 0.12);
}

.fsc-search-form {
	display: flex;
	gap: 8px;
}
.fsc-search-form .fsc-input { flex: 1; }

/* ─── 12. Footer ─────────────────────────────────────────── */

/* ─── Footer v1.2.0 ──────────────────────────────────────── */

.fsc-footer {
	background: var(--fsc-brand-900);
	color: #fff;
	margin-top: auto;
}

/* Trust band — thin strip above the main columns */
.fsc-footer__trust {
	background: rgba(255, 255, 255, 0.04);
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.fsc-footer__trust-list {
	list-style: none;
	padding: 16px 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 14px 28px;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.75);
}
.fsc-footer__trust-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	line-height: 1.4;
}
.fsc-footer__trust-dot {
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--fsc-accent-500);
	flex-shrink: 0;
}

/* Main footer grid */
.fsc-footer__inner {
	padding: 64px 0 32px;
}
.fsc-footer__grid {
	display: grid;
	grid-template-columns: 1.8fr 1fr 1fr 1.4fr;
	gap: 48px;
	align-items: flex-start;
}
@media (max-width: 960px) {
	.fsc-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 40px 32px;
	}
	.fsc-footer__col--about,
	.fsc-footer__col--newsletter {
		grid-column: span 2;
	}
}
@media (max-width: 540px) {
	.fsc-footer__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.fsc-footer__col--about,
	.fsc-footer__col--newsletter {
		grid-column: auto;
	}
}

.fsc-footer__col {
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-width: 0;
}

/* Logo in about column */
.fsc-footer__logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	color: #fff;
	margin-bottom: 4px;
}
.fsc-footer__logo img {
	height: 82px;
	width: auto;
	max-width: 320px;
	display: block;
}
@media (max-width: 540px) {
	.fsc-footer__logo img { height: 64px; }
}
.fsc-footer__logo-text {
	font-family: var(--fsc-font-display);
	font-size: 22px;
	font-weight: 500;
	letter-spacing: -0.01em;
	color: #fff;
}
.fsc-footer__about {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.65);
	line-height: 1.65;
	margin: 4px 0 0;
	max-width: 32em;
}

/* Column headings */
.fsc-footer__heading {
	font-size: 11px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.55);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin: 0 0 6px;
	font-family: var(--fsc-font-body);
}

/* Column links */
.fsc-footer__col a,
.fsc-footer__col ul li a {
	font-size: 14px;
	color: rgba(255, 255, 255, 0.78);
	text-decoration: none;
	transition: color 0.12s ease;
}
.fsc-footer__col a:hover,
.fsc-footer__col ul li a:hover {
	color: var(--fsc-accent-500);
}
.fsc-footer__col ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 10px;
}

/* Social icons — proper round buttons with SVG icons */
.fsc-footer__social {
	display: flex;
	gap: 10px;
	margin-top: 12px;
	flex-wrap: wrap;
}
.fsc-footer__social-link {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.1);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, 0.75);
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.fsc-footer__social-link:hover {
	background: var(--fsc-accent-500);
	color: var(--fsc-brand-900);
	border-color: var(--fsc-accent-500);
	transform: translateY(-1px);
}
.fsc-footer__social-link svg {
	display: block;
}

/* Newsletter */
.fsc-footer__newsletter-text {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.65);
	line-height: 1.6;
	margin: 0;
}
.fsc-footer__newsletter-form {
	display: flex;
	gap: 8px;
	margin-top: 8px;
}
.fsc-footer__newsletter-form input {
	flex: 1;
	min-width: 0;
	padding: 11px 13px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: var(--fsc-radius-btn);
	color: #fff;
	font-size: 13px;
	font-family: inherit;
	outline: none;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.fsc-footer__newsletter-form input::placeholder {
	color: rgba(255, 255, 255, 0.4);
}
.fsc-footer__newsletter-form input:focus {
	border-color: var(--fsc-accent-500);
	background: rgba(255, 255, 255, 0.09);
}
.fsc-footer__newsletter-form button {
	padding: 11px 16px;
	background: var(--fsc-accent-500);
	color: var(--fsc-brand-900);
	border: none;
	border-radius: var(--fsc-radius-btn);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s ease;
	white-space: nowrap;
}
.fsc-footer__newsletter-form button:hover {
	background: #f4b354;
}
.fsc-footer__newsletter-small {
	font-size: 11px;
	color: rgba(255, 255, 255, 0.5);
	margin-top: 8px;
	line-height: 1.5;
}
.fsc-footer__newsletter-small a {
	color: rgba(255, 255, 255, 0.75);
	text-decoration: underline;
	text-decoration-color: rgba(255, 255, 255, 0.25);
	text-underline-offset: 2px;
}
.fsc-footer__newsletter-small a:hover {
	color: var(--fsc-accent-500);
	text-decoration-color: var(--fsc-accent-500);
}

/* Affiliate disclosure block */
.fsc-footer__affiliate {
	margin-top: 48px;
	padding: 18px 20px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.08);
	font-size: 12px;
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.6;
}
.fsc-footer__affiliate strong {
	color: #fff;
	font-weight: 600;
	margin-right: 4px;
}

/* Bottom row — copyright + legal links inline */
.fsc-footer__bottom {
	margin-top: 40px;
	padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px 28px;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.55);
	flex-wrap: wrap;
}
.fsc-footer__copy {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}
.fsc-footer__credit {
	opacity: 0.7;
}
.fsc-footer__credit a {
	color: rgba(255, 255, 255, 0.75);
	text-decoration: none;
	transition: color 0.12s ease;
}
.fsc-footer__credit a:hover {
	color: var(--fsc-accent-500);
}
.fsc-footer__legal ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
}
.fsc-footer__legal a {
	font-size: 12px;
	color: rgba(255, 255, 255, 0.55);
	text-decoration: none;
	transition: color 0.12s ease;
}
.fsc-footer__legal a:hover {
	color: var(--fsc-accent-500);
}

@media (max-width: 640px) {
	.fsc-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ─── Cookie Banner ──────────────────────────────────────── */

.fsc-cookie {
	position: fixed;
	bottom: 24px;
	left: 24px;
	max-width: 440px;
	background: var(--fsc-surface);
	border: 1px solid var(--fsc-ink-200);
	border-radius: var(--fsc-radius-card);
	padding: 20px;
	box-shadow: var(--fsc-shadow-lg);
	z-index: 50;
}
.fsc-cookie[hidden] { display: none; }
.fsc-cookie__title { font-size: 14px; font-weight: 600; color: var(--fsc-brand-900); margin-bottom: 6px; font-family: var(--fsc-font-body); }
.fsc-cookie__text { font-size: 12.5px; color: var(--fsc-ink-700); line-height: 1.55; margin-bottom: 14px; }
.fsc-cookie__actions { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 600px) {
	.fsc-cookie { left: 12px; right: 12px; max-width: none; }
}

/* ─── Utility ────────────────────────────────────────────── */

.fsc-hidden { display: none !important; }
.fsc-text-center { text-align: center; }
.fsc-mt-0  { margin-top: 0 !important; }
.fsc-mt-md { margin-top: 24px; }
.fsc-mt-lg { margin-top: 48px; }

/* Comments */
.fsc-comments {
	padding: 48px 0;
	border-top: 1px solid var(--fsc-ink-200);
	margin-top: 48px;
}
.fsc-comments h2 { font-size: 24px; margin-bottom: 24px; }
.fsc-comments ol { list-style: none; padding: 0; }
.fsc-comments .comment { padding: 20px; border: 1px solid var(--fsc-ink-200); border-radius: var(--fsc-radius-card); margin-bottom: 16px; background: var(--fsc-surface); }
.fsc-comments .comment-meta { font-size: 12px; color: var(--fsc-ink-500); margin-bottom: 8px; }
/* ─── Contact page template ──────────────────────────────── */

.fsc-contact {
	padding: 48px 0 72px;
}
@media (max-width: 720px) {
	.fsc-contact { padding: 32px 0 56px; }
}

.fsc-contact__grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 48px;
	align-items: flex-start;
}
@media (max-width: 960px) {
	.fsc-contact__grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
}

/* Intro copy above the form (rendered if the page has content) */
.fsc-contact__intro {
	margin-bottom: 28px;
	font-size: 16px;
	line-height: 1.7;
	color: var(--fsc-ink-700, #34425c);
}
.fsc-contact__intro p:first-child { margin-top: 0; }
.fsc-contact__intro p:last-child { margin-bottom: 0; }

/* Form card */
.fsc-contact__form-card {
	background: #fff;
	border: 1px solid rgba(11, 31, 58, 0.08);
	border-radius: 14px;
	padding: 32px;
	box-shadow: 0 1px 2px rgba(11, 31, 58, 0.03),
	            0 8px 24px rgba(11, 31, 58, 0.04);
}
@media (max-width: 540px) {
	.fsc-contact__form-card { padding: 22px; border-radius: 12px; }
}

/* Gravity Forms overrides for the contact page — scoped to the form card
   so they don't leak into other GF instances elsewhere on the site. */
.fsc-contact__form-card .gform_wrapper {
	max-width: none;
	margin: 0;
}
.fsc-contact__form-card .gform_heading { display: none; } /* Hide form title + description — hero already sets context */
.fsc-contact__form-card .gform_fields {
	gap: 18px !important;
}
.fsc-contact__form-card .gfield_label {
	font-family: var(--fsc-font-body);
	font-weight: 600;
	font-size: 13px;
	color: var(--fsc-brand-900);
	letter-spacing: 0.01em;
	margin-bottom: 6px;
}
.fsc-contact__form-card .gfield_required { color: #b54245; margin-left: 2px; }
.fsc-contact__form-card .ginput_container input[type="text"],
.fsc-contact__form-card .ginput_container input[type="email"],
.fsc-contact__form-card .ginput_container input[type="tel"],
.fsc-contact__form-card .ginput_container input[type="url"],
.fsc-contact__form-card .ginput_container input[type="number"],
.fsc-contact__form-card .ginput_container select,
.fsc-contact__form-card .ginput_container textarea {
	width: 100%;
	padding: 12px 14px;
	font-family: inherit;
	font-size: 15px;
	line-height: 1.5;
	color: var(--fsc-brand-900);
	background: #fff;
	border: 1px solid rgba(11, 31, 58, 0.18);
	border-radius: var(--fsc-radius-btn, 8px);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.fsc-contact__form-card .ginput_container textarea {
	min-height: 140px;
	resize: vertical;
}
.fsc-contact__form-card .ginput_container input:focus,
.fsc-contact__form-card .ginput_container select:focus,
.fsc-contact__form-card .ginput_container textarea:focus {
	outline: none;
	border-color: var(--fsc-accent-500);
	box-shadow: 0 0 0 3px rgba(232, 163, 61, 0.18);
}
.fsc-contact__form-card .gfield_description {
	font-size: 13px;
	color: rgba(11, 31, 58, 0.6);
	margin-top: 6px;
}
.fsc-contact__form-card .validation_message,
.fsc-contact__form-card .gfield_validation_message {
	color: #b54245;
	font-size: 13px;
	margin-top: 6px;
}
.fsc-contact__form-card .gform_footer {
	padding-top: 20px;
	margin-top: 4px;
	border-top: 1px solid rgba(11, 31, 58, 0.06);
}
.fsc-contact__form-card .gform_button,
.fsc-contact__form-card input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 13px 26px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.01em;
	color: var(--fsc-brand-900);
	background: var(--fsc-accent-500);
	border: none;
	border-radius: var(--fsc-radius-btn, 8px);
	cursor: pointer;
	transition: background 0.15s ease, transform 0.1s ease;
}
.fsc-contact__form-card .gform_button:hover,
.fsc-contact__form-card input[type="submit"]:hover {
	background: #f4b354;
}
.fsc-contact__form-card .gform_button:active,
.fsc-contact__form-card input[type="submit"]:active {
	transform: translateY(1px);
}
.fsc-contact__form-card .gform_confirmation_message {
	padding: 28px;
	background: rgba(36, 124, 61, 0.06);
	border: 1px solid rgba(36, 124, 61, 0.2);
	border-radius: 10px;
	color: #1a5a31;
	font-size: 15px;
	line-height: 1.6;
}
.fsc-contact__form-card .validation_error {
	padding: 14px 16px;
	background: rgba(181, 66, 69, 0.06);
	border: 1px solid rgba(181, 66, 69, 0.25);
	border-radius: 8px;
	color: #8a2f32;
	font-size: 14px;
	margin-bottom: 22px;
}

/* Fallback paragraph when Gravity Forms isn't active */
.fsc-form-fallback {
	padding: 18px 20px;
	background: rgba(11, 31, 58, 0.04);
	border: 1px solid rgba(11, 31, 58, 0.1);
	border-radius: 10px;
	color: var(--fsc-ink-700, #34425c);
	font-size: 14px;
	margin: 0;
}

/* Sidebar */
.fsc-contact__side {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.fsc-contact__card {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 18px 20px;
	background: #fff;
	border: 1px solid rgba(11, 31, 58, 0.08);
	border-radius: 12px;
}
.fsc-contact__card--note {
	background: rgba(11, 31, 58, 0.03);
	border-color: rgba(11, 31, 58, 0.08);
}

.fsc-contact__card-icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: rgba(232, 163, 61, 0.12);
	color: var(--fsc-accent-500);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.fsc-contact__card-body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.fsc-contact__card-label {
	font-size: 12px;
	font-weight: 600;
	color: rgba(11, 31, 58, 0.55);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.fsc-contact__card-text {
	font-size: 15px;
	color: var(--fsc-brand-900);
	line-height: 1.5;
}
.fsc-contact__card-link {
	font-size: 16px;
	font-weight: 500;
	color: var(--fsc-brand-900);
	text-decoration: none;
	word-break: break-word;
}
.fsc-contact__card-link:hover {
	color: var(--fsc-accent-500);
}

/* Secondary links list below the cards */
.fsc-contact__links {
	margin-top: 6px;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.fsc-contact__link {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 12px 16px;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 500;
	color: var(--fsc-brand-900);
	text-decoration: none;
	transition: background 0.12s ease, color 0.12s ease;
}
.fsc-contact__link:hover {
	background: rgba(11, 31, 58, 0.04);
	color: var(--fsc-accent-500);
}
.fsc-contact__link svg {
	flex-shrink: 0;
	opacity: 0.6;
	transition: opacity 0.12s ease, transform 0.12s ease;
}
.fsc-contact__link:hover svg {
	opacity: 1;
	transform: translateX(2px);
}

/* Trust strip below the two columns */
.fsc-contact__trust {
	margin-top: 56px;
	padding: 20px 24px;
	background: rgba(11, 31, 58, 0.03);
	border: 1px solid rgba(11, 31, 58, 0.06);
	border-radius: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
	justify-content: center;
	align-items: center;
	font-size: 13px;
	color: rgba(11, 31, 58, 0.7);
}
.fsc-contact__trust-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.fsc-contact__trust-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--fsc-accent-500);
	display: inline-block;
	flex-shrink: 0;
}

