/* =========================================================================
   KRV · design system for kadiriraghuvamsi.com
   Idea: "change, by many hands". Things arrive muted and come alive when you
   engage with them (Marpu means change). Everything is a normal block, so the
   effects survive edits in the Site Editor.
   ========================================================================= */

:root {
	--krv-paper: var(--wp--preset--color--paper, #EEF3F2);
	--krv-mist: var(--wp--preset--color--mist, #DFEAE7);
	--krv-white: #fff;
	--krv-ink: var(--wp--preset--color--ink, #0F2629);
	--krv-ink-soft: var(--wp--preset--color--ink-soft, #3B5357);
	--krv-deep: var(--wp--preset--color--deep, #0E3B43);
	--krv-deeper: var(--wp--preset--color--deeper, #092A30);
	--krv-pista: var(--wp--preset--color--pistachio, #C8E9A0);
	--krv-rose: var(--wp--preset--color--rose, #F2B5C4);
	--krv-line: rgba(15, 38, 41, 0.16);
	--krv-line-on-deep: rgba(238, 243, 242, 0.18);
	--krv-display: var(--wp--preset--font-family--display, Georgia, serif);
	--krv-text: var(--wp--preset--font-family--text, system-ui, sans-serif);
	--krv-ease: cubic-bezier(0.19, 1, 0.22, 1);
	--krv-ease-io: cubic-bezier(0.77, 0, 0.175, 1);
	--krv-ease-soft: cubic-bezier(0.23, 1, 0.32, 1);
	--krv-gutter: clamp(1.25rem, 4.5vw, 3.5rem);
	--krv-header-h: 76px;
	--krv-radius-sheet: clamp(22px, 3vw, 40px);
	--krv-section-y: clamp(4.5rem, 3rem + 7vw, 10rem);
}

/* ---------- base ---------- */

html { scroll-padding-top: calc(var(--krv-header-h) + 1rem); -webkit-text-size-adjust: 100%; }
body {
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-optical-sizing: auto;
	font-kerning: normal;
	overflow-x: clip;
	background-color: var(--krv-paper);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .06 0 0 0 0 .15 0 0 0 0 .16 .2 0 0 0 -.07'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 180px 180px;
}
::selection { background: var(--krv-pista); color: var(--krv-ink); }
:where(a, button, summary, [tabindex]):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
	border-radius: 4px;
}
img { height: auto; }
.wp-site-blocks { overflow-x: clip; }

h1, h2, h3, .wp-block-heading { text-wrap: balance; font-variation-settings: normal; }
p, li { text-wrap: pretty; }
strong, b { font-weight: 650; }

/* Links: an underline that draws in, in the colour of the text. */
:where(.wp-block-post-content, .entry-content, .krv-prose) :where(p, li, td, figcaption) a:not(.wp-element-button) {
	color: inherit;
	text-decoration: none;
	background: linear-gradient(currentColor 0 0) 0 100% / 100% 1px no-repeat;
	transition: background-size 450ms var(--krv-ease-soft), color 200ms;
	padding-bottom: 1px;
}
:where(.wp-block-post-content, .entry-content, .krv-prose) :where(p, li, td, figcaption) a:not(.wp-element-button):hover {
	background-size: 0 1px;
	background-position: 100% 100%;
}

/* ---------- section rhythm ---------- */

.krv-section { padding-top: var(--krv-section-y); padding-bottom: var(--krv-section-y); position: relative; }
.krv-section--tight { padding-top: calc(var(--krv-section-y) * 0.55); padding-bottom: calc(var(--krv-section-y) * 0.55); }
.krv-section + .krv-section:not(.has-background):not(.is-style-krv-sheet) { padding-top: calc(var(--krv-section-y) * 0.5); }
.wp-block-post-content > .krv-section:first-child,
.wp-block-post-content > .alignfull:first-child { margin-block-start: 0; }
.wp-block-post-content > * + .alignfull { margin-block-start: 0; }
.wp-block-post-content { margin-block-start: 0; }

.has-deep-background-color, .has-deeper-background-color, .has-ink-background-color { color: var(--krv-paper); }
:where(.has-deep-background-color, .has-deeper-background-color, .has-ink-background-color) :where(h1, h2, h3, h4) { color: var(--krv-white); }
.has-deep-background-color .krv-eyebrow, .has-deeper-background-color .krv-eyebrow, .has-ink-background-color .krv-eyebrow,
.has-deep-background-color .is-style-krv-quiet, .has-deeper-background-color .is-style-krv-quiet { color: var(--krv-pista) !important; }
:where(.has-deep-background-color, .has-deeper-background-color, .has-ink-background-color) .wp-element-button:not(.is-style-krv-link *):not(.is-style-krv-ghost *) { background: var(--krv-pista); color: var(--krv-ink); }
:where(.has-deep-background-color, .has-deeper-background-color, .has-ink-background-color) .wp-element-button:not(.is-style-krv-link *):not(.is-style-krv-ghost *):hover { background: var(--krv-white); color: var(--krv-ink); }
:where(.has-deep-background-color, .has-deeper-background-color) { --krv-line: var(--krv-line-on-deep); }

/* Sheet: a section that slides over the one before it, like a page being laid on a desk. */
.is-style-krv-sheet {
	border-top-left-radius: var(--krv-radius-sheet);
	border-top-right-radius: var(--krv-radius-sheet);
	position: relative;
	z-index: 2;
	margin-top: calc(var(--krv-radius-sheet) * -1) !important;
	box-shadow: 0 -24px 60px -40px rgba(9, 42, 48, 0.55);
}

/* ---------- type utilities ---------- */

.krv-eyebrow, .is-style-krv-quiet {
	font-family: var(--krv-text) !important;
	font-size: var(--wp--preset--font-size--xs) !important;
	font-weight: 600 !important;
	letter-spacing: 0.02em !important;
	font-stretch: 112%;
	line-height: 1.3 !important;
	color: var(--krv-ink-soft);
	margin-bottom: 0.9rem;
	text-transform: none;
}
.krv-eyebrow::before {
	content: "";
	display: inline-block;
	width: 0.55em;
	height: 0.55em;
	border-radius: 50%;
	background: currentColor;
	margin-right: 0.6em;
	vertical-align: 0.08em;
	opacity: 0.85;
}
.krv-lede { font-size: var(--wp--preset--font-size--l); line-height: 1.45; max-width: 40ch; color: inherit; }
.krv-muted { color: var(--krv-ink-soft); }
:where(.has-deep-background-color, .has-deeper-background-color) .krv-muted { color: rgba(238, 243, 242, 0.74); }
.krv-kicker { font-family: var(--krv-display); font-size: var(--wp--preset--font-size--xl); line-height: 1.2; font-weight: 500; }
.krv-mega { font-size: var(--wp--preset--font-size--mega) !important; line-height: 0.9 !important; letter-spacing: -0.035em !important; font-weight: 600 !important; }
.krv-display { font-size: var(--wp--preset--font-size--display) !important; }
.krv-num { font-family: var(--krv-display); font-variant-numeric: lining-nums tabular-nums; }

.is-style-krv-statement {
	font-family: var(--krv-display);
	font-size: clamp(1.75rem, 1.05rem + 3vw, 4rem);
	line-height: 1.12;
	letter-spacing: -0.02em;
	font-weight: 480;
	max-width: 24ch;
	text-wrap: balance;
}
.is-style-krv-statement em {
	font-style: normal;
	color: var(--krv-deep);
	text-decoration-line: underline;
	text-decoration-color: var(--krv-pista);
	text-decoration-thickness: 0.34em;
	text-underline-offset: -0.26em;
	text-decoration-skip-ink: none;
	transition: text-decoration-color 900ms var(--krv-ease) 450ms;
}
.js .krv-reveal:not(.is-in) .is-style-krv-statement em { text-decoration-color: rgba(200, 233, 160, 0); }
:where(.has-deep-background-color, .has-deeper-background-color) .is-style-krv-statement em { color: var(--krv-pista); text-decoration-line: none; }
.is-style-krv-note { font-size: var(--wp--preset--font-size--xs); color: var(--krv-ink-soft); border-left: 1px solid var(--krv-line); padding-left: 0.9rem; max-width: 34ch; }

/* ---------- buttons ---------- */

.wp-element-button, .wp-block-button__link {
	transition: background-color 240ms var(--krv-ease-soft), color 240ms, transform 240ms var(--krv-ease-soft), box-shadow 240ms;
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55em;
}
.wp-block-button__link:hover { transform: translateY(-2px); }
.wp-block-button__link:active { transform: translateY(0); }
.is-style-krv-ghost .wp-block-button__link { background: transparent !important; color: inherit !important; box-shadow: inset 0 0 0 1.5px currentColor; }
.is-style-krv-ghost .wp-block-button__link:hover { background: var(--krv-ink) !important; color: var(--krv-paper) !important; box-shadow: inset 0 0 0 1.5px var(--krv-ink); }
:where(.has-deep-background-color, .has-deeper-background-color) .is-style-krv-ghost .wp-block-button__link:hover { background: var(--krv-paper) !important; color: var(--krv-ink) !important; }
.is-style-krv-bright .wp-block-button__link { background: var(--krv-pista) !important; color: var(--krv-ink) !important; }
.is-style-krv-bright .wp-block-button__link:hover { background: var(--krv-white) !important; }
.is-style-krv-link .wp-block-button__link {
	background: none !important;
	color: inherit !important;
	padding: 0.35em 0 !important;
	min-height: 0;
	border-radius: 0;
	font-weight: 600;
	background-image: linear-gradient(currentColor 0 0) !important;
	background-size: 100% 1.5px !important;
	background-position: 0 100% !important;
	background-repeat: no-repeat !important;
	transition: background-size 450ms var(--krv-ease-soft);
}
.is-style-krv-link .wp-block-button__link:hover { transform: none; background-size: 30% 1.5px !important; }
.is-style-krv-magnetic .wp-block-button__link { will-change: transform; }

/* ---------- header ---------- */

.krv-header {
	position: sticky;
	top: 0;
	z-index: 50;
	transition: transform 420ms var(--krv-ease), background-color 300ms, box-shadow 300ms, color 300ms;
	view-transition-name: krv-header;
}
.admin-bar .krv-header { top: var(--wp-admin--admin-bar--height, 32px); }
.krv-header__bar {
	min-height: var(--krv-header-h);
	gap: 1.5rem;
	padding-top: 0.6rem !important;
	padding-bottom: 0.6rem !important;
}
.krv-header.is-scrolled { background: rgba(238, 243, 242, 0.96); box-shadow: 0 1px 0 var(--krv-line); }
.krv-header.is-hidden { transform: translateY(-100%); }
.krv-wordmark { line-height: 1 !important; margin: 0 !important; white-space: nowrap; font-size: 1rem !important; }
.krv-wordmark a { text-decoration: none; color: inherit; display: inline-flex; align-items: center; gap: 0.62rem; }
.krv-wordmark .krv-wm { display: inline-grid; gap: 0.22rem; }
.krv-wordmark .krv-wm__name { font-family: var(--krv-display); font-weight: 580; font-size: 1.26rem; letter-spacing: -0.022em; line-height: 1; }
.krv-wordmark .krv-wm__family { font-family: var(--krv-text); font-weight: 650; font-size: 0.6rem; font-stretch: 125%; letter-spacing: 0.36em; text-transform: uppercase; line-height: 1; opacity: 0.74; transition: letter-spacing 700ms var(--krv-ease), opacity 300ms; }
.krv-wordmark a:hover .krv-wm__family { opacity: 1; }
.krv-wordmark .krv-mono {
	display: inline-grid;
	place-items: center;
	width: 2.15rem;
	height: 2.15rem;
	border-radius: 50%;
	background: var(--krv-deep);
	color: var(--krv-pista);
	font-size: 0.78rem;
	letter-spacing: 0.02em;
	font-family: var(--krv-text);
	font-weight: 700;
	font-stretch: 115%;
	transition: transform 600ms var(--krv-ease), background-color 300ms;
}
.krv-wordmark a:hover .krv-mono { transform: rotate(-12deg) scale(1.06); background: var(--krv-ink); }

/* Home: header sits on the hero in light type until you scroll. */
.krv-home .krv-header:not(.is-scrolled) { color: var(--krv-white); }
.krv-home .krv-header:not(.is-scrolled) .krv-mono { background: var(--krv-pista); color: var(--krv-ink); }
.krv-home .wp-site-blocks > header.wp-block-template-part { position: absolute; inset: 0 0 auto 0; z-index: 50; }
.krv-home .wp-site-blocks > header.wp-block-template-part .krv-header { position: fixed; left: 0; right: 0; }

.krv-nav .wp-block-navigation__container { gap: clamp(1rem, 1.6vw, 1.9rem); }
.krv-nav .wp-block-navigation-item__content { padding: 0.5rem 0; position: relative; text-decoration: none; }
.krv-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.15rem;
	height: 1.5px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 450ms var(--krv-ease);
}
.krv-nav .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.krv-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); transform-origin: left; }

/* Dropdowns become soft panels. */
.krv-nav .wp-block-navigation__submenu-container {
	border: 0 !important;
	border-radius: 18px;
	padding: 0.65rem !important;
	min-width: 17rem !important;
	background: var(--krv-white) !important;
	color: var(--krv-ink) !important;
	box-shadow: 0 24px 60px -24px rgba(9, 42, 48, 0.38), 0 0 0 1px var(--krv-line);
	margin-top: 0.35rem;
	transform: translateY(8px);
	transition: opacity 260ms var(--krv-ease), transform 360ms var(--krv-ease), visibility 0s linear 260ms !important;
}
.krv-nav .has-child:hover > .wp-block-navigation__submenu-container,
.krv-nav .has-child:focus-within > .wp-block-navigation__submenu-container { transform: translateY(0); transition-delay: 0s !important; }
.krv-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.62rem 0.85rem !important; border-radius: 12px; font-weight: 520; width: 100%; }
.krv-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after { display: none; }
.krv-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--krv-mist); }
.krv-nav .wp-block-navigation__submenu-icon { margin-left: 0.3rem; }

.krv-header .krv-cta .wp-block-button__link { padding: 0.8em 1.25em; min-height: 44px; }
.krv-home .krv-header:not(.is-scrolled) .krv-cta .wp-block-button__link { background: var(--krv-pista); color: var(--krv-ink); }

/* Mobile menu: full screen, big type, staggered entry. */
.krv-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--krv-deep) !important;
	color: var(--krv-paper) !important;
	padding: calc(var(--krv-header-h) + 1rem) var(--krv-gutter) 2rem !important;
	animation: krv-menu-in 520ms var(--krv-ease) both;
}
.krv-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start !important; gap: 0.35rem; }
.krv-nav .is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: flex-start !important; gap: 0.15rem !important; width: 100%; }
.krv-nav .is-menu-open .wp-block-navigation-item { width: 100%; animation: krv-rise-in 640ms var(--krv-ease) both; }
.krv-nav .is-menu-open .wp-block-navigation-item:nth-child(2) { animation-delay: 40ms; }
.krv-nav .is-menu-open .wp-block-navigation-item:nth-child(3) { animation-delay: 80ms; }
.krv-nav .is-menu-open .wp-block-navigation-item:nth-child(4) { animation-delay: 120ms; }
.krv-nav .is-menu-open .wp-block-navigation-item:nth-child(5) { animation-delay: 160ms; }
.krv-nav .is-menu-open .wp-block-navigation-item:nth-child(6) { animation-delay: 200ms; }
.krv-nav .is-menu-open .wp-block-navigation-item:nth-child(7) { animation-delay: 240ms; }
.krv-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	font-family: var(--krv-display);
	font-size: clamp(1.9rem, 7vw, 2.6rem);
	font-weight: 520;
	letter-spacing: -0.02em;
	padding: 0.4rem 0 !important;
	line-height: 1.1;
}
.krv-nav .is-menu-open .wp-block-navigation__submenu-container {
	background: transparent !important;
	color: inherit !important;
	box-shadow: none;
	padding: 0 0 0.6rem 0.1rem !important;
	transform: none;
	min-width: 0 !important;
}
.krv-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.05rem; padding: 0.4rem 0 !important; opacity: 0.86; }
.krv-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: none; opacity: 1; }
.krv-nav .wp-block-navigation__responsive-container-open, .krv-nav .wp-block-navigation__responsive-container-close {
	width: 46px; height: 46px; border-radius: 50%; place-items: center;
	background: currentColor;
}
@media (max-width: 599px) { .krv-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: grid; } }
/* tablets and small laptops: the full menu does not fit beside the name, so it folds into the menu button */
@media (min-width: 600px) and (max-width: 1099px) {
	.krv-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: grid; }
	.krv-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.krv-header__right .krv-search-btn { order: -1; }
	.krv-header__right .krv-nav { order: 3; }
	.krv-nav .is-menu-open .wp-block-navigation__submenu-container { width: 100% !important; }
	.krv-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { white-space: normal; }
}
.krv-nav .wp-block-navigation__responsive-container-close { display: grid; }
.krv-nav .wp-block-navigation__responsive-container-open svg, .krv-nav .wp-block-navigation__responsive-container-close svg { color: var(--krv-paper); }
.krv-home .krv-header:not(.is-scrolled) .wp-block-navigation__responsive-container-open svg { color: var(--krv-ink); }
.krv-nav .wp-block-navigation__responsive-container-close { position: fixed; top: 16px; right: var(--krv-gutter); background: var(--krv-pista); }
.krv-nav .wp-block-navigation__responsive-container-close svg { color: var(--krv-ink); }

@keyframes krv-menu-in { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes krv-rise-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

@media (max-width: 781px) {
	:root { --krv-header-h: 64px; }
	.krv-header .krv-cta { display: none; }
	.krv-wordmark .krv-wm__name { font-size: 1.12rem; }
	.krv-wordmark .krv-wm__family { font-size: 0.56rem; }
	.krv-wordmark .krv-mono { width: 1.95rem; height: 1.95rem; }
}

/* ---------- home hero ---------- */

.krv-hero.wp-block-cover {
	min-height: 100svh !important;
	padding-top: calc(var(--krv-header-h) + 2rem) !important;
	padding-bottom: clamp(1.5rem, 4vw, 3rem) !important;
	align-items: flex-end;
	overflow: hidden;
	position: sticky;
	top: 0;
	z-index: 0;
}
.krv-hero .wp-block-cover__image-background {
	animation: krv-bloom 2400ms 250ms var(--krv-ease-soft) both;
	transform-origin: 60% 40%;
}
.krv-hero .wp-block-cover__background { transition: opacity 1.6s; }
.krv-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(9, 42, 48, 0.45) 0%, rgba(9, 42, 48, 0) 28%, rgba(9, 42, 48, 0) 46%, rgba(9, 42, 48, 0.82) 100%);
	pointer-events: none;
	z-index: 1;
}
.krv-hero .wp-block-cover__inner-container { position: relative; z-index: 2; width: 100%; }
.krv-hero__name { margin: 0 !important; }
.krv-hero__name .krv-w > span { animation-duration: 1100ms; }
.krv-hero__line { font-size: var(--wp--preset--font-size--l) !important; max-width: 34ch; line-height: 1.42 !important; color: rgba(255, 255, 255, 0.92); }
.krv-hero__meta { font-size: var(--wp--preset--font-size--xs) !important; letter-spacing: 0.02em; color: rgba(255, 255, 255, 0.8); }
.krv-hero__foot { border-top: 1px solid rgba(255, 255, 255, 0.22); padding-top: 1.1rem; margin-top: clamp(1.75rem, 4vw, 3rem) !important; align-items: center; }
.krv-scrollcue { display: inline-flex; align-items: center; gap: 0.7rem; font-size: var(--wp--preset--font-size--xs); color: rgba(255, 255, 255, 0.86); text-decoration: none; }
.krv-scrollcue::after {
	content: "";
	width: 1px;
	height: 38px;
	background: linear-gradient(currentColor 0 0) 0 0 / 1px 40% no-repeat, rgba(255, 255, 255, 0.25);
	animation: krv-cue 2.2s var(--krv-ease-io) infinite;
}
@keyframes krv-cue { 0% { background-position: 0 -40%; } 100% { background-position: 0 140%; } }
@keyframes krv-bloom {
	0% { transform: scale(1.06); }
	100% { transform: scale(1); }
}

/* Inner page hero */
.krv-page-hero { padding-top: calc(var(--krv-header-h) + clamp(2.5rem, 7vw, 6.5rem)) !important; padding-bottom: clamp(3rem, 6vw, 6rem) !important; position: relative; }
.krv-page-hero h1 { max-width: 16ch; }
.krv-page-hero .krv-lede { margin-top: 1.4rem; }
.krv-page-hero .krv-breadcrumbs { margin-bottom: clamp(1.25rem, 3vw, 2.25rem); }
.krv-page-hero__media img { border-radius: 2px; }

/* ---------- media treatments ---------- */

/* Zoom: photos stay in full colour and ease forward on hover (transform only, so it stays smooth). */
.is-style-krv-bloom, .krv-bloom, .krv-posts .wp-block-post-featured-image { position: relative; overflow: hidden; }
.is-style-krv-bloom img, .is-style-krv-bloom .wp-block-cover__image-background, .krv-bloom img,
.krv-posts .wp-block-post-featured-image img, .krv-related__img { transition: transform 1100ms var(--krv-ease); }
@media (hover: hover) {
	.is-style-krv-bloom:hover img, .is-style-krv-bloom:hover .wp-block-cover__image-background, .krv-bloom:hover img,
	.krv-posts .wp-block-post:hover .wp-block-post-featured-image img, .krv-related__card:hover .krv-related__img,
	a:hover .is-style-krv-bloom img { transform: scale(1.04); }
}

/* Arch: a portrait frame with an arched top (the architect's mark). */
.is-style-krv-arch img { border-radius: 999px 999px 6px 6px; aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }

figure.wp-block-image figcaption, .wp-element-caption {
	font-size: var(--wp--preset--font-size--xs) !important;
	color: var(--krv-ink-soft);
	margin-top: 0.7rem;
	display: flex;
	gap: 0.6rem;
	align-items: baseline;
}
figure.wp-block-image figcaption::before, figure.wp-block-video figcaption::before { content: ""; width: 1.4rem; height: 1px; background: currentColor; flex: none; transform: translateY(-0.25em); opacity: 0.6; }
figure.wp-block-image figcaption, figure.wp-block-video figcaption { text-align: left; }

/* ---------- reveal motion (finished state is the default) ---------- */

@media (prefers-reduced-motion: no-preference) {
	.js .is-style-krv-reveal:not(.is-in), .js .krv-reveal:not(.is-in) { opacity: 0; transform: translateY(28px); }
	.js .is-style-krv-reveal, .js .krv-reveal { transition: opacity 900ms var(--krv-ease), transform 1100ms var(--krv-ease); }
	.js .is-style-krv-lift:not(.is-in) img { clip-path: inset(12% 8% 0 8% round 6px); transform: scale(1.08); }
	.js .is-style-krv-lift img { transition: clip-path 1300ms var(--krv-ease), transform 1500ms var(--krv-ease), filter 900ms; }

	.js .is-style-krv-rise .krv-w { display: inline-block; overflow: clip; vertical-align: bottom; padding-bottom: 0.08em; margin-bottom: -0.08em; }
	.js .is-style-krv-rise .krv-w > span { display: inline-block; transform: translateY(105%); transition: transform 1000ms var(--krv-ease); transition-delay: calc(var(--i, 0) * 55ms); }
	.js .is-style-krv-rise.is-in .krv-w > span { transform: none; }
	.js .krv-hero .is-style-krv-rise .krv-w > span { transition-delay: calc(300ms + var(--i, 0) * 70ms); }

	.js .krv-stagger > *:not(.is-in) { opacity: 0; transform: translateY(22px); }
	.js .krv-stagger > * { transition: opacity 800ms var(--krv-ease), transform 1000ms var(--krv-ease); }
}

/* ---------- marquee band (moves with your scroll, never on its own) ---------- */

.krv-marquee { overflow: clip; padding-block: clamp(1.1rem, 2.2vw, 1.8rem) !important; border-block: 1px solid var(--krv-line); }
.krv-marquee__track { display: flex !important; flex-wrap: nowrap !important; gap: 0 !important; width: max-content; }
.krv-marquee__track > p {
	font-family: var(--krv-display);
	font-size: clamp(1.6rem, 1rem + 2.6vw, 3.4rem);
	font-weight: 480;
	letter-spacing: -0.02em;
	white-space: nowrap;
	margin: 0 !important;
	padding-inline: 0.55em;
	display: inline-flex;
	align-items: center;
	gap: 1.1em;
}
.krv-marquee__track > p::after { content: ""; width: 0.38em; height: 0.38em; border-radius: 50%; background: var(--krv-pista); box-shadow: 0 0 0 1px rgba(15, 38, 41, 0.2); flex: none; }
@supports (animation-timeline: scroll()) {
	@media (prefers-reduced-motion: no-preference) {
		.krv-marquee__track { animation: krv-marquee linear both; animation-timeline: view(); animation-range: cover 0% cover 100%; }
	}
}
@keyframes krv-marquee { from { transform: translateX(0); } to { transform: translateX(-38%); } }

/* ---------- statement + thread ---------- */

.krv-statement-wrap { position: relative; }
.krv-thread { position: absolute; inset: auto 0 -10% 0; width: 100%; height: 120%; pointer-events: none; z-index: 0; overflow: visible; }
.krv-thread path { fill: none; stroke: var(--krv-pista); stroke-width: 3; stroke-linecap: round; }
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.krv-thread path { stroke-dasharray: 1; stroke-dashoffset: 1; animation: krv-draw linear both; animation-timeline: view(); animation-range: entry 10% exit 40%; }
	}
}
@keyframes krv-draw { to { stroke-dashoffset: 0; } }
.krv-statement-wrap > *:not(.krv-thread) { position: relative; z-index: 1; }

.is-style-krv-thread.wp-block-separator {
	border: 0 !important;
	height: 18px !important;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 18' preserveAspectRatio='none'%3E%3Cpath d='M2 11c40-9 70 6 110 0s70-10 112-2 78 9 118 1 46-6 56-4' fill='none' stroke='%230E3B43' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat !important;
	opacity: 0.9;
	max-width: 180px !important;
	margin-inline: 0 !important;
}

/* ---------- numbers ---------- */

.krv-stats { gap: 0 !important; border-top: 1px solid var(--krv-line); }
.krv-stats > .wp-block-group { padding: 1.6rem 1.2rem 0.4rem 0; border-right: 1px solid var(--krv-line); }
.krv-stats > .wp-block-group:last-child { border-right: 0; }
.krv-stat__value {
	font-family: var(--krv-display) !important;
	font-size: clamp(2.6rem, 1.6rem + 4vw, 6rem) !important;
	line-height: 0.95 !important;
	letter-spacing: -0.035em !important;
	font-weight: 640 !important;
	margin: 0 0 0.6rem !important;
	font-variant-numeric: lining-nums tabular-nums;
}
.krv-stat__label { font-size: var(--wp--preset--font-size--s) !important; color: var(--krv-ink-soft); max-width: 18ch; margin: 0 !important; }
:where(.has-deep-background-color) .krv-stat__label { color: rgba(238, 243, 242, 0.78); }
@media (max-width: 781px) {
	.krv-stats { grid-template-columns: 1fr 1fr !important; }
	.krv-stats > .wp-block-group { border-right: 0; border-bottom: 1px solid var(--krv-line); padding: 1.3rem 0.8rem 1.2rem 0; }
	.krv-stats > .wp-block-group:nth-child(odd) { border-right: 1px solid var(--krv-line); }
	.krv-stats > .wp-block-group:nth-child(even) { padding-left: 1rem; }
}

/* ---------- "ways" explorer: a list of roles and one stage that shows the role you point at ---------- */
/* Each .krv-way holds: the role (h3 link), a photo, and a body (text + link). On wide screens the items
   dissolve into one grid (display: contents): titles stack on the left, photos and bodies share the stage on
   the right, and only the active one is visible. Nothing changes size, so nothing on the page moves. */

.krv-ways { margin-top: 0 !important; }
.krv-way { margin: 0 !important; }
.krv-way > h3 { margin: 0 !important; }
.krv-way > h3 a { color: inherit; text-decoration: none; }
.krv-way > figure { margin: 0 !important; overflow: hidden; border-radius: 14px; background: var(--krv-mist); }
.krv-way > figure img { width: 100%; height: 100%; object-fit: cover; display: block; aspect-ratio: 4 / 3; }
.krv-way__body > p { margin: 0 0 0.9rem !important; color: var(--krv-ink-soft); max-width: 40ch; }
.krv-way__body .wp-block-buttons { margin: 0 !important; }
.krv-way__go { display: none; }

@media (min-width: 900px) {
	.krv-ways {
		display: grid !important;
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
		grid-template-rows: repeat(var(--krv-ways-n, 6), auto);
		column-gap: clamp(2.5rem, 6vw, 6.5rem);
		align-items: start;
	}
	.krv-ways > .krv-way { display: contents !important; }
	.krv-way > h3 {
		grid-column: 1;
		position: relative;
		font-size: clamp(1.7rem, 0.9rem + 2.1vw, 3.1rem) !important;
		font-weight: 520 !important;
		line-height: 1.05 !important;
		letter-spacing: -0.025em !important;
		padding: 0.95rem 0 0.95rem 2.1rem !important;
		border-top: 1px solid var(--krv-line);
		color: var(--krv-ink);
		opacity: 0.36;
		transition: opacity 400ms var(--krv-ease);
		cursor: pointer;
	}
	.krv-way:last-child > h3 { border-bottom: 1px solid var(--krv-line); }
	.krv-way > h3::before {
		content: "";
		position: absolute;
		left: 0.15rem;
		top: 50%;
		width: 0.85rem;
		height: 0.85rem;
		margin-top: -0.42rem;
		border-radius: 50%;
		background: var(--krv-pista);
		box-shadow: inset 0 0 0 1.5px var(--krv-deep);
		transform: scale(0);
		transition: transform 500ms var(--krv-ease);
	}
	.krv-way.is-active > h3 { opacity: 1; }
	.krv-way.is-active > h3::before { transform: scale(1); }
	.krv-way > h3:hover { opacity: 0.8; }
	.krv-way > figure, .krv-way > .krv-way__body { grid-column: 2; grid-row: 1 / -1; transition: opacity 500ms var(--krv-ease), transform 700ms var(--krv-ease), visibility 0s linear 500ms; }
	.krv-way > figure { align-self: stretch; position: relative; min-height: 26rem; border-radius: 18px; }
	.krv-way > figure img { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; }
	.krv-way > figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9, 42, 48, 0) 38%, rgba(9, 42, 48, 0.88) 100%); pointer-events: none; }
	.krv-way > .krv-way__body { align-self: end; position: relative; z-index: 1; padding: 2rem clamp(1.5rem, 2.4vw, 2.4rem) clamp(1.5rem, 2.4vw, 2.2rem); color: var(--krv-white); }
	.krv-way > .krv-way__body .wp-block-button__link { color: var(--krv-pista) !important; }
	.krv-way:not(.is-active) > figure, .krv-way:not(.is-active) > .krv-way__body { opacity: 0; visibility: hidden; }
	.krv-way:not(.is-active) > figure { transform: scale(1.03); }
	.krv-way:not(.is-active) > .krv-way__body { transform: translateY(10px); }
	.krv-way.is-active > figure, .krv-way.is-active > .krv-way__body { transition-delay: 0s; }
	.krv-way > .krv-way__body > p { font-size: var(--wp--preset--font-size--l); line-height: 1.4; color: var(--krv-white); max-width: 30ch; }
	/* Before the script runs (or without it), the first role is the one on stage. */
	.krv-ways:not(.is-live) > .krv-way:first-child > h3 { opacity: 1; }
	.krv-ways:not(.is-live) > .krv-way:first-child > figure, .krv-ways:not(.is-live) > .krv-way:first-child > .krv-way__body { opacity: 1; visibility: visible; transform: none; }
}

/* Phones and tablets: a swipeable row of cards */
@media (max-width: 899px) {
	.krv-ways {
		display: flex !important;
		gap: 0.85rem !important;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		overscroll-behavior-x: contain;
		margin-inline: calc(var(--wp--style--root--padding-left, var(--krv-gutter)) * -1) !important;
		padding: 0.25rem var(--wp--style--root--padding-left, var(--krv-gutter)) 1rem !important;
		scroll-padding-inline: var(--wp--style--root--padding-left, var(--krv-gutter));
		scrollbar-width: none;
	}
	.krv-ways::-webkit-scrollbar { display: none; }
	.krv-way {
		flex: 0 0 min(80vw, 22rem);
		scroll-snap-align: start;
		display: flex !important;
		flex-direction: column;
		gap: 0 !important;
		background: var(--krv-white);
		border-radius: 18px;
		overflow: hidden;
	}
	.krv-way > figure { order: -1; border-radius: 0; }
	.krv-way > figure img { aspect-ratio: 16 / 11; }
	.krv-way > h3 { font-size: 1.55rem !important; padding: 1.1rem 1.15rem 0.4rem !important; }
	.krv-way > .krv-way__body { padding: 0 1.15rem 1.2rem; display: flex; flex-direction: column; flex: 1; }
	.krv-way > .krv-way__body > p { font-size: var(--wp--preset--font-size--s); }
	.krv-way > .krv-way__body .wp-block-buttons { margin-top: auto !important; }
}
:where(.has-deep-background-color) .krv-way > h3 { color: var(--krv-white); }
:where(.has-deep-background-color) .krv-way__body > p { color: rgba(238, 243, 242, 0.8); }

/* Free resources: a short row of doors into the reference pages */
.krv-freebies { gap: 0 !important; border-top: 1px solid var(--krv-line); }
.krv-freebies > .wp-block-group { position: relative; padding: 1.3rem 1.4rem 1.4rem 0 !important; margin: 0 !important; border-right: 1px solid var(--krv-line); }
.krv-freebies > .wp-block-group + .wp-block-group { padding-left: 1.4rem !important; }
.krv-freebies > .wp-block-group:last-child { border-right: 0; }
.krv-freebies h3 { font-family: var(--krv-text) !important; font-size: var(--wp--preset--font-size--m) !important; font-weight: 650 !important; letter-spacing: 0 !important; margin: 0 0 0.35rem !important; }
.krv-freebies h3 a { color: inherit; text-decoration: none; }
.krv-freebies h3 a::after { content: ""; position: absolute; inset: 0; }
.krv-freebies h3 a::before { content: ""; display: inline-block; width: 0.5em; height: 0.5em; border-radius: 50%; background: var(--krv-pista); box-shadow: inset 0 0 0 1px var(--krv-deep); margin-right: 0.55em; vertical-align: 0.1em; transition: transform 400ms var(--krv-ease); }
.krv-freebies > .wp-block-group:hover h3 a::before { transform: scale(1.5); }
.krv-freebies p { margin: 0 !important; font-size: var(--wp--preset--font-size--s); color: var(--krv-ink-soft); }
@media (max-width: 781px) {
	.krv-freebies { grid-template-columns: 1fr !important; }
	.krv-freebies > .wp-block-group, .krv-freebies > .wp-block-group + .wp-block-group { border-right: 0; border-bottom: 1px solid var(--krv-line); padding: 1.1rem 0 !important; }
}

/* ---------- split / cards / topics ---------- */

.krv-split { gap: clamp(2rem, 6vw, 6rem) !important; }
.krv-split figure img { width: 100%; }

.is-style-krv-card, .krv-card {
	background: var(--krv-white);
	border-radius: 20px;
	padding: clamp(1.4rem, 2.4vw, 2.2rem) !important;
	transition: transform 600ms var(--krv-ease), box-shadow 600ms var(--krv-ease), background-color 300ms;
	position: relative;
	height: 100%;
}
:where(.has-deep-background-color, .has-deeper-background-color) .is-style-krv-card,
:where(.has-deep-background-color, .has-deeper-background-color) .krv-card { background: rgba(238, 243, 242, 0.06); box-shadow: inset 0 0 0 1px var(--krv-line-on-deep); }
.krv-card:hover, a .krv-card:hover, .is-style-krv-card:hover { transform: translateY(-4px); box-shadow: 0 22px 50px -32px rgba(9, 42, 48, 0.5); }
.krv-card h3 { font-size: var(--wp--preset--font-size--xl) !important; margin-top: 0 !important; }
.krv-card .krv-card__tag { font-size: var(--wp--preset--font-size--xs); font-weight: 600; color: var(--krv-deep); }
:where(.has-deep-background-color) .krv-card .krv-card__tag { color: var(--krv-pista); }
.krv-card p:last-child { margin-bottom: 0; }
.krv-card .wp-block-buttons { margin-top: auto; padding-top: 0.6rem; }
.krv-card.is-layout-flex, .is-style-krv-card.is-layout-flex { height: 100%; }

.is-style-krv-hairline { box-shadow: inset 0 0 0 1px var(--krv-line); border-radius: 20px; padding: clamp(1.4rem, 2.4vw, 2.2rem) !important; }

.krv-topics { counter-reset: topic; }
.krv-topic { border-top: 1.5px solid currentColor; padding-top: 1.1rem !important; }
.krv-topic h3 { font-size: clamp(1.35rem, 1.05rem + 1.2vw, 1.95rem) !important; }
.krv-topic .krv-topic__meta { font-size: var(--wp--preset--font-size--xs); color: var(--krv-ink-soft); }

.krv-pills { gap: 0.5rem !important; }
.krv-pills > p {
	margin: 0 !important;
	padding: 0.5rem 0.95rem;
	border-radius: 999px;
	box-shadow: inset 0 0 0 1px var(--krv-line);
	font-size: var(--wp--preset--font-size--s);
	font-weight: 520;
	transition: background-color 250ms, box-shadow 250ms;
}
.krv-pills > p:hover { background: var(--krv-pista); box-shadow: none; }
:where(.has-deep-background-color) .krv-pills > p { box-shadow: inset 0 0 0 1px var(--krv-line-on-deep); }
:where(.has-deep-background-color) .krv-pills > p:hover { color: var(--krv-ink); }

/* Lists */
.is-style-krv-ticks { list-style: none; padding-left: 0 !important; }
.is-style-krv-ticks li { position: relative; padding-left: 1.9rem; margin-bottom: 0.65rem; }
.is-style-krv-ticks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.38em;
	width: 1.05rem;
	height: 1.05rem;
	border-radius: 50%;
	background: var(--krv-pista) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.3l2.6 2.5L12 5.3' fill='none' stroke='%230F2629' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 80% no-repeat;
}
.is-style-krv-plain { list-style: none; padding-left: 0 !important; }
.is-style-krv-plain li { padding: 0.55rem 0; border-bottom: 1px solid var(--krv-line); margin: 0; }
.is-style-krv-index { list-style: none; padding-left: 0 !important; counter-reset: krv-step; }
.is-style-krv-index > li { counter-increment: krv-step; position: relative; padding: 1.25rem 0 1.25rem clamp(3.2rem, 6vw, 5rem); border-top: 1px solid var(--krv-line); margin: 0; }
.is-style-krv-index > li::before {
	content: counter(krv-step);
	position: absolute;
	left: 0;
	top: 0.95rem;
	font-family: var(--krv-display);
	font-size: clamp(1.8rem, 1.2rem + 2vw, 2.8rem);
	line-height: 1;
	font-weight: 520;
	color: var(--krv-deep);
}
:where(.has-deep-background-color) .is-style-krv-index > li::before { color: var(--krv-pista); }
.is-style-krv-index > li strong { display: block; font-family: var(--krv-display); font-size: var(--wp--preset--font-size--l); font-weight: 560; margin-bottom: 0.25rem; }

/* Quote */
.is-style-krv-big { position: relative; padding: 0 !important; }
.is-style-krv-big p { font-family: var(--krv-display); font-size: clamp(1.7rem, 1.1rem + 2.6vw, 3.4rem) !important; line-height: 1.12 !important; letter-spacing: -0.02em; font-weight: 480; text-wrap: balance; }
.is-style-krv-big p::before { content: "\201C"; color: var(--krv-pista); margin-right: 0.04em; }
.is-style-krv-big cite { display: block; margin-top: 1.2rem; font-family: var(--krv-text); color: var(--krv-ink-soft); }
:where(.has-deep-background-color) .is-style-krv-big cite { color: rgba(238, 243, 242, 0.75); }

/* ---------- SDG grid: each goal blooms into its own colour ---------- */

.krv-sdgs { gap: 0 !important; border-top: 1px solid var(--krv-line); border-left: 1px solid var(--krv-line); }
.krv-sdg {
	--sdg: var(--krv-deep);
	position: relative;
	min-height: clamp(10.5rem, 15vw, 15rem);
	padding: 1.15rem !important;
	border-right: 1px solid var(--krv-line);
	border-bottom: 1px solid var(--krv-line);
	overflow: hidden;
	isolation: isolate;
	display: flex !important;
	flex-direction: column;
	justify-content: space-between;
	gap: 0.6rem !important;
	cursor: default;
	outline-offset: -3px;
	margin: 0 !important;
}
.krv-sdg::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--sdg);
	clip-path: circle(0% at var(--mx, 85%) var(--my, 15%));
	transition: clip-path 800ms var(--krv-ease);
	z-index: -1;
}
.krv-sdg .krv-sdg__n { font-family: var(--krv-display); font-size: clamp(2rem, 1.4rem + 2vw, 3.2rem); line-height: 1; font-weight: 600; letter-spacing: -0.03em; margin: 0 !important; color: var(--krv-ink); transition: color 400ms; display: flex; align-items: flex-start; gap: 0.5rem; }
.krv-sdg .krv-sdg__n::after { content: ""; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--sdg); margin-top: 0.3rem; transition: background-color 400ms; }
.krv-sdg:hover .krv-sdg__n::after, .krv-sdg:focus-within .krv-sdg__n::after, .krv-sdg.is-open .krv-sdg__n::after { background: currentColor; }
.krv-sdg h3 { font-family: var(--krv-text) !important; font-size: var(--wp--preset--font-size--s) !important; font-weight: 650 !important; letter-spacing: 0 !important; line-height: 1.25 !important; margin: 0 !important; transition: color 400ms; }
.krv-sdg .krv-sdg__more { position: absolute; left: 1.15rem; right: 1.15rem; bottom: 1.05rem; font-size: 0.86rem; line-height: 1.42; margin: 0 !important; opacity: 0; transform: translateY(10px); transition: opacity 350ms, transform 600ms var(--krv-ease); pointer-events: none; }
.krv-sdg h3 { transition: opacity 300ms, color 400ms; }
.krv-sdg:hover h3, .krv-sdg:focus-within h3, .krv-sdg.is-open h3 { opacity: 0; }
.krv-sdg:hover::before, .krv-sdg:focus-within::before, .krv-sdg.is-open::before { clip-path: circle(150% at var(--mx, 85%) var(--my, 15%)); }
.krv-sdg:hover, .krv-sdg:focus-within, .krv-sdg.is-open { color: #fff; }
.krv-sdg:hover .krv-sdg__n, .krv-sdg:focus-within .krv-sdg__n, .krv-sdg.is-open .krv-sdg__n { color: #fff; }
.krv-sdg:hover .krv-sdg__more, .krv-sdg:focus-within .krv-sdg__more, .krv-sdg.is-open .krv-sdg__more { opacity: 1; transform: none; }
.krv-sdg a { color: inherit; }
.krv-sdg--1 { --sdg: #E5243B; } .krv-sdg--2 { --sdg: #DDA63A; } .krv-sdg--3 { --sdg: #4C9F38; } .krv-sdg--4 { --sdg: #C5192D; }
.krv-sdg--5 { --sdg: #FF3A21; } .krv-sdg--6 { --sdg: #26BDE2; } .krv-sdg--7 { --sdg: #FCC30B; } .krv-sdg--8 { --sdg: #A21942; }
.krv-sdg--9 { --sdg: #FD6925; } .krv-sdg--10 { --sdg: #DD1367; } .krv-sdg--11 { --sdg: #FD9D24; } .krv-sdg--12 { --sdg: #BF8B2E; }
.krv-sdg--13 { --sdg: #3F7E44; } .krv-sdg--14 { --sdg: #0A97D9; } .krv-sdg--15 { --sdg: #56C02B; } .krv-sdg--16 { --sdg: #00689D; }
.krv-sdg--17 { --sdg: #19486A; }
.krv-sdg--7:hover, .krv-sdg--7:focus-within, .krv-sdg--7.is-open, .krv-sdg--2:hover, .krv-sdg--2:focus-within, .krv-sdg--2.is-open, .krv-sdg--11:hover, .krv-sdg--11:focus-within, .krv-sdg--11.is-open { color: #1b1b1b; }
.krv-sdg--7:hover .krv-sdg__n, .krv-sdg--7.is-open .krv-sdg__n, .krv-sdg--2:hover .krv-sdg__n, .krv-sdg--2.is-open .krv-sdg__n, .krv-sdg--11:hover .krv-sdg__n, .krv-sdg--11.is-open .krv-sdg__n { color: #1b1b1b; }
@media (max-width: 781px) {
	.krv-sdgs { grid-template-columns: 1fr 1fr !important; }
	.krv-sdg { min-height: 10.5rem; }
	.krv-sdg .krv-sdg__more { font-size: 0.8rem; left: 0.9rem; right: 0.9rem; bottom: 0.85rem; }
}

/* ---------- awards strip / timeline ---------- */

.krv-strip { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 1rem !important; padding-bottom: 1rem; scrollbar-width: thin; }
.krv-strip > * { flex: 0 0 min(78vw, 22rem) !important; scroll-snap-align: start; margin: 0 !important; }
.krv-award { border-top: 1.5px solid currentColor; padding: 1.1rem 0 0 !important; }
.krv-award .krv-award__year { font-family: var(--krv-display); font-size: clamp(2.4rem, 1.6rem + 3vw, 4.2rem); line-height: 1; font-weight: 600; letter-spacing: -0.03em; margin: 0 0 0.9rem !important; }
.krv-award h3 { font-size: var(--wp--preset--font-size--l) !important; font-family: var(--krv-text) !important; font-weight: 650 !important; letter-spacing: 0 !important; line-height: 1.25 !important; margin: 0 0 0.35rem !important; }
.krv-award p { font-size: var(--wp--preset--font-size--s); color: var(--krv-ink-soft); margin: 0 !important; }
:where(.has-deep-background-color) .krv-award p { color: rgba(238, 243, 242, 0.75); }

.krv-timeline > .wp-block-group { display: grid !important; grid-template-columns: minmax(5rem, 9rem) 1fr; gap: 1.5rem !important; padding: 1.4rem 0 !important; border-top: 1px solid var(--krv-line); margin: 0 !important; }
.krv-timeline .krv-timeline__year { font-family: var(--krv-display); font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.6rem); font-weight: 600; line-height: 1; letter-spacing: -0.02em; margin: 0 !important; color: var(--krv-deep); }
:where(.has-deep-background-color) .krv-timeline .krv-timeline__year { color: var(--krv-pista); }
.krv-timeline h3 { font-size: var(--wp--preset--font-size--l) !important; margin: 0 0 0.35rem !important; }
.krv-timeline p { margin: 0 !important; }
@media (max-width: 600px) { .krv-timeline > .wp-block-group { grid-template-columns: 1fr; gap: 0.5rem !important; } }

/* ---------- logos ---------- */

.krv-logos { gap: 0 !important; border-top: 1px solid var(--krv-line); border-left: 1px solid var(--krv-line); }
.krv-logos > figure, .krv-logos > .wp-block-group {
	margin: 0 !important;
	border-right: 1px solid var(--krv-line);
	border-bottom: 1px solid var(--krv-line);
	aspect-ratio: 3 / 2;
	display: grid !important;
	place-items: center;
	padding: 1.25rem !important;
	transition: background-color 300ms;
}
.krv-logos > figure img { max-height: 64px; width: auto !important; max-width: 80%; object-fit: contain; filter: grayscale(1); opacity: 0.8; transition: filter 400ms, opacity 400ms; }
.krv-logos > figure:hover { background: var(--krv-white); }
.krv-logos > figure:hover img { filter: none; opacity: 1; }
.krv-logos p { font-size: var(--wp--preset--font-size--xs); text-align: center; margin: 0 !important; font-weight: 600; color: var(--krv-ink-soft); }
@media (max-width: 781px) { .krv-logos { grid-template-columns: 1fr 1fr !important; } }

/* ---------- press list ---------- */

.krv-press > .wp-block-group {
	display: grid !important;
	grid-template-columns: minmax(7rem, 12rem) 1fr auto;
	align-items: baseline;
	gap: 1.25rem !important;
	padding: 1.3rem 0 !important;
	border-top: 1px solid var(--krv-line);
	position: relative;
	margin: 0 !important;
	transition: padding 500ms var(--krv-ease);
}
.krv-press > .wp-block-group:hover { padding-left: 0.6rem !important; }
.krv-press .krv-press__outlet { font-weight: 650; margin: 0 !important; }
.krv-press h3 { font-size: var(--wp--preset--font-size--l) !important; font-weight: 520 !important; margin: 0 !important; line-height: 1.25 !important; }
.krv-press h3 a { color: inherit; text-decoration: none; }
.krv-press h3 a::after { content: ""; position: absolute; inset: 0; }
.krv-press .krv-press__date { font-size: var(--wp--preset--font-size--xs); color: var(--krv-ink-soft); margin: 0 !important; white-space: nowrap; }
@media (max-width: 781px) { .krv-press > .wp-block-group { grid-template-columns: 1fr; gap: 0.35rem !important; } }

/* ---------- FAQ ---------- */

.is-style-krv-faq, .krv-faq .wp-block-details { border-top: 1px solid var(--krv-line); padding: 0 !important; margin: 0 !important; }
.krv-faq .wp-block-details:last-child { border-bottom: 1px solid var(--krv-line); }
.krv-faq summary, .is-style-krv-faq summary {
	list-style: none;
	cursor: pointer;
	padding: 1.35rem 3rem 1.35rem 0;
	position: relative;
	font-family: var(--krv-display);
	font-size: clamp(1.15rem, 1rem + 0.7vw, 1.5rem);
	font-weight: 520;
	line-height: 1.25;
	letter-spacing: -0.01em;
	transition: color 200ms;
}
.krv-faq summary::-webkit-details-marker, .is-style-krv-faq summary::-webkit-details-marker { display: none; }
.krv-faq summary::after, .is-style-krv-faq summary::after {
	content: "";
	position: absolute;
	right: 0.25rem;
	top: 50%;
	width: 1.5rem;
	height: 1.5rem;
	margin-top: -0.75rem;
	background: linear-gradient(currentColor 0 0) center / 100% 1.5px no-repeat, linear-gradient(currentColor 0 0) center / 1.5px 100% no-repeat;
	transition: transform 500ms var(--krv-ease);
}
.krv-faq details[open] summary::after, .is-style-krv-faq[open] summary::after { transform: rotate(135deg); }
.krv-faq details > :not(summary), .is-style-krv-faq > :not(summary) { padding-right: 3rem; color: var(--krv-ink-soft); max-width: 70ch; }
:where(.has-deep-background-color) .krv-faq details > :not(summary) { color: rgba(238, 243, 242, 0.8); }
.krv-faq details > :last-child { padding-bottom: 1.4rem; }
@supports (interpolate-size: allow-keywords) {
	.krv-faq details, .is-style-krv-faq { interpolate-size: allow-keywords; }
	.krv-faq details::details-content, .is-style-krv-faq::details-content { height: 0; overflow: clip; transition: height 500ms var(--krv-ease), content-visibility 500ms allow-discrete; }
	.krv-faq details[open]::details-content, .is-style-krv-faq[open]::details-content { height: auto; }
}

/* ---------- facts table (infobox) ---------- */

.krv-facts table { border-collapse: collapse; width: 100%; }
.krv-facts td { border: 0 !important; border-top: 1px solid var(--krv-line) !important; padding: 0.85rem 1rem 0.85rem 0 !important; vertical-align: top; }
.krv-facts tr td:first-child { width: 34%; font-weight: 650; color: var(--krv-ink-soft); font-size: var(--wp--preset--font-size--s); }
.krv-facts tr:last-child td { border-bottom: 1px solid var(--krv-line) !important; }

/* ---------- route cards (contact) ---------- */

.krv-routes { gap: 1rem !important; }
.krv-route { border-radius: 20px; padding: clamp(1.4rem, 2.4vw, 2rem) !important; background: var(--krv-white); position: relative; transition: transform 600ms var(--krv-ease), background-color 300ms; margin: 0 !important; }
.krv-route:hover { transform: translateY(-4px); }
.krv-route h3 { font-size: var(--wp--preset--font-size--l) !important; margin: 0 0 0.4rem !important; }
.krv-route p { margin: 0 0 0.8rem !important; color: var(--krv-ink-soft); font-size: var(--wp--preset--font-size--s); }
.krv-route .wp-block-buttons { margin-top: 0.4rem; }
.krv-route--deep { background: var(--krv-deep); color: var(--krv-paper); }
.krv-route--deep h3 { color: #fff; }
.krv-route--deep p { color: rgba(238, 243, 242, 0.78); }

/* ---------- callout ---------- */

.krv-callout { border-radius: 20px; padding: clamp(1.4rem, 2.6vw, 2.4rem) !important; background: var(--krv-pista); color: var(--krv-ink); }
.krv-callout h2, .krv-callout h3 { color: var(--krv-ink) !important; }
.krv-callout--rose { background: var(--krv-rose); }
.krv-callout--line { background: transparent; box-shadow: inset 0 0 0 1.5px var(--krv-ink); }

/* ---------- CTA band ---------- */

.krv-cta-band { overflow: hidden; }
.krv-cta-band h2 { font-size: clamp(2.4rem, 1.4rem + 4.6vw, 6.4rem) !important; line-height: 0.98 !important; max-width: 14ch; }
.krv-cta-band .krv-cta-band__mark {
	position: absolute;
	right: -6vw;
	bottom: -8vw;
	width: min(48vw, 640px);
	aspect-ratio: 1;
	border-radius: 50%;
	border: 1.5px solid var(--krv-line-on-deep);
	pointer-events: none;
}
.krv-cta-band .krv-cta-band__mark::before { content: ""; position: absolute; inset: 18%; border-radius: 50%; border: 1.5px solid var(--krv-line-on-deep); }
.krv-cta-band .krv-cta-band__mark::after { content: ""; position: absolute; inset: 38%; border-radius: 50%; background: var(--krv-pista); opacity: 0.9; }

/* ---------- posts / cards from query loops ---------- */

.krv-posts .wp-block-post-template { gap: clamp(1.5rem, 3vw, 2.6rem) !important; }
.krv-posts .wp-block-post { position: relative; display: flex; flex-direction: column; gap: 0.55rem; }
.krv-posts .wp-block-post-featured-image { margin: 0 0 0.6rem !important; border-radius: 6px; }
.krv-posts .wp-block-post-featured-image img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.krv-posts .krv-card-cat a, .krv-posts .wp-block-post-terms a { text-decoration: none; color: var(--krv-deep); font-weight: 650; position: relative; z-index: 3; }
.krv-posts .wp-block-post-title { font-size: clamp(1.2rem, 1rem + 0.8vw, 1.6rem) !important; line-height: 1.18 !important; letter-spacing: -0.012em !important; margin: 0 !important; font-weight: 540 !important; }
.krv-posts .wp-block-post-title a { text-decoration: none; color: inherit; background: linear-gradient(currentColor 0 0) 0 100% / 0 1.5px no-repeat; transition: background-size 500ms var(--krv-ease-soft); }
.krv-posts .wp-block-post:hover .wp-block-post-title a { background-size: 100% 1.5px; }
.krv-posts .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.krv-posts .wp-block-post-date { margin-top: auto; }
.krv-posts .wp-block-query-pagination { margin-top: clamp(2rem, 4vw, 3.5rem); font-weight: 600; gap: 0.75rem; }
.krv-posts .wp-block-query-pagination a, .krv-posts .wp-block-query-pagination .page-numbers { text-decoration: none; padding: 0.5rem 0.85rem; border-radius: 999px; }
.krv-posts .wp-block-query-pagination .current { background: var(--krv-ink); color: var(--krv-paper); }
@media (max-width: 781px) { .krv-posts .wp-block-post-template { grid-template-columns: 1fr !important; } }

.krv-topicnav { gap: 0.5rem !important; }
.krv-topicnav a {
	display: inline-block;
	padding: 0.55rem 1rem;
	border-radius: 999px;
	box-shadow: inset 0 0 0 1px var(--krv-line);
	text-decoration: none !important;
	background: none !important;
	font-weight: 560;
	font-size: var(--wp--preset--font-size--s);
	transition: background-color 250ms, box-shadow 250ms;
}
.krv-topicnav a:hover { background: var(--krv-pista) !important; box-shadow: none; }

/* ---------- single post ---------- */

.krv-article-hero { padding-top: calc(var(--krv-header-h) + clamp(2rem, 6vw, 5rem)) !important; }
.krv-article-hero .wp-block-post-title { font-size: clamp(2.2rem, 1.3rem + 3.6vw, 5rem) !important; line-height: 1.02 !important; max-width: 20ch; }
.krv-article-hero .wp-block-post-terms a { text-decoration: none; font-weight: 650; color: var(--krv-deep); }
.krv-byline { gap: 0.9rem !important; align-items: center; font-size: var(--wp--preset--font-size--s); }
.krv-byline .wp-block-avatar img { border-radius: 50%; }
.krv-byline p { margin: 0 !important; }
.krv-byline a { color: inherit; font-weight: 650; }
.krv-article-media img { border-radius: 8px; width: 100%; max-height: 72vh; object-fit: cover; }
.krv-article .wp-block-post-content { font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.21rem); line-height: 1.72; }
.krv-article .wp-block-post-content > * { max-width: 46rem; }
.krv-article .wp-block-post-content h2 { font-size: clamp(1.7rem, 1.2rem + 2vw, 2.6rem); margin-top: 2.6em; margin-bottom: 0.5em; }
.krv-article .wp-block-post-content h3 { font-size: clamp(1.3rem, 1.1rem + 0.9vw, 1.7rem); margin-top: 2em; }
.krv-article .wp-block-post-content img { border-radius: 6px; }
.krv-article .wp-block-post-content blockquote { border-left: 3px solid var(--krv-pista); padding-left: 1.2rem; }
.krv-article .wp-block-post-content table { font-size: 0.95em; }
.krv-article .wp-block-post-content :where(ul, ol) { padding-left: 1.2em; }
.krv-article .wp-block-post-content li { margin-bottom: 0.35em; }

.krv-toc { font-size: var(--wp--preset--font-size--s); }
.krv-toc details { border-top: 1px solid var(--krv-line); border-bottom: 1px solid var(--krv-line); padding: 0.9rem 0; }
.krv-toc summary { font-weight: 650; cursor: pointer; list-style: none; display: flex; justify-content: space-between; }
.krv-toc summary::-webkit-details-marker { display: none; }
.krv-toc summary::after { content: "+"; font-weight: 400; }
.krv-toc details[open] summary::after { content: "–"; }
.krv-toc ol { list-style: none; padding: 0.6rem 0 0 !important; margin: 0; }
.krv-toc li { margin: 0; }
.krv-toc a { display: block; padding: 0.35rem 0 0.35rem 0.8rem; text-decoration: none; color: var(--krv-ink-soft); border-left: 2px solid transparent; transition: color 200ms, border-color 200ms; background: none !important; }
.krv-toc a:hover, .krv-toc a.is-active { color: var(--krv-ink); border-left-color: var(--krv-deep); }
.krv-toc .krv-toc__h3 a { padding-left: 1.6rem; font-size: 0.92em; }
@media (min-width: 1100px) {
	.krv-article-layout { display: grid !important; grid-template-columns: minmax(0, 1fr) 16rem; gap: clamp(2rem, 5vw, 5rem) !important; align-items: start; }
	.krv-article-aside { position: sticky; top: calc(var(--krv-header-h) + 1.5rem); }
}

.krv-author { gap: clamp(1rem, 3vw, 2rem) !important; align-items: center; }
.krv-author img { border-radius: 50%; width: 88px; height: 88px; object-fit: cover; }
.krv-author h3 { font-size: var(--wp--preset--font-size--l) !important; margin: 0 0 0.3rem !important; }
.krv-author p { margin: 0 0 0.5rem !important; }

.krv-related { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2.4rem); }
.krv-related__card { display: flex; flex-direction: column; gap: 0.45rem; text-decoration: none; color: inherit; background: none !important; }
.krv-related__media { overflow: hidden; border-radius: 6px; display: block; position: relative; }
.krv-related__img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.krv-related__cat { font-size: var(--wp--preset--font-size--xs); font-weight: 650; color: var(--krv-deep); }
.krv-related__title { font-family: var(--krv-display); font-size: 1.25rem; line-height: 1.2; font-weight: 540; }
.krv-related__date { font-size: var(--wp--preset--font-size--xs); color: var(--krv-ink-soft); }
@media (max-width: 781px) { .krv-related { grid-template-columns: 1fr; } }

/* ---------- breadcrumbs ---------- */

.krv-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem; font-size: var(--wp--preset--font-size--xs); }
.krv-breadcrumbs li { display: inline-flex; align-items: center; gap: 0.4rem; color: var(--krv-ink-soft); }
.krv-breadcrumbs li + li::before { content: "/"; opacity: 0.5; }
.krv-breadcrumbs a { color: inherit; text-decoration: none; }
.krv-breadcrumbs a:hover { color: var(--krv-ink); text-decoration: underline; }
:where(.has-deep-background-color) .krv-breadcrumbs li { color: rgba(238, 243, 242, 0.75); }

/* ---------- footer ---------- */

.krv-footer { position: relative; overflow: hidden; }
.krv-footer a { color: inherit; text-decoration: none; }
.krv-footer .krv-footer__links a { opacity: 0.82; transition: opacity 200ms; background: none !important; }
.krv-footer .krv-footer__links a:hover { opacity: 1; text-decoration: underline; }
.krv-footer .krv-footer__links p { margin: 0 0 0.55rem !important; font-size: var(--wp--preset--font-size--s); }
.krv-footer h2, .krv-footer h3 { color: var(--krv-white); }
.krv-footer .krv-footer__head { font-family: var(--krv-text) !important; font-size: var(--wp--preset--font-size--xs) !important; font-weight: 650 !important; letter-spacing: 0.02em !important; color: var(--krv-pista) !important; margin-bottom: 1rem !important; }
.krv-footer .krv-footer__big {
	font-family: var(--krv-display);
	font-size: clamp(2.4rem, 8.9vw, 12rem);
	line-height: 0.9;
	letter-spacing: -0.045em;
	font-weight: 600;
	color: var(--krv-white);
	margin: 0 !important;
	white-space: nowrap;
}
.krv-footer .krv-footer__big span { color: inherit; }
.krv-footer .krv-footer__legal { font-size: var(--wp--preset--font-size--xs); opacity: 0.75; gap: 0.4rem 1.2rem !important; }
.krv-footer .krv-footer__legal p { margin: 0 !important; }
.krv-footer .wp-block-social-links .wp-social-link { background: transparent !important; box-shadow: inset 0 0 0 1px var(--krv-line-on-deep); transition: background-color 250ms; }
.krv-footer .wp-block-social-links .wp-social-link:hover { background: var(--krv-pista) !important; color: var(--krv-ink) !important; }
.krv-footer .wp-block-social-links .wp-social-link svg { fill: currentColor; }

/* ---------- mobile action bar ---------- */

.krv-actionbar {
	position: fixed;
	left: 0.75rem;
	right: 0.75rem;
	bottom: max(0.75rem, env(safe-area-inset-bottom));
	z-index: 45;
	display: none !important;
	gap: 0.5rem !important;
	padding: 0.45rem !important;
	border-radius: 999px;
	background: var(--krv-ink);
	box-shadow: 0 18px 40px -18px rgba(9, 42, 48, 0.6);
	transform: translateY(140%);
	transition: transform 600ms var(--krv-ease);
}
.krv-actionbar .wp-block-button { flex: 1; }
.krv-actionbar .wp-block-button__link { width: 100%; min-height: 48px; padding: 0.7em 0.9em !important; font-size: 0.92rem; white-space: nowrap; }
.krv-actionbar .is-style-krv-bright .wp-block-button__link { background: var(--krv-pista) !important; }
.krv-actionbar .is-style-krv-ghost .wp-block-button__link { color: var(--krv-paper) !important; box-shadow: inset 0 0 0 1px rgba(238, 243, 242, 0.35); }
@media (max-width: 781px) {
	.krv-actionbar { display: flex !important; }
	.krv-actionbar.is-on { transform: none; }
	/* room for the bar, painted in the footer colour */
	body.krv-has-actionbar .krv-footer::after { content: ""; display: block; height: 5.25rem; }
}

/* ---------- prose pages (policies) ---------- */

.krv-legal h2 { font-size: clamp(1.45rem, 1.1rem + 1.4vw, 2.2rem); margin-top: 2.4em; }
.krv-legal h3 { font-size: var(--wp--preset--font-size--l); margin-top: 1.8em; }
.krv-legal p, .krv-legal li { color: var(--krv-ink); }
.krv-legal .krv-updated { font-size: var(--wp--preset--font-size--xs); color: var(--krv-ink-soft); }

/* ---------- sitemap block ---------- */

.krv-sitemap { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 3rem; }
.krv-sitemap__col--wide { grid-column: 1 / -1; columns: 2 22rem; }
.krv-sitemap h2 { font-size: var(--wp--preset--font-size--xl); }
.krv-sitemap ul { padding-left: 1.1em; }
.krv-sitemap li { margin-bottom: 0.35rem; break-inside: avoid; }
@media (max-width: 781px) { .krv-sitemap { grid-template-columns: 1fr; } }

/* ---------- placeholders (until real photos are uploaded) ---------- */

img[src*="/assets/placeholders/"] { background: var(--krv-mist); }

/* ---------- 404 ---------- */

.krv-404 h1 { font-size: clamp(5rem, 2rem + 18vw, 18rem) !important; line-height: 0.85 !important; letter-spacing: -0.05em !important; }

/* ---------- languages ---------- */

:lang(te), :lang(hi) { letter-spacing: 0 !important; }
:lang(te) p, :lang(hi) p, :lang(te) li, :lang(hi) li { line-height: 1.8; }
:lang(te) :where(h1, h2, h3), :lang(hi) :where(h1, h2, h3) { line-height: 1.3 !important; letter-spacing: 0 !important; }
:lang(te) :where(h1, h2, h3) { font-family: "Anek Telugu", var(--krv-text) !important; font-weight: 650 !important; }
:lang(hi) :where(h1, h2, h3) { font-family: "Eczar", "Anek Devanagari", serif !important; }

/* ---------- view transitions ---------- */

@media (prefers-reduced-motion: no-preference) {
	::view-transition-old(root) { animation: 280ms var(--krv-ease) both krv-vt-out; }
	::view-transition-new(root) { animation: 420ms var(--krv-ease) both krv-vt-in; }
}
@keyframes krv-vt-out { to { opacity: 0; transform: translateY(-12px); } }
@keyframes krv-vt-in { from { opacity: 0; transform: translateY(16px); } }

/* ---------- reduced motion: everything settles instantly ---------- */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; scroll-behavior: auto !important; }
	.krv-hero .wp-block-cover__image-background { animation: none !important; filter: none !important; }
}

/* ---------- print ---------- */

@media print {
	.krv-header, .krv-footer, .krv-actionbar, .krv-search { display: none !important; }
	body { background: #fff !important; }
}


/* ---------- fixes and refinements ---------- */

.wp-site-blocks > * { margin-block-start: 0; }
.wp-site-blocks > footer, .wp-site-blocks > .wp-block-template-part { margin-block-start: 0 !important; }
.krv-main > * { margin-block-start: 0; }

/* Consecutive sections on the same background: tighten the seam. */
.has-paper-background-color.krv-section + .has-paper-background-color.krv-section:not(.is-style-krv-sheet),
.has-mist-background-color.krv-section + .has-mist-background-color.krv-section:not(.is-style-krv-sheet) { padding-top: calc(var(--krv-section-y) * 0.3); }

/* Awards: a grid on desktop, a swipeable strip on phones. */
@media (min-width: 782px) {
	.krv-strip { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; gap: 2.5rem 2rem !important; }
	.krv-strip > * { flex: none !important; }
}

/* Footer details */
.krv-footer .wp-social-link { color: var(--krv-paper) !important; }
.krv-footer .wp-social-link a { color: inherit !important; }
.krv-footer .wp-block-separator { opacity: 0.25; }

/* Category tags in cards: no underline, they are labels */
.krv-posts .wp-block-post-terms a, .krv-card-cat a { text-decoration: none !important; }

/* SDG grid: the 18th cell invites a deeper look */
.krv-sdg-more {
	background: var(--krv-deep);
	color: var(--krv-paper);
	display: flex !important;
	flex-direction: column;
	justify-content: space-between;
	padding: 1.15rem !important;
	border-right: 1px solid var(--krv-line);
	border-bottom: 1px solid var(--krv-line);
	margin: 0 !important;
	transition: background-color 400ms;
}
.krv-sdg-more:hover { background: var(--krv-ink); }
.krv-sdg-more p { margin: 0 !important; }
.krv-sdg-more .krv-sdg-more__title { font-family: var(--krv-display); font-size: var(--wp--preset--font-size--l); line-height: 1.15; color: #fff; }
.krv-sdg-more a { color: var(--krv-pista); font-weight: 650; text-decoration: none; }
.krv-sdg-more a::after { content: ""; position: absolute; inset: 0; }
.krv-sdg-more { position: relative; }

/* Headings inside dark sections stay bright */
.has-deep-background-color h1, .has-deep-background-color h2, .has-deep-background-color h3,
.has-deeper-background-color h1, .has-deeper-background-color h2, .has-deeper-background-color h3 { color: #fff; }
.has-deep-background-color .krv-muted, .has-deeper-background-color .krv-muted { color: rgba(238, 243, 242, 0.76); }
.has-deep-background-color .krv-stat__label, .has-deep-background-color .krv-award p, .has-deep-background-color .krv-way p { color: rgba(238, 243, 242, 0.78); }
.has-deep-background-color .is-style-krv-index > li::before, .has-deep-background-color .krv-timeline .krv-timeline__year { color: var(--krv-pista); }
.has-deep-background-color .krv-card__tag { color: var(--krv-pista); }
.has-deep-background-color .is-style-krv-big cite { color: rgba(238, 243, 242, 0.75); }
.has-deep-background-color .krv-faq details > :not(summary) { color: rgba(238, 243, 242, 0.8); }
.has-deep-background-color .krv-breadcrumbs li { color: rgba(238, 243, 242, 0.75); }

/* Hero content lines up with the header and the rest of the page. */
.krv-hero.wp-block-cover { padding-left: var(--wp--style--root--padding-left, var(--krv-gutter)) !important; padding-right: var(--wp--style--root--padding-right, var(--krv-gutter)) !important; }

/* Mobile menu reads left to right, grouped like a contents page. */
.krv-nav .wp-block-navigation__responsive-container.is-menu-open {
	--navigation-layout-justify: flex-start;
	--navigation-layout-align: flex-start;
	--navigation-layout-justification-setting: flex-start;
	text-align: left;
	overflow-y: auto;
}
.krv-nav .is-menu-open .wp-block-navigation__responsive-container-content,
.krv-nav .is-menu-open .wp-block-navigation__container,
.krv-nav .is-menu-open .wp-block-navigation-item,
.krv-nav .is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; justify-content: flex-start !important; text-align: left; }
.krv-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { border-top: 1px solid rgba(238, 243, 242, 0.14); padding-top: 0.6rem; }
.krv-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-size: clamp(1.7rem, 6.5vw, 2.3rem); }
.krv-nav .is-menu-open .wp-block-navigation__submenu-container { display: grid !important; grid-template-columns: 1fr 1fr; column-gap: 1rem; width: 100%; }
.krv-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 0.98rem !important; }
.krv-nav .is-menu-open .wp-block-navigation__submenu-icon { display: none; }

/* ---------- Hidden until ready (only editors ever receive these sections) ---------- */
.is-style-krv-todo { position: relative; outline: 2px dashed var(--krv-rose); outline-offset: -6px; }
.is-style-krv-todo::before {
  content: "Hidden from visitors. To publish this section, select it and set Styles to Default.";
  position: absolute; z-index: 6; top: 12px; right: 12px; max-width: min(92%, 34rem);
  font: 600 12px/1.35 system-ui, sans-serif; letter-spacing: 0; text-transform: none;
  background: #111; color: #fff; padding: 7px 12px; border-radius: 12px; pointer-events: none;
}

/* ---------- editorial rows: title and meta on the left, the substance on the right ---------- */
.krv-rows { margin-top: 0 !important; }
.krv-rows > .krv-row {
	display: grid !important;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	column-gap: clamp(1.5rem, 5vw, 5rem);
	row-gap: 0.75rem;
	padding: clamp(1.4rem, 2.6vw, 2.2rem) 0 !important;
	border-top: 1px solid var(--krv-line);
	margin: 0 !important;
	position: relative;
}
.krv-rows > .krv-row:last-child { border-bottom: 1px solid var(--krv-line); }
.krv-row > .krv-row__head > h3 {
	font-size: clamp(1.35rem, 1.05rem + 1.25vw, 2.05rem) !important;
	line-height: 1.12 !important;
	margin: 0 0 0.55rem !important;
	background: linear-gradient(var(--krv-pista) 0 0) 0 92% / 0 0.32em no-repeat;
	transition: background-size 700ms var(--krv-ease);
	display: inline;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}
.krv-row:hover > .krv-row__head > h3 { background-size: 100% 0.32em; }
:where(.has-deep-background-color, .has-deeper-background-color) .krv-row > .krv-row__head > h3 { background-image: linear-gradient(rgba(200, 233, 160, 0.35) 0 0); }
.krv-row__meta { font-size: var(--wp--preset--font-size--xs) !important; color: var(--krv-ink-soft); margin: 0.9rem 0 0 !important; line-height: 1.5; }
:where(.has-deep-background-color, .has-deeper-background-color) .krv-row__meta { color: rgba(238, 243, 242, 0.72); }
.krv-row__body > :first-child { margin-top: 0 !important; }
.krv-row__body > :last-child { margin-bottom: 0 !important; }
.krv-row__body p { max-width: 62ch; }
@media (max-width: 781px) {
	.krv-rows > .krv-row { grid-template-columns: 1fr; }
}

/* Sticky first column for long two-column sections (desktop only). */
@media (min-width: 900px) {
	.krv-sticky > .wp-block-column:first-child { position: sticky; top: calc(var(--krv-header-h) + 2rem); align-self: flex-start; }
}

/* Prose blocks inside landing pages: comfortable measure, linked text underlined. */
.krv-copy { max-width: 46rem; }
.krv-copy p, .krv-copy li { font-size: var(--wp--preset--font-size--m); }
.krv-copy a:not(.wp-element-button) {
	color: inherit; text-decoration: none;
	background: linear-gradient(currentColor 0 0) 0 100% / 100% 1px no-repeat;
	transition: background-size 450ms var(--krv-ease-soft);
}
.krv-copy a:not(.wp-element-button):hover { background-size: 0 1px; background-position: 100% 100%; }
.krv-copy h3 { margin-top: 2em; }

/* Citation box and small print */
.krv-cite { font-size: var(--wp--preset--font-size--s); }
.krv-cite p { margin: 0.35rem 0 !important; }
.krv-cite code, .krv-cite kbd { font-size: 0.92em; white-space: normal; word-break: break-word; }

/* Reading paths: link lists that read like a contents page */
.krv-paths .wp-block-list { list-style: none; padding-left: 0 !important; margin: 0 !important; }
.krv-paths .wp-block-list li { border-top: 1px solid var(--krv-line); margin: 0 !important; }
.krv-paths .wp-block-list li a { display: block; padding: 0.8rem 0; color: inherit; text-decoration: none; font-weight: 520; transition: padding-left 500ms var(--krv-ease), color 200ms; }
.krv-paths .wp-block-list li a:hover { padding-left: 0.6rem; color: var(--krv-deep); }
.krv-paths .wp-block-list li:last-child { border-bottom: 1px solid var(--krv-line); }

/* Glossary terms */
.krv-term { border-top: 1px solid var(--krv-line); padding: 1.3rem 0 !important; margin: 0 !important; scroll-margin-top: calc(var(--krv-header-h) + 1rem); }
.krv-term h3 { font-size: var(--wp--preset--font-size--l) !important; margin: 0 0 0.45rem !important; }
.krv-term p { margin: 0 0 0.5rem !important; max-width: 68ch; }
.krv-term p:last-child { margin-bottom: 0 !important; }
.krv-term .krv-term__see { font-size: var(--wp--preset--font-size--xs); color: var(--krv-ink-soft); }
.krv-az { gap: 0.35rem !important; }
.krv-az > p { margin: 0 !important; }
.krv-az a { display: inline-grid; place-items: center; min-width: 2.4rem; min-height: 2.4rem; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--krv-line); text-decoration: none; color: inherit; font-weight: 600; font-size: var(--wp--preset--font-size--s); transition: background-color 240ms, color 240ms; }
.krv-az a:hover { background: var(--krv-ink); color: var(--krv-paper); }

/* SDG detail page: one band per goal */
.krv-goal { border-top: 1px solid var(--krv-line); padding: clamp(1.6rem, 3vw, 2.6rem) 0 !important; margin: 0 !important; display: grid !important; grid-template-columns: minmax(4.5rem, 7.5rem) minmax(0, 1fr); column-gap: clamp(1.2rem, 4vw, 3.5rem); scroll-margin-top: calc(var(--krv-header-h) + 1rem); }
.krv-goal > .krv-goal__n { font-family: var(--krv-display); font-size: clamp(2.6rem, 1.6rem + 4vw, 5.6rem); line-height: 0.9; font-weight: 640; letter-spacing: -0.04em; margin: 0 !important; color: var(--krv-ink); position: relative; }
.krv-goal > .krv-goal__n::after { content: ""; display: block; width: 0.42em; height: 0.42em; border-radius: 50%; background: var(--sdg, var(--krv-pista)); margin-top: 0.25em; transition: transform 700ms var(--krv-ease); }
.krv-goal:hover > .krv-goal__n::after { transform: scale(1.35); }
.krv-goal > .krv-goal__body > h2 { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.5rem) !important; margin: 0 0 0.6rem !important; }
.krv-goal .krv-goal__un { font-style: italic; color: var(--krv-ink-soft); margin-top: 0 !important; }
.krv-goal .krv-goal__law { font-size: var(--wp--preset--font-size--xs); color: var(--krv-ink-soft); }
@media (max-width: 600px) { .krv-goal { grid-template-columns: 1fr; } }
.krv-goal--1 { --sdg: #E5243B; } .krv-goal--2 { --sdg: #DDA63A; } .krv-goal--3 { --sdg: #4C9F38; } .krv-goal--4 { --sdg: #C5192D; }
.krv-goal--5 { --sdg: #FF3A21; } .krv-goal--6 { --sdg: #26BDE2; } .krv-goal--7 { --sdg: #FCC30B; } .krv-goal--8 { --sdg: #A21942; }
.krv-goal--9 { --sdg: #FD6925; } .krv-goal--10 { --sdg: #DD1367; } .krv-goal--11 { --sdg: #FD9D24; } .krv-goal--12 { --sdg: #BF8B2E; }
.krv-goal--13 { --sdg: #3F7E44; } .krv-goal--14 { --sdg: #0A97D9; } .krv-goal--15 { --sdg: #56C02B; } .krv-goal--16 { --sdg: #00689D; }
.krv-goal--17 { --sdg: #19486A; }

/* Language pages */
:lang(te) .krv-page-hero h1, :lang(hi) .krv-page-hero h1 { letter-spacing: 0 !important; line-height: 1.25 !important; }

/* Table heads inside fact tables */
.krv-facts thead th { border: 0 !important; border-bottom: 1.5px solid currentColor !important; text-align: left; font-size: var(--wp--preset--font-size--xs); font-weight: 650; padding: 0.6rem 1rem 0.6rem 0 !important; color: var(--krv-ink-soft); }
.krv-facts thead + tbody tr:first-child td { border-top: 0 !important; }
.krv-facts td a { word-break: break-word; }

/* Language links in the menu use system fonts (no extra downloads on English pages). */
.krv-lang-link, .krv-lang-link .wp-block-navigation-item__content, .krv-lang-link .wp-block-navigation-item__label {
	font-family: system-ui, -apple-system, "Segoe UI", "Nirmala UI", "Noto Sans Telugu", "Noto Sans Devanagari", sans-serif !important;
}

/* Inner-page heroes in constrained layouts: keep title and lede aligned with the breadcrumb column. */
.krv-page-hero.is-layout-constrained > h1,
.krv-page-hero.is-layout-constrained > .wp-block-post-title,
.krv-page-hero.is-layout-constrained > .krv-lede,
.krv-page-hero.is-layout-constrained > .wp-block-post-excerpt { max-width: var(--wp--style--global--content-size) !important; }
.krv-legal > .krv-lede, .krv-prose > .krv-lede { max-width: var(--wp--style--global--content-size) !important; }
.krv-updated { font-size: var(--wp--preset--font-size--xs); color: var(--krv-ink-soft); margin-top: 1rem !important; }
.krv-legal .krv-toc { margin: 2rem auto 3rem !important; border-top: 1px solid var(--krv-line); border-bottom: 1px solid var(--krv-line); padding: 0.4rem 0; }

/* =========================================================================
   v2 components: journeys map, honours list, search, small refinements
   ========================================================================= */

/* ---------- journeys: threads from home to every place, one step per scroll ---------- */

.krv-journeys { position: relative; }
.krv-journeys .krv-jr__list { margin-top: 2rem !important; }
.krv-journeys .krv-jr__list li { margin-bottom: 0.9rem; }
.krv-journeys .krv-jr__list li strong { font-family: var(--krv-display); font-size: var(--wp--preset--font-size--l); font-weight: 560; margin-right: 0.4em; }
.krv-journeys .krv-jr__list li em { font-style: normal; font-weight: 600; color: var(--krv-pista); margin-right: 0.4em; }
.krv-journeys.is-live { padding-top: 0 !important; padding-bottom: 0 !important; height: calc(100svh + var(--krv-jr-steps, 7) * 52svh); }
.krv-journeys.is-live > .krv-jr__list { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; margin: 0 !important; }
.krv-jr__frame {
	position: sticky;
	top: 0;
	height: 100svh;
	box-sizing: border-box;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: auto minmax(0, 1fr) auto;
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 86rem);
	margin-inline: auto;
	padding-top: calc(var(--krv-header-h) + clamp(0.75rem, 2.5vh, 2rem));
	padding-bottom: clamp(1rem, 3vh, 2.25rem);
	overflow: hidden;
}
.krv-journeys:not(.is-live) .krv-jr__frame { position: static; height: auto; }
.krv-jr__frame > .wp-block-group { margin-block: 0 !important; max-width: none !important; }
.krv-jr__frame h2 { margin: 0 !important; font-size: clamp(1.9rem, 1.1rem + 2.8vw, 3.6rem) !important; }
.krv-jr__frame h2 + p { margin-top: 0.7rem !important; max-width: 46ch; color: rgba(238, 243, 242, 0.78); }
.krv-jr { display: contents; }
.krv-jr__map { position: relative; width: 100%; aspect-ratio: 882 / 498; margin-inline: auto; align-self: center; }
.krv-jr__panel { align-self: end; }
@media (min-width: 900px) {
	.krv-jr__frame {
		grid-template-columns: minmax(0, 4.6fr) minmax(0, 7.4fr);
		grid-template-rows: auto minmax(0, 1fr);
		column-gap: clamp(1.5rem, 3vw, 3.5rem);
	}
	.krv-jr__frame > .wp-block-group { grid-column: 1; grid-row: 1; }
	.krv-jr__panel { grid-column: 1; grid-row: 2; }
	.krv-jr__map { grid-column: 2; grid-row: 1 / 3; width: 100%; max-height: 100%; }
}
@supports (height: 1cqh) {
	@media (min-width: 900px) {
		.krv-jr__frame { container-type: size; }
		.krv-jr__map { width: min(100%, calc((100cqh - 2rem) * 882 / 498)); }
	}
}
.krv-jr__dots {
	position: absolute;
	inset: 0;
	background: rgba(238, 243, 242, 0.2);
	-webkit-mask: url("../img/world-dots.svg") center / 100% 100% no-repeat;
	mask: url("../img/world-dots.svg") center / 100% 100% no-repeat;
}
.krv-jr__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; --u: 1; }
.krv-jr__arc { fill: none; stroke: var(--krv-pista); stroke-width: calc(var(--u) * 1.6px); stroke-linecap: round; stroke-dasharray: 1 1; stroke-dashoffset: 1; transition: opacity 600ms; }
.krv-jr__arc.is-past { opacity: 0.32; }
.krv-jr__pin { transform-box: fill-box; transform-origin: center; }
.krv-jr__pin > * { transform-box: fill-box; transform-origin: center; }
.krv-jr__pin .krv-jr__dot { fill: var(--krv-pista); transform: scale(0); transition: transform 500ms var(--krv-ease); r: calc(var(--u) * 3.2px); }
.krv-jr__pin .krv-jr__ring { fill: none; stroke: var(--krv-pista); stroke-width: calc(var(--u) * 1px); opacity: 0; transform: scale(0.4); transition: transform 700ms var(--krv-ease), opacity 700ms; r: calc(var(--u) * 7.5px); }
.krv-jr__pin.is-on .krv-jr__dot { transform: scale(1); }
.krv-jr__pin.is-on .krv-jr__ring { transform: scale(1); opacity: 0.45; }
.krv-jr__pin--home .krv-jr__dot { fill: var(--krv-rose); transform: scale(1); r: calc(var(--u) * 4px); }
.krv-jr__pulse { fill: var(--krv-rose); opacity: 0.35; r: calc(var(--u) * 10px); }
@media (prefers-reduced-motion: no-preference) {
	.krv-jr__pulse { animation: krv-jr-pulse 2.6s var(--krv-ease) infinite; }
}
@keyframes krv-jr-pulse { 0% { transform: scale(0.4); opacity: 0.55; } 100% { transform: scale(1.6); opacity: 0; } }
.krv-jr__label { font-family: var(--krv-text); font-weight: 600; font-size: calc(var(--u) * 12.5px); fill: var(--krv-paper); paint-order: stroke; stroke: var(--krv-deep); stroke-width: calc(var(--u) * 3px); stroke-linejoin: round; opacity: 0; transition: opacity 400ms; }
.krv-jr__label.is-on { opacity: 1; }
.krv-jr__label--home { fill: var(--krv-rose); }
.krv-jr__panel {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas: "count ticks" "title title" "caption caption";
	align-items: end;
	column-gap: 1.5rem;
	padding-top: clamp(0.5rem, 2vh, 1.25rem);
}
.krv-jr__count { grid-area: count; margin: 0 !important; font-size: var(--wp--preset--font-size--s); color: rgba(238, 243, 242, 0.72); font-variant-numeric: tabular-nums; }
.krv-jr__count b { color: var(--krv-pista); font-weight: 650; }
.krv-jr__ticks { grid-area: ticks; display: flex; gap: 0.35rem; align-items: center; }
.krv-jr__ticks span { width: 0.5rem; height: 0.5rem; border-radius: 999px; background: rgba(238, 243, 242, 0.22); transition: width 500ms var(--krv-ease), background-color 400ms; }
.krv-jr__ticks span.is-past { background: rgba(200, 233, 160, 0.55); }
.krv-jr__ticks span.is-now { width: 1.6rem; background: var(--krv-pista); }
.krv-jr__title { grid-area: title; margin: 0.15rem 0 0 !important; font-family: var(--krv-display); font-weight: 560; font-size: clamp(2.3rem, 1.2rem + 4.6vw, 6rem); line-height: 0.95; letter-spacing: -0.035em; color: var(--krv-white); }
.krv-jr__caption { grid-area: caption; margin: 0.6rem 0 0 !important; max-width: 58ch; color: rgba(238, 243, 242, 0.84); font-size: var(--wp--preset--font-size--m); line-height: 1.5; min-height: 3em; }
.krv-jr__caption a { color: inherit; }
@media (prefers-reduced-motion: no-preference) {
	.krv-jr__panel.is-swap .krv-jr__title, .krv-jr__panel.is-swap .krv-jr__caption { animation: krv-jr-in 700ms var(--krv-ease) both; }
	.krv-jr__panel.is-swap .krv-jr__caption { animation-delay: 80ms; }
}
@keyframes krv-jr-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.krv-journeys.is-static { height: auto; }
.krv-journeys.is-static .krv-jr__frame { position: static; height: auto; }
.krv-journeys.is-static .krv-jr__panel { display: none; }
.krv-journeys.is-static > .krv-jr__list { position: static !important; width: auto; height: auto; clip: auto; clip-path: none; white-space: normal; margin-top: 2rem !important; }
@media (max-width: 781px) {
	.krv-journeys.is-live { height: calc(100svh + var(--krv-jr-steps, 7) * 42svh); }
	.krv-jr__frame h2 + p { display: none; }
	.krv-jr__frame { grid-template-rows: auto auto auto; align-content: center; }
	.krv-jr__frame h2 { font-size: 1.85rem !important; }
	.krv-jr__map { width: auto; margin-inline: calc(var(--wp--style--root--padding-left, var(--krv-gutter)) * -1 + 4px) calc(var(--wp--style--root--padding-right, var(--krv-gutter)) * -1 + 4px); align-self: start; margin-top: 1.5rem; }
	.krv-jr__panel { align-self: start; padding-top: 1.75rem; }
	.krv-jr__title { font-size: clamp(2.3rem, 11vw, 3.4rem); }
	.krv-jr__caption { font-size: var(--wp--preset--font-size--s); }
}

/* ---------- honours: a long typographic list ---------- */

.krv-honours { border-top: 1.5px solid currentColor; margin-top: 0 !important; }
.krv-honour {
	position: relative;
	display: grid !important;
	grid-template-columns: 4.5rem minmax(0, 1fr) minmax(0, 0.8fr);
	column-gap: clamp(1rem, 3vw, 2.5rem);
	align-items: baseline;
	padding: clamp(1rem, 1.8vw, 1.4rem) 0 !important;
	border-bottom: 1px solid var(--krv-line);
	margin: 0 !important;
	isolation: isolate;
}
.krv-honour::before {
	content: "";
	position: absolute;
	inset: 0 calc(var(--krv-gutter) * -0.4);
	background: var(--krv-white);
	border-radius: 12px;
	opacity: 0;
	transform: scaleY(0.6);
	transition: opacity 300ms, transform 500ms var(--krv-ease);
	z-index: -1;
}
.krv-honour:hover::before { opacity: 0.7; transform: none; }
.krv-honour > * { margin: 0 !important; }
.krv-honour__year { font-weight: 650; font-variant-numeric: lining-nums tabular-nums; color: var(--krv-deep); }
.krv-honour h3 { font-size: clamp(1.35rem, 0.85rem + 1.5vw, 2.3rem) !important; font-weight: 520 !important; line-height: 1.1 !important; letter-spacing: -0.02em !important; }
.krv-honour__for { font-size: var(--wp--preset--font-size--s); color: var(--krv-ink-soft); line-height: 1.45; }
.krv-honour__for span { display: block; color: var(--krv-ink); font-weight: 600; }
@media (max-width: 781px) {
	.krv-honour { grid-template-columns: 1fr; row-gap: 0.35rem; }
}
.krv-honours-more { font-family: var(--krv-display); font-size: var(--wp--preset--font-size--l); line-height: 1.3; max-width: 34ch; }

/* Marquee rows of names (moves with your scroll), second row runs the other way */
.krv-marquee--names { border-block: 0; padding-block: 0.15rem !important; }
.krv-marquee--names .krv-marquee__track > p { font-size: clamp(1.9rem, 1rem + 3.4vw, 4.6rem); font-weight: 520; letter-spacing: -0.03em; }
.krv-marquee--reverse .krv-marquee__track { animation-direction: reverse !important; }
.krv-marquee--soft .krv-marquee__track > p { color: rgba(15, 38, 41, 0.56); }
.krv-marquee--soft .krv-marquee__track > p::after { opacity: 0.5; }
:where(.has-deep-background-color, .has-deeper-background-color) .krv-marquee--soft .krv-marquee__track > p { color: rgba(238, 243, 242, 0.62); }
@supports not (animation-timeline: view()) {
	.krv-marquee__track { flex-wrap: wrap !important; width: auto; row-gap: 0.4rem !important; }
}

/* ---------- search: a full-screen panel with live results ---------- */

.krv-search-btn { margin: 0 !important; line-height: 0; }
.krv-search-btn a {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	color: inherit;
	box-shadow: inset 0 0 0 1.5px currentColor;
	transition: background-color 250ms, color 250ms, box-shadow 250ms;
	background: none !important;
}
.krv-search-btn a:hover { background: var(--krv-ink) !important; color: var(--krv-paper); box-shadow: none; }
.krv-home .krv-header:not(.is-scrolled) .krv-search-btn a:hover { background: var(--krv-pista) !important; color: var(--krv-ink); }
.krv-search-btn svg { width: 18px; height: 18px; }
.krv-search {
	position: fixed;
	inset: 0;
	z-index: 200;
	background: var(--krv-deep);
	color: var(--krv-paper);
	overflow-y: auto;
	overscroll-behavior: contain;
	clip-path: inset(0 0 100% 0);
	visibility: hidden;
	transition: clip-path 650ms var(--krv-ease), visibility 0s linear 650ms;
}
.krv-search.is-open { clip-path: inset(0 0 0 0); visibility: visible; transition-delay: 0s; }
.krv-search__inner { max-width: 62rem; margin: 0 auto; padding: clamp(5rem, 12vh, 8rem) var(--krv-gutter) 4rem; }
.krv-search__close {
	position: fixed;
	top: 16px;
	right: var(--krv-gutter);
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 0;
	background: var(--krv-pista);
	color: var(--krv-ink);
	cursor: pointer;
	display: grid;
	place-items: center;
	font-size: 1.4rem;
	line-height: 1;
}
.krv-search__label { display: block; font-size: var(--wp--preset--font-size--s); color: var(--krv-pista); font-weight: 600; margin-bottom: 0.6rem; }
.krv-search__input {
	width: 100%;
	box-sizing: border-box;
	font-family: var(--krv-display);
	font-size: clamp(1.8rem, 1rem + 3.6vw, 4.2rem);
	font-weight: 500;
	letter-spacing: -0.025em;
	color: var(--krv-white);
	background: none;
	border: 0;
	border-bottom: 1.5px solid rgba(238, 243, 242, 0.35);
	padding: 0.2em 0 0.3em;
	outline: none;
	border-radius: 0;
	-webkit-appearance: none;
	appearance: none;
}
.krv-search__input:focus { border-bottom-color: var(--krv-pista); }
.krv-search__input::placeholder { color: rgba(238, 243, 242, 0.35); }
.krv-search__input::-webkit-search-cancel-button { display: none; }
.krv-search__chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.krv-search__chips button {
	font: inherit;
	font-size: var(--wp--preset--font-size--s);
	font-weight: 560;
	color: var(--krv-paper);
	background: none;
	border: 0;
	box-shadow: inset 0 0 0 1px rgba(238, 243, 242, 0.3);
	border-radius: 999px;
	padding: 0.55rem 1rem;
	cursor: pointer;
	transition: background-color 250ms, color 250ms;
}
.krv-search__chips button:hover, .krv-search__chips button:focus-visible { background: var(--krv-pista); color: var(--krv-ink); box-shadow: none; }
.krv-search__status { margin: 2rem 0 0.75rem; font-size: var(--wp--preset--font-size--s); color: rgba(238, 243, 242, 0.65); min-height: 1.4em; }
.krv-search__results { list-style: none; margin: 0; padding: 0; }
.krv-search__results li { border-top: 1px solid rgba(238, 243, 242, 0.14); }
.krv-search__results li:last-child { border-bottom: 1px solid rgba(238, 243, 242, 0.14); }
.krv-search__results a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: baseline; padding: 1rem 0; color: var(--krv-white); text-decoration: none; transition: padding-left 450ms var(--krv-ease), color 200ms; }
.krv-search__results a:hover, .krv-search__results a:focus-visible { padding-left: 0.6rem; color: var(--krv-pista); }
.krv-search__results .krv-search__title { font-family: var(--krv-display); font-size: clamp(1.15rem, 1rem + 0.8vw, 1.6rem); line-height: 1.2; }
.krv-search__results .krv-search__kind { font-size: var(--wp--preset--font-size--xs); color: rgba(238, 243, 242, 0.6); white-space: nowrap; }
.krv-search__all { margin-top: 1.5rem; }
.krv-search__all a { color: var(--krv-pista); font-weight: 600; }
html.krv-search-open { overflow: hidden; }

/* ---------- small v2 refinements ---------- */

/* Numbers count up once they are in view; the HTML always carries the real figure. */
.krv-stat__value { font-variant-numeric: lining-nums tabular-nums; }

/* Header: room for the search button next to the main button */
.krv-header__right { gap: clamp(0.75rem, 1.6vw, 1.4rem) !important; align-items: center; }
@media (max-width: 781px) {
	.krv-search-btn a { width: 42px; height: 42px; }
}

/* Highlights in headings: same baseline marker as the statement */
.krv-mark { text-decoration-line: underline; text-decoration-color: var(--krv-pista); text-decoration-thickness: 0.28em; text-underline-offset: -0.15em; text-decoration-skip-ink: none; font-style: normal; }

/* Ventures: four cards in a row */
.krv-ventures .krv-card h3 { font-size: clamp(1.45rem, 1rem + 1vw, 1.95rem) !important; overflow-wrap: anywhere; hyphens: manual; }
.krv-ventures .krv-card p:not(.krv-card__tag) { font-size: var(--wp--preset--font-size--s); }
@media (max-width: 1100px) and (min-width: 782px) { .krv-ventures { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 781px) { .krv-ventures { grid-template-columns: 1fr !important; } }

/* Footer rule runs the full width */
.krv-footer .wp-block-separator { width: 100% !important; max-width: var(--wp--style--global--wide-size) !important; border-top-width: 1px !important; }
.krv-footer .krv-footer__profiles { font-size: var(--wp--preset--font-size--xs) !important; opacity: 0.8; margin-top: 1rem !important; }
.krv-footer .krv-footer__profiles a { text-decoration: underline; text-underline-offset: 0.2em; }

/* Phones: search sits before the menu button */
@media (max-width: 599px) { .krv-header__right .krv-search-btn { order: -1; } }

/* ---------- press quotes ---------- */
.krv-pquotes { gap: 1.25rem !important; } /* matches the block gap WordPress uses to size its responsive columns */
.krv-pquotes > .wp-block-group { margin: 0 !important; }
.krv-pquote { margin: 0 !important; padding: clamp(1.4rem, 2.4vw, 2rem) !important; background: var(--krv-white); border-radius: 18px; height: 100%; box-sizing: border-box; display: flex; flex-direction: column; justify-content: space-between; gap: 1.2rem; border: 0 !important; }
.krv-pquote p { font-family: var(--krv-display); font-size: clamp(1.15rem, 1rem + 0.6vw, 1.45rem) !important; line-height: 1.35 !important; letter-spacing: -0.01em; margin: 0 !important; }
.krv-pquote p::before { content: "\201C"; color: var(--krv-deep); font-size: 1.6em; line-height: 0; vertical-align: -0.35em; margin-right: 0.08em; }
.krv-pquote cite { font-style: normal; font-size: var(--wp--preset--font-size--xs); color: var(--krv-ink-soft); }
.krv-pquote cite a { color: var(--krv-ink); font-weight: 650; }

/* ---------- research data points ---------- */
.krv-datagrid { gap: 0 !important; border-top: 1.5px solid currentColor; }
.krv-data { padding: 1.4rem 1.4rem 1.5rem 0 !important; margin: 0 !important; border-bottom: 1px solid var(--krv-line); }
.krv-datagrid > .krv-data:not(:nth-child(3n)) { border-right: 1px solid var(--krv-line); }
.krv-datagrid > .krv-data:not(:nth-child(3n+1)) { padding-left: 1.4rem !important; }
.krv-data__fig { font-family: var(--krv-display); font-size: clamp(2.2rem, 1.4rem + 3vw, 4rem) !important; line-height: 0.95 !important; letter-spacing: -0.035em; font-weight: 600; margin: 0 0 0.6rem !important; color: var(--krv-deep); font-variant-numeric: lining-nums; }
.krv-data__label { margin: 0 0 0.5rem !important; font-size: var(--wp--preset--font-size--s); line-height: 1.45; max-width: 34ch; }
.krv-data__src { margin: 0 !important; font-size: var(--wp--preset--font-size--xs); color: var(--krv-ink-soft); }
.krv-data__src a { color: inherit; }
:where(.has-deep-background-color) .krv-data__fig { color: var(--krv-pista); }
@media (max-width: 781px) {
	.krv-datagrid { grid-template-columns: 1fr !important; }
	.krv-datagrid > .krv-data { border-right: 0 !important; padding: 1.2rem 0 !important; }
}
.krv-sources { font-size: var(--wp--preset--font-size--xs); color: var(--krv-ink-soft); padding-left: 1.4em !important; }
.krv-sources li { margin-bottom: 0.45rem; word-break: break-word; }
.krv-sources a { color: inherit; }
.krv-sources__title { font-size: var(--wp--preset--font-size--l) !important; }

/* ---------- scroll-linked details (only where the browser supports scroll-driven animation) ---------- */
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		/* Milestones: each year inks in as it reaches the middle of the screen */
		.krv-timeline .krv-timeline__year { animation: krv-ink-in linear both; animation-timeline: view(); animation-range: entry 40% cover 45%; }
		/* Big quotes: words light up as the quote crosses the screen */
		.is-style-krv-big { view-timeline-name: --krv-q; }
		.is-style-krv-big .krv-qw { animation: krv-word-in linear both; animation-timeline: --krv-q; animation-range: cover calc(18% + var(--i) * 3.2%) cover calc(26% + var(--i) * 3.2%); }
		/* Reading progress on articles */
		.single-post .krv-header::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--krv-pista); transform-origin: 0 50%; transform: scaleX(0); animation: krv-progress linear both; animation-timeline: scroll(root block); }
	}
}
@keyframes krv-ink-in { from { color: rgba(15, 38, 41, 0.22); } to { color: var(--krv-deep); } }
@keyframes krv-word-in { from { opacity: 0.16; } to { opacity: 1; } }
@keyframes krv-progress { to { transform: scaleX(1); } }
:where(.has-deep-background-color) .krv-timeline .krv-timeline__year { animation-name: krv-ink-in-deep; }
@keyframes krv-ink-in-deep { from { color: rgba(238, 243, 242, 0.25); } to { color: var(--krv-pista); } }

/* ---------- case studies ---------- */
.krv-case { display: grid !important; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.krv-case__head { position: sticky; top: calc(var(--krv-header-h) + 1.5rem); }
.krv-case__n { font-size: var(--wp--preset--font-size--s); font-weight: 650; color: var(--krv-deep); margin: 0 0 0.6rem !important; font-variant-numeric: tabular-nums; }
.krv-case__head h2 { font-size: clamp(1.8rem, 1.1rem + 2.4vw, 3.2rem) !important; line-height: 1.04 !important; margin: 0 0 0.9rem !important; }
.krv-case__meta { font-size: var(--wp--preset--font-size--s); color: var(--krv-ink-soft); margin: 0 !important; max-width: 34ch; }
.krv-case__body h3 { font-family: var(--krv-text) !important; font-size: var(--wp--preset--font-size--s) !important; font-weight: 650 !important; letter-spacing: 0.01em !important; color: var(--krv-deep); margin: 1.6rem 0 0.4rem !important; }
.krv-case__body h3:first-child { margin-top: 0 !important; }
.krv-case__body p { font-size: var(--wp--preset--font-size--m); max-width: 60ch; }
.krv-case__body .is-style-krv-ticks li { font-family: var(--krv-display); font-size: clamp(1.15rem, 1rem + 0.6vw, 1.45rem); line-height: 1.3; }
@media (max-width: 781px) {
	.krv-case { grid-template-columns: 1fr; }
	.krv-case__head { position: static; margin-bottom: 1.5rem; }
}
.krv-brief__byline { font-size: var(--wp--preset--font-size--xs) !important; color: var(--krv-ink-soft); margin-top: 1.25rem !important; }
.krv-briefs .krv-card h3 { font-size: clamp(1.3rem, 1rem + 0.8vw, 1.7rem) !important; }

/* =========================================================================
   v3 (Oct 2026): Newsreader display type, the name as a logotype, the field reel,
   real photographs and video, a compact goal bar, cookie choices.
   ========================================================================= */

/* ---------- type: Newsreader for display, weights retuned for it ---------- */
:where(h1, h2, h3, .wp-block-heading) { font-optical-sizing: auto; }
.krv-mega { font-weight: 500 !important; letter-spacing: -0.04em !important; }
.is-style-krv-statement { font-weight: 440; letter-spacing: -0.022em; }
.krv-stat__value { font-weight: 480 !important; letter-spacing: -0.04em !important; }
.krv-way > h3 { font-weight: 460 !important; }
.krv-marquee__track > p { font-weight: 420; }
.krv-honour h3 { font-weight: 480 !important; }
.krv-sdg .krv-sdg__n, .krv-award .krv-award__year, .krv-timeline .krv-timeline__year, .krv-data__fig, .krv-goal > .krv-goal__n { font-weight: 480 !important; }
.krv-jr__title { font-weight: 480; }
.is-style-krv-index > li strong { font-weight: 520; }
.krv-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-weight: 460; }
.krv-footer .krv-footer__big { font-weight: 480; letter-spacing: -0.045em; }
.krv-pquote p, .is-style-krv-big p { font-weight: 420; }

/* ---------- the name, as a logotype ---------- */
.krv-wordmark a { gap: 0.7rem; }
.krv-wordmark .krv-mono {
	font-family: var(--krv-display);
	font-weight: 600;
	font-stretch: normal;
	font-size: 0.8rem;
	letter-spacing: 0.02em;
	width: 2.3rem;
	height: 2.3rem;
	padding-top: 1px;
}
.krv-wordmark .krv-wm { display: inline; font-family: var(--krv-display); font-size: 1.32rem; line-height: 1; letter-spacing: -0.014em; font-optical-sizing: auto; }
.krv-wordmark .krv-wm__first { font-weight: 600; }
.krv-wordmark .krv-wm__rest { font-weight: 400; }
@media (max-width: 781px) {
	.krv-wordmark .krv-wm { font-size: 1.16rem; }
	.krv-wordmark .krv-mono { width: 2.05rem; height: 2.05rem; font-size: 0.72rem; }
}
@media (max-width: 380px) { .krv-wordmark .krv-wm__rest { display: none; } }

/* ---------- home hero: the name, and the work in motion ---------- */
.krv-hero3 {
	position: sticky;
	top: 0;
	z-index: 0;
	min-height: 100svh;
	padding-top: calc(var(--krv-header-h) + clamp(1.5rem, 4vw, 3.5rem)) !important;
	padding-bottom: clamp(1.25rem, 3vw, 2.25rem) !important;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	background:
		radial-gradient(90% 70% at 85% 0%, rgba(200, 233, 160, 0.10) 0%, rgba(200, 233, 160, 0) 60%),
		radial-gradient(70% 60% at 0% 100%, rgba(14, 59, 67, 0.9) 0%, rgba(9, 42, 48, 0) 70%),
		var(--krv-deeper) !important;
	overflow: hidden;
}
.krv-hero3 > * { position: relative; z-index: 1; width: 100%; }
.krv-hero3__grid {
	display: grid !important;
	grid-template-columns: minmax(0, 1.28fr) minmax(0, 0.72fr);
	column-gap: clamp(2rem, 6vw, 6.5rem);
	align-items: end;
	margin-top: 0 !important;
}
.krv-hero3__text { margin: 0 !important; }
.krv-hero3__text > * { margin-block: 0 !important; }
.krv-hero3__name {
	font-family: var(--krv-display) !important;
	font-weight: 500 !important;
	color: var(--krv-white);
	margin: 0 !important;
	line-height: 0.86 !important;
	letter-spacing: -0.045em !important;
	font-size: inherit !important;
	text-wrap: nowrap;
}
.krv-hero3__first { display: block; font-size: clamp(4.6rem, 1rem + 11vw, 11.75rem); padding-bottom: 0.04em; }
.krv-hero3__rest { display: block; font-size: clamp(2.1rem, 0.8rem + 3.9vw, 4.75rem); letter-spacing: -0.03em; margin-top: 0.24em; color: rgba(255, 255, 255, 0.9); }
.krv-hero3__te { font-size: var(--wp--preset--font-size--s) !important; color: rgba(238, 243, 242, 0.62); margin-top: 1.1rem !important; letter-spacing: 0.01em; }
.krv-hero3__line { font-size: clamp(1.12rem, 0.98rem + 0.55vw, 1.42rem) !important; line-height: 1.45 !important; color: rgba(255, 255, 255, 0.9); max-width: 40ch; margin-top: clamp(1.3rem, 2.6vw, 2rem) !important; }
.krv-hero3__text .wp-block-buttons { margin-top: clamp(1.4rem, 3vw, 2rem) !important; }
.krv-hero3__foot {
	margin-top: clamp(2rem, 5vw, 3.75rem) !important;
	padding-top: 1.1rem;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	display: flex !important;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem 2rem;
}
.krv-hero3__foot p { margin: 0 !important; font-size: var(--wp--preset--font-size--xs) !important; color: rgba(238, 243, 242, 0.7); }
.krv-featured { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.35rem 1.35rem; }
.krv-featured b { font-family: var(--krv-text); font-weight: 600; color: rgba(238, 243, 242, 0.62); margin-right: 0.25rem; }
.krv-featured a, .krv-featured span { font-family: var(--krv-display); font-size: 1.02rem; color: rgba(238, 243, 242, 0.88); text-decoration: none; white-space: nowrap; background: none !important; }
.krv-featured a:hover { color: var(--krv-pista); }
@media (max-width: 899px) {
	.krv-hero3 { min-height: 0; position: relative; }
	.krv-hero3__grid { grid-template-columns: 1fr; row-gap: 2.25rem; }
	.krv-hero3__reel { max-width: 30rem; }
}

/* The reel: a 4:5 frame of short field clips. Plays muted while on screen, pauses on request. */
.krv-reel { position: relative; margin: 0 !important; justify-self: end; width: 100%; max-width: 27rem; }
.krv-reel__frame { position: relative; aspect-ratio: 4 / 5; border-radius: clamp(18px, 2vw, 28px); overflow: hidden; background: #0c3238; box-shadow: 0 40px 90px -40px rgba(0, 0, 0, 0.65), 0 0 0 1px rgba(255, 255, 255, 0.06); }
.krv-reel__frame img, .krv-reel__frame video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.krv-reel__frame video { opacity: 0; transition: opacity 700ms var(--krv-ease); }
.krv-reel.is-playing .krv-reel__frame video, .krv-reel.is-paused .krv-reel__frame video { opacity: 1; }
.krv-reel__toggle {
	position: absolute; right: 0.85rem; bottom: 0.85rem; z-index: 2;
	width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 0; cursor: pointer;
	display: grid; place-items: center;
	background: rgba(9, 42, 48, 0.62); color: #fff; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
	transition: background-color 250ms, transform 300ms var(--krv-ease);
}
.krv-reel__toggle:hover { background: var(--krv-pista); color: var(--krv-ink); transform: scale(1.06); }
.krv-reel__toggle svg { width: 1rem; height: 1rem; fill: currentColor; }
.krv-reel__toggle .i-play { display: none; }
.krv-reel:not(.is-playing) .krv-reel__toggle .i-play { display: block; }
.krv-reel:not(.is-playing) .krv-reel__toggle .i-pause { display: none; }
.krv-reel__cap { display: flex; align-items: center; gap: 0.9rem; margin-top: 0.9rem; min-height: 1.4em; font-size: var(--wp--preset--font-size--xs); color: rgba(238, 243, 242, 0.76); }
.krv-reel__ticks { display: flex; gap: 0.3rem; flex: none; }
.krv-reel__ticks i { width: 0.42rem; height: 0.42rem; border-radius: 99px; background: rgba(238, 243, 242, 0.25); transition: width 500ms var(--krv-ease), background-color 400ms; }
.krv-reel__ticks i.is-now { width: 1.3rem; background: var(--krv-pista); }
.krv-reel__cue { transition: opacity 300ms; }
.krv-reel__cue.is-swap { opacity: 0; }

/* ---------- video: inline loops, watch buttons and the player dialog ---------- */
.krv-loop { position: relative; margin: 0 !important; }
.krv-loop video, .krv-loop img { width: 100%; height: auto; display: block; border-radius: 18px; background: var(--krv-mist); }
.krv-loop figcaption { margin-top: 0.7rem; }
.krv-loop__toggle { position: absolute; right: 0.7rem; top: 0.7rem; width: 2.4rem; height: 2.4rem; border-radius: 50%; border: 0; display: grid; place-items: center; background: rgba(9, 42, 48, 0.55); color: #fff; cursor: pointer; }
.krv-loop__toggle svg { width: 0.85rem; height: 0.85rem; fill: currentColor; }
.krv-loop__toggle .i-play { display: none; }
.krv-loop.is-stopped .krv-loop__toggle .i-play { display: block; }
.krv-loop.is-stopped .krv-loop__toggle .i-pause { display: none; }

.krv-vcards { gap: 1.25rem !important; } /* the block gap: WordPress's grid column maths assumes it */
.krv-vcard { position: relative; margin: 0 !important; }
.krv-vcard a.krv-watch { display: block; position: relative; border-radius: 18px; overflow: hidden; background: var(--krv-deep); color: #fff; text-decoration: none; background-image: none !important; padding: 0 !important; }
.krv-vcard a.krv-watch img { width: 100%; display: block; aspect-ratio: var(--ar, 9 / 16); object-fit: cover; transition: transform 1100ms var(--krv-ease), opacity 400ms; }
.krv-vcard a.krv-watch:hover img { transform: scale(1.035); }
.krv-vcard a.krv-watch::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9, 42, 48, 0) 45%, rgba(9, 42, 48, 0.86) 100%); }
.krv-vcard .krv-watch__play { position: absolute; left: 1rem; bottom: 1rem; z-index: 1; display: inline-flex; align-items: center; gap: 0.6rem; font-weight: 600; font-size: var(--wp--preset--font-size--s); }
.krv-vcard .krv-watch__play::before { content: ""; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--krv-pista) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5.5v13l11-6.5z' fill='%230F2629'/%3E%3C/svg%3E") 55% 50% / 1.1rem no-repeat; flex: none; transition: transform 400ms var(--krv-ease); }
.krv-vcard a.krv-watch:hover .krv-watch__play::before { transform: scale(1.1); }
.krv-vcard h3 { font-size: clamp(1.15rem, 1rem + 0.5vw, 1.4rem) !important; margin: 0.9rem 0 0.3rem !important; line-height: 1.2 !important; }
.krv-vcard p { margin: 0 !important; font-size: var(--wp--preset--font-size--s); color: var(--krv-ink-soft); }
:where(.has-deep-background-color, .has-deeper-background-color) .krv-vcard p { color: rgba(238, 243, 242, 0.75); }

a.krv-watch-link { display: inline-flex; align-items: center; gap: 0.7rem; font-weight: 600; text-decoration: none; color: inherit; background: none !important; }
a.krv-watch-link::before { content: ""; width: 2.5rem; height: 2.5rem; border-radius: 50%; flex: none; background: var(--krv-pista) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5.5v13l11-6.5z' fill='%230F2629'/%3E%3C/svg%3E") 55% 50% / 1.05rem no-repeat; transition: transform 400ms var(--krv-ease); }
a.krv-watch-link:hover::before { transform: scale(1.1); }

dialog.krv-player { border: 0; padding: 0; background: transparent; max-width: min(92vw, 70rem); max-height: 92vh; overflow: visible; }
dialog.krv-player::backdrop { background: rgba(6, 26, 30, 0.86); backdrop-filter: blur(4px); }
dialog.krv-player video { display: block; max-width: 100%; max-height: 82vh; width: auto; height: auto; margin: 0 auto; border-radius: 16px; background: #000; }
dialog.krv-player .krv-player__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: #fff; padding: 0 0 0.75rem; font-size: var(--wp--preset--font-size--s); }
dialog.krv-player .krv-player__title { margin: 0; font-family: var(--krv-display); font-size: clamp(1.1rem, 1rem + 0.6vw, 1.5rem); line-height: 1.2; }
dialog.krv-player button { width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 0; background: var(--krv-pista); color: var(--krv-ink); font-size: 1.3rem; line-height: 1; cursor: pointer; flex: none; }

/* ---------- film strip: a row of photographs you can swipe or step through ---------- */
.krv-film { position: relative; }
.krv-film__track {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: clamp(0.75rem, 1.6vw, 1.25rem) !important;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	overscroll-behavior-x: contain;
	scrollbar-width: none;
	margin-inline: calc(var(--wp--style--root--padding-left, var(--krv-gutter)) * -1) !important;
	padding: 0.25rem var(--wp--style--root--padding-left, var(--krv-gutter)) 0.5rem !important;
	scroll-padding-inline: var(--wp--style--root--padding-left, var(--krv-gutter));
}
.krv-film__track::-webkit-scrollbar { display: none; }
/* every frame shares one height; portraits sit at 4:5 and landscapes at 3:2, like a contact sheet */
.krv-film { --krv-film-h: clamp(17rem, 27vw, 25rem); }
.krv-film__track > figure { flex: 0 0 auto; width: calc(var(--krv-film-h) * 0.8); margin: 0 !important; scroll-snap-align: start; }
.krv-film__track > figure.is-wide { width: calc(var(--krv-film-h) * 1.5); }
.krv-film__track > figure img { width: 100%; height: var(--krv-film-h); object-fit: cover; border-radius: 16px; display: block; background: var(--krv-mist); }
@media (max-width: 599px) { .krv-film { --krv-film-h: 21rem; } .krv-film__track > figure.is-wide { width: min(86vw, calc(var(--krv-film-h) * 1.5)); } }
.krv-film__track > figure figcaption { font-size: var(--wp--preset--font-size--xs) !important; margin-top: 0.6rem; }
.krv-film__nav { display: flex; gap: 0.5rem; justify-content: flex-end; margin-top: 0.9rem; }
.krv-film__nav button { width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 0; background: var(--krv-white); color: var(--krv-ink); box-shadow: inset 0 0 0 1px var(--krv-line); cursor: pointer; display: grid; place-items: center; transition: background-color 250ms; }
.krv-film__nav button:hover { background: var(--krv-pista); }
.krv-film__nav button:disabled { opacity: 0.35; cursor: default; }
.krv-film__nav svg { width: 1.1rem; height: 1.1rem; }
:where(.has-deep-background-color, .has-deeper-background-color) .krv-film__nav button { background: rgba(238, 243, 242, 0.08); color: #fff; box-shadow: inset 0 0 0 1px var(--krv-line-on-deep); }

/* ---------- goal bar: seventeen goals in one row, one panel that explains the one you point at ---------- */
.krv-goalbar { display: grid !important; grid-template-columns: repeat(17, minmax(0, 1fr)); gap: 0.4rem !important; margin-top: 0 !important; }
.krv-gb { position: relative; margin: 0 !important; aspect-ratio: 1; border-radius: 10px; background: var(--krv-white); box-shadow: inset 0 0 0 1px var(--krv-line); overflow: hidden; cursor: pointer; transition: transform 350ms var(--krv-ease), background-color 300ms, box-shadow 300ms; }
.krv-gb::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: var(--sdg); transition: height 400ms var(--krv-ease); }
.krv-gb > .krv-gb__n { position: absolute; left: 0.5rem; top: 0.35rem; margin: 0 !important; font-family: var(--krv-display); font-size: clamp(1.05rem, 0.7rem + 1vw, 1.7rem); font-weight: 480; line-height: 1; color: var(--krv-ink); z-index: 1; font-variant-numeric: lining-nums; transition: color 300ms; }
.js .krv-gb > h3, .js .krv-gb > p:not(.krv-gb__n) { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; margin: 0 !important; }
.krv-gb:hover, .krv-gb:focus-visible { transform: translateY(-3px); }
.krv-gb.is-active::after, .krv-gb:hover::after { height: 100%; }
.krv-gb.is-active > .krv-gb__n, .krv-gb:hover > .krv-gb__n { color: #fff; }
.krv-gb--2.is-active > .krv-gb__n, .krv-gb--7.is-active > .krv-gb__n, .krv-gb--11.is-active > .krv-gb__n, .krv-gb--2:hover > .krv-gb__n, .krv-gb--7:hover > .krv-gb__n, .krv-gb--11:hover > .krv-gb__n { color: #1b1b1b; }
.krv-gb--1 { --sdg: #E5243B; } .krv-gb--2 { --sdg: #DDA63A; } .krv-gb--3 { --sdg: #4C9F38; } .krv-gb--4 { --sdg: #C5192D; }
.krv-gb--5 { --sdg: #FF3A21; } .krv-gb--6 { --sdg: #26BDE2; } .krv-gb--7 { --sdg: #FCC30B; } .krv-gb--8 { --sdg: #A21942; }
.krv-gb--9 { --sdg: #FD6925; } .krv-gb--10 { --sdg: #DD1367; } .krv-gb--11 { --sdg: #FD9D24; } .krv-gb--12 { --sdg: #BF8B2E; }
.krv-gb--13 { --sdg: #3F7E44; } .krv-gb--14 { --sdg: #0A97D9; } .krv-gb--15 { --sdg: #56C02B; } .krv-gb--16 { --sdg: #00689D; }
.krv-gb--17 { --sdg: #19486A; }
.krv-gb-panel { margin-top: 1rem !important; display: grid !important; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1rem clamp(2rem, 5vw, 5rem); align-items: start; min-height: 7.5rem; padding: 1.4rem 0 0; border-top: 1px solid var(--krv-line); }
.krv-gb-panel > * { margin: 0 !important; }
.krv-gb-panel__title { font-family: var(--krv-display); font-size: clamp(1.5rem, 1rem + 1.6vw, 2.4rem); line-height: 1.08; letter-spacing: -0.02em; font-weight: 480; }
.krv-gb-panel__title small { display: block; font-family: var(--krv-text); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.01em; font-weight: 600; color: var(--krv-ink-soft); margin-bottom: 0.4rem; }
.krv-gb-panel__text { font-size: var(--wp--preset--font-size--m); color: var(--krv-ink-soft); max-width: 52ch; }
.krv-gb-panel__text a { color: var(--krv-ink); font-weight: 600; }
.no-js .krv-gb-panel, html:not(.js) .krv-gb-panel { display: none !important; }
html:not(.js) .krv-goalbar { grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); }
html:not(.js) .krv-gb { aspect-ratio: auto; padding: 2.6rem 0.8rem 1rem; }
@media (max-width: 781px) {
	.krv-goalbar { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.krv-gb-panel { grid-template-columns: 1fr; min-height: 11rem; }
}

/* ---------- recognition, told briefly ---------- */
.krv-honours--brief { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 !important; border-top: 1.5px solid currentColor; }
.krv-honours--brief > .krv-honour { display: block !important; padding: 1.3rem 1.4rem 1.4rem 0 !important; border-bottom: 1px solid var(--krv-line); }
.krv-honours--brief > .krv-honour + .krv-honour { padding-left: 1.4rem !important; }
.krv-honours--brief > .krv-honour:nth-child(3n+1) { padding-left: 0 !important; }
.krv-honours--brief > .krv-honour:not(:nth-child(3n)) { border-right: 1px solid var(--krv-line); }
.krv-honours--brief > .krv-honour::before { display: none; }
.krv-honours--brief .krv-honour__year { font-size: var(--wp--preset--font-size--xs); margin-bottom: 0.5rem !important; }
.krv-honours--brief h3 { font-size: clamp(1.2rem, 0.95rem + 0.8vw, 1.6rem) !important; margin-bottom: 0.45rem !important; }
.krv-honours--brief .krv-honour__for { font-size: var(--wp--preset--font-size--xs); }
@media (max-width: 781px) {
	.krv-honours--brief { grid-template-columns: 1fr; }
	.krv-honours--brief > .krv-honour, .krv-honours--brief > .krv-honour + .krv-honour { padding: 1.1rem 0 !important; border-right: 0 !important; }
}
.krv-count { display: flex; align-items: baseline; gap: 0.8rem; flex-wrap: wrap; }
.krv-count b { font-family: var(--krv-display); font-weight: 480; font-size: clamp(3rem, 1.6rem + 4.6vw, 6.4rem); line-height: 0.9; letter-spacing: -0.045em; color: var(--krv-deep); font-variant-numeric: lining-nums; }
.krv-count span { max-width: 22ch; font-size: var(--wp--preset--font-size--s); color: var(--krv-ink-soft); }

/* ---------- photographs ---------- */
.krv-photo { margin: 0 !important; }
.krv-photo img { border-radius: 18px; width: 100%; height: auto; display: block; }
.krv-photo.is-portrait img { aspect-ratio: 4 / 5; object-fit: cover; }
.krv-photo.is-landscape img { aspect-ratio: 3 / 2; object-fit: cover; }
.krv-photo.is-square img { aspect-ratio: 1; object-fit: cover; }
.krv-gallery { columns: 3 17rem; column-gap: clamp(0.9rem, 2vw, 1.4rem); }
.krv-gallery > figure { break-inside: avoid; margin: 0 0 clamp(0.9rem, 2vw, 1.4rem) !important; display: block; }
.krv-gallery > figure img { width: 100%; height: auto; display: block; border-radius: 14px; }
.krv-gallery > figure figcaption { font-size: var(--wp--preset--font-size--xs) !important; }
.krv-duo { gap: 1.25rem !important; }

/* ---------- places, grouped by continent ---------- */
.krv-places { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: 1.6rem clamp(1.5rem, 3vw, 3rem) !important; }
.krv-places > div { margin: 0 !important; border-top: 1.5px solid currentColor; padding-top: 0.9rem; }
.krv-places h3 { font-size: var(--wp--preset--font-size--l) !important; margin: 0 0 0.5rem !important; }
.krv-places p { margin: 0 !important; color: var(--krv-ink-soft); font-size: var(--wp--preset--font-size--s); line-height: 1.6; }
:where(.has-deep-background-color) .krv-places p { color: rgba(238, 243, 242, 0.78); }

/* ---------- chapters: the early years, drawn ---------- */
.krv-chapters { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: clamp(1rem, 2vw, 1.5rem) !important; counter-reset: ch; }
.krv-chapter { margin: 0 !important; background: var(--krv-white); border-radius: 20px; padding: 1.3rem 1.3rem 1.5rem !important; position: relative; }
.krv-chapter > * { margin-block: 0 !important; }
.krv-chapter svg { width: 100%; height: auto; display: block; margin-bottom: 1rem !important; border-radius: 12px; }
.krv-chapter .krv-chapter__when { font-size: var(--wp--preset--font-size--xs); font-weight: 650; color: var(--krv-deep); margin-bottom: 0.35rem !important; }
.krv-chapter h3 { font-size: clamp(1.2rem, 1rem + 0.6vw, 1.5rem) !important; margin-bottom: 0.5rem !important; }
.krv-chapter p:last-child { font-size: var(--wp--preset--font-size--s); color: var(--krv-ink-soft); }

/* ---------- cookie choices ---------- */
.krv-consent {
	position: fixed; z-index: 90; left: 1rem; bottom: 1rem; max-width: 26rem;
	background: var(--krv-deeper); color: var(--krv-paper);
	border-radius: 18px; padding: 1.1rem 1.15rem 1rem; box-shadow: 0 24px 60px -24px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(238, 243, 242, 0.08);
	font-size: var(--wp--preset--font-size--s); line-height: 1.45;
	transform: translateY(140%); transition: transform 600ms var(--krv-ease);
}
.krv-consent.is-on { transform: none; }
.krv-consent p { margin: 0 0 0.85rem; }
.krv-consent a { color: var(--krv-pista); }
.krv-consent__row { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.krv-consent button { min-height: 44px; padding: 0 1.1rem; border-radius: 999px; border: 0; font: inherit; font-weight: 650; cursor: pointer; }
.krv-consent .is-yes { background: var(--krv-pista); color: var(--krv-ink); }
.krv-consent .is-no { background: transparent; color: var(--krv-paper); box-shadow: inset 0 0 0 1.5px rgba(238, 243, 242, 0.5); }
.krv-has-actionbar .krv-consent { bottom: 5.5rem; }
@media (max-width: 599px) { .krv-consent { left: 0.75rem; right: 0.75rem; max-width: none; } }
@media (prefers-reduced-motion: reduce) { .krv-consent { transition: none; } }

/* ---------- author box: a real face ---------- */
.krv-author__photo img { border-radius: 50%; aspect-ratio: 1; object-fit: cover; width: 96px; height: 96px; }

/* ---------- reduced motion: no autoplay, no drift ---------- */
@media (prefers-reduced-motion: reduce) {
	.krv-reel__frame video, .krv-loop video { transition: none; }
}

/* Journeys, grouped: three steps instead of seven, so the map moves quickly. */
.krv-journeys--grouped.is-live { height: calc(100svh + var(--krv-jr-steps, 3) * 38svh); }
@media (max-width: 781px) { .krv-journeys--grouped.is-live { height: calc(100svh + var(--krv-jr-steps, 3) * 32svh); } }
.krv-jr__caption { min-height: 4.5em; }

.krv-journeys--grouped .krv-jr__title { font-size: clamp(2rem, 1rem + 3.2vw, 3.9rem); line-height: 1; letter-spacing: -0.03em; }

/* ---------- inner pages: media heroes, tall watch cards, pairs (v3) ---------- */

/* Inner-page hero with a video loop or a watch card on the right */
.krv-mediahero .krv-loop video { aspect-ratio: 4 / 5; object-fit: cover; }
.krv-mediahero .krv-vcard--hero { margin-inline: auto; }

/* A tall (portrait) watch card that should not grow to the full column width */
.krv-vcard--tall { max-width: 20rem; margin-inline: auto; }
.krv-vcard--tall .krv-vcard { margin: 0; }
@media (max-width: 781px) { .krv-vcard--tall { max-width: 18rem; } }

/* Two photographs or loops side by side inside a story column */
.krv-pair .krv-photo img, .krv-pair .krv-loop video { aspect-ratio: 4 / 5; object-fit: cover; height: auto; }

/* Video cards in a WordPress grid: keep the gap at the block gap (1.25rem) so the column maths holds */
.krv-vgrid { gap: 1.25rem !important; }


/* A row of photographs and clips shares one frame shape */
.krv-vcards.is-r45 { --krv-row-ar: 4 / 5; }
.krv-vcards.is-r11 { --krv-row-ar: 1; }
.krv-vcards.is-r43 { --krv-row-ar: 4 / 3; }
:is(.krv-vcards.is-r45, .krv-vcards.is-r11, .krv-vcards.is-r43) > .krv-photo img,
:is(.krv-vcards.is-r45, .krv-vcards.is-r11, .krv-vcards.is-r43) > .krv-loop video { aspect-ratio: var(--krv-row-ar); object-fit: cover; height: auto; width: 100%; }

/* ---------- video library players, media pairs, appearances, press downloads ---------- */

/* Real players on the videos page: poster first, the file loads on play */
.krv-vplay { margin: 0 !important; }
.krv-vplay video { width: 100%; height: auto; display: block; border-radius: 16px; background: #0c3238; object-fit: cover; }
.krv-vplay--v video { aspect-ratio: 9 / 16; }
.krv-vplay--p video { aspect-ratio: 4 / 5; }
.krv-vplay--w video { aspect-ratio: 16 / 9; }
.krv-vcard .krv-vcard__meta { font-size: var(--wp--preset--font-size--xs) !important; margin-top: 0.4rem !important; font-variant-numeric: tabular-nums; opacity: 0.85; }

/* Two videos side by side (a wide one and a tall one) */
.krv-vpair { align-items: flex-start !important; }

/* Appearances: media sits in the right column, tall clips kept to a sensible size */
.krv-appearance .krv-row__body > * { max-width: 36rem; }
.krv-appearance .krv-loop, .krv-appearance a.krv-watch[style*="9 / 16"] { max-width: 20rem; }
.krv-appearance .krv-row__body .krv-photo img { border-radius: 16px; }

/* Award moments and press downloads: one even grid */
.krv-moments .krv-photo img, .krv-moments .krv-vcard img { border-radius: 16px; }
.krv-press-photos figure { margin: 0 !important; }
.krv-press-photos img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 14px; display: block; }
.krv-press-photos .krv-pos-right img { object-position: 92% 50%; }

/* Short silent clips shown in an even 4:5 frame */
.krv-loop.is-45 video { aspect-ratio: 4 / 5; object-fit: cover; height: auto; }

/* Photo library: two columns on phones, so the page stays browsable */
@media (max-width: 40rem) {
  .krv-photo-lib { columns: 2 !important; column-gap: 0.75rem !important; }
  .krv-photo-lib > figure { margin-bottom: 0.75rem !important; }
  .krv-photo-lib > figure img { border-radius: 10px; }
}

/* A clip beside text: kept to a modest size */
.krv-loop.krv-loop--sm { max-width: 20rem; }

/* A one-word name as a section title (OurVolunteer.com): sized to stay on one line beside the content */
.krv-h-fit { overflow-wrap: normal !important; }
@media (min-width: 782px) { .krv-h-fit { font-size: min(var(--wp--preset--font-size--xxl), 4.1vw) !important; } }

/* ---------- share links under an article ---------- */
.krv-share { max-width: var(--wp--style--global--content-size, 46rem); margin-top: clamp(2.5rem, 5vw, 3.5rem) !important; padding-top: 1.25rem; border-top: 1px solid var(--krv-line); display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem; }
.krv-share__label { margin: 0 !important; font-size: var(--wp--preset--font-size--xs) !important; font-weight: 600; color: var(--krv-ink-soft); }
.krv-share__list { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.krv-share__list li { margin: 0 !important; }
.krv-share__link { box-sizing: border-box; display: inline-flex; align-items: center; min-height: 40px; padding: 0.45em 1.05em; border: 0; border-radius: 999px; background: transparent; box-shadow: inset 0 0 0 1px rgba(15, 38, 41, 0.28); color: var(--krv-ink); font-family: var(--krv-text); font-size: 0.86rem; font-weight: 600; line-height: 1; text-decoration: none !important; cursor: pointer; transition: background-color 200ms, color 200ms, box-shadow 200ms; }
.krv-share__link:hover, .krv-share__link:focus-visible { background: var(--krv-ink); color: var(--krv-paper); box-shadow: inset 0 0 0 1px var(--krv-ink); }
.krv-share__copy.is-done { background: var(--krv-pista); color: var(--krv-ink); box-shadow: inset 0 0 0 1px var(--krv-pista); }
@media print { .krv-share { display: none !important; } }
/* empty paragraphs left behind in older posts take no space */
.krv-article-main .wp-block-post-content > p:empty { display: none; }

/* =====================================================================================
   v4: more ways to open, explain and end a page, so no two pages share a skeleton
   ===================================================================================== */

/* ---------- hero: type alone ---------- */
.krv-hero-type .krv-hero-type__title {
	font-size: clamp(3rem, 1rem + 8.2vw, 9.75rem) !important;
	line-height: 0.92 !important;
	letter-spacing: -0.04em !important;
	font-weight: 560 !important;
	max-width: 12ch !important;
	margin: 0 0 clamp(1.5rem, 4vw, 3.25rem) !important;
}
.krv-hero-type .krv-split { align-items: end; }
.krv-hero-type .krv-lede { margin-top: 0 !important; }
.krv-hero-type__facts table { border-collapse: collapse; width: 100%; font-size: var(--wp--preset--font-size--s); }
.krv-hero-type__facts td { border: 0 !important; border-top: 1px solid var(--krv-line) !important; padding: 0.7rem 0.75rem 0.7rem 0 !important; vertical-align: top; }
.krv-hero-type__facts tr:last-child td { border-bottom: 1px solid var(--krv-line) !important; }
.krv-hero-type__facts tr td:first-child { width: 38%; color: var(--krv-ink-soft); font-weight: 600; }

/* ---------- hero: a deep band with a strip of photographs ---------- */
.krv-hero-band h1 { max-width: 17ch; }
.krv-hero-band .krv-breadcrumbs a, .krv-hero-band .krv-breadcrumbs li { color: rgba(238, 243, 242, 0.78); }
.krv-hero-band__strip { display: grid; grid-template-columns: 1fr 1.35fr 1fr; gap: clamp(0.75rem, 1.6vw, 1.25rem); margin-top: clamp(2.5rem, 6vw, 4.5rem) !important; align-items: end; }
.krv-hero-band__strip > figure { margin: 0 !important; }
.krv-hero-band__strip img { width: 100%; height: 100%; object-fit: cover; border-radius: 18px; display: block; }
.krv-hero-band__strip > figure:nth-child(1) img { aspect-ratio: 4 / 5; }
.krv-hero-band__strip > figure:nth-child(2) img { aspect-ratio: 3 / 2; }
.krv-hero-band__strip > figure:nth-child(3) img { aspect-ratio: 4 / 5; transform: translateY(-2.5rem); }
@media (max-width: 781px) {
	.krv-hero-band__strip { grid-template-columns: 78% 78% 78%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 0.5rem; }
	.krv-hero-band__strip > figure { scroll-snap-align: start; }
	.krv-hero-band__strip > figure:nth-child(3) img { transform: none; }
}

/* ---------- hero: opens with his words ---------- */
.krv-hero-quote .krv-hero-quote__title { font-size: var(--wp--preset--font-size--xl) !important; font-family: var(--krv-text) !important; font-weight: 650 !important; letter-spacing: -0.01em !important; max-width: none !important; margin-bottom: clamp(1.25rem, 3vw, 2rem) !important; }
.krv-hero-quote .krv-hero-quote__q { border: 0 !important; padding: 0 !important; margin: 0 0 clamp(1.5rem, 3.5vw, 2.75rem) !important; }
.krv-hero-quote .krv-hero-quote__q p { font-family: var(--krv-display); font-size: clamp(2.1rem, 1rem + 4vw, 5.25rem) !important; line-height: 1.02 !important; letter-spacing: -0.03em; font-weight: 480; max-width: 20ch; text-indent: -0.42em; }
.krv-hero-quote .krv-hero-quote__q p::before { content: "\201C"; color: var(--krv-deep); }
.krv-hero-quote .krv-hero-quote__q p::after { content: "\201D"; color: var(--krv-deep); }
.krv-hero-quote .krv-hero-quote__q cite { display: block; margin-top: 1rem; font-style: normal; font-size: var(--wp--preset--font-size--s); color: var(--krv-ink-soft); }
.krv-hero-quote .krv-lede { margin-top: 0 !important; }

/* ---------- hero: the page's own index beside the title ---------- */
.krv-toc-list { border-radius: 20px; background: var(--krv-white); padding: clamp(1.25rem, 2.4vw, 2rem) !important; }
.krv-toc-list__title { font-size: var(--wp--preset--font-size--xs) !important; font-weight: 650; color: var(--krv-ink-soft); margin: 0 0 0.6rem !important; }
.krv-toc-list__list { list-style: none; margin: 0 !important; padding: 0 !important; }
.krv-toc-list__list li { border-top: 1px solid var(--krv-line); margin: 0 !important; }
.krv-toc-list__list li:last-child { border-bottom: 1px solid var(--krv-line); }
.krv-toc-list__list a { display: flex; justify-content: space-between; gap: 1rem; padding: 0.7rem 0; color: inherit; text-decoration: none; font-family: var(--krv-display); font-size: clamp(1.05rem, 1rem + 0.35vw, 1.3rem); line-height: 1.25; transition: padding-left 450ms var(--krv-ease), color 200ms; }
.krv-toc-list__list a::after { content: ""; flex: 0 0 0.5rem; height: 0.5rem; margin-top: 0.45em; border-radius: 50%; background: var(--krv-pista); opacity: 0; transition: opacity 250ms; }
.krv-toc-list__list a:hover { padding-left: 0.4rem; color: var(--krv-deep); }
.krv-toc-list__list a:hover::after { opacity: 1; }

/* ---------- hero: a full-bleed photograph ---------- */
.krv-hero-photo.wp-block-cover { padding: calc(var(--krv-header-h) + 2rem) var(--krv-gutter) clamp(2.5rem, 6vw, 5.5rem) !important; margin-top: 0 !important; color: var(--krv-white); }
.krv-hero-photo .wp-block-cover__inner-container { width: 100%; }
.krv-hero-photo__text { max-width: var(--wp--style--global--wide-size, 86rem); margin-inline: auto !important; }
.krv-hero-photo h1 { color: var(--krv-white); max-width: 14ch; text-shadow: 0 2px 24px rgba(9, 42, 48, 0.35); }
.krv-hero-photo .krv-lede { color: rgba(255, 255, 255, 0.92); max-width: 38ch; }
.krv-hero-photo .krv-breadcrumbs a, .krv-hero-photo .krv-breadcrumbs li, .krv-hero-photo .krv-eyebrow { color: rgba(255, 255, 255, 0.85); }
.krv-hero-photo.wp-block-cover { min-height: max(34rem, 86svh) !important; }
.krv-hero-photo .wp-block-cover__background { background: linear-gradient(90deg, rgba(9, 42, 48, 0.9) 0%, rgba(9, 42, 48, 0.66) 34%, rgba(9, 42, 48, 0.16) 66%, rgba(9, 42, 48, 0.04) 100%), linear-gradient(0deg, rgba(9, 42, 48, 0.62) 0%, rgba(9, 42, 48, 0) 46%) !important; opacity: 1 !important; }
.krv-hero-photo .krv-hero-photo__text > * { max-width: min(40rem, 100%); }
@media (max-width: 781px) {
	.krv-hero-photo.wp-block-cover { min-height: max(32rem, 92svh) !important; }
	.krv-hero-photo .wp-block-cover__background { background: linear-gradient(0deg, rgba(9, 42, 48, 0.94) 0%, rgba(9, 42, 48, 0.74) 46%, rgba(9, 42, 48, 0.2) 78%, rgba(9, 42, 48, 0.08) 100%) !important; }
}

/* ---------- visible questions and answers ---------- */
.krv-qa__q { font-family: var(--krv-display) !important; font-size: clamp(1.15rem, 1rem + 0.7vw, 1.5rem) !important; font-weight: 540 !important; line-height: 1.25 !important; letter-spacing: -0.01em; margin: 0 0 0.6rem !important; }
.krv-qa > p { color: var(--krv-ink-soft); margin: 0 0 0.6rem !important; max-width: 68ch; }
.krv-qa > p:last-child { margin-bottom: 0 !important; }
.krv-qa-grid { gap: 1rem !important; }
.krv-qa-grid > .krv-qa { background: var(--krv-white); border-radius: 18px; padding: clamp(1.25rem, 2.2vw, 1.9rem) !important; margin: 0 !important; height: 100%; box-sizing: border-box; }
:where(.has-mist-background-color) .krv-qa-grid > .krv-qa { background: var(--krv-paper); }
.krv-qa-list > .krv-qa { padding: clamp(1.25rem, 2.4vw, 1.9rem) 0 !important; border-top: 1px solid var(--krv-line); margin: 0 !important; }
.krv-qa-list > .krv-qa:last-child { border-bottom: 1px solid var(--krv-line); }
.krv-qa-list > .krv-qa .krv-qa__q::before { content: "Q"; display: inline-grid; place-items: center; width: 1.6em; height: 1.6em; margin-right: 0.6em; border-radius: 50%; background: var(--krv-pista); color: var(--krv-ink); font-family: var(--krv-text); font-size: 0.62em; font-weight: 700; vertical-align: 0.25em; }
.krv-qa-rows .krv-row__body p { color: var(--krv-ink-soft); }

/* ---------- endings ---------- */
.krv-section--doors { padding-top: clamp(3rem, 6vw, 6rem) !important; padding-bottom: clamp(3rem, 6vw, 6rem) !important; }
.krv-doors { gap: 1rem !important; }
.krv-door { border-radius: var(--krv-radius-sheet); padding: clamp(1.75rem, 4vw, 3.5rem) !important; margin: 0 !important; min-height: 19rem; display: flex; flex-direction: column; background: var(--krv-pista); color: var(--krv-ink); }
.krv-door h2 { font-size: clamp(1.9rem, 1.2rem + 2.6vw, 3.6rem) !important; line-height: 1 !important; max-width: 13ch; margin: 0 0 1rem !important; color: inherit !important; }
.krv-door p { max-width: 36ch; margin: 0 0 1.5rem !important; }
.krv-door .wp-block-buttons { margin-top: auto; }
.krv-door--main { background: var(--krv-deep); color: var(--krv-paper); }
.krv-door--main p { color: rgba(238, 243, 242, 0.82); }
.krv-door:not(.krv-door--main) .wp-block-button__link { background: var(--krv-ink); color: var(--krv-paper); }

.krv-section--letter { padding-top: clamp(3.5rem, 7vw, 7rem) !important; padding-bottom: clamp(3.5rem, 7vw, 7rem) !important; }
.krv-letter { max-width: 34rem; margin-inline: auto !important; padding: clamp(1.75rem, 4vw, 3rem) !important; background: var(--krv-white); border-radius: 6px; box-shadow: 0 30px 60px -48px rgba(9, 42, 48, 0.55), 0 0 0 1px var(--krv-line); transform: rotate(-0.6deg); }
.krv-letter p { font-family: var(--krv-display); font-size: clamp(1.15rem, 1.05rem + 0.4vw, 1.35rem); line-height: 1.5; margin: 0 0 1rem !important; }
.krv-letter .krv-letter__sign { font-size: clamp(2rem, 1.6rem + 1.5vw, 2.8rem); font-weight: 420; letter-spacing: -0.03em; margin: 1.5rem 0 0.75rem !important; color: var(--krv-deep); transform: rotate(-3deg); transform-origin: left; display: inline-block; }
.krv-letter .krv-letter__lines { font-family: var(--krv-text); font-size: var(--wp--preset--font-size--s); line-height: 1.7; margin: 0 !important; border-top: 1px solid var(--krv-line); padding-top: 0.9rem; }
.krv-letter .krv-letter__lines a { color: var(--krv-ink); font-weight: 650; display: inline-block; padding: 0.3rem 0; min-height: 24px; }

.krv-endline { gap: 1rem 2rem; align-items: center; border-top: 1.5px solid var(--krv-ink); padding-top: 1.5rem !important; }
.krv-endline__text { font-family: var(--krv-display); font-size: clamp(1.3rem, 1.1rem + 0.9vw, 1.9rem); line-height: 1.2; margin: 0 !important; max-width: 34ch; }
.krv-endline .wp-block-buttons { margin: 0 !important; }

/* ---------- the long answer, behind a panel ---------- */
.krv-deep { margin-top: clamp(2rem, 4vw, 3rem) !important; }
.krv-deep__label { font-size: var(--wp--preset--font-size--xs) !important; font-weight: 650; color: var(--krv-ink-soft); margin: 0 0 0.6rem !important; }
.krv-deep__panel { border-radius: 20px; background: var(--krv-white); box-shadow: 0 0 0 1px var(--krv-line); padding: 0 !important; margin: 0 !important; overflow: hidden; }
:where(.has-deep-background-color, .has-deeper-background-color) .krv-deep__panel { background: rgba(238, 243, 242, 0.06); box-shadow: inset 0 0 0 1px var(--krv-line-on-deep); }
:where(.has-deep-background-color, .has-deeper-background-color) .krv-deep__label { color: rgba(238, 243, 242, 0.7); }
.krv-deep__panel summary { list-style: none; cursor: pointer; position: relative; padding: clamp(1.25rem, 2.6vw, 1.9rem) 4.5rem clamp(1.25rem, 2.6vw, 1.9rem) clamp(1.25rem, 2.6vw, 1.9rem); font-family: var(--krv-display); font-size: clamp(1.3rem, 1.05rem + 1vw, 2rem); line-height: 1.15; letter-spacing: -0.015em; font-weight: 520; }
.krv-deep__panel summary::-webkit-details-marker { display: none; }
.krv-deep__panel summary::after { content: "Read"; position: absolute; right: clamp(1.25rem, 2.6vw, 1.9rem); top: 50%; transform: translateY(-50%); font-family: var(--krv-text); font-size: var(--wp--preset--font-size--xs); font-weight: 650; padding: 0.35rem 0.7rem; border-radius: 999px; background: var(--krv-pista); color: var(--krv-ink); }
.krv-deep__panel[open] summary::after { content: "Close"; background: var(--krv-mist); }
.krv-deep__panel > :not(summary) { padding: 0 clamp(1.25rem, 2.6vw, 1.9rem) !important; max-width: 72ch; margin: 0 0 1rem !important; }
.krv-deep__panel > :last-child { padding-bottom: clamp(1.25rem, 2.6vw, 1.9rem) !important; margin-bottom: 0 !important; }
.krv-deep__panel h3 { font-size: var(--wp--preset--font-size--l) !important; margin-top: 1.5rem !important; }
@supports (interpolate-size: allow-keywords) {
	.krv-deep__panel { interpolate-size: allow-keywords; }
	.krv-deep__panel::details-content { height: 0; overflow: clip; transition: height 550ms var(--krv-ease), content-visibility 550ms allow-discrete; }
	.krv-deep__panel[open]::details-content { height: auto; }
}

/* ---------- names, set in type ---------- */
.krv-namewall__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--krv-line); border-left: 1px solid var(--krv-line); }
@media (max-width: 781px) { .krv-namewall__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .krv-namewall__name { min-height: 5.5rem; font-size: 1.1rem; } }
.krv-namewall__name { margin: 0 !important; display: grid; place-items: center; text-align: center; min-height: 7.5rem; padding: 1.25rem !important; border-right: 1px solid var(--krv-line); border-bottom: 1px solid var(--krv-line); font-family: var(--krv-display); font-size: clamp(1.2rem, 1rem + 0.8vw, 1.65rem); font-weight: 560; letter-spacing: -0.015em; line-height: 1.1; transition: background-color 300ms, color 300ms; }
.krv-namewall__name:hover { background: var(--krv-deep); color: var(--krv-paper); }
.krv-namewall__note { font-size: var(--wp--preset--font-size--s); color: var(--krv-ink-soft); margin-top: 1rem !important; max-width: 60ch; }

/* ---------- councils, governments and programmes ---------- */
.krv-insts { gap: 1rem !important; }
.krv-inst { position: relative; margin: 0 !important; padding: clamp(1.25rem, 2.2vw, 1.75rem) !important; border-radius: 18px; background: var(--krv-white); display: flex; flex-direction: column; min-height: 13rem; }
.krv-inst::before { content: ""; position: absolute; top: clamp(1.25rem, 2.2vw, 1.75rem); right: clamp(1.25rem, 2.2vw, 1.75rem); width: 2.25rem; height: 2.25rem; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--krv-deep), inset 0 0 0 7px var(--krv-white), inset 0 0 0 9px var(--krv-pista); }
.krv-inst__when { font-size: var(--wp--preset--font-size--xs) !important; font-weight: 650; color: var(--krv-ink-soft); margin: 0 0 1.75rem !important; }
.krv-inst h3 { font-size: var(--wp--preset--font-size--l) !important; line-height: 1.15 !important; margin: 0 0 0.35rem !important; max-width: 14ch; }
.krv-inst__what { font-weight: 650; margin: 0 0 0.5rem !important; font-size: var(--wp--preset--font-size--s); color: var(--krv-deep); }
.krv-inst__note { font-size: var(--wp--preset--font-size--s); color: var(--krv-ink-soft); margin: auto 0 0 !important; }
:where(.has-mist-background-color) .krv-inst::before { box-shadow: inset 0 0 0 1.5px var(--krv-deep), inset 0 0 0 7px var(--krv-white), inset 0 0 0 9px var(--krv-pista); }

/* ---------- the record, year by year ---------- */
.krv-ledger__group { display: grid; grid-template-columns: minmax(6rem, 0.22fr) 1fr; gap: 0 clamp(1rem, 3vw, 3rem); padding: 1.25rem 0 !important; border-top: 1.5px solid var(--krv-ink); margin: 0 !important; }
.krv-ledger__year { font-size: clamp(2rem, 1.3rem + 2.4vw, 3.6rem) !important; line-height: 1 !important; margin: 0 !important; font-variant-numeric: lining-nums; letter-spacing: -0.03em; position: sticky; top: calc(var(--krv-header-h) + 1rem); align-self: start; }
.krv-ledger__table { margin: 0 !important; }
.krv-ledger__table table { border-collapse: collapse; width: 100%; font-size: var(--wp--preset--font-size--s); }
.krv-ledger__table thead th { text-align: left; font-size: var(--wp--preset--font-size--xs); font-weight: 650; color: var(--krv-ink-soft); padding: 0 0.75rem 0.5rem 0 !important; border: 0 !important; }
.krv-ledger__table td { border: 0 !important; border-top: 1px solid var(--krv-line) !important; padding: 0.7rem 0.75rem 0.7rem 0 !important; vertical-align: top; }
.krv-ledger__table td:nth-child(1) { width: 17%; color: var(--krv-ink-soft); white-space: nowrap; }
.krv-ledger__table td:nth-child(2) { width: 39%; font-weight: 600; }
.krv-ledger__table td:nth-child(3) { width: 18%; }
.krv-ledger__table td a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
@media (max-width: 781px) {
	.krv-ledger__group { grid-template-columns: 1fr; }
	.krv-ledger__year { position: static; margin-bottom: 0.5rem !important; }
	.krv-ledger__table thead { display: none; }
	.krv-ledger__table tr { display: grid; grid-template-columns: 1fr; padding: 0.7rem 0; border-top: 1px solid var(--krv-line); }
	.krv-ledger__table td { border: 0 !important; padding: 0.1rem 0 !important; width: auto !important; white-space: normal !important; }
}

/* ---------- a wall of his words ---------- */
.krv-qwall { columns: 3 18rem; column-gap: 1rem; }
.krv-qwall--2 { columns: 2 20rem; }
.krv-qwall__q { break-inside: avoid; margin: 0 0 1rem !important; padding: clamp(1.25rem, 2.2vw, 1.75rem) !important; border: 0 !important; border-radius: 18px; background: var(--krv-white); display: block; }
.krv-qwall__q:nth-child(5n+2) { background: var(--krv-deep); color: var(--krv-paper); }
.krv-qwall__q:nth-child(5n+4) { background: var(--krv-pista); }
.krv-qwall__q p { font-family: var(--krv-display); font-size: clamp(1.15rem, 1rem + 0.55vw, 1.45rem) !important; line-height: 1.3 !important; letter-spacing: -0.01em; margin: 0 0 1rem !important; }
.krv-qwall__q cite { font-style: normal; font-size: var(--wp--preset--font-size--xs); line-height: 1.4; display: block; opacity: 0.8; }
.krv-qwall__q cite a { color: inherit; font-weight: 650; }

/* ---------- key facts ---------- */
.krv-kfs { gap: 0 !important; border-top: 1px solid var(--krv-line); border-left: 1px solid var(--krv-line); }
.krv-kf { margin: 0 !important; padding: 1.1rem 1.25rem !important; border-right: 1px solid var(--krv-line); border-bottom: 1px solid var(--krv-line); }
.krv-kf__label { font-size: var(--wp--preset--font-size--xs) !important; font-weight: 650; color: var(--krv-ink-soft); margin: 0 0 0.35rem !important; }
.krv-kf__value { font-family: var(--krv-display); font-size: clamp(1.1rem, 1rem + 0.45vw, 1.4rem) !important; line-height: 1.25; margin: 0 !important; }
:where(.has-deep-background-color) .krv-kf__label { color: rgba(238, 243, 242, 0.7); }

/* ---------- a real sequence of steps ---------- */
.krv-steps { counter-reset: none; position: relative; }
.krv-step { position: relative; display: grid; grid-template-columns: 4.5rem 1fr; column-gap: clamp(1rem, 3vw, 2.5rem); padding: 0 0 clamp(1.75rem, 3.5vw, 2.75rem) !important; margin: 0 !important; }
.krv-step > * { grid-column: 2; }
.krv-step::before { content: ""; position: absolute; left: 2.25rem; top: 4.5rem; bottom: 0.5rem; width: 1.5px; background: var(--krv-line); }
.krv-step:last-child::before { display: none; }
.krv-step .krv-step__n { grid-column: 1; grid-row: 1 / span 6; width: 4.5rem; height: 4.5rem; border-radius: 50%; display: grid; place-items: center; margin: 0 !important; background: var(--krv-deep); color: var(--krv-pista); font-family: var(--krv-display); font-size: 1.9rem; font-weight: 560; font-variant-numeric: lining-nums; }
.krv-step h3 { margin: 0.75rem 0 0.5rem !important; font-size: var(--wp--preset--font-size--xl) !important; line-height: 1.1 !important; }
.krv-step p { max-width: 64ch; margin: 0 0 0.6rem !important; }
.krv-step .krv-step__meta { display: inline-block; justify-self: start; font-size: var(--wp--preset--font-size--xs) !important; font-weight: 650; padding: 0.3rem 0.7rem; border-radius: 999px; background: var(--krv-mist); color: var(--krv-ink); }
:where(.has-mist-background-color) .krv-step .krv-step__meta { background: var(--krv-white); }
@media (max-width: 600px) {
	.krv-step { grid-template-columns: 3rem 1fr; }
	.krv-step .krv-step__n { width: 3rem; height: 3rem; font-size: 1.3rem; }
	.krv-step::before { left: 1.5rem; top: 3rem; }
}

/* ---------- comparison table ---------- */
.krv-compare table { border-collapse: separate; border-spacing: 0; width: 100%; font-size: var(--wp--preset--font-size--s); }
.krv-compare thead th { text-align: left; padding: 1rem !important; border: 0 !important; font-family: var(--krv-display); font-size: var(--wp--preset--font-size--l); font-weight: 560; vertical-align: bottom; }
.krv-compare thead th:last-child { background: var(--krv-deep); color: var(--krv-paper); border-radius: 18px 18px 0 0; }
.krv-compare td { border: 0 !important; border-top: 1px solid var(--krv-line) !important; padding: 0.9rem 1rem !important; vertical-align: top; }
.krv-compare td:first-child { font-weight: 650; color: var(--krv-ink-soft); width: 22%; }
.krv-compare td:last-child { background: rgba(14, 59, 67, 0.06); font-weight: 560; }
.krv-compare tr:last-child td:last-child { border-radius: 0 0 18px 18px; }
.krv-compare__note { font-size: var(--wp--preset--font-size--xs); color: var(--krv-ink-soft); margin-top: 0.75rem !important; }
@media (max-width: 781px) {
	.krv-compare { overflow-x: auto; }
	.krv-compare table { min-width: 36rem; }
}

/* ---------- places ---------- */
.krv-place { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 0.5rem clamp(1.5rem, 4vw, 4rem); padding: clamp(1.4rem, 3vw, 2.25rem) 0 !important; border-top: 1px solid var(--krv-line); margin: 0 !important; }
.krv-place:last-child { border-bottom: 1px solid var(--krv-line); }
.krv-place__name { font-size: clamp(1.9rem, 1.2rem + 2.6vw, 3.75rem) !important; line-height: 0.98 !important; letter-spacing: -0.03em !important; margin: 0 !important; transition: color 300ms; }
.krv-place:hover .krv-place__name { color: var(--krv-deep); }
.krv-place__when { font-size: var(--wp--preset--font-size--xs) !important; font-weight: 650; color: var(--krv-ink-soft); margin: 0.3rem 0 0.4rem !important; }
.krv-place__body p { margin: 0 0 0.5rem !important; max-width: 56ch; }
@media (max-width: 781px) { .krv-place { grid-template-columns: 1fr; } }

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	.krv-letter, .krv-letter .krv-letter__sign { transform: none; }
	.krv-toc-list__list a, .krv-namewall__name { transition: none; }
}

/* ---------- v4 small parts ---------- */
.krv-card .krv-card__meta { display: inline-block; margin-top: 0.6rem; font-size: var(--wp--preset--font-size--xs); font-weight: 650; color: var(--krv-deep); }
.krv-dates { gap: 1rem !important; }
.krv-date { margin: 0 !important; padding: clamp(1.25rem, 2.2vw, 1.6rem) !important; border-radius: 18px; background: var(--krv-white); box-shadow: 0 0 0 1px var(--krv-line); display: flex; flex-direction: column; }
.krv-date h3 { font-size: var(--wp--preset--font-size--l) !important; line-height: 1.15 !important; margin: 0 0 0.3rem !important; }
.krv-date p { margin: 0 0 0.5rem !important; font-size: var(--wp--preset--font-size--s); }
.krv-date .krv-date__when { font-family: var(--krv-display); font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem) !important; letter-spacing: -0.02em; line-height: 1.05; margin: 0.9rem 0 0.6rem !important; }
.krv-date .krv-date__where { color: var(--krv-ink-soft); font-weight: 600; }
.krv-date .krv-date__status { align-self: flex-start; font-size: var(--wp--preset--font-size--xs) !important; font-weight: 650; padding: 0.25rem 0.65rem; border-radius: 999px; background: var(--krv-mist); margin: 0 !important; }
.krv-date .krv-date__status.is-confirmed { background: var(--krv-deep); color: var(--krv-pista); }
.krv-cite-block { border: 0 !important; margin: 0 !important; padding: clamp(1.25rem, 2.6vw, 2rem) !important; border-radius: 20px; background: var(--krv-white); }
.krv-cite-block p { font-family: var(--krv-display); font-size: clamp(1.15rem, 1rem + 0.5vw, 1.4rem) !important; line-height: 1.45 !important; margin: 0 0 1rem !important; }
.krv-cite-block cite { font-style: normal; font-size: var(--wp--preset--font-size--xs); color: var(--krv-ink-soft); }
.krv-facts--three tr td:first-child, .krv-facts--timeline tr td:first-child { width: 7rem; white-space: nowrap; }
.krv-facts--three tr td:nth-child(2) { font-weight: 600; width: 40%; }
.krv-facts thead th { text-align: left; font-size: var(--wp--preset--font-size--xs); font-weight: 650; color: var(--krv-ink-soft); padding: 0 1rem 0.5rem 0 !important; border: 0 !important; }
@media (max-width: 600px) { .krv-facts--three tr td:first-child, .krv-facts--timeline tr td:first-child { width: 4.5rem; white-space: normal; } }

/* v4c: each policy page carries its own summary device */
.krv-legal .krv-short { border: 1px solid var(--krv-line); border-left: 4px solid var(--krv-deep); border-radius: 0 14px 14px 0; padding: 1.1rem 1.3rem; background: rgba(14, 59, 67, 0.04); font-size: var(--wp--preset--font-size--m); line-height: 1.55; }
.krv-legal .is-style-krv-note { max-width: none; }
.krv-facts--glance tr td:first-child { width: 28%; }
.krv-facts--code code { font-size: 0.92em; background: rgba(14, 59, 67, 0.06); padding: 0.1em 0.35em; border-radius: 4px; }
.krv-olist { padding-left: 1.4rem; }
.krv-olist li { margin-bottom: 0.55rem; padding-left: 0.3rem; }
.krv-olist li::marker { font-family: var(--krv-display); font-weight: 600; color: var(--krv-deep); }
/* Tables with a header row: columns follow the widths below instead of splitting evenly, and words never break mid-word. */
.wp-block-table:is(.krv-facts--three, .krv-facts--timeline, .krv-facts--four, .krv-facts--pair, .krv-compare--legal) .has-fixed-layout { table-layout: auto; }
.wp-block-table:is(.krv-facts--three, .krv-facts--timeline, .krv-facts--four, .krv-facts--pair, .krv-compare--legal) .has-fixed-layout :is(td, th) { word-break: normal; overflow-wrap: break-word; }
.wp-block-table.krv-facts--four tr > :nth-child(1) { width: 20%; }
.wp-block-table.krv-facts--four tr > :nth-child(2) { width: 19%; font-size: var(--wp--preset--font-size--s); color: var(--krv-ink-soft); }
.wp-block-table.krv-facts--four tr > :nth-child(3) { width: 43%; }
.wp-block-table.krv-facts--four tr > :nth-child(4) { width: 18%; font-size: var(--wp--preset--font-size--s); }
.wp-block-table.krv-facts--four thead tr > * { font-size: var(--wp--preset--font-size--xs); color: var(--krv-ink-soft); }
.wp-block-table.krv-facts--pair tr > :is(td, th), .wp-block-table.krv-facts--pair tr > td:first-child { width: 50%; font-weight: inherit; color: inherit; font-size: inherit; padding-right: 1.5rem !important; }
.wp-block-table.krv-facts--pair thead tr > * { font-family: var(--krv-display); font-size: var(--wp--preset--font-size--l); color: var(--krv-ink); font-weight: 560; }
.wp-block-table.krv-facts--timeline tr > :first-child { width: 8rem; white-space: nowrap; }
.wp-block-table.krv-compare--legal tr > :first-child { width: 30%; }
.wp-block-table.krv-compare--legal tr > :last-child { width: 8rem; text-align: center; }
.wp-block-table.krv-compare--legal thead tr > * { font-size: var(--wp--preset--font-size--m); }
@media (max-width: 600px) {
	.wp-block-table.krv-facts--four table { min-width: 34rem; }
	.krv-facts--glance tr td:first-child { width: 36%; }
	.wp-block-table.krv-facts--pair tr > :is(td, th), .wp-block-table.krv-facts--pair tr > td:first-child { padding-right: 0.8rem !important; }
	.wp-block-table.krv-facts--timeline tr > :first-child { width: 6.5rem; white-space: normal; }
}
/* A day against a programme: the weaker side reads quieter, a rule between them */
.krv-versus > .wp-block-column:first-child { color: var(--krv-ink-soft); }
.krv-versus > .wp-block-column:first-child li { margin-bottom: 0.65rem; }
.krv-versus > .wp-block-column:last-child { border-left: 1px solid var(--krv-line); padding-left: clamp(1.25rem, 3vw, 2.75rem); }
@media (max-width: 781px) {
	.krv-versus > .wp-block-column:last-child { border-left: 0; border-top: 1px solid var(--krv-line); padding-left: 0; padding-top: 1.5rem; }
}

/* ==========================================================================
   v5 home: the hero is a lit stage. No frame around the reel: it plays as a spotlight that falls away into the
   dark on every side, a blurred live copy of each frame spills its colour onto the stage around it, the light
   glides to the subject of each clip, and the name picks up the colour of whatever the reel is showing.
   Below it, the roles are set as large type that shows its photograph through the letters, and the field
   photographs run into one another as a single strip that drifts with the scroll.
   ========================================================================== */
@property --fx { syntax: '<percentage>'; inherits: true; initial-value: 55%; }
@property --fy { syntax: '<percentage>'; inherits: true; initial-value: 42%; }
@property --sr { syntax: '<number>'; inherits: true; initial-value: 1; }
@property --lit { syntax: '<color>'; inherits: true; initial-value: rgb(200 233 160); }

.krv-hero3 {
	--lit: rgb(200 233 160);
	--lit-dir: 100deg;
	background: var(--krv-deeper) !important;
	isolation: isolate;
	transition: --lit 1.8s var(--krv-ease);
}
.krv-hero3 > .krv-spot {
	position: absolute !important;
	inset: 0;
	justify-self: stretch;
	align-self: stretch;
	z-index: 0;
	width: auto;
	max-width: none;
	margin: 0 !important;
	pointer-events: none;
	--cx: 66%;
	--cy: 52%;
	--sx: 45%;
	--sy: 51%;
	transition: --fx 1.8s var(--krv-ease), --fy 1.8s var(--krv-ease);
}
/* on arrival the light comes up: once the first frame is in, the pool of light opens out from the subject to its full size */
@media (prefers-reduced-motion: no-preference) {
	.js .krv-hero3 > .krv-spot { --sr: 0.4; }
	.js .krv-hero3 > .krv-spot.is-on { animation: krv-light-on 2.6s cubic-bezier(0.3, 0.05, 0.15, 1) both; }
}
@keyframes krv-light-on { from { --sr: 0.4; } to { --sr: 1; } }
/* the reel: taller than the stage, lit in an ellipse whose light falls off on a smooth curve to nothing */
.krv-spot .krv-reel__frame {
	position: absolute;
	left: var(--cx);
	top: var(--cy);
	height: 104%;
	width: auto;
	aspect-ratio: 4 / 5;
	transform: translate(-50%, -50%);
	border-radius: 0;
	overflow: visible;
	background: none;
	box-shadow: none;
	--spot: radial-gradient(ellipse calc(var(--sx) * var(--sr)) calc(var(--sy) * var(--sr)) at var(--fx) var(--fy), #000 0%, #000 34%, rgba(0, 0, 0, 0.96) 42%, rgba(0, 0, 0, 0.85) 50%, rgba(0, 0, 0, 0.7) 58%, rgba(0, 0, 0, 0.52) 66%, rgba(0, 0, 0, 0.34) 74%, rgba(0, 0, 0, 0.18) 82%, rgba(0, 0, 0, 0.07) 90%, transparent 100%);
	-webkit-mask-image: var(--spot), linear-gradient(90deg, transparent 0%, #000 17%, #000 83%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
	-webkit-mask-composite: source-in;
	mask-image: var(--spot), linear-gradient(90deg, transparent 0%, #000 17%, #000 83%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
	mask-composite: intersect;
}
.krv-spot .krv-reel__frame img, .krv-spot .krv-reel__frame video { filter: saturate(1.06) contrast(1.03); }
/* the light it throws: a tiny live copy of the frame, scaled up and blurred into a glow, added onto the stage */
.krv-spot__amb {
	position: absolute;
	left: var(--cx);
	top: var(--cy);
	height: 150%;
	width: auto;
	aspect-ratio: 6 / 5;
	transform: translate(-50%, -50%);
	filter: blur(clamp(26px, 3.2vw, 52px)) saturate(1.6) brightness(1.08);
	mix-blend-mode: screen;
	opacity: 0;
	transition: opacity 1.8s var(--krv-ease);
	-webkit-mask-image: radial-gradient(closest-side, #000 0%, rgba(0, 0, 0, 0.8) 32%, rgba(0, 0, 0, 0.42) 62%, rgba(0, 0, 0, 0.12) 84%, transparent 100%);
	mask-image: radial-gradient(closest-side, #000 0%, rgba(0, 0, 0, 0.8) 32%, rgba(0, 0, 0, 0.42) 62%, rgba(0, 0, 0, 0.12) 84%, transparent 100%);
}
.krv-spot.has-light .krv-spot__amb { opacity: 0.62; }
/* the stage around the light: deeper towards the words and the foot, with a fine grain so the dark never bands */
.krv-spot__veil {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(9, 42, 48, 0.95) 0%, rgba(9, 42, 48, 0.8) 22%, rgba(9, 42, 48, 0.36) 39%, rgba(9, 42, 48, 0.08) 50%, rgba(9, 42, 48, 0) 58%),
		linear-gradient(0deg, rgba(9, 42, 48, 0.94) 0%, rgba(9, 42, 48, 0.55) 13%, rgba(9, 42, 48, 0) 30%),
		linear-gradient(180deg, rgba(9, 42, 48, 0.78) 0%, rgba(9, 42, 48, 0.32) 11%, rgba(9, 42, 48, 0) 22%);
}
.krv-spot__veil::after {
	content: "";
	position: absolute;
	inset: 0;
	opacity: 0.09;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
/* the name is lit by the reel: a live tint of the frame's colour, strongest on the side that faces the light */
.krv-hero3__first, .krv-hero3__rest { text-shadow: none; }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
	.krv-hero3__first, .krv-hero3__rest {
		width: fit-content;
		padding: 0.2em 0.06em 0.2em 0;
		margin-block: -0.2em;
		background-image: linear-gradient(var(--lit-dir), #fff 0%, #fff 32%, color-mix(in oklab, #fff 50%, var(--lit)) 100%);
		-webkit-background-clip: text;
		background-clip: text;
		-webkit-text-fill-color: transparent;
	}
	.krv-hero3__first { padding-bottom: 0.24em; }
	.krv-hero3__rest {
		margin-top: 0.04em;
		background-image: linear-gradient(var(--lit-dir), rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.9) 30%, color-mix(in oklab, rgba(255, 255, 255, 0.9) 58%, var(--lit)) 100%);
	}
}
@media (forced-colors: active) {
	.krv-hero3__first, .krv-hero3__rest { -webkit-text-fill-color: currentColor; background: none; }
}
.krv-hero3__grid { grid-template-columns: minmax(0, 44rem) !important; }
.krv-hero3__line { text-shadow: 0 1px 18px rgba(9, 42, 48, 0.7); }
/* the line under the light: progress, the clip's caption and the pause button, with no box around any of them */
.krv-spot .krv-reel__cap {
	position: absolute;
	z-index: 2;
	right: max(var(--wp--style--root--padding-right, 1.5rem), calc((100% - var(--wp--style--global--wide-size, 1280px)) / 2));
	bottom: clamp(6.75rem, 9.5vw, 8.5rem);
	margin: 0;
	gap: 0.85rem;
	pointer-events: auto;
	color: rgba(238, 243, 242, 0.84);
	text-shadow: 0 1px 14px rgba(9, 42, 48, 0.75);
}
.krv-spot .krv-reel__toggle {
	position: static;
	flex: none;
	width: 2.5rem;
	height: 2.5rem;
	margin-left: 0.35rem;
	background: rgba(238, 243, 242, 0.08);
	box-shadow: inset 0 0 0 1px rgba(238, 243, 242, 0.22);
}
.krv-spot .krv-reel__toggle:hover, .krv-spot .krv-reel__toggle:focus-visible { background: var(--krv-pista); color: var(--krv-ink); box-shadow: none; }
.krv-hero3__foot { border-top: 0 !important; position: relative; }
.krv-hero3__foot::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: linear-gradient(90deg, rgba(238, 243, 242, 0) 0%, rgba(238, 243, 242, 0.22) 18%, rgba(238, 243, 242, 0.22) 82%, rgba(238, 243, 242, 0) 100%); }

/* phones and tablets: the light sits at the top of the screen and the name rises out of its lower glow */
@media (max-width: 899px) {
	.krv-hero3 { --fw: min(122vw, 44rem); --fh: calc(var(--fw) * 1.25); --lit-dir: 0deg; }
	.krv-hero3 > .krv-spot { --cx: 50%; --cy: 0px; --sx: 39%; --sy: 47%; }
	/* the frame drifts with the light, so the subject of each clip stays near the middle of a narrow screen */
	.krv-spot .krv-reel__frame { top: 0; height: var(--fh); width: var(--fw); transform: translateX(calc(-50% - (var(--fx) - 50%) * 0.7)); }
	.krv-spot__amb { top: 0; height: calc(var(--fh) * 1.25); width: calc(var(--fw) * 1.25); aspect-ratio: auto; transform: translate(-50%, -12%); }
	.krv-spot__veil {
		background:
			linear-gradient(180deg, rgba(9, 42, 48, 0.62) 0%, rgba(9, 42, 48, 0) 14%, rgba(9, 42, 48, 0) calc(var(--fh) * 0.42), rgba(9, 42, 48, 0.72) calc(var(--fh) * 0.6), rgba(9, 42, 48, 0.94) calc(var(--fh) * 0.74), var(--krv-deeper) calc(var(--fh) * 0.84));
	}
	.krv-hero3__grid { margin-top: calc(var(--fh) * 0.56 - var(--krv-header-h)) !important; }
	.krv-spot .krv-reel__cap { top: calc(var(--fh) * 0.47); bottom: auto; right: var(--wp--style--root--padding-right, 1.25rem); }
	.krv-spot .krv-reel__cue { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
	.krv-hero3, .krv-hero3 > .krv-spot, .krv-spot__amb { transition: none; }
}

/* ---------- ways to work: six roles in large type; the one at the middle of the screen shows its photograph through its letters ---------- */
.krv-wayrows { margin-top: 0 !important; }
.krv-wayrow {
	position: relative;
	isolation: isolate;
	margin: 0 !important;
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(14rem, 21rem);
	column-gap: clamp(2rem, 5vw, 5.5rem);
	align-items: end;
	padding-block: clamp(1.4rem, 2.8vw, 2.6rem) !important;
}
.krv-wayrow::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg, var(--krv-line) 0%, var(--krv-line) 55%, rgba(15, 38, 41, 0) 100%); }
/* the photograph never shows as a picture of its own: it loads here, out of sight, and is painted into the letters */
.krv-wayrow__img { position: absolute !important; z-index: -1; top: 0; bottom: 0; left: 0; width: 64%; margin: 0 !important; opacity: 0; pointer-events: none; overflow: hidden; }
.krv-wayrow__img img { width: 100%; height: 100%; object-fit: cover; }
.krv-wayrow__title {
	margin: 0 !important;
	font-family: var(--krv-display) !important;
	font-weight: 560 !important;
	font-size: clamp(2.6rem, 0.8rem + 5.4vw, 6.6rem) !important;
	line-height: 0.94 !important;
	letter-spacing: -0.045em !important;
	text-wrap: balance;
}
.krv-wayrow__title a {
	display: inline-block;
	padding: 0.1em 0.05em 0.17em 0;
	margin: -0.1em 0 -0.17em;
	color: var(--krv-ink);
	text-decoration: none;
	background-color: transparent !important;
	background-image: linear-gradient(rgba(9, 42, 48, 0.26), rgba(9, 42, 48, 0.26)), var(--way-img, none) !important;
	background-position: 0 0, center 40% !important;
	background-size: auto, cover !important;
	background-repeat: no-repeat !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	transition: color 0.9s var(--krv-ease);
}
.krv-wayrow.is-lit.has-img .krv-wayrow__title a { color: transparent; }
.krv-wayrow__title a:focus-visible { outline-offset: 0.12em; }
.krv-wayrow__note { margin: 0 !important; padding-bottom: 0.45rem; }
.krv-wayrow__note > * { margin-block: 0 !important; }
.krv-wayrow__text { color: var(--krv-ink-soft); max-width: 40ch; }
.krv-wayrow__note .wp-block-buttons { margin-top: 0.7rem !important; }
@media (max-width: 781px) {
	.krv-wayrow { grid-template-columns: minmax(0, 1fr); row-gap: 0.85rem; padding-block: 1.6rem !important; }
	.krv-wayrow__img { width: 100%; }
	.krv-wayrow__title { font-size: clamp(2.45rem, 1.1rem + 6.4vw, 3.7rem) !important; }
	.krv-wayrow__note { padding-bottom: 0; }
}
@media (forced-colors: active) {
	.krv-wayrow__title a, .krv-wayrow.is-lit.has-img .krv-wayrow__title a { color: LinkText; background: none !important; }
}

/* ---------- the field strip: frames that dissolve into one another, drifting sideways as the page scrolls ---------- */
.krv-section--mural { overflow: clip; }
.krv-mural {
	--ov: clamp(3.5rem, 8vw, 8rem);
	--mh: clamp(14rem, 27vw, 25rem);
	margin-top: clamp(1.75rem, 3.5vw, 3rem) !important;
	overflow: clip;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
}
.krv-mural__track { display: flex !important; flex-wrap: nowrap !important; gap: 0 !important; width: max-content; align-items: flex-start; padding-inline: 4vw; }
.krv-mural__f { flex: none; margin: 0 0 0 calc(var(--ov) * -1) !important; position: relative; }
.krv-mural__f:first-child { margin-left: 0 !important; }
/* each frame fades in over the one before it, which lets go of its edge only once the new frame is nearly solid,
   so the paper never shows between two photographs and no edge survives in the soft top and bottom */
.krv-mural__f img {
	display: block;
	height: var(--mh);
	width: auto;
	max-width: none;
	--fade-x: linear-gradient(90deg, transparent 0, rgba(0, 0, 0, 0.45) calc(var(--ov) * 0.3), rgba(0, 0, 0, 0.82) calc(var(--ov) * 0.6), #000 calc(var(--ov) * 0.85), #000 calc(100% - var(--ov) * 0.4), transparent 100%);
	--fade-y: linear-gradient(180deg, transparent 0%, #000 13%, #000 82%, transparent 100%);
	-webkit-mask-image: var(--fade-x), var(--fade-y);
	-webkit-mask-composite: source-in;
	mask-image: var(--fade-x), var(--fade-y);
	mask-composite: intersect;
}
.krv-mural__f:last-child img { --fade-x: linear-gradient(90deg, transparent 0, rgba(0, 0, 0, 0.45) calc(var(--ov) * 0.3), rgba(0, 0, 0, 0.82) calc(var(--ov) * 0.6), #000 calc(var(--ov) * 0.85), #000 calc(100% - var(--ov)), transparent 100%); }
/* a caption takes the width of its own photograph (never more), starting where the next frame stops overlapping it */
.krv-mural__f figcaption {
	width: 0;
	min-width: 100%;
	box-sizing: border-box;
	margin: 0.4rem 0 0 !important;
	padding: 0 0.5rem 0 calc(var(--ov) + 0.25rem);
	font-size: var(--wp--preset--font-size--xs);
	color: var(--krv-ink-soft);
	text-align: left;
}
@media (max-width: 599px) { .krv-mural { --ov: 3rem; --mh: 17rem; } }
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.krv-mural__track { animation: krv-mural-drift linear both; animation-timeline: view(); animation-range: cover 0% cover 100%; }
	}
}
@keyframes krv-mural-drift { from { transform: translateX(6vw); } to { transform: translateX(calc(-100% + 94vw)); } }
@supports not (animation-timeline: view()) {
	.krv-mural { overflow-x: auto; scrollbar-width: none; -webkit-mask-image: none; mask-image: none; }
	.krv-mural::-webkit-scrollbar { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.krv-mural { overflow-x: auto; scrollbar-width: none; }
}
