/* ---------- Tokens (DESIGN.md) ---------- */
:root {
	--skf-canvas: #faf9f5;
	--skf-card: #efe9de;
	--skf-dark: #181715;
	--skf-ink: #141413;
	--skf-ink-secondary: #5e5d59;
	--skf-hairline: #e6dfd8;
	--skf-coral: #cc785c;
	--skf-coral-active: #a9583e;
	--skf-barn-red: #7c1d13;
	--skf-focus: rgba(204, 120, 92, .15);
	--skf-shadow: 0 1px 3px rgba(20, 20, 19, .08);
	--skf-font-sans: "Inter", -apple-system, "Segoe UI", sans-serif;
	--skf-font-serif: "Cormorant Garamond", "EB Garamond", Georgia, serif;
	--skf-radius-control: 8px;
	--skf-radius-card: 12px;
	--skf-radius-hero: 16px;
	--skf-nav-height: 96px;
	--skf-logo-scale: 1;
	--skf-ease: cubic-bezier(.4, 0, .2, 1);
}

/* ---------- Base ---------- */
*,
*::before,
*::after {
	box-sizing: border-box
}

body {
	margin: 0;
	background: var(--skf-canvas);
	color: var(--skf-ink);
	font-family: var(--skf-font-sans);
	font-size: 16px;
	line-height: 1.55
}

a {
	color: var(--skf-coral);
	text-decoration: none
}

a:hover {
	color: var(--skf-coral-active);
	text-decoration: underline
}

h1, h2, h3, h4, h5, h6 {
	color: #041E5B;
	text-align: left;
}

/* Page titles stay centered; section headings are left-aligned */
h1 {
	text-align: center;
}

strong, b {
	color: #E24313;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap
}

.skip-link:focus {
	position: fixed;
	top: 8px;
	left: 8px;
	width: auto;
	height: auto;
	clip: auto;
	z-index: 1000;
	background: var(--skf-coral);
	color: #faf9f5;
	padding: 10px 16px;
	border-radius: var(--skf-radius-control)
}

/* body scroll lock while the mobile drawer is open */
body.skf-nav-lock {
	overflow: hidden
}

/* ---------- Header: transparent, fixed, direction-aware reveal ---------- */
.skf-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	padding: 12px 32px 0;
	background: transparent;
	transform: translateY(0);
	transition: transform .35s var(--skf-ease)
}

.skf-header.is-hidden {
	transform: translateY(calc(-100% - 90px))
}

.skf-header__row {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px
}

/* Logo block: independent, overlaps the header's bottom edge */
.skf-header__brand {
	flex-shrink: 0;
	position: relative;
	z-index: 101;
	margin-bottom: -56px
}

.skf-header__logo-link {
	display: block
}

.skf-header__logo {
	display: block;
	width: 128px;
	height: 128px;
	border-radius: 50%;
	box-shadow: 0 4px 18px rgba(20, 20, 19, .18);
	transform: scale(var(--skf-logo-scale));
	transform-origin: center;
	transition: transform .25s var(--skf-ease);
	will-change: transform
}

/* Nav pill: the ONLY element carrying the curve + glass tint */
.skf-nav {
	align-self: flex-start
}

.skf-header .skf-menu a {
	text-shadow: none
}

/* ---------- Menu: shared ---------- */
.skf-menu,
.skf-menu ul {
	list-style: none;
	margin: 0;
	padding: 0
}

.skf-menu a {
	display: block;
	color: var(--skf-ink);
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
	transition: color .2s var(--skf-ease)
}

.skf-menu a:hover {
	color: var(--skf-coral);
	text-decoration: none
}

.skf-search-menu-item {
	position: relative;
	margin-left: 4px;
}

.skf-search-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--skf-ink);
	cursor: pointer;
	transition: color .18s var(--skf-ease), background .18s var(--skf-ease), transform .18s var(--skf-ease);
}

.skf-search-toggle[aria-expanded="true"] {
	color: var(--skf-barn-red);
	background: rgba(124, 29, 19, .07);
}

/* hover-capable devices only — touch taps must not leave a sticky tint */
@media (hover:hover) {
	.skf-search-toggle:hover {
		color: var(--skf-barn-red);
		background: rgba(124, 29, 19, .07);
	}
}

.skf-search-toggle svg,
.skf-search-submit svg {
	width: 18px;
	height: 18px;
	stroke: currentColor;
	fill: none;
}

.skf-search-panel {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	min-width: 280px;
	padding: 10px;
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: blur(14px) saturate(1.4);
	backdrop-filter: blur(14px) saturate(1.4);
	border: 1px solid rgba(230, 223, 216, .85);
	border-radius: var(--skf-radius-card);
	box-shadow: var(--skf-shadow);
	opacity: 0;
	visibility: hidden;
	/* slides in right-to-left on open (shared by mobile and desktop) */
	transform: translateX(48px);
	transition: opacity .3s ease-out, transform .35s cubic-bezier(.2, .7, .3, 1), visibility .35s;
	z-index: 1200;
	pointer-events: none;
}

.skf-search-panel.is-open {
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
	pointer-events: auto;
}

.skf-search-form {
	display: flex;
	align-items: center;
	gap: 8px;
}

.skf-search-input {
	flex: 1;
	border: 1px solid rgba(230, 223, 216, .8);
	border-radius: 999px;
	padding: 10px 14px;
	background: rgba(250, 249, 245, .95);
	color: var(--skf-ink);
	font: inherit;
}

.skf-search-input:focus {
	outline: 2px solid var(--skf-focus);
	outline-offset: 2px;
}

.skf-search-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 0;
	border-radius: 999px;
	background: var(--skf-coral);
	color: #faf9f5;
	cursor: pointer;
}

.skf-search-submit:hover {
	background: var(--skf-coral-active);
}

.skf-submenu-toggle {
	display: none
}

/* ---------- Hamburger: isolated glass chip on mobile ---------- */
.skf-header__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 24px;
}

.skf-nav-toggle,
.skf-search-toggle {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	width: 48px;
	height: 48px;
	padding: 12px;
	background: rgba(255, 255, 255, .9);
	-webkit-backdrop-filter: blur(12px) saturate(1.4);
	backdrop-filter: blur(12px) saturate(1.4);
	border: 1px solid rgba(230, 223, 216, .8);
	border-radius: var(--skf-radius-control);
	box-shadow: 0 1px 0 rgba(255, 255, 255, .6) inset, var(--skf-shadow);
	cursor: pointer;
}

@supports not ((backdrop-filter:blur(12px)) or (-webkit-backdrop-filter:blur(12px))) {
	.skf-nav-toggle {
		background: rgba(250, 249, 245, .96)
	}
}

.skf-nav-toggle:focus-visible,
.skf-search-toggle:focus-visible {
	outline: 3px solid var(--skf-focus)
}

.skf-search-toggle svg {
	width: 18px;
	height: 18px;
	stroke: currentColor;
	fill: none;
}

.skf-search-toggle {
	color: var(--skf-ink);
}

/* while open: tint layered OVER the white chip, so closing returns to
   the plain white chip cleanly */
.skf-search-toggle[aria-expanded="true"] {
	color: var(--skf-barn-red);
	background: linear-gradient(rgba(124, 29, 19, .07), rgba(124, 29, 19, .07)) rgba(255, 255, 255, .9);
}

@media (hover:hover) {
	.skf-search-toggle:hover {
		color: var(--skf-barn-red);
		background: linear-gradient(rgba(124, 29, 19, .07), rgba(124, 29, 19, .07)) rgba(255, 255, 255, .9);
	}
}

.skf-search-toggle--mobile {
	display: inline-flex;
}

.skf-search-toggle--desktop {
	display: none;
	margin-left: 4px;
}

.skf-nav-toggle__bar {
	display: block;
	width: 100%;
	height: 2px;
	background: var(--skf-ink);
	border-radius: 1px;
	transition: transform .3s var(--skf-ease), opacity .2s var(--skf-ease)
}

.skf-nav-toggle[aria-expanded="true"] .skf-nav-toggle__bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg)
}

.skf-nav-toggle[aria-expanded="true"] .skf-nav-toggle__bar:nth-child(2) {
	opacity: 0
}

.skf-nav-toggle[aria-expanded="true"] .skf-nav-toggle__bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg)
}

/* ---------- Desktop (≥1101px) ---------- */
@media (min-width:1101px) {
	.skf-header__actions {
		display: none;
	}

	.skf-nav-toggle {
		display: none
	}

	.skf-search-toggle--mobile {
		display: none;
	}

	/* search icon sits inline with the menu items, styled like one of them
	   (undo the mobile glass-chip styling it shares with the hamburger) */
	.skf-search-toggle--desktop {
		display: inline-flex;
		flex-direction: row;
		width: 40px;
		height: 40px;
		padding: 0;
		background: transparent;
		border: 0;
		box-shadow: none;
		border-radius: 999px;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	.skf-search-toggle--desktop:hover,
	.skf-search-toggle--desktop[aria-expanded="true"] {
		background: rgba(124, 29, 19, .07);
	}

	/* the glass pill: 90% semi-opaque layer, tight vertical padding, full curve */
	.skf-nav {
		display: flex;
		align-items: center;
		margin-top: 36px;
		padding: 4px 10px;
		background: rgba(255, 255, 255, .9);
		-webkit-backdrop-filter: blur(12px) saturate(1.4);
		backdrop-filter: blur(12px) saturate(1.4);
		border: 1px solid rgba(230, 223, 216, .8);
		border-radius: 999px;
		box-shadow: 0 1px 0 rgba(255, 255, 255, .6) inset, var(--skf-shadow)
	}

	/* Ensure the search panel can overflow the nav's rounded pill on desktop */
	.skf-nav,
	.skf-header {
		overflow: visible;
	}

	/* panel drops directly below the nav pill: positioned against the
	   centered header row, so its right edge tracks the pill's exactly */
	.skf-header__row {
		position: relative;
	}

	.skf-search-panel {
		right: 0;
	}

	@supports not ((backdrop-filter:blur(12px)) or (-webkit-backdrop-filter:blur(12px))) {
		.skf-nav {
			background: rgba(250, 249, 245, .96)
		}
	}

	.skf-menu {
		flex-wrap: wrap
	}

	.skf-menu {
		display: flex;
		align-items: center;
		gap: 2px
	}

	.skf-menu>li {
		position: relative
	}

	.skf-menu>li>a {
		padding: 8px 13px;
		border-radius: 999px;
		position: relative;
		transition: color .18s var(--skf-ease), background .18s var(--skf-ease)
	}

	/* Barn Red hover: vibrant text shift + soft tint fill */
	.skf-menu>li>a:hover {
		color: var(--skf-barn-red);
		background: rgba(124, 29, 19, .07)
	}

	.skf-menu>li>a::after {
		content: "";
		position: absolute;
		left: 14px;
		right: 14px;
		bottom: 3px;
		height: 2px;
		background: var(--skf-barn-red);
		transform: scaleX(0);
		transform-origin: left;
		transition: transform .2s var(--skf-ease)
	}

	.skf-menu>li>a:hover::after,
	.skf-menu>li.current-menu-item>a::after {
		transform: scaleX(1)
	}

	/* caret for parents */
	.skf-menu li.menu-item-has-children>a {
		padding-right: 26px
	}

	.skf-menu li.menu-item-has-children>a::before {
		content: "";
		position: absolute;
		right: 10px;
		top: 50%;
		width: 7px;
		height: 7px;
		margin-top: -5px;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		transform: rotate(45deg);
		opacity: .55;
		transition: transform .25s var(--skf-ease)
	}

	.skf-menu li.menu-item-has-children:hover>a::before {
		transform: rotate(45deg) translate(1px, 1px);
		opacity: 1
	}

	/* dropdown panels: rapid slide-up + crisp fade */
	.skf-menu .sub-menu {
		position: absolute;
		top: 100%;
		left: 0;
		min-width: 240px;
		padding: 8px;
		background: rgba(255, 255, 255, .90);
		-webkit-backdrop-filter: blur(14px) saturate(1.4);
		backdrop-filter: blur(14px) saturate(1.4);
		border: 1px solid rgba(230, 223, 216, .7);
		border-radius: var(--skf-radius-card);
		box-shadow: var(--skf-shadow);
		opacity: 0;
		visibility: hidden;
		transform: translateY(10px);
		transition: opacity .14s ease-out, transform .16s cubic-bezier(.2, .7, .3, 1), visibility .16s
	}

	.skf-menu li:hover>.sub-menu,
	.skf-menu li:focus-within>.sub-menu {
		opacity: 1;
		visibility: visible;
		transform: translateY(0)
	}

	.skf-menu .sub-menu a {
		padding: 8px 12px;
		border-radius: var(--skf-radius-control);
		font-weight: 400;
		color: var(--skf-ink)
	}

	.skf-menu .sub-menu a:hover {
		background: rgba(124, 29, 19, .07);
		color: var(--skf-barn-red);
		padding-left: 16px;
		transition: color .15s ease-out, background .15s ease-out, padding-left .18s var(--skf-ease)
	}

	.skf-menu .sub-menu li {
		position: relative
	}

	/* third level flies out sideways */
	.skf-menu .sub-menu .sub-menu {
		top: -9px;
		left: 100%;
		margin-left: 4px;
		transform: translateX(10px)
	}

	.skf-menu .sub-menu li:hover>.sub-menu,
	.skf-menu .sub-menu li:focus-within>.sub-menu {
		transform: translateX(0)
	}

	.skf-menu .sub-menu li.menu-item-has-children>a::before {
		transform: rotate(-45deg);
		right: 12px
	}

	/* last item as CTA-ish emphasis (optional class via menu UI) */
	.skf-menu>li.skf-menu-cta>a {
		background: var(--skf-coral);
		color: #faf9f5;
		border-radius: var(--skf-radius-control)
	}

	.skf-menu>li.skf-menu-cta>a:hover {
		background: var(--skf-coral-active)
	}

	.skf-menu>li.skf-menu-cta>a::after {
		display: none
	}
}

/* ---------- Mobile (≤1100px) ---------- */
@media (max-width:1100px) {
	.skf-header__logo {
		width: 96px;
		height: 96px
	}

	/* search panel: 75% wide, anchored to the right end; slide from base rule */
	.skf-search-panel {
		left: auto;
		right: 16px;
		width: 75%;
		min-width: 0;
	}

	.skf-header__brand {
		margin-bottom: -40px
	}

	/* artifact-free drawer: opacity + transform + visibility, perfectly synced */
	.skf-nav {
		position: absolute;
		top: calc(100% + 48px);
		left: 32px;
		right: 32px;
		z-index: 100;
		max-height: min(70vh, 560px);
		overflow-y: auto;
		background: rgba(250, 249, 245, .94);
		-webkit-backdrop-filter: blur(14px);
		backdrop-filter: blur(14px);
		border: 1px solid var(--skf-hairline);
		border-radius: var(--skf-radius-card);
		box-shadow: var(--skf-shadow);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-8px);
		pointer-events: none;
		transition: opacity .3s ease, transform .3s ease, visibility .3s
	}

	.skf-nav.is-open {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		pointer-events: auto
	}

	.skf-menu {
		padding: 8px 24px 24px
	}

	.skf-menu li {
		border-bottom: 1px solid var(--skf-hairline)
	}

	.skf-menu li:last-child {
		border-bottom: 0
	}

	.skf-menu a {
		padding: 14px 4px;
		min-height: 44px;
		display: flex;
		align-items: center
	}

	.skf-menu a:hover {
		color: var(--skf-barn-red)
	}

	/* parent rows: link + separate toggle button */
	.skf-menu li.menu-item-has-children {
		position: relative
	}

	.skf-menu li.menu-item-has-children>a {
		padding-right: 56px
	}

	.skf-submenu-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		top: 5px;
		right: 0;
		width: 44px;
		height: 44px;
		background: none;
		border: 0;
		border-radius: var(--skf-radius-control);
		cursor: pointer;
		color: var(--skf-ink)
	}

	.skf-submenu-toggle::before {
		content: "";
		width: 8px;
		height: 8px;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		transform: rotate(45deg);
		transition: transform .3s var(--skf-ease)
	}

	.skf-submenu-toggle[aria-expanded="true"]::before {
		transform: rotate(225deg)
	}

	.skf-submenu-toggle:focus-visible {
		outline: 3px solid var(--skf-focus)
	}

	/* collapsible submenus */
	.skf-menu .sub-menu {
		max-height: 0;
		overflow: hidden;
		transition: max-height .3s var(--skf-ease);
		padding-left: 16px
	}

	.skf-menu .sub-menu.is-open {
		max-height: 600px
	}

	.skf-menu .sub-menu a {
		font-weight: 400;
		color: var(--skf-ink-secondary)
	}

	.skf-menu .sub-menu li {
		border-bottom: 0
	}
}

/* ==================================================
   HERO BANNER SLIDER
   Cross-fade + Ken Burns; ambient orbs + shimmer.
   Animations use transform/opacity only (GPU-composited).
   ================================================== */
/* Full-viewport first fold: no half-revealed empty band below on any screen */
.skf-hero{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;background:var(--skf-dark)}
.skf-hero__track{position:absolute;inset:0}
.skf-hero__slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.6s ease-in-out,visibility 1.6s}
.skf-hero__slide.is-active{opacity:1;visibility:visible;z-index:2}
/* Leaving slide stays fully lit UNDER the incoming one, which dissolves in
   on top — no mid-fade brightness dip, no double-ghosting */
.skf-hero__slide.is-leaving{opacity:1;visibility:visible;z-index:1;transition:none}
/* Ken Burns: slow 8% drift-zoom. Also kept on .is-leaving so the zoom
   continues seamlessly during the fade instead of snapping back to 1× */
.skf-hero__media{position:absolute;inset:-4%;background-size:cover;background-position:right center;transform:scale(1);will-change:transform}
.skf-hero__slide.is-active .skf-hero__media,
.skf-hero__slide.is-leaving .skf-hero__media{animation:skf-kenburns 12s var(--skf-ease) forwards}
@keyframes skf-kenburns{from{transform:scale(1) translateX(0)}to{transform:scale(1.08) translateX(-1.5%)}}
/* Scrim: warm-black gradient keeps cream text readable on any banner */
.skf-hero__scrim{position:absolute;inset:0;background:linear-gradient(75deg,rgba(24,23,21,.78) 0%,rgba(24,23,21,.45) 48%,rgba(24,23,21,.08) 100%)}
/* Content */
.skf-hero__content{position:relative;z-index:3;max-width:1200px;margin:0 auto;padding:150px 24px 48px;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:16px}
.skf-hero__kicker{margin:0;color:#e8a55a;font-size:13px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;opacity:0;transform:translateY(16px)}
.skf-hero__title{margin:0;max-width:15ch;color:#faf9f5;font-family:var(--skf-font-serif);font-size:clamp(38px,5.2vw,64px);font-weight:600;line-height:1.08;letter-spacing:-1.5px;text-wrap:balance;opacity:0;transform:translateY(16px)}
.skf-hero__text{margin:0;max-width:52ch;color:rgba(250,249,245,.82);font-size:17px;line-height:1.6;text-wrap:pretty;opacity:0;transform:translateY(16px)}
.skf-hero__cta{display:inline-block;position:relative;overflow:hidden;margin-top:8px;padding:12px 28px;background:var(--skf-coral);color:#faf9f5;font-size:15px;font-weight:500;border-radius:var(--skf-radius-control);transition:background .25s var(--skf-ease),box-shadow .25s var(--skf-ease),letter-spacing .25s var(--skf-ease);opacity:0;transform:translateY(16px)}
/* the entrance animation owns transform, so hover feedback is glow + sheen instead of lift */
.skf-hero__cta::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:45%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-20deg);transition:transform .55s var(--skf-ease);pointer-events:none}
.skf-hero__cta:hover{background:var(--skf-coral-active);color:#faf9f5;text-decoration:none;letter-spacing:.4px;box-shadow:0 8px 26px rgba(204,120,92,.55)}
.skf-hero__cta:hover::after{transform:skewX(-20deg) translateX(340%)}
/* Staggered content entrance on the active slide; .is-leaving keeps the
   same animation applied so the settled text doesn't snap away mid-fade */
.skf-hero__slide.is-active .skf-hero__kicker,
.skf-hero__slide.is-active .skf-hero__title,
.skf-hero__slide.is-active .skf-hero__text,
.skf-hero__slide.is-active .skf-hero__cta,
.skf-hero__slide.is-leaving .skf-hero__kicker,
.skf-hero__slide.is-leaving .skf-hero__title,
.skf-hero__slide.is-leaving .skf-hero__text,
.skf-hero__slide.is-leaving .skf-hero__cta{animation:skf-rise .9s var(--skf-ease) forwards}
.skf-hero__slide.is-active .skf-hero__kicker{animation-delay:.35s}
.skf-hero__slide.is-active .skf-hero__title{animation-delay:.5s}
.skf-hero__slide.is-active .skf-hero__text{animation-delay:.65s}
.skf-hero__slide.is-active .skf-hero__cta{animation-delay:.8s}
@keyframes skf-rise{to{opacity:1;transform:translateY(0)}}
/* ---------- Ambient layers: stars + contextual particles ---------- */
.skf-hero__particles{position:absolute;inset:0;z-index:3;pointer-events:none;mix-blend-mode:screen}
.skf-hero__particles canvas{display:block;width:100%;height:100%}
.skf-hero__particles--context{z-index:3;opacity:0;transition:opacity 1.2s var(--skf-ease)}
.skf-hero__particles--context.is-ready{opacity:1}
/* ---------- Controls ---------- */
.skf-hero__arrow{position:absolute;top:50%;z-index:4;width:48px;height:48px;margin-top:-24px;background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(250,249,245,.25);border-radius:50%;cursor:pointer;transition:background .2s var(--skf-ease)}
.skf-hero__arrow:hover{background:rgba(255,255,255,.28)}
.skf-hero__arrow:focus-visible{outline:3px solid var(--skf-focus)}
.skf-hero__arrow::before{content:"";position:absolute;top:50%;left:50%;width:10px;height:10px;border-right:2px solid #faf9f5;border-bottom:2px solid #faf9f5}
.skf-hero__arrow--prev{left:24px}
.skf-hero__arrow--prev::before{transform:translate(-30%,-50%) rotate(135deg)}
.skf-hero__arrow--next{right:24px}
.skf-hero__arrow--next::before{transform:translate(-70%,-50%) rotate(-45deg)}
.skf-hero__dots{position:absolute;bottom:28px;left:0;right:0;z-index:4;display:flex;justify-content:center;gap:10px}
.skf-hero__dot{width:10px;height:10px;padding:0;background:rgba(250,249,245,.35);border:0;border-radius:999px;cursor:pointer;transition:width .3s var(--skf-ease),background .3s var(--skf-ease)}
.skf-hero__dot.is-active{width:28px;background:var(--skf-coral)}
.skf-hero__dot:focus-visible{outline:3px solid var(--skf-focus)}
/* scroll cue: gently bobbing glass chip above the dots */
.skf-hero__scroll{position:absolute;left:50%;bottom:66px;z-index:4;width:44px;height:44px;display:grid;place-items:center;background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(250,249,245,.25);border-radius:50%;transform:translateX(-50%);animation:skf-scroll-bob 2.4s ease-in-out infinite;transition:background .25s var(--skf-ease)}
.skf-hero__scroll:hover{background:rgba(255,255,255,.28)}
.skf-hero__scroll:focus-visible{outline:3px solid var(--skf-focus)}
.skf-hero__scroll-chevron{width:10px;height:10px;margin-top:-4px;border-right:2px solid #faf9f5;border-bottom:2px solid #faf9f5;transform:rotate(45deg)}
@keyframes skf-scroll-bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}
@media (max-width:1100px){
	.skf-hero{height:auto;min-height:100vh;min-height:100svh}
	/* track must be in-flow so the relative active slide sizes the hero */
	.skf-hero__track{position:relative;inset:auto;min-height:100vh;min-height:100svh}
	.skf-hero__slide{position:absolute}
	.skf-hero__slide.is-active{position:relative}
	.skf-hero__arrow{display:none}
	.skf-hero__content{padding:170px 32px 110px;height:auto;min-height:100vh;min-height:100svh;justify-content:flex-start}
}
/* Reduced motion: no Ken Burns, no particles, instant fades */
@media (prefers-reduced-motion:reduce){
	.skf-hero__slide{transition-duration:.01s}
	.skf-hero__slide.is-active .skf-hero__media,
	.skf-hero__slide.is-leaving .skf-hero__media{animation:none}
	.skf-hero__particles{display:none}
	.skf-hero__kicker,.skf-hero__title,.skf-hero__text,.skf-hero__cta{opacity:1;transform:none}
	.skf-hero__scroll{animation:none}
}

/* verSix: hero fills 70vh on desktop instead of a full fold, pulling the
   About heading into view on load. Slide content is absolutely positioned
   in a fixed-height clipped box, so paddings/gaps/font-sizes switch to
   vh/vw-bound clamps to survive short or wide aspect ratios. */
@media (min-width:1101px) {
	.skf-hero { height: 70vh; height: 70svh; min-height: 320px; }

	.skf-hero__content {
		padding: clamp(100px, 16vh, 150px) 24px clamp(18px, 4.5vh, 40px);
		gap: clamp(8px, 1.6vh, 16px);
	}
	.skf-hero__title { font-size: clamp(24px, min(3.6vw, 5.2vh), 44px); }
	.skf-hero__kicker { font-size: clamp(11px, 1.5vh, 13px); }
	.skf-hero__text { font-size: clamp(15px, 2.1vh, 18px); }
	.skf-hero__cta {
		padding: clamp(9px, 1.5vh, 12px) clamp(18px, 3vw, 28px);
		font-size: clamp(13px, 1.4vh, 15px);
		margin-top: clamp(2px, 0.8vh, 8px);
	}
}

/* verSix: scroll-to-top — fixed bottom-right, hidden until scrolled
   (.is-visible toggled from navigation-slider.js). Coral-glass recipe. */
.scroll-to-top {
	position: fixed;
	right: 28px;
	bottom: 28px;
	z-index: 500;
	width: 50px;
	height: 50px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(204, 120, 92, .16);
	-webkit-backdrop-filter: blur(14px) saturate(1.4);
	backdrop-filter: blur(14px) saturate(1.4);
	border: 2px solid var(--skf-coral);
	border-radius: 50%;
	color: var(--skf-coral-active);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity .3s var(--skf-ease), transform .3s var(--skf-ease), visibility .3s, background .2s var(--skf-ease), color .2s var(--skf-ease);
}

.scroll-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.scroll-to-top:hover { background: var(--skf-coral); color: #faf9f5; }

.scroll-to-top:focus-visible {
	outline: 3px solid var(--skf-focus);
	outline-offset: 2px;
}

@media (max-width:640px) {
	.scroll-to-top { right: 18px; bottom: 18px; width: 44px; height: 44px; }
}

/* ---------- Front-page sections ---------- */
html {
	scroll-behavior: smooth
}

.skf-main a {
	color: var(--skf-coral)
}

.skf-main a:hover {
	color: var(--skf-coral-active)
}

.skf-section__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 24px
}

/* Kicker consistency (verSix): section-scoped paragraph rules
   (.skf-section__head p, .skf-about__copy > p — 0,1,1 specificity) were
   silently beating .skf-kicker alone (0,1,0), so kickers rendered as plain
   body text with uneven margins. !important restores the kicker style
   uniformly; per-section tints re-assert with their own !important. */
.skf-kicker {
	font: 500 12px/1.4 var(--skf-font-sans);
	font-size: 12px !important;
	line-height: 1.4 !important;
	color: var(--skf-coral) !important;
	margin: 0 0 16px !important;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--skf-coral);
	margin: 0 0 16px
}

.skf-h2 {
	font-family: var(--skf-font-serif);
	font-weight: 700;
	font-size: clamp(32px, 3.4vw, 44px);
	letter-spacing: -1px;
	line-height: 1.1;
	margin: 0 0 12px;
	text-align: left;
	color: #041E5B
}

.skf-section__head {
	max-width: 62ch;
	margin: 0 0 48px
}

.skf-section__head p {
	color: var(--skf-ink-secondary);
	font-size: 17px;
	line-height: 1.55;
	margin: 0;
	text-wrap: pretty
}

.skf-btn {
	display: inline-block;
	position: relative;
	overflow: hidden;
	background: var(--skf-coral);
	color: #faf9f5;
	font: 500 15px/1 var(--skf-font-sans);
	padding: 14px 26px;
	border-radius: var(--skf-radius-control);
	text-decoration: none;
	box-shadow: 0 2px 8px rgba(204, 120, 92, .28);
	transition: background .25s var(--skf-ease), transform .25s var(--skf-ease), box-shadow .25s var(--skf-ease)
}

/* sheen sweep */
.skf-btn::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: -60%;
	width: 45%;
	background: linear-gradient(105deg, transparent, rgba(255, 255, 255, .45), transparent);
	transform: skewX(-20deg);
	transition: transform .55s var(--skf-ease);
	pointer-events: none
}

.skf-btn:hover,
.skf-main a.skf-btn:hover {
	background: var(--skf-coral-active);
	color: #faf9f5;
	transform: translateY(-3px);
	box-shadow: 0 12px 26px -8px rgba(169, 88, 62, .55)
}

.skf-btn:hover::after {
	transform: skewX(-20deg) translateX(340%)
}

.skf-main a.skf-btn {
	color: #faf9f5
}

/* SIKSHA wordmark: outer letters take the surrounding colour, inner letters
   coral (two-tone logo look). Used in the menu and homepage sections. */
.skf-wordmark {
	text-transform: uppercase;
	letter-spacing: .03em;
	font-weight: 600
}

.skf-wordmark__mid {
	color: #a9583e
}

.skf-textlink {
	font: 500 14px/1 var(--skf-font-sans);
	text-decoration: none
}

.skf-textlink:hover {
	text-decoration: underline
}

.skf-course__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font: 500 13px/1 var(--skf-font-sans);
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--skf-ink);
	text-decoration: none;
	padding-top: 4px;
	transition: color .25s var(--skf-ease), gap .25s var(--skf-ease)
}

.skf-course__arrow {
	font-size: 17px;
	line-height: 1;
	transform: translateX(0);
	transition: transform .25s var(--skf-ease)
}

.skf-course__link:hover,
.skf-main a.skf-course__link:hover {
	color: var(--skf-coral-active);
	gap: 14px
}

.skf-course__link:hover .skf-course__arrow {
	transform: translateX(2px)
}

.skf-main a.skf-course__link {
	color: var(--skf-ink)
}

/* Scroll reveal */
[data-reveal] {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .7s var(--skf-ease), transform .7s var(--skf-ease);
	transition-delay: var(--rd, 0s)
}

[data-reveal].is-in {
	opacity: 1;
	transform: translateY(0)
}


@media (prefers-reduced-motion:reduce) {
	html {
		scroll-behavior: auto
	}

	[data-reveal] {
		opacity: 1;
		transform: none;
		transition: none
	}
}


/* ---------- Footer ---------- */
/* Coral-tinted glass finish (verSix): translucent coral wash over a blurred
   backdrop, topped with a bold 5px coral bar as the section separator.
   Low-alpha so the ink-dark text keeps contrast — light theme, not dark. */
.skf-footer{background:rgba(204,120,92,.16);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border:0;border-top:5px solid #cc785c;color:var(--skf-ink)}
.skf-footer a{color:#041E5B;text-decoration:none;transition:color .2s var(--skf-ease)}
.skf-footer a:hover{color:var(--skf-coral-active)}
.skf-footer__inner{max-width:1200px;margin:0 auto;padding:72px 24px 32px}
.skf-footer__top{display:flex;justify-content:space-between;gap:64px;padding-bottom:48px;border-bottom:1px solid var(--skf-hairline)}
.skf-footer__logo{display:block;width:100px;height:100px;border-radius:50%;margin-bottom:16px}
.skf-footer__name{font-family:var(--skf-font-serif);font-weight:500;font-size:24px;letter-spacing:-.3px;margin:0 0 4px}
.skf-footer__tag{font-size:14px;color:var(--skf-ink-secondary);margin:0}
.skf-footer__nav{display:flex;gap:80px}
.skf-footer__head{font:500 12px/1 var(--skf-font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--skf-ink-secondary);margin:0 0 18px}
.skf-footer__col ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.skf-footer__col a{font-size:15px}
.skf-footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:28px;flex-wrap:wrap}
.skf-footer__copy{font-size:13px;color:var(--skf-ink-secondary);margin:0}
.skf-footer__social{list-style:none;margin:0;padding:0;display:flex;gap:8px}
.skf-footer__social a{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--skf-hairline);border-radius:50%;color:#041E5B;transition:color .2s var(--skf-ease),border-color .2s var(--skf-ease),background .2s var(--skf-ease)}
.skf-footer__social a:hover{color:#faf9f5;border-color:var(--skf-ink);background:var(--skf-ink)}
.skf-footer__social a[aria-label="Facebook"]:hover{color:#fff;background:#1877f2;border-color:#1877f2}
.skf-footer__social a[aria-label="X"]:hover{color:#fff;background:#000;border-color:#4a4844}
.skf-footer__social a[aria-label="Instagram"]:hover{color:#fff;background:radial-gradient(circle at 30% 110%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285aeb 90%);border-color:#d6249f}
.skf-footer__social a[aria-label="YouTube"]:hover{color:#fff;background:#ff0000;border-color:#ff0000}
.skf-footer__social a[aria-label="LinkedIn"]:hover{color:#fff;background:#0a66c2;border-color:#0a66c2}
@media (max-width:820px){.skf-footer__top{flex-direction:column;gap:40px}.skf-footer__nav{gap:48px;flex-wrap:wrap}}

/* ---------- Page Header ---------- */
.page-main-header {
	text-align: center;
	margin: 40px 0 20px;
}

.page-main-header .entry-title,
main .entry-header .entry-title,
main .skf-page-hero__content .entry-title,
article h1,
article .entry-header h1 {
	color: #041E5B;
	font-family: "Fraunces", Sans-serif;
	font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.6rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: 0px;
	margin: 0;
	text-align: center;
}

.skf-page-hero {
	position: relative;
	width: 100%;
	height: 60vh;
	min-height: 320px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 32px;
}

.skf-page-hero__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.skf-page-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(8, 8, 8, 0.55) 0%, rgba(8, 8, 8, 0.25) 55%, rgba(8, 8, 8, 0.35) 100%);
}

.skf-page-hero__content {
	position: relative;
	z-index: 1;
	padding: 24px 32px;
	text-align: center;
}

.skf-page-hero__content .entry-title {
	font-family: var(--skf-font-serif);
	font-size: clamp(1.8rem, 2.2vw, 2.6rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: #fff;
	margin: 0;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

/* ---------- About Us Page ---------- */
/* Sits inside the already-padded .entry-content-body canvas — no extra
   top/side padding of its own, or the offsets stack up. */
.skf-about-page {
	max-width: 900px;
	margin: 0 auto;
	padding: 0 0 24px;
}

.skf-about-page__title {
	font-family: var(--skf-font-serif);
	font-size: clamp(2.5rem, 5vw, 4rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--skf-coral-active);
	margin: 0 0 2rem;
	text-align: center;
}

.skf-about-page__shloka {
	background-color: var(--skf-card);
	padding: 40px;
	border-radius: var(--skf-radius-card);
	margin: 0 0 48px;
	text-align: center;
	border-left: 4px solid var(--skf-coral);
	box-shadow: var(--skf-shadow);
}

.skf-about-page__shloka .skf-shloka__sa {
	font-size: 1.25rem;
	color: var(--skf-barn-red);
	margin: 0 0 16px;
	line-height: 1.6;
	font-weight: 500;
}

.skf-about-page__shloka .skf-shloka__en {
	font-size: 1.1rem;
	color: var(--skf-ink-secondary);
	margin: 0;
	line-height: 1.5;
	font-style: italic;
}

.skf-about-page__intro,
.skf-about-page__section {
	font-size: 1.125rem;
	line-height: 1.8;
	color: var(--skf-ink);
	margin: 0 0 48px;
}

.skf-about-page__intro p,
.skf-about-page__section p {
	margin: 0 0 24px;
}

.skf-about-page__heading {
	font-family: var(--skf-font-serif);
	font-size: 2.25rem;
	color: var(--skf-dark);
	margin: 0 0 24px;
	position: relative;
	padding-bottom: 12px;
}

.skf-about-page__heading::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 60px;
	height: 3px;
	background-color: var(--skf-coral);
	border-radius: 2px;
}

/* ---------- Aajivan Page ---------- */
.skf-aajivan-page {
	max-width: 1200px;
	margin: 0 auto;
	padding: 40px 20px 80px;
}


.skf-aajivan-courses {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}

.skf-aajivan-card {
	background: var(--skf-card);
	border-radius: var(--skf-radius-card);
	overflow: hidden;
	box-shadow: var(--skf-shadow);
	transition: transform 0.3s var(--skf-ease), box-shadow 0.3s var(--skf-ease);
}

.skf-aajivan-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(20, 20, 19, 0.12);
}

.skf-aajivan-card__img-link {
	display: block;
	aspect-ratio: 16/10;
	overflow: hidden;
}

.skf-aajivan-card__img-link img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s var(--skf-ease);
}

.skf-aajivan-card:hover .skf-aajivan-card__img-link img {
	transform: scale(1.05);
}

.skf-aajivan-card__content {
	padding: 24px;
}

.skf-aajivan-card__title {
	font-family: var(--skf-font-serif);
	font-size: 1.5rem;
	line-height: 1.3;
	margin: 0 0 16px;
}

.skf-aajivan-card__title a {
	color: var(--skf-dark);
}

.skf-aajivan-card__title a:hover {
	color: var(--skf-coral-active);
}

.skf-aajivan-card__content p {
	font-size: 24px;
	line-height: 1.8;
	color: var(--skf-ink-secondary);
	margin: 0;
}

@media (max-width: 960px) {
	.skf-aajivan-courses {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {
	.skf-aajivan-courses {
		grid-template-columns: 1fr;
	}
}

/* ---------- Text Color Overrides ---------- */
.page-main-header .entry-title,
.skf-about-page__title,
.skf-aajivan-card__title a,
.skf-explore__card h3 a,
.skf-course__title a {
	color: #041e5b;
}

.skf-aajivan-card__title a:hover,
.skf-explore__card h3 a:hover,
.skf-course__title a:hover {
	color: var(--skf-coral-active);
}

.skf-about-page__heading,
.skf-aajivan-heading {
	color: #041E5B;
}


/* ---------- Post & Archive Templates ---------- */
.iks-content-container {
	max-width: 1160px;
	margin: 0 auto;
	padding: 0 20px 80px;
}

.skf-single-template .entry-content,
.skf-archive-template .entry-summary {
	font-size: 1.04rem;
	line-height: 1.8;
	color: var(--skf-ink);
}

.skf-single-template .entry-content > p,
.skf-single-template .entry-content > ul,
.skf-single-template .entry-content > ol,
.skf-single-template .entry-content > blockquote,
.skf-single-template .entry-content > figure,
.skf-single-template .entry-content > h2,
.skf-single-template .entry-content > h3,
.skf-single-template .entry-content > h4 {
	margin: 0 0 1.25rem;
}

.skf-single-template .entry-content strong,
.skf-single-template .entry-content b {
	color: var(--skf-coral-active);
	font-weight: 700;
	font-size: 1.08em;
}

.skf-single-template .entry-content h2,
.skf-single-template .entry-content h3,
.skf-single-template .entry-content h4 {
	font-family: var(--skf-font-serif);
	color: var(--skf-dark);
	line-height: 1.2;
}

.skf-single-template .entry-featured-image {
	margin: 1.5rem 0 2rem;
}

.skf-single-template .entry-featured-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--skf-radius-card);
	box-shadow: var(--skf-shadow);
	margin: 0 auto;
}

.skf-single-template .entry-content iframe,
.skf-single-template .entry-content .wp-block-embed,
.skf-single-template .entry-content .wp-block-embed__wrapper,
.skf-single-template .entry-content .wp-block-image {
	display: block;
	margin: 0 auto 1.5rem;
	text-align: center;
}

.skf-single-template .entry-content .wp-block-embed iframe,
.skf-single-template .entry-content .wp-block-embed__wrapper iframe {
	max-width: 100%;
	border-radius: var(--skf-radius-card);
}

.skf-single-template .entry-content .wp-caption,
.skf-single-template .entry-content figure,
.entry-content-body .wp-caption,
.entry-content-body figure {
	margin: 0 auto 1.5rem;
	text-align: center;
	max-width: 100%;
}

/* Respect the size the editor authored (inline styles / width attributes);
   only cap to the container and keep aspect ratio. */
.skf-single-template .entry-content img,
.entry-content-body img,
.entry-content-body .wp-caption img {
	display: block;
	margin: 0 auto;
	max-width: 100%;
	height: auto;
	border-radius: var(--skf-radius-card);
	max-height: 70vh;
	object-fit: contain;
}

.skf-single-template .entry-content figure img,
.entry-content-body figure img {
	max-height: none;
	object-fit: initial;
}

/* ---------- Responsive hardening: any content, any device ----------
   Whatever an editor pastes in, the layout must not break on small
   screens: media scales, tables scroll in place, long words wrap. */
.entry-content,
.entry-content-body {
	overflow-wrap: break-word;
}
.entry-content iframe, .entry-content embed, .entry-content object, .entry-content video,
.entry-content-body iframe, .entry-content-body embed, .entry-content-body object, .entry-content-body video {
	max-width: 100%;
	border: 0;
}
/* Video iframes (YouTube/Vimeo…) pasted raw inside <p> tags carry fixed
   width/height attributes — override with a fluid 16:9 box */
.entry-content iframe[src*="youtube.com"],
.entry-content iframe[src*="youtube-nocookie.com"],
.entry-content iframe[src*="youtu.be"],
.entry-content iframe[src*="vimeo.com"],
.entry-content iframe[src*="dailymotion.com"],
.entry-content-body iframe[src*="youtube.com"],
.entry-content-body iframe[src*="youtube-nocookie.com"],
.entry-content-body iframe[src*="youtu.be"],
.entry-content-body iframe[src*="vimeo.com"],
.entry-content-body iframe[src*="dailymotion.com"] {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	margin: 1.4em auto;
	border-radius: var(--skf-radius-card);
	box-shadow: 0 10px 26px rgba(20, 20, 19, .12);
	background: var(--skf-dark);
}
/* Gutenberg embed blocks fill their wrapper */
.entry-content .wp-block-embed__wrapper iframe,
.entry-content-body .wp-block-embed__wrapper iframe {
	width: 100%;
}
/* Tables scroll inside their own box instead of stretching the page */
.entry-content table,
.entry-content-body table {
	display: block;
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	border-collapse: collapse;
	-webkit-overflow-scrolling: touch;
}
.entry-content pre,
.entry-content-body pre {
	max-width: 100%;
	overflow-x: auto;
}
.entry-content figure,
.entry-content-body figure {
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
}
/* Belt and braces: stray wide content can never force page-level
   horizontal scroll on content templates (clip ≠ hidden: creates no
   scroll container, so sticky elements keep working) */
.site-main {
	overflow-x: clip;
}

.skf-archive-template .archive-post-list {
	display: grid;
	gap: 24px;
	margin-top: 24px;
}

.skf-archive-template .archive-post-card {
	background: var(--skf-card);
	border: 1px solid var(--skf-hairline);
	border-radius: var(--skf-radius-card);
	padding: 24px;
	box-shadow: var(--skf-shadow);
}

.skf-archive-template .archive-post-card .entry-title {
	margin: 0 0 8px;
	font-family: var(--skf-font-serif);
	font-size: 1.45rem;
	line-height: 1.3;
}

.skf-archive-template .archive-post-card .entry-title a {
	color: var(--skf-dark);
}

.skf-archive-template .archive-post-card .entry-title a:hover {
	color: var(--skf-coral-active);
}

.skf-archive-template .archive-post-card .entry-meta {
	margin: 0 0 12px;
	color: var(--skf-ink-secondary);
	font-size: 0.95rem;
}

.skf-archive-template .archive-intro {
	margin: 8px 0 0;
	color: var(--skf-ink-secondary);
	font-size: 1.02rem;
}

/* ===== Menu hover: text scale lift (no underline) ===== */
@media (min-width: 1101px) {
	.skf-menu>li>a::after {
		content: none;
	}

	.skf-menu>li>a {
		transition: color .18s var(--skf-ease),
			transform .18s var(--skf-ease);
	}

	.skf-menu>li>a:hover {
		color: var(--skf-barn-red);
		background: rgba(204, 120, 92, .16);
		/* transform: scale(1.08) translateY(-1px); */
	}

	.skf-menu>li.current-menu-item>a {
		color: var(--skf-barn-red);
		font-weight: 600;
	}
}
/* ==================================================================
   BLOCK-NATIVE LAYER (v2.0)
   Tokens now originate in theme.json; alias the WP presets onto the
   legacy --skf-* names so both vocabularies work everywhere.
   ================================================================== */
:root {
	--skf-canvas: var(--wp--preset--color--canvas, #faf9f5);
	--skf-card: var(--wp--preset--color--card, #efe9de);
	--skf-dark: var(--wp--preset--color--dark, #181715);
	--skf-ink: var(--wp--preset--color--ink, #141413);
	--skf-ink-secondary: var(--wp--preset--color--ink-secondary, #5e5d59);
	--skf-hairline: var(--wp--preset--color--hairline, #e6dfd8);
	--skf-coral: var(--wp--preset--color--coral, #cc785c);
	--skf-coral-active: var(--wp--preset--color--coral-active, #a9583e);
	--skf-barn-red: var(--wp--preset--color--barn-red, #7c1d13);
}

/* ---------- Category chips ---------- */
.skf-cat-chips {
	list-style: none;
	margin: 0 0 14px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
}
.skf-post-card .skf-cat-chips { justify-content: flex-start; margin-bottom: 10px; }
.skf-cat-chip {
	display: inline-block;
	font: 600 11px/1 var(--skf-font-sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--skf-barn-red);
	background: rgba(124, 29, 19, .08);
	padding: 7px 14px;
	border-radius: 999px;
	text-decoration: none;
	transition: background .2s var(--skf-ease), color .2s var(--skf-ease);
}
.skf-cat-chip:hover {
	background: var(--skf-barn-red);
	color: #faf9f5;
	text-decoration: none;
}

/* ---------- Post meta ---------- */
.skf-post-meta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	color: var(--skf-ink-secondary);
	font-size: 14px;
	margin-top: 12px;
}

/* ---------- Single post ---------- */
.skf-article .entry-featured-image {
	margin: 36px 0;
}
.skf-article .entry-featured-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--skf-radius-hero);
	box-shadow: 0 14px 34px rgba(20, 20, 19, .12);
}

/* ---------- Entry content: block canvas ---------- */
.entry-content {
	font-size: 17px;
	line-height: 1.75;
	color: var(--skf-ink);
}

/* First element inside the content canvas never needs its own top margin —
   the canvas padding already provides the breathing room. Kills the large
   dead zone between a page banner and the first heading. */
.entry-content > :first-child,
.entry-content-body > :first-child,
.skf-about-page > :first-child {
	margin-top: 0;
}

/* wpautop leaves empty paragraphs behind pasted HTML; each one otherwise
   adds ~20px of phantom spacing. */
.entry-content p:empty,
.entry-content-body p:empty {
	display: none;
}

.custom-page-wrapper .entry-content,
.entry-content.entry-content-body {
	max-width: 1120px;
	margin: 32px auto 72px;
	padding: clamp(24px, 3vw, 40px);
	border: 1px solid var(--skf-hairline);
	border-radius: var(--skf-radius-card);
	background: linear-gradient(180deg, rgba(255,255,255,.8), rgba(239,233,222,.72));
	box-shadow: var(--skf-shadow);
}

.entry-content > p:first-of-type {
	font-size: 1.05em;
	color: var(--skf-ink-secondary);
}

.entry-content strong,
.entry-content b {
	color: #E24313;
	font-weight: 700;
}

.entry-content img,
.entry-content .wp-block-image img,
.entry-content figure img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 1.4em auto;
	border-radius: var(--skf-radius-card);
	border: 1px solid var(--skf-hairline);
	box-shadow: 0 10px 28px rgba(20, 20, 19, .08);
}

.entry-content figure {
	margin: 1.6em 0;
}

.entry-content .wp-block-group,
.entry-content .wp-block-columns {
	margin-top: 1.6em;
}

/* Width is governed by the surrounding container (.iks-content-container);
   content itself is not re-capped. */
.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6 {
	color: #041E5B;
	font-family: var(--skf-font-serif);
	font-weight: 600;
	line-height: 1.2;
	margin: 1.6em 0 .5em;
	text-align: left;
	text-wrap: balance;
}
/* Fluid sizes: scale down smoothly with the viewport */
/* h1 in content = the post/page title look (pages author their own H1) */
.entry-content h1,
.entry-content-body h1 {
	color: #041E5B;
	font-family: "Fraunces", Sans-serif;
	font-size: clamp(1.9rem, 1.4rem + 1.6vw, 2.5rem);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: 0;
	text-align: center;
	margin: 32px 0 16px;
}
.entry-content h2 { font-size: clamp(1.55rem, 1.05rem + 2.6vw, 2.2rem); text-align: left; color: #041E5B; font-weight: 700; }
.entry-content h3 { font-size: clamp(1.32rem, 1rem + 1.7vw, 1.75rem); }
.entry-content h4 { font-size: clamp(1.15rem, .98rem + .9vw, 1.4rem); }
.entry-content h5 { font-size: clamp(1.05rem, .95rem + .5vw, 1.2rem); }
.entry-content h6 { font-size: 1rem; letter-spacing: .04em; }
.entry-content p { margin: 0 0 1.15em; }
.entry-content p + p { margin-top: 0.25em; }
.entry-content p:has(strong) { margin-top: 1.2em; }
.entry-content a {
	color: var(--skf-coral);
	text-decoration: underline;
	text-decoration-color: rgba(204, 120, 92, 0.35);
	text-underline-offset: 0.18em;
}
.entry-content a:hover {
	color: var(--skf-coral-active);
	text-decoration-color: currentColor;
}

/* Buttons inside content: the generic content-link colors would paint
   .skf-btn text coral on a coral background (invisible). */
.entry-content a.skf-btn,
.entry-content-body a.skf-btn,
.entry-content a.skf-btn:hover,
.entry-content-body a.skf-btn:hover {
	color: #faf9f5;
	text-decoration: none;
}
.entry-content img,
.entry-content .wp-block-image img,
.entry-content figure img {
	max-width: 100%;
	height: auto;
	display: block;
	margin: 1.3em auto;
	border-radius: var(--skf-radius-card);
	border: 1px solid var(--skf-hairline);
	box-shadow: 0 10px 28px rgba(20, 20, 19, .08);
}
.entry-content figure {
	margin: 1.6em 0;
}
.entry-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.4em 0;
	background: rgba(255, 255, 255, 0.55);
	border: 1px solid var(--skf-hairline);
	border-radius: var(--skf-radius-card);
	overflow: hidden;
}
.entry-content th,
.entry-content td {
	padding: 12px 14px;
	border-bottom: 1px solid var(--skf-hairline);
	text-align: left;
	vertical-align: top;
}
.entry-content th {
	background: rgba(4, 30, 91, 0.06);
	color: #041E5B;
	font-family: var(--skf-font-sans);
	font-weight: 700;
}
.entry-content tr:last-child td {
	border-bottom: 0;
}
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
	text-wrap: balance;
	overflow-wrap: anywhere;
}
.entry-content > h1,
.entry-content > h2,
.entry-content > h3,
.entry-content > h4,
.entry-content > h5,
.entry-content > h6 {
	margin-top: 1.15em;
	margin-bottom: 0.5em;
}
.entry-content > p,
.entry-content > ul,
.entry-content > ol,
.entry-content > table,
.entry-content > blockquote,
.entry-content > figure {
	margin-bottom: 1.25em;
}
.entry-content p,
.entry-content li,
.entry-content td,
.entry-content th {
	overflow-wrap: anywhere;
	word-break: break-word;
}
.entry-content .alignleft,
.entry-content .alignright {
	max-width: 45%;
	margin: 0.8em 1.2em 0.8em 0;
}
.entry-content .alignright {
	margin: 0.8em 0 0.8em 1.2em;
}
/* ---------- Modern Editorial Lists ---------- */
.entry-content ul,
.skf-article ul {
	list-style: none;
	padding-left: 0;
	margin: 1.4em 0;
}

.entry-content ul > li,
.skf-article ul > li {
	position: relative;
	padding-left: 28px;
	margin-bottom: 0.65em;
	line-height: 1.65;
}

.entry-content ul > li::before,
.skf-article ul > li::before {
	content: "";
	position: absolute;
	left: 6px;
	top: 0.62em;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background-color: #E24313;
	box-shadow: 0 0 0 3px rgba(226, 67, 19, 0.18);
	transition: background-color 0.2s var(--skf-ease), box-shadow 0.2s var(--skf-ease), transform 0.2s var(--skf-ease);
}

.entry-content ul > li:hover::before,
.skf-article ul > li:hover::before {
	background-color: #041E5B;
	box-shadow: 0 0 0 4px rgba(4, 30, 91, 0.15);
	transform: scale(1.2);
}

/* Nested Unordered Lists */
.entry-content ul ul,
.skf-article ul ul {
	margin: 0.4em 0 0.4em;
}

.entry-content ul ul > li::before,
.skf-article ul ul > li::before {
	width: 5px;
	height: 5px;
	background-color: transparent;
	border: 1.5px solid #041E5B;
	box-shadow: none;
}

.entry-content ol,
.skf-article ol {
	list-style: none;
	counter-reset: skf-ol-counter;
	padding-left: 0;
	margin: 1.4em 0;
}

.entry-content ol > li,
.skf-article ol > li {
	position: relative;
	counter-increment: skf-ol-counter;
	padding-left: 36px;
	margin-bottom: 0.75em;
	line-height: 1.65;
}

.entry-content ol > li::before,
.skf-article ol > li::before {
	content: counter(skf-ol-counter);
	position: absolute;
	left: 0;
	top: 0.15em;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #041E5B;
	color: #ffffff;
	font-family: var(--skf-font-sans);
	font-size: 12px;
	font-weight: 700;
	box-shadow: 0 2px 6px rgba(4, 30, 91, 0.2);
	transition: background-color 0.2s var(--skf-ease), box-shadow 0.2s var(--skf-ease), transform 0.2s var(--skf-ease);
}

.entry-content ol > li:hover::before,
.skf-article ol > li:hover::before {
	background: #E24313;
	box-shadow: 0 2px 8px rgba(226, 67, 19, 0.3);
	transform: scale(1.08);
}

/* Nested Ordered Lists */
.entry-content ol ol,
.skf-article ol ol {
	counter-reset: skf-ol-subcounter;
	margin: 0.5em 0 0.4em;
}

.entry-content ol ol > li,
.skf-article ol ol > li {
	counter-increment: skf-ol-subcounter;
	padding-left: 32px;
}

.entry-content ol ol > li::before,
.skf-article ol ol > li::before {
	content: counter(skf-ol-subcounter, lower-alpha);
	width: 20px;
	height: 20px;
	font-size: 11px;
	background: var(--skf-card);
	color: #041E5B;
	border: 1px solid rgba(4, 30, 91, 0.2);
	box-shadow: none;
}
.entry-content blockquote {
	border-left: 4px solid var(--skf-coral);
	background: var(--skf-card);
	border-radius: var(--skf-radius-card);
	padding: 20px 26px;
	margin: 1.6em auto;
	font-family: var(--skf-font-serif);
	font-size: 1.15em;
}
.entry-content figcaption {
	text-align: center;
	color: var(--skf-ink-secondary);
	font-size: 13.5px;
	margin-top: 8px;
}

/* ---------- Post cards + grid ---------- */
.skf-post-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 26px;
	margin: 40px 0 48px;
}
.skf-post-card {
	display: flex;
	flex-direction: column;
	background: var(--skf-canvas);
	border: 1px solid var(--skf-hairline);
	border-radius: var(--skf-radius-card);
	overflow: hidden;
	position: relative;
	transition: box-shadow .25s var(--skf-ease), transform .25s var(--skf-ease), border-color .25s var(--skf-ease);
}
.skf-post-card::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 3px;
	background: var(--skf-coral);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .35s var(--skf-ease);
}
.skf-post-card:hover {
	box-shadow: 0 12px 28px rgba(20, 20, 19, .1);
	border-color: rgba(204, 120, 92, .45);
	transform: translateY(-5px);
}
.skf-post-card:hover::after { transform: scaleX(1); }
.skf-post-card__thumb { display: block; overflow: hidden; }
.skf-post-card__thumb img {
	display: block;
	width: 100%;
	height: 200px;
	object-fit: cover;
	transition: transform .6s var(--skf-ease);
}
.skf-post-card:hover .skf-post-card__thumb img { transform: scale(1.045); }
.skf-post-card__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 22px;
	flex: 1;
}
.skf-post-card__title {
	font-family: var(--skf-font-serif);
	font-weight: 600;
	font-size: 22px;
	letter-spacing: -.3px;
	line-height: 1.2;
	margin: 0;
}
.skf-post-card__title a { color: var(--skf-ink); text-decoration: none; }
.skf-post-card__title a:hover,
.skf-post-card:hover .skf-post-card__title a { color: var(--skf-coral); }
.skf-post-card__date { color: var(--skf-ink-secondary); font-size: 13px; }
.skf-post-card__excerpt { color: var(--skf-ink-secondary); font-size: 14.5px; line-height: 1.55; flex: 1; }
.skf-post-card__excerpt p { margin: 0; }

/* Post cards pasted into page content: neutralise the entry-content
   typography (image margins/borders, centered headings with big margins,
   paragraph spacing, coral underlined links) so the compact card layout
   survives inside .entry-content exactly as it renders on archives. */
.skf-post-grid > p,
.skf-post-grid > br { display: none !important; } /* wpautop artifacts */
.entry-content .skf-post-card__thumb img,
.entry-content-body .skf-post-card__thumb img {
	margin: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	height: 200px;
	width: 100%;
	object-fit: cover;
}
.entry-content .skf-post-card__title,
.entry-content-body .skf-post-card__title {
	margin: 0;
	text-align: left;
	font-size: 22px;
	line-height: 1.2;
}
.entry-content .skf-post-card__title a,
.entry-content-body .skf-post-card__title a {
	color: var(--skf-ink);
	text-decoration: none;
}
.entry-content .skf-post-card__title a:hover,
.entry-content .skf-post-card:hover .skf-post-card__title a,
.entry-content-body .skf-post-card__title a:hover,
.entry-content-body .skf-post-card:hover .skf-post-card__title a {
	color: var(--skf-coral);
}
.entry-content .skf-post-card__excerpt,
.entry-content-body .skf-post-card__excerpt {
	margin: 0;
	text-align: left;
}

/* ---------- Archive header ---------- */
.skf-archive-header { text-align: center; margin: 40px 0 8px; }
.skf-archive-header .skf-kicker { margin-bottom: 10px; }
.skf-archive-header__desc {
	max-width: 60ch;
	margin: 14px auto 0;
	color: var(--skf-ink-secondary);
}

/* ---------- Post navigation (prev/next) ---------- */
.skf-postnav { margin: 48px auto 0; max-width: 720px; }
.skf-postnav .nav-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	border-top: 1px solid var(--skf-hairline);
	padding-top: 24px;
}
.skf-postnav .nav-previous a,
.skf-postnav .nav-next a {
	display: block;
	text-decoration: none;
	padding: 16px 18px;
	border: 1px solid var(--skf-hairline);
	border-radius: var(--skf-radius-card);
	transition: border-color .2s var(--skf-ease), box-shadow .2s var(--skf-ease);
}
.skf-postnav .nav-next { text-align: right; }
.skf-postnav a:hover { border-color: rgba(204, 120, 92, .5); box-shadow: var(--skf-shadow); }
.skf-postnav__label {
	display: block;
	font: 600 11px/1 var(--skf-font-sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--skf-coral-active);
	margin-bottom: 6px;
}
.skf-postnav__title {
	font-family: var(--skf-font-serif);
	font-weight: 600;
	font-size: 18px;
	color: var(--skf-ink);
	line-height: 1.25;
}

/* ---------- Related posts ---------- */
.skf-related { margin: 64px 0 48px; }
.skf-related__title {
	font-family: var(--skf-font-serif);
	font-weight: 600;
	font-size: 30px;
	text-align: center;
	margin: 0 0 28px;
}
.skf-related__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 26px;
}

/* ---------- Pagination ---------- */
.skf-pagination { margin: 8px 0 56px; }
.skf-pagination .nav-links {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
}
.skf-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 14px;
	border: 1px solid var(--skf-hairline);
	border-radius: 999px;
	color: var(--skf-ink);
	font: 500 14px/1 var(--skf-font-sans);
	text-decoration: none;
	transition: background .2s var(--skf-ease), color .2s var(--skf-ease), border-color .2s var(--skf-ease);
}
.skf-pagination .page-numbers:hover { border-color: var(--skf-coral); color: var(--skf-coral-active); }
.skf-pagination .page-numbers.current { background: var(--skf-coral); border-color: var(--skf-coral); color: #faf9f5; }
.skf-pagination .page-numbers.dots { border: 0; }

/* ---------- Search form / empty states / 404 ---------- */
.skf-none, .skf-404 { text-align: center; max-width: 560px; margin: 72px auto 96px; }
.skf-none__title {
	font-family: var(--skf-font-serif);
	font-weight: 600;
	font-size: 30px;
	margin: 0 0 10px;
}
.skf-404__code {
	font-family: var(--skf-font-serif);
	font-weight: 600;
	font-size: clamp(90px, 16vw, 150px);
	line-height: 1;
	color: var(--skf-coral);
	opacity: .35;
	margin: 0 0 6px;
}
.skf-404 .entry-title { font-size: clamp(28px, 4vw, 40px); margin: 0 0 12px; }
.skf-404__text { color: var(--skf-ink-secondary); margin: 0 0 22px; }
.skf-none .search-form, .skf-404 .search-form {
	display: flex;
	gap: 8px;
	max-width: 420px;
	margin: 0 auto 22px;
}
.skf-none .search-form input[type="search"],
.skf-404 .search-form input[type="search"] {
	flex: 1;
	border: 1px solid var(--skf-hairline);
	border-radius: 999px;
	padding: 12px 18px;
	background: #fff;
	font: inherit;
	color: var(--skf-ink);
}
.skf-none .search-form input[type="submit"],
.skf-404 .search-form input[type="submit"] {
	border: 0;
	border-radius: 999px;
	padding: 12px 22px;
	background: var(--skf-coral);
	color: #faf9f5;
	font: 500 14px/1 var(--skf-font-sans);
	cursor: pointer;
}

/* ---------- Block styles (editor-selectable) ---------- */
.wp-block-button.is-style-skf-pill .wp-block-button__link {
	border-radius: 999px;
	background: var(--skf-coral);
	color: #faf9f5;
	padding: 14px 30px;
	transition: background .2s var(--skf-ease);
}
.wp-block-button.is-style-skf-pill .wp-block-button__link:hover { background: var(--skf-coral-active); }
.wp-block-button.is-style-skf-outline .wp-block-button__link {
	border-radius: 999px;
	background: transparent;
	border: 2px solid var(--skf-coral);
	color: var(--skf-coral-active);
	padding: 12px 28px;
	transition: background .2s var(--skf-ease), color .2s var(--skf-ease);
}
.wp-block-button.is-style-skf-outline .wp-block-button__link:hover {
	background: var(--skf-coral);
	color: #faf9f5;
}
.wp-block-quote.is-style-skf-shloka {
	border: 0;
	background: var(--skf-card);
	border-radius: var(--skf-radius-card);
	padding: 26px 30px;
	text-align: center;
}
.wp-block-quote.is-style-skf-shloka p {
	font-family: var(--skf-font-serif);
	font-size: 21px;
	line-height: 1.5;
	color: var(--skf-ink);
}
.wp-block-quote.is-style-skf-shloka cite {
	display: block;
	font-style: italic;
	color: var(--skf-ink-secondary);
	font-size: 15px;
	margin-top: 10px;
}
.wp-block-group.is-style-skf-card-warm {
	background: var(--skf-card);
	border-radius: var(--skf-radius-card);
	padding: 32px;
}
.wp-block-group.is-style-skf-card-outline {
	background: var(--skf-canvas);
	border: 1px solid var(--skf-hairline);
	border-radius: var(--skf-radius-card);
	padding: 32px;
	transition: box-shadow .25s var(--skf-ease), transform .25s var(--skf-ease);
}
.wp-block-group.is-style-skf-card-outline:hover {
	box-shadow: var(--skf-shadow);
	transform: translateY(-2px);
}
.wp-block-group.is-style-skf-band-dark {
	background: linear-gradient(135deg, rgba(124, 29, 19, .93) 0%, rgba(169, 45, 28, .88) 45%, rgba(204, 90, 60, .85) 100%);
	color: #faf9f5;
	border-radius: var(--skf-radius-hero);
	padding: 56px 40px;
}
.wp-block-group.is-style-skf-band-dark h1,
.wp-block-group.is-style-skf-band-dark h2,
.wp-block-group.is-style-skf-band-dark h3,
.wp-block-group.is-style-skf-band-dark p { color: #faf9f5; }
.wp-block-image.is-style-skf-rounded img {
	border-radius: var(--skf-radius-hero);
	box-shadow: 0 14px 34px rgba(20, 20, 19, .12);
}
.wp-block-heading.is-style-skf-kicker {
	font: 600 12px/1.4 var(--skf-font-sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--skf-coral);
}

/* ---------- Content Tables ---------- */
.entry-content table,
.wp-block-table table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	margin: 1.8em 0;
	background: #ffffff;
	border-radius: var(--skf-radius-card);
	overflow: hidden;
	box-shadow: 0 4px 16px rgba(20, 20, 19, 0.06);
	border: 1px solid var(--skf-hairline);
}

.entry-content th,
.wp-block-table th {
	background-color: #041E5B;
	color: #ffffff;
	font-family: var(--skf-font-sans);
	font-weight: 700;
	text-align: center;
	padding: 14px 18px;
	font-size: 0.95rem;
	letter-spacing: 0.02em;
}

.entry-content td,
.wp-block-table td {
	padding: 14px 18px;
	border-bottom: 1px solid var(--skf-hairline);
	color: var(--skf-ink);
	font-size: 0.95rem;
	line-height: 1.6;
}

.entry-content tr:last-child td,
.wp-block-table tr:last-child td {
	border-bottom: none;
}

.entry-content tr:nth-child(even) td,
.wp-block-table tr:nth-child(even) td {
	background-color: var(--skf-canvas);
}

/* ---------- Program Banner Header ---------- */
.skf-program-header {
	display: flex;
	align-items: center;
	gap: 20px;
	background: var(--skf-card);
	border-left: 4px solid #E24313;
	border-radius: var(--skf-radius-card);
	padding: 20px 24px;
	margin: 1.5em 0 2em;
	transition: transform 0.35s var(--skf-ease), box-shadow 0.35s var(--skf-ease), border-left-color 0.35s var(--skf-ease);
}

.skf-program-header:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(4, 30, 91, 0.12);
	border-left-color: #041E5B;
}

.skf-program-header img {
	width: 56px;
	height: 56px;
	flex-shrink: 0;
	transition: transform 0.35s var(--skf-ease);
}

.skf-program-header:hover img {
	transform: scale(1.12) rotate(-4deg);
}

.skf-program-header__details p {
	margin: 0 0 4px;
	text-align: center;
}

.skf-program-university {
	font-size: 1.1rem;
	color: #041E5B;
}

.skf-program-desc {
	font-size: 0.95rem;
	color: var(--skf-ink-secondary);
}

/* ---------- Team Grid Component ---------- */
.entry-content .skf-team-grid,
.entry-content-body .skf-team-grid,
.skf-team-grid {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 24px !important;
	margin: 2.5em 0 !important;
	align-items: stretch !important;
	width: 100% !important;
}

@media (max-width: 860px) {
	.entry-content .skf-team-grid,
	.entry-content-body .skf-team-grid,
	.skf-team-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 580px) {
	.entry-content .skf-team-grid,
	.entry-content-body .skf-team-grid,
	.skf-team-grid {
		grid-template-columns: 1fr !important;
	}
}

/* wpautop injects stray <p>/<br> between pasted divs; as grid items they
   occupy cells and push cards out of the row — remove them. */
.skf-team-grid > p,
.skf-team-grid > br {
	display: none !important;
}

.entry-content .skf-team-card,
.entry-content-body .skf-team-card,
.skf-team-card {
	position: relative !important;
	display: flex !important;
	flex-direction: column !important;
	background: #ffffff !important;
	border-radius: var(--skf-radius-card) !important;
	border: 1px solid var(--skf-hairline) !important;
	overflow: hidden !important;
	box-shadow: 0 4px 16px rgba(20, 20, 19, 0.05) !important;
	transition: transform 0.35s var(--skf-ease), box-shadow 0.35s var(--skf-ease), border-color 0.35s var(--skf-ease) !important;
	text-align: center !important;
	margin: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

/* Accent bar that sweeps across the card top on hover */
.skf-team-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, #E24313, #041E5B);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.4s var(--skf-ease);
	z-index: 2;
	pointer-events: none;
}

.skf-team-card:hover::before {
	transform: scaleX(1);
}

.skf-team-card:hover {
	transform: translateY(-10px) !important;
	box-shadow: 0 22px 44px rgba(4, 30, 91, 0.18) !important;
	border-color: rgba(226, 67, 19, 0.5) !important;
}

.entry-content .skf-team-card__image-wrap,
.skf-team-card__image-wrap {
	position: relative !important;
	overflow: hidden !important;
	height: 260px !important;
	width: 100% !important;
	background: var(--skf-card) !important;
	margin: 0 !important;
}

.entry-content .skf-team-card img,
.entry-content .skf-team-card__image-wrap img,
.skf-team-card img {
	width: 100% !important;
	max-width: 100% !important;
	height: 100% !important;
	max-height: 260px !important;
	object-fit: cover !important;
	object-position: top center !important;
	border-radius: 0 !important;
	display: block !important;
	margin: 0 !important;
	transition: transform 0.45s var(--skf-ease) !important;
}

.skf-team-card:hover img {
	transform: scale(1.08) !important;
}

/* Navy gradient wash rises over the photo on hover */
.skf-team-card__image-wrap::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(4, 30, 91, 0) 55%, rgba(4, 30, 91, 0.35) 100%);
	opacity: 0;
	transition: opacity 0.4s var(--skf-ease);
	pointer-events: none;
}

.skf-team-card:hover .skf-team-card__image-wrap::after {
	opacity: 1;
}

.skf-team-card__info {
	padding: 20px 16px 24px;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	justify-content: flex-start;
}

.skf-team-card__role {
	display: inline-block;
	font-size: 0.78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #E24313;
	margin-bottom: 6px;
	transition: color 0.25s var(--skf-ease);
}

.skf-team-card:hover .skf-team-card__role {
	color: #041E5B;
}

/* Growing underline under the role label */
.skf-team-card__role::after {
	content: "";
	display: block;
	width: 28px;
	height: 2px;
	margin: 7px auto 0;
	background: #E24313;
	border-radius: 2px;
	transition: width 0.35s var(--skf-ease), background-color 0.35s var(--skf-ease);
}

.skf-team-card:hover .skf-team-card__role::after {
	width: 60px;
	background: #041E5B;
}

.skf-team-card__name {
	font-size: 1.2rem !important;
	color: #041E5B !important;
	margin: 4px 0 8px !important;
	font-weight: 700;
	text-align: center !important;
	transition: color 0.3s var(--skf-ease);
}

.skf-team-card:hover .skf-team-card__name {
	color: #E24313 !important;
}

.skf-team-card__degree {
	font-size: 0.85rem;
	color: var(--skf-ink-secondary);
	margin: 0;
	line-height: 1.45;
}

/* ---------- Shodha overview page (page-id-40) ---------- */
/* Decorative background anchored to the bottom of the main area,
   mirroring production (background-size: contain, center bottom). */
body.page-id-40 .site-main {
	background: url("../images/bg_shodha-shodha-2.webp") center bottom / contain no-repeat;
}

/* ---------- Initiative Cards (linked concept cards on content pages) ---------- */
.entry-content .skf-initiative-grid,
.entry-content-body .skf-initiative-grid,
.skf-initiative-grid {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 24px !important;
	margin: 2em 0 !important;
	align-items: stretch !important;
	width: 100% !important;
}

@media (max-width: 700px) {
	.entry-content .skf-initiative-grid,
	.entry-content-body .skf-initiative-grid,
	.skf-initiative-grid {
		grid-template-columns: 1fr !important;
	}
}

.skf-initiative-grid > p,
.skf-initiative-grid > br {
	display: none !important;
}

.entry-content .skf-initiative-card,
.entry-content-body .skf-initiative-card,
.skf-initiative-card {
	position: relative !important;
	background: #ffffff !important;
	border: 1px solid var(--skf-hairline) !important;
	border-radius: var(--skf-radius-card) !important;
	padding: 28px !important;
	margin: 0 !important;
	overflow: hidden !important;
	box-shadow: 0 4px 16px rgba(20, 20, 19, 0.05) !important;
	box-sizing: border-box !important;
	transition: transform 0.35s var(--skf-ease), box-shadow 0.35s var(--skf-ease), border-color 0.35s var(--skf-ease) !important;
}

.skf-initiative-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, #E24313, #041E5B);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.4s var(--skf-ease);
	pointer-events: none;
}

.skf-initiative-card:hover::before {
	transform: scaleX(1);
}

.skf-initiative-card:hover {
	transform: translateY(-6px) !important;
	box-shadow: 0 16px 36px rgba(4, 30, 91, 0.14) !important;
	border-color: rgba(226, 67, 19, 0.5) !important;
}

.skf-initiative-card__icon {
	display: block;
	width: 46px;
	height: 46px;
	color: #E24313;
	margin: 0 0 14px;
	transition: color 0.3s var(--skf-ease), transform 0.3s var(--skf-ease);
}

.skf-initiative-card:hover .skf-initiative-card__icon {
	color: #041E5B;
	transform: scale(1.1) rotate(-3deg);
}

.skf-initiative-card__title {
	margin: 0 0 10px !important;
	font-size: 1.15rem !important;
}

.skf-initiative-card__title a {
	color: #041E5B !important;
	text-decoration: none !important;
	transition: color 0.3s var(--skf-ease);
}

.skf-initiative-card:hover .skf-initiative-card__title a {
	color: #E24313 !important;
}

.skf-initiative-card p {
	color: var(--skf-ink-secondary);
	font-size: 0.95rem;
	line-height: 1.55;
	margin: 0;
}

/* ---------- Split layout: media left, copy right ---------- */
.entry-content .skf-split,
.entry-content-body .skf-split,
.skf-split {
	display: grid !important;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	gap: 40px;
	align-items: start;
	margin: 1.5em 0 2em;
}

@media (max-width: 860px) {
	.entry-content .skf-split,
	.entry-content-body .skf-split,
	.skf-split {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

.skf-split > p:empty,
.skf-split > br { display: none !important; } /* wpautop artifacts */

.skf-split .skf-content-figure { margin: 0; }

/* ---------- Carousel: scroll-snap track; arrows injected by theme JS ---------- */
.skf-carousel {
	position: relative;
	margin: 1.5em 0 2em;
}

.skf-carousel__track {
	display: flex;
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 4px 2px 8px;
}

.skf-carousel__track::-webkit-scrollbar { display: none; }

.entry-content .skf-carousel__slide,
.skf-carousel__slide {
	flex: 0 0 100%;
	min-width: 0;
	scroll-snap-align: start;
	margin: 0 !important;
	box-sizing: border-box;
}

.skf-carousel__btn {
	position: absolute;
	top: 50%;
	z-index: 2;
	width: 40px;
	height: 40px;
	margin-top: -20px;
	border: 1px solid var(--skf-hairline);
	border-radius: 50%;
	background: #ffffff;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(20, 20, 19, .14);
	transition: border-color .25s var(--skf-ease), box-shadow .25s var(--skf-ease);
}

.skf-carousel__btn:hover {
	border-color: rgba(226, 67, 19, .5);
	box-shadow: 0 8px 20px rgba(4, 30, 91, .16);
}

.skf-carousel__btn:focus-visible { outline: 3px solid var(--skf-focus); }

.skf-carousel__btn[disabled] { opacity: .35; cursor: default; }

.skf-carousel__btn::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 9px;
	border-right: 2px solid #041E5B;
	border-bottom: 2px solid #041E5B;
}

.skf-carousel__btn--prev { left: -14px; }
.skf-carousel__btn--prev::before { transform: translate(-30%, -50%) rotate(135deg); }
.skf-carousel__btn--next { right: -14px; }
.skf-carousel__btn--next::before { transform: translate(-70%, -50%) rotate(-45deg); }

@media (max-width: 700px) {
	.skf-carousel__btn--prev { left: 4px; }
	.skf-carousel__btn--next { right: 4px; }
}

@media (prefers-reduced-motion: reduce) {
	.skf-carousel__track { scroll-behavior: auto; }
}

/* ---------- Prakashan hero (first fold: shloka over manuscript art) ---------- */
/* Artwork anchored left-bottom per design: manuscript strip stays visible;
   text lives in the light upper area. */
.skf-prakashan-hero {
	position: relative;
	background: #ffffff url("../images/bg_intro-4-prakashan.webp") left bottom / cover no-repeat;
	border: 1px solid var(--skf-hairline);
	border-radius: var(--skf-radius-card);
	padding: clamp(32px, 5vw, 56px) clamp(24px, 5vw, 64px) clamp(150px, 22vw, 210px);
	margin: 0 0 2.5em;
	overflow: hidden;
	text-align: center;
}

.skf-prakashan-hero h1 {
	margin-top: 0;
}

/* Shloka floats directly on the artwork — no beige card */
.entry-content .skf-prakashan-hero blockquote,
.entry-content-body .skf-prakashan-hero blockquote {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
	margin: 0 auto 18px;
	max-width: 62ch;
	font-family: var(--skf-font-serif);
	font-size: 1.3em;
	line-height: 1.7;
	color: var(--skf-ink);
}

.skf-prakashan-hero blockquote cite {
	display: block;
	margin-top: 10px;
	font-style: normal;
	font-family: var(--skf-font-sans);
	font-size: 13px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #E24313;
}

.entry-content .skf-prakashan-hero__meaning,
.entry-content-body .skf-prakashan-hero__meaning,
.skf-prakashan-hero__meaning {
	max-width: 70ch;
	margin: 0 auto;
	font-style: italic;
	color: var(--skf-ink-secondary);
}

/* ---------- Book cards (3-up shop grid with add-to-cart) ---------- */
.entry-content .skf-book-grid,
.entry-content-body .skf-book-grid,
.skf-book-grid {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 28px !important;
	margin: 2em 0 !important;
	align-items: stretch !important;
}

.skf-book-grid > p,
.skf-book-grid > br { display: none !important; }

.skf-book-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border: 1px solid var(--skf-hairline);
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 4px 16px rgba(20, 20, 19, .05);
	transition: transform .35s var(--skf-ease), box-shadow .35s var(--skf-ease), border-color .35s var(--skf-ease);
}

.skf-book-card:hover {
	transform: translateY(-8px);
	border-color: rgba(226, 67, 19, .45);
	box-shadow: 0 18px 40px -14px rgba(4, 30, 91, .22);
}

.skf-book-card__media {
	display: block;
	background: linear-gradient(160deg, #f2f0ec, #dcd9d4);
	overflow: hidden;
}

.entry-content .skf-book-card__media img,
.entry-content-body .skf-book-card__media img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	transition: transform .5s var(--skf-ease);
}

.skf-book-card:hover .skf-book-card__media img {
	transform: scale(1.04);
}

.skf-book-card__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 22px 24px 24px;
	flex: 1;
}

.entry-content .skf-book-card__title,
.entry-content-body .skf-book-card__title {
	margin: 0;
	text-align: left;
	font-size: 21px;
	line-height: 1.25;
}

.entry-content .skf-book-card__title a,
.entry-content-body .skf-book-card__title a {
	color: #041E5B;
	text-decoration: none;
	transition: color .25s var(--skf-ease);
}

.skf-book-card:hover .skf-book-card__title a,
.entry-content .skf-book-card__title a:hover,
.entry-content-body .skf-book-card__title a:hover {
	color: #E24313;
}

.entry-content .skf-book-card__body > p,
.entry-content-body .skf-book-card__body > p {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--skf-ink-secondary);
	text-align: left;
}

.skf-book-card__body > p:first-of-type { flex: 1; }

/* Quantity + cart pill, as on the shop reference */
.skf-book-card__cart {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 8px;
}

.skf-book-card__cart input[type="number"] {
	width: 64px;
	padding: 12px 6px;
	text-align: center;
	font: 500 15px/1 var(--skf-font-sans);
	color: var(--skf-ink);
	background: #ffffff;
	border: 1px solid var(--skf-hairline);
	border-radius: 8px;
}

.skf-book-card__cart input[type="number"]:focus-visible {
	outline: 3px solid var(--skf-focus);
	border-color: var(--skf-coral);
}

.skf-cart-btn {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 13px 24px;
	background: #E24313;
	color: #ffffff;
	font: 600 15px/1 var(--skf-font-sans);
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	box-shadow: 0 3px 10px rgba(226, 67, 19, .3);
	transition: background .25s var(--skf-ease), transform .25s var(--skf-ease), box-shadow .25s var(--skf-ease);
}

.skf-cart-btn svg { flex-shrink: 0; }

.skf-cart-btn:hover {
	background: #041E5B;
	transform: translateY(-2px);
	box-shadow: 0 8px 20px -6px rgba(4, 30, 91, .45);
}

.skf-cart-btn:focus-visible {
	outline: 3px solid var(--skf-focus);
}

@media (max-width: 1024px) {
	.entry-content .skf-book-grid,
	.entry-content-body .skf-book-grid,
	.skf-book-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 640px) {
	.entry-content .skf-book-grid,
	.entry-content-body .skf-book-grid,
	.skf-book-grid { grid-template-columns: 1fr !important; }
}

/* ---------- Contact page: address card + map ---------- */
.entry-content .skf-contact-grid,
.entry-content-body .skf-contact-grid,
.skf-contact-grid {
	display: grid !important;
	grid-template-columns: minmax(0, 400px) 1fr !important;
	gap: 28px !important;
	margin: 2em 0 !important;
	align-items: stretch !important;
}

.skf-contact-grid > p,
.skf-contact-grid > br { display: none !important; }

.skf-contact-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	background: #ffffff;
	border: 1px solid var(--skf-hairline);
	border-radius: 16px;
	padding: 36px 32px;
	box-shadow: 0 6px 24px rgba(20, 20, 19, .06);
	overflow: hidden;
}

/* Signature accent bar */
.skf-contact-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, #E24313, #041E5B);
}

.skf-contact-card__icon {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	background: radial-gradient(circle at 32% 28%, #ffffff 0%, var(--skf-card) 78%);
	border: 1px solid var(--skf-hairline);
	border-radius: 50%;
	color: #E24313;
}

.entry-content .skf-contact-card__label,
.entry-content-body .skf-contact-card__label,
.skf-contact-card__label {
	margin: 0;
	font: 600 12px/1.4 var(--skf-font-sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #E24313;
	text-align: left;
}

.entry-content .skf-contact-card address,
.entry-content-body .skf-contact-card address,
.skf-contact-card address {
	margin: 0;
	font-style: normal;
	font-size: 15.5px;
	line-height: 1.8;
	color: var(--skf-ink-secondary);
	text-align: left;
}

.skf-contact-card address strong {
	display: block;
	margin-bottom: 8px;
	font-family: var(--skf-font-serif);
	font-size: 22px;
	line-height: 1.25;
	color: #041E5B;
}

.skf-contact-map {
	border: 1px solid var(--skf-hairline);
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 6px 24px rgba(20, 20, 19, .06);
	min-height: 340px;
}

.skf-contact-map iframe {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 340px;
	border: 0;
}

@media (max-width: 860px) {
	.entry-content .skf-contact-grid,
	.entry-content-body .skf-contact-grid,
	.skf-contact-grid { grid-template-columns: 1fr !important; }
	.skf-contact-map,
	.skf-contact-map iframe { min-height: 300px; }
}

/* ---------- Testimonial carousel (auto-rotating quote cards) ---------- */
.skf-testi-carousel {
	max-width: 780px;
	margin: 2.5em auto;
}

/* Slides sit in a horizontal row; the whole row shifts by one card per
   step (--skf-testi-x set from JS). The track's height animates to the
   ACTIVE slide's own content height, so short quotes get short cards. */
.skf-testi-carousel__track {
	display: flex;
	align-items: flex-start;
	overflow: hidden;
	transition: height .5s var(--skf-ease);
}

/* Full reset of the generic content-blockquote look (beige card, coral
   left bar, enlarged serif) — the slide is its own refined card. */
.entry-content .skf-testi-carousel__slide,
.entry-content-body .skf-testi-carousel__slide,
.skf-testi-carousel__slide {
	position: relative;
	flex: 0 0 100%;
	min-width: 100%;
	box-sizing: border-box;
	margin: 0;
	background: #ffffff;
	border: 1px solid var(--skf-hairline);
	border-left: 1px solid var(--skf-hairline);
	border-radius: 16px;
	padding: 44px 48px 30px;
	font-family: var(--skf-font-sans);
	font-size: 1em;
	box-shadow: 0 6px 24px rgba(20, 20, 19, .06);
	overflow: hidden;
	transform: translateX(calc(var(--skf-testi-x, 0) * -100%));
	transition: transform .6s var(--skf-ease);
}

/* Signature accent bar across the card top */
.skf-testi-carousel__slide::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, #E24313, #041E5B);
}


/* Oversized serif quote mark anchors the card */
.skf-testi-carousel__mark {
	font-family: var(--skf-font-serif);
	font-size: 72px;
	line-height: .35;
	height: 30px;
	color: #E24313;
	opacity: .85;
}

.skf-testi-carousel__slide p {
	color: var(--skf-ink);
	font-size: 16.5px;
	line-height: 1.7;
	margin: 0 0 1em;
	text-wrap: pretty;
}

/* Attribution row: round avatar + name/role, separated by a hairline */
.skf-testi-carousel__who {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--skf-hairline);
}

.entry-content .skf-testi-carousel__who img,
.entry-content-body .skf-testi-carousel__who img,
.skf-testi-carousel__avatar {
	width: 56px;
	height: 56px;
	margin: 0;
	object-fit: cover;
	border-radius: 50%;
	border: 2px solid rgba(226, 67, 19, .3);
	box-shadow: none;
	flex-shrink: 0;
}

.skf-testi-carousel__who cite {
	font-style: normal;
	display: flex;
	flex-direction: column;
	gap: 3px;
	text-align: left;
}

.skf-testi-carousel__who cite strong {
	font-family: var(--skf-font-serif);
	font-size: 19px;
	line-height: 1.2;
	color: #041E5B;
}

.skf-testi-carousel__who cite span {
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--skf-ink-secondary);
}

.skf-testi-carousel__dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 20px;
}

.skf-testi-carousel__dot {
	width: 9px;
	height: 9px;
	padding: 0;
	background: rgba(4, 30, 91, .22);
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	transition: width .3s var(--skf-ease), background .3s var(--skf-ease);
}

.skf-testi-carousel__dot.is-active {
	width: 26px;
	background: #E24313;
}

.skf-testi-carousel__dot:focus-visible {
	outline: 3px solid var(--skf-focus);
}

@media (max-width: 640px) {
	.entry-content .skf-testi-carousel__slide,
	.entry-content-body .skf-testi-carousel__slide,
	.skf-testi-carousel__slide {
		padding: 32px 24px 24px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.skf-testi-carousel__track,
	.skf-testi-carousel__slide { transition: none; }
}

/* ---------- FAQ accordion (native details/summary) ---------- */
.entry-content .skf-faq,
.skf-faq {
	background: #ffffff;
	border: 1px solid var(--skf-hairline);
	border-radius: var(--skf-radius-card);
	margin: 0 0 12px;
	overflow: hidden;
	transition: border-color .3s var(--skf-ease), box-shadow .3s var(--skf-ease);
}

.skf-faq[open] {
	border-color: rgba(226, 67, 19, .35);
	box-shadow: 0 8px 20px rgba(4, 30, 91, .08);
}

.skf-faq summary {
	list-style: none;
	cursor: pointer;
	position: relative;
	padding: 16px 44px 16px 20px;
	font-family: var(--skf-font-sans);
	font-weight: 600;
	color: #041E5B;
	transition: color .25s var(--skf-ease);
}

.skf-faq summary::-webkit-details-marker { display: none; }

.skf-faq summary:hover { color: #E24313; }

.skf-faq summary::after {
	content: "";
	position: absolute;
	right: 20px;
	top: 50%;
	width: 9px;
	height: 9px;
	margin-top: -7px;
	border-right: 2px solid #E24313;
	border-bottom: 2px solid #E24313;
	transform: rotate(45deg);
	transition: transform .3s var(--skf-ease);
}

.skf-faq[open] summary::after {
	transform: rotate(225deg);
	margin-top: -2px;
}

.skf-faq__answer {
	padding: 0 20px 18px;
	color: var(--skf-ink-secondary);
}

.skf-faq__answer p { margin: 0 0 .8em; }
.skf-faq__answer p:last-child { margin-bottom: 0; }

/* ---------- Content Figure + CSS Lightbox ---------- */
.entry-content .skf-content-figure,
.skf-content-figure {
	margin: 2em 0;
	text-align: center;
}

.skf-content-figure > a {
	display: block;
	overflow: hidden;
	border-radius: var(--skf-radius-card);
	border: 1px solid var(--skf-hairline);
	box-shadow: 0 4px 16px rgba(20, 20, 19, 0.06);
	cursor: zoom-in;
}

.skf-content-figure img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	transition: transform 0.45s var(--skf-ease);
}

.skf-content-figure > a:hover img {
	transform: scale(1.03);
}

.skf-content-figure figcaption {
	font-size: 0.9rem;
	color: var(--skf-ink-secondary);
	margin-top: 10px;
}

/* CSS-only lightbox: opens via :target, no JS required */
.skf-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 32px;
	background: rgba(4, 30, 91, 0.88);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s var(--skf-ease), visibility 0.3s;
}

.skf-lightbox:target {
	opacity: 1;
	visibility: visible;
}

.skf-lightbox img {
	position: relative;
	z-index: 2;
	max-width: min(1100px, 92vw);
	max-height: 86vh;
	width: auto;
	height: auto;
	border-radius: 10px;
	box-shadow: 0 24px 64px rgba(0, 0, 0, 0.4);
	transform: scale(0.96);
	transition: transform 0.3s var(--skf-ease);
}

.skf-lightbox:target img {
	transform: scale(1);
}

/* Full-backdrop close link with an × in the corner */
.skf-lightbox__close {
	position: absolute;
	inset: 0;
	z-index: 1;
	cursor: zoom-out;
}

.skf-lightbox__close::after {
	content: "\00d7";
	position: absolute;
	top: 16px;
	right: 26px;
	font-size: 42px;
	line-height: 1;
	color: #ffffff;
	opacity: 0.85;
}

@media (prefers-reduced-motion: reduce) {
	.skf-program-header,
	.skf-program-header img,
	.skf-team-card,
	.skf-team-card::before,
	.skf-team-card img,
	.skf-team-card__image-wrap::after,
	.skf-team-card__role::after,
	.skf-team-card__name,
	.skf-initiative-card,
	.skf-initiative-card::before,
	.skf-initiative-card__title a,
	.skf-initiative-card__icon,
	.skf-content-figure img,
	.skf-lightbox,
	.skf-lightbox img {
		transition: none !important;
	}
	.skf-team-card:hover,
	.skf-program-header:hover,
	.skf-initiative-card:hover {
		transform: none !important;
	}
}

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
	.skf-post-grid, .skf-related__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
	.skf-post-grid, .skf-related__grid { grid-template-columns: 1fr; }
	.skf-postnav .nav-links { grid-template-columns: 1fr; }
	.skf-postnav .nav-next { text-align: left; }
}
