/* ==========================================================================
   KEF CENTER — design system
   Black · brushed brass · warm ivory. Cormorant Garamond + Jost.
   ========================================================================== */

:root {
	--ink: #0a0a09;
	--coal: #121210;
	--graphite: #1c1b18;
	--brass: #b49c72;
	--champagne: #cdbb96;
	--bronze: #6e5e44;
	--ivory: #efeae0;
	--stone: #9a968e;

	--fg: var(--ivory);
	--bg: var(--ink);
	--muted: var(--stone);
	--accent: var(--brass);
	--accent-hi: var(--champagne);
	--line: rgba(180, 156, 114, 0.28);
	--line-soft: rgba(239, 234, 224, 0.1);

	--f-display: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
	--f-sans: Jost, "Helvetica Neue", Arial, sans-serif;

	--gutter: clamp(20px, 5vw, 72px);
	--max: 1320px;
	--max-wide: 1680px;
	--max-narrow: 760px;
	--sec: clamp(96px, 13vw, 200px);
	--header-h: 84px;

	--ease: cubic-bezier(0.2, 0.7, 0.1, 1);
	--ease-io: cubic-bezier(0.65, 0, 0.35, 1);

	--t-label: 0.75rem;
	--t-body: 1.0625rem;
	--t-lead: clamp(1.2rem, 1.02rem + 0.7vw, 1.6rem);
	--t-h2: clamp(2.6rem, 1.4rem + 4.4vw, 5.6rem);
	--t-h3: clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem);
	--t-display: clamp(3.2rem, 0.9rem + 7.6vw, 9.25rem);
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + 12px);
	background: var(--ink);
}

body {
	margin: 0;
	background: var(--bg);
	color: var(--fg);
	font-family: var(--f-sans);
	font-size: var(--t-body);
	font-weight: 360;
	line-height: 1.7;
	letter-spacing: 0.005em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

img, svg, video { display: block; max-width: 100%; height: auto; }
figure { margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
p { margin: 0 0 1.1em; }
h1, h2, h3, h4, h5, h6 {
	margin: 0 0 0.5em;
	font-family: var(--f-display);
	font-weight: 300;
	line-height: 1.04;
	letter-spacing: -0.01em;
	color: inherit;
	text-wrap: balance;
}
a { color: var(--accent-hi); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
a:hover { color: var(--fg); }
::selection { background: var(--brass); color: var(--ink); }

:focus-visible {
	outline: 2px solid var(--champagne);
	outline-offset: 3px;
	border-radius: 1px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.kef-skip {
	position: fixed;
	top: 12px; left: 12px;
	z-index: 1000;
	padding: 12px 18px;
	background: var(--brass);
	color: var(--ink);
	font-size: 0.875rem;
	text-decoration: none;
	transform: translateY(-160%);
	transition: transform 0.2s;
}
.kef-skip:focus { transform: none; color: var(--ink); }

.kef-main { display: block; outline: none; overflow-x: clip; }

.kef-container {
	width: 100%;
	max-width: calc(var(--max) + var(--gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.kef-container--wide { max-width: calc(var(--max-wide) + var(--gutter) * 2); }
.kef-container--narrow { max-width: calc(var(--max-narrow) + var(--gutter) * 2); }

.kef-muted { color: var(--muted); }
.kef-flow > * + * { margin-top: 0; }

/* --------------------------------------------------------------------------
   Typography atoms
   -------------------------------------------------------------------------- */
.kef-label {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0 0 clamp(28px, 4vw, 48px);
	font-family: var(--f-sans);
	font-size: var(--t-label);
	font-weight: 450;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--accent);
}
.kef-label__num { font-variant-numeric: tabular-nums; letter-spacing: 0.12em; }
.kef-label__rule { width: 48px; height: 1px; background: currentColor; opacity: 0.7; }

.kef-h2,
.kef-section__content h2 {
	font-size: var(--t-h2);
	line-height: 1.02;
	margin: 0 0 0.45em;
}
.kef-section__content h3 { font-size: var(--t-h3); margin: 1.4em 0 0.5em; }
.kef-section__content h2 em,
.kef-h2 em,
.kef-hero__title em { font-style: italic; color: var(--accent-hi); }

.kef-lead,
.kef-section__content .kef-lead,
.kef-section__content p.is-style-lead {
	font-size: var(--t-lead);
	line-height: 1.5;
	font-weight: 300;
	color: rgba(239, 234, 224, 0.86);
	max-width: 34em;
}
.kef-section__content p { max-width: 40em; color: rgba(239, 234, 224, 0.78); }
.kef-section__content strong { color: var(--fg); font-weight: 500; }

.kef-display { font-size: var(--t-display); line-height: 0.95; }

/* --------------------------------------------------------------------------
   Buttons & chips
   -------------------------------------------------------------------------- */
.kef-btn {
	--btn-fg: var(--fg);
	display: inline-flex;
	align-items: center;
	gap: 18px;
	min-height: 52px;
	padding: 14px 26px 14px 28px;
	border: 1px solid var(--brass);
	background: transparent;
	color: var(--btn-fg);
	font-family: var(--f-sans);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	text-decoration: none;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	transition: color 0.45s var(--ease), border-color 0.45s var(--ease);
}
.kef-btn::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--brass);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.55s var(--ease);
}
.kef-btn .kef-icon { width: 18px; height: 18px; transition: transform 0.45s var(--ease); }
.kef-btn:hover, .kef-btn:focus-visible { color: var(--ink); }
.kef-btn:hover::before, .kef-btn:focus-visible::before { transform: scaleX(1); transform-origin: left; }
.kef-btn:hover .kef-icon { transform: translateX(4px); }

.kef-btn--solid { background: var(--brass); color: var(--ink); }
.kef-btn--solid::before { background: var(--champagne); }

.kef-btn--text {
	min-height: 44px;
	padding: 8px 0;
	border: 0;
	gap: 14px;
}
.kef-btn--text::before {
	top: auto;
	height: 1px;
	background: var(--brass);
	transform: scaleX(1);
	transform-origin: left;
}
.kef-btn--text:hover, .kef-btn--text:focus-visible { color: var(--accent-hi); }
.kef-btn--text:hover::before { transform: scaleX(0.35); }

.kef-chip {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 40px;
	padding: 8px 16px;
	border: 1px solid var(--line-soft);
	background: transparent;
	color: var(--muted);
	font-size: 0.75rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	transition: all 0.3s var(--ease);
}
.kef-chip:hover { color: var(--fg); border-color: var(--line); }
.kef-chip[aria-pressed="true"] { color: var(--ink); background: var(--ivory); border-color: var(--ivory); }
.kef-chip__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--cat, var(--brass)); flex: none; }

.kef-round {
	display: inline-grid;
	place-items: center;
	width: 52px; height: 52px;
	border: 1px solid var(--line);
	border-radius: 50%;
	background: transparent;
	color: var(--fg);
	transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.kef-round:hover { background: var(--brass); color: var(--ink); border-color: var(--brass); }
.kef-round .kef-icon { width: 20px; height: 20px; }
.kef-flip { display: inline-flex; transform: scaleX(-1); }

/* Category tints (masterplan) */
.kef-cat--residential { --cat: #cdbb96; }
.kef-cat--hospitality { --cat: #b49c72; }
.kef-cat--retail      { --cat: #dccdae; }
.kef-cat--dining      { --cat: #c4935f; }
.kef-cat--wellness    { --cat: #8fb1aa; }
.kef-cat--public      { --cat: #b5b39f; }
.kef-cat--waterfront  { --cat: #8ea9bf; }
.kef-cat--commercial  { --cat: #a8a39a; }
.kef-cat--connections { --cat: #efeae0; }

/* --------------------------------------------------------------------------
   Header & navigation
   -------------------------------------------------------------------------- */
.kef-header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 100;
	height: var(--header-h);
	padding-top: env(safe-area-inset-top, 0px);
	box-sizing: content-box;
	color: var(--fg);
	transition: transform 0.5s var(--ease), background-color 0.5s, border-color 0.5s;
	border-bottom: 1px solid transparent;
}
.kef-header::before {
	content: "";
	position: absolute;
	inset: 0 0 -40px;
	background: linear-gradient(to bottom, rgba(10, 10, 9, 0.7), rgba(10, 10, 9, 0));
	pointer-events: none;
	transition: opacity 0.5s;
}
.kef-header.is-solid {
	background: rgba(10, 10, 9, 0.86);
	-webkit-backdrop-filter: blur(14px) saturate(1.2);
	backdrop-filter: blur(14px) saturate(1.2);
	border-bottom-color: var(--line-soft);
}
.kef-header.is-solid::before { opacity: 0; }
.kef-header.is-hidden:not(.is-open) { transform: translateY(-100%); }
body:not(.kef-has-hero) .kef-header { background: rgba(10, 10, 9, 0.92); border-bottom-color: var(--line-soft); }

.kef-header__inner {
	position: relative;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
}

.kef-brand {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--fg);
	text-decoration: none;
	font-family: var(--f-sans);
	font-size: 0.95rem;
	line-height: 1;
	white-space: nowrap;
	position: relative;
	z-index: 3;
}
.kef-brand:hover { color: var(--fg); }
.kef-brand__kef { font-weight: 600; letter-spacing: 0.34em; }
.kef-brand__rule { width: 26px; height: 1px; background: var(--brass); transition: width 0.5s var(--ease); }
.kef-brand:hover .kef-brand__rule { width: 40px; }
.kef-brand__center { font-weight: 300; letter-spacing: 0.44em; color: var(--champagne); }
.kef-brand__logo { max-height: 40px; width: auto; }

.kef-nav__list {
	display: flex;
	align-items: center;
	gap: clamp(18px, 2.2vw, 38px);
	margin: 0;
	padding: 0;
	list-style: none;
}
.kef-nav__list a {
	position: relative;
	display: inline-block;
	padding: 10px 0;
	color: rgba(239, 234, 224, 0.82);
	font-size: 0.72rem;
	font-weight: 450;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	text-decoration: none;
	transition: color 0.3s;
}
.kef-nav__list a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 4px;
	height: 1px;
	background: var(--brass);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.45s var(--ease);
}
.kef-nav__list a:hover,
.kef-nav__list a.is-active { color: var(--fg); }
.kef-nav__list a:hover::after,
.kef-nav__list a.is-active::after { transform: scaleX(1); transform-origin: left; }

.kef-header__tools { display: flex; align-items: center; gap: 20px; position: relative; z-index: 3; }
@media (min-width: 1081px) {
	.kef-header__tools { display: none; }
	.kef-nav { margin-left: auto; }
}

.kef-lang {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.72rem;
	letter-spacing: 0.18em;
}
.kef-lang a {
	display: inline-grid;
	place-items: center;
	min-width: 32px;
	min-height: 40px;
	color: var(--muted);
	text-decoration: none;
	transition: color 0.3s;
}
.kef-lang a:hover { color: var(--fg); }
.kef-lang a.is-current { color: var(--accent); }
.kef-lang__sep { color: rgba(239, 234, 224, 0.25); }

.kef-burger {
	display: none;
	align-items: center;
	gap: 12px;
	min-height: 44px;
	padding: 8px 0 8px 8px;
	border: 0;
	background: none;
	font-size: 0.72rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}
.kef-burger__lines { position: relative; width: 28px; height: 10px; }
.kef-burger__lines span {
	position: absolute;
	left: 0; right: 0;
	height: 1px;
	background: currentColor;
	transition: transform 0.45s var(--ease), top 0.45s var(--ease), width 0.3s;
}
.kef-burger__lines span:first-child { top: 0; }
.kef-burger__lines span:last-child { top: 9px; width: 70%; left: auto; }
.kef-burger[aria-expanded="true"] .kef-burger__lines span:first-child { top: 5px; transform: rotate(45deg); }
.kef-burger[aria-expanded="true"] .kef-burger__lines span:last-child { top: 5px; width: 100%; transform: rotate(-45deg); }

@media (max-width: 1080px) {
	:root { --header-h: 72px; }
	.kef-burger { display: inline-flex; }
	.kef-lang--header { display: none; }

	.kef-nav {
		position: fixed;
		inset: 0;
		z-index: 2;
		visibility: hidden;
		pointer-events: none;
	}
	.kef-nav__panel {
		position: absolute;
		inset: 0;
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		padding: calc(var(--header-h) + env(safe-area-inset-top, 0px) + 6vh) var(--gutter) calc(32px + env(safe-area-inset-bottom, 0px));
		background: var(--ink);
		clip-path: inset(0 0 100% 0);
		transition: clip-path 0.7s var(--ease-io);
		overflow-y: auto;
	}
	.kef-nav.is-open { visibility: visible; pointer-events: auto; }
	.kef-nav.is-open .kef-nav__panel { clip-path: inset(0); }
	.kef-nav__list { flex-direction: column; align-items: flex-start; gap: 0; }
	.kef-nav__list li { width: 100%; border-bottom: 1px solid var(--line-soft); overflow: hidden; }
	.kef-nav__list a {
		display: block;
		padding: 14px 0;
		font-family: var(--f-display);
		font-size: clamp(2rem, 8vw, 3.2rem);
		font-weight: 300;
		letter-spacing: 0;
		text-transform: none;
		line-height: 1.1;
		color: var(--fg);
		transform: translateY(100%);
		transition: transform 0.7s var(--ease), color 0.3s;
	}
	.kef-nav__list a::after { display: none; }
	.kef-nav.is-open .kef-nav__list a { transform: none; }
	.kef-nav.is-open .kef-nav__list li:nth-child(2) a { transition-delay: 0.05s; }
	.kef-nav.is-open .kef-nav__list li:nth-child(3) a { transition-delay: 0.1s; }
	.kef-nav.is-open .kef-nav__list li:nth-child(4) a { transition-delay: 0.15s; }
	.kef-nav.is-open .kef-nav__list li:nth-child(5) a { transition-delay: 0.2s; }
	.kef-nav.is-open .kef-nav__list li:nth-child(6) a { transition-delay: 0.25s; }
	.kef-nav.is-open .kef-nav__list li:nth-child(7) a { transition-delay: 0.3s; }
	body.kef-menu-open { overflow: hidden; }
	.kef-header.is-open { background: transparent; border-color: transparent; }
	.kef-header.is-open::before { opacity: 0; }
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.kef-hero {
	position: relative;
	min-height: 100vh;
	min-height: 100svh;
	display: flex;
	color: var(--fg);
	overflow: hidden;
	background: var(--ink);
}
.kef-hero__media { position: absolute; inset: 0; }
.kef-hero__media img,
.kef-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 45%;
}
.kef-hero__img { animation: kef-zoom 14s var(--ease) both; transform-origin: 60% 40%; }
.kef-hero__video { opacity: 0; transition: opacity 1.2s; }
.kef-hero__video.is-playing { opacity: 1; }
.kef-hero__shade {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to top, rgba(10, 10, 9, 0.96) 0%, rgba(10, 10, 9, 0.55) 34%, rgba(10, 10, 9, 0) 62%),
		linear-gradient(to right, rgba(10, 10, 9, 0.55) 0%, rgba(10, 10, 9, 0) 55%),
		rgba(10, 10, 9, var(--kef-overlay, 0.4));
}
.kef-hero__inner {
	position: relative;
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-rows: 1fr auto auto;
	width: 100%;
	max-width: calc(var(--max-wide) + var(--gutter) * 2);
	padding-top: calc(var(--header-h) + 40px);
	padding-bottom: clamp(28px, 4vw, 48px);
	min-height: inherit;
}
.kef-hero__coords {
	grid-column: 2;
	grid-row: 1;
	align-self: start;
	margin: 0;
	font-size: 0.7rem;
	letter-spacing: 0.24em;
	color: rgba(239, 234, 224, 0.6);
	writing-mode: vertical-rl;
}
.kef-hero__content {
	grid-column: 1 / -1;
	grid-row: 2;
	max-width: 1100px;
	padding-bottom: clamp(36px, 6vw, 72px);
}
.kef-hero__eyebrow {
	display: flex;
	align-items: center;
	gap: 18px;
	margin: 0 0 clamp(20px, 3vw, 32px);
	font-size: 0.75rem;
	font-weight: 450;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--champagne);
}
.kef-hero__eyebrow::before { content: ""; width: 56px; height: 1px; background: var(--brass); }
.kef-hero__title {
	margin: 0;
	font-size: var(--t-display);
	line-height: 0.94;
	letter-spacing: -0.02em;
}
.kef-hero__sub {
	max-width: 36em;
	margin: clamp(22px, 3vw, 36px) 0 0;
	font-size: var(--t-lead);
	font-weight: 300;
	line-height: 1.5;
	color: rgba(239, 234, 224, 0.84);
}
.kef-hero__cta { margin: clamp(26px, 3vw, 40px) 0 0; }
.kef-hero__scroll {
	grid-column: 1;
	grid-row: 3;
	justify-self: start;
	display: inline-flex;
	align-items: center;
	gap: 16px;
	min-height: 44px;
	color: rgba(239, 234, 224, 0.7);
	font-size: 0.7rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	text-decoration: none;
}
.kef-hero__scroll-line {
	position: relative;
	width: 90px;
	height: 1px;
	background: rgba(239, 234, 224, 0.2);
	overflow: hidden;
}
.kef-hero__scroll-line::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--brass);
	animation: kef-scan 2.6s var(--ease-io) infinite;
}
.kef-hero__caption { grid-column: 2; grid-row: 3; align-self: center; justify-self: end; }

@keyframes kef-zoom { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes kef-scan { 0% { transform: translateX(-100%); } 60%, 100% { transform: translateX(100%); } }
@keyframes kef-up { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: none; } }
@keyframes kef-pulse { 0% { transform: scale(0.7); opacity: 0.7; } 100% { transform: scale(2.2); opacity: 0; } }

.kef-intro { animation: kef-up 1.3s var(--ease) both; animation-delay: calc(var(--d, 0) * 0.14s + 0.25s); }

@media (max-width: 700px) {
	.kef-hero__coords { display: none; }
	.kef-hero__inner { grid-template-columns: 1fr; }
	.kef-hero__inner { grid-template-rows: 1fr auto auto auto; }
	.kef-hero__caption { grid-column: 1; grid-row: 4; justify-self: start; margin-top: 10px; }
	.kef-hero__scroll-line { width: 44px; }
	.kef-hero__media img { object-position: 42% 50%; }
	.kef-hero__eyebrow { letter-spacing: 0.22em; font-size: 0.68rem; }
	.kef-hero__eyebrow::before { width: 32px; }
}

/* Concept caption */
.kef-concept {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 0.66rem;
	font-weight: 450;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(239, 234, 224, 0.62);
}
.kef-concept__dot { width: 6px; height: 6px; border: 1px solid var(--brass); transform: rotate(45deg); flex: none; }

/* --------------------------------------------------------------------------
   Sections
   -------------------------------------------------------------------------- */
.kef-section {
	position: relative;
	padding-block: var(--sec);
	background: var(--bg);
	color: var(--fg);
}
.kef-tone--coal { --bg: var(--coal); }
.kef-tone--ivory {
	--bg: var(--ivory);
	--fg: var(--ink);
	--muted: #55534e;
	--accent: #65563d;
	--accent-hi: #65563d;
	--line: rgba(10, 10, 9, 0.22);
	--line-soft: rgba(10, 10, 9, 0.12);
}
.kef-tone--ivory .kef-section__content p,
.kef-tone--ivory .kef-lead { color: rgba(10, 10, 9, 0.78); }
.kef-tone--ivory .kef-btn { --btn-fg: var(--ink); border-color: var(--ink); }
.kef-tone--ivory .kef-btn::before { background: var(--ink); }
.kef-tone--ivory .kef-btn:hover { color: var(--ivory); }
.kef-tone--ivory .kef-concept { color: rgba(10, 10, 9, 0.62); }
.kef-tone--ivory ::selection { background: var(--ink); color: var(--ivory); }

.kef-section + .kef-section.kef-tone--ink:not(.kef-section--feature),
.kef-section.kef-tone--ink + .kef-section.kef-tone--ink { border-top: 1px solid var(--line-soft); }

.kef-section__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: clamp(16px, 2.4vw, 40px);
	align-items: center;
}
.kef-section__body { grid-column: 1 / -1; }
.kef-section__content > :last-child { margin-bottom: 0; }
.kef-section__content > .kef-btn,
.kef-section__content > .kef-partners,
.kef-section__content > .kef-facts,
.kef-section__content > .kef-quote { margin-top: clamp(24px, 3vw, 40px); }

/* Media */
.kef-media { position: relative; }
.kef-media__frame {
	position: relative;
	overflow: hidden;
	background: var(--graphite);
	aspect-ratio: 4 / 3;
}
.kef-media__frame img {
	object-position: var(--kef-focus, 50% 50%);
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.6s var(--ease);
}
.kef-media figcaption { margin-top: 14px; }

/* split */
.kef-section--split .kef-section__body,
.kef-section--split-reverse .kef-section__body { grid-column: 1 / span 5; grid-row: 1; }
.kef-section--split .kef-section__media { grid-column: 7 / -1; grid-row: 1; }
.kef-section--split-reverse .kef-section__body { grid-column: 8 / -1; }
.kef-section--split-reverse .kef-section__media { grid-column: 1 / span 6; }
.kef-section--split .kef-section__content h2,
.kef-section--split-reverse .kef-section__content h2 { font-size: clamp(2.4rem, 1.4rem + 3.2vw, 4.6rem); }

/* statement */
.kef-section--statement .kef-section__body {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: inherit;
}
.kef-section--statement .kef-label { grid-column: 1 / span 3; align-self: start; margin-top: 1.1em; }
.kef-section--statement .kef-section__content { grid-column: 4 / -1; }
.kef-section--statement .kef-section__content h2 {
	font-size: clamp(2.6rem, 1.1rem + 5vw, 6.4rem);
	line-height: 1;
	margin-bottom: clamp(32px, 5vw, 72px);
	max-width: 15em;
}
.kef-section--statement .kef-section__content p { max-width: 40em; }
.kef-section--statement .kef-section__content p.kef-lead { font-size: clamp(1.3rem, 1rem + 1.1vw, 2rem); max-width: 30em; }

/* feature (full-bleed) */
.kef-section--feature {
	min-height: 100vh;
	min-height: 100svh;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	padding-bottom: clamp(56px, 8vw, 120px);
}
.kef-section--feature .kef-container { position: relative; z-index: 2; }
.kef-media--bg { position: absolute; inset: 0; }
.kef-media--bg .kef-media__frame { position: absolute; inset: -8% 0; aspect-ratio: auto; }
.kef-media--bg .kef-media__frame img { will-change: transform; }
.kef-media--bg figcaption {
	position: absolute;
	right: var(--gutter);
	top: calc(var(--header-h) + 24px);
	z-index: 3;
	margin: 0;
}
.kef-section__shade {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(to top, rgba(10, 10, 9, 0.94) 0%, rgba(10, 10, 9, 0.4) 45%, rgba(10, 10, 9, 0.05) 75%),
		rgba(10, 10, 9, var(--kef-overlay, 0.4));
}
.kef-section--feature .kef-section__body { grid-column: 1 / span 7; }
.kef-section--feature.kef-tone--ivory { --fg: var(--ivory); --accent: var(--champagne); }
.kef-section--feature .kef-section__content p { color: rgba(239, 234, 224, 0.86); }

/* cinema */
.kef-section--cinema .kef-section__content {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: clamp(16px, 2.4vw, 40px);
	align-items: start;
}
.kef-section--cinema .kef-section__content > * { grid-column: 7 / -1; }
.kef-section--cinema .kef-section__content > h2 { grid-column: 1 / span 6; grid-row: 1 / span 6; margin: 0; }
.kef-section--cinema .kef-section__content > .kef-strip { grid-column: 1 / -1; grid-row: auto; }
.kef-section__cinema { margin-top: clamp(56px, 8vw, 120px); }
.kef-section__cinema .kef-media__frame { aspect-ratio: 21 / 9; }
.kef-section__cinema figcaption { display: flex; justify-content: flex-end; }

.kef-section--tall { min-height: 100svh; display: flex; align-items: center; }

@media (max-width: 900px) {
	.kef-section--split .kef-section__body,
	.kef-section--split-reverse .kef-section__body,
	.kef-section--split .kef-section__media,
	.kef-section--split-reverse .kef-section__media,
	.kef-section--feature .kef-section__body { grid-column: 1 / -1; grid-row: auto; }
	.kef-section--split .kef-section__media,
	.kef-section--split-reverse .kef-section__media { margin-top: 48px; margin-inline: calc(var(--gutter) * -1); }
	.kef-section--split .kef-media figcaption,
	.kef-section--split-reverse .kef-media figcaption { padding-inline: var(--gutter); }
	.kef-section--split-reverse .kef-section__media { order: 2; }

	.kef-section--statement .kef-label,
	.kef-section--statement .kef-section__content { grid-column: 1 / -1; margin-top: 0; }
	.kef-section--statement .kef-section__content p { margin-right: 0; }

	.kef-section--cinema .kef-section__content > *,
	.kef-section--cinema .kef-section__content > h2 { grid-column: 1 / -1; grid-row: auto; }
	.kef-section--cinema .kef-section__content > h2 { margin-bottom: 0.5em; }
	.kef-section__cinema { padding-inline: 0; }
	.kef-section__cinema .kef-media__frame { aspect-ratio: 4 / 3; }
	.kef-section__cinema figcaption { padding-inline: var(--gutter); justify-content: flex-start; }
}

/* --------------------------------------------------------------------------
   Stats
   -------------------------------------------------------------------------- */
.kef-stats { padding-block: clamp(80px, 10vw, 150px); }
.kef-stats__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	border-top: 1px solid var(--line);
}
.kef-stat {
	padding: clamp(28px, 3vw, 44px) clamp(16px, 2vw, 32px) 8px 0;
	border-right: 1px solid var(--line-soft);
	padding-left: clamp(16px, 2vw, 32px);
}
.kef-stat:first-child { padding-left: 0; }
.kef-stat:last-child { border-right: 0; }
.kef-stat__prefix {
	margin: 0 0 6px;
	font-size: 0.7rem;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--muted);
}
.kef-stat__value {
	display: flex;
	align-items: baseline;
	gap: 0.18em;
	margin: 0;
	font-family: var(--f-display);
	font-size: clamp(3.8rem, 1.8rem + 5vw, 7.5rem);
	font-weight: 300;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--champagne);
	font-variant-numeric: lining-nums tabular-nums;
	white-space: nowrap;
}
.kef-stat__unit { font-size: 0.34em; letter-spacing: 0.02em; color: var(--brass); font-style: italic; }
.kef-stat__label {
	margin: 18px 0 0;
	font-size: 0.78rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--fg);
	max-width: 22ch;
	line-height: 1.6;
}
.kef-stat__note { margin: 8px 0 0; font-size: 0.85rem; color: var(--muted); max-width: 30ch; line-height: 1.5; }
.kef-stats__note { margin: clamp(32px, 4vw, 56px) 0 0; font-size: 0.8rem; color: var(--muted); max-width: 60em; }

@media (max-width: 760px) {
	.kef-stats__grid { grid-template-columns: 1fr 1fr; }
	.kef-stat { padding-left: 0; border-right: 0; border-bottom: 1px solid var(--line-soft); padding-bottom: 28px; }
	.kef-stat:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--line-soft); }
	.kef-stat__value { font-size: clamp(2.8rem, 11vw, 4rem); }
	.kef-stat__label { font-size: 0.68rem; letter-spacing: 0.14em; }
}

/* --------------------------------------------------------------------------
   Masterplan
   -------------------------------------------------------------------------- */
.kef-mp__head,
.kef-tl__head,
.kef-news__head {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: clamp(16px, 2.4vw, 40px);
	align-items: end;
	margin-bottom: clamp(40px, 5vw, 72px);
}
.kef-mp__head > div,
.kef-tl__head > div { grid-column: 1 / span 7; }
.kef-mp__head .kef-lead,
.kef-tl__head .kef-lead { grid-column: 8 / -1; margin: 0 0 0.6em; font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.3rem); }
.kef-mp__head .kef-h2,
.kef-tl__head .kef-h2 { margin: 0; }

.kef-mp__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 28px;
}

.kef-mp__stage {
	display: grid;
	grid-template-columns: minmax(0, 1fr) clamp(300px, 26vw, 400px);
	gap: clamp(20px, 2vw, 32px);
	align-items: start;
}
.kef-mp__canvas {
	position: relative;
	overflow: hidden;
	background: var(--graphite);
	aspect-ratio: 16 / 9;
}
.kef-mp__img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.85) contrast(1.02); }
.kef-mp__grid {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		linear-gradient(rgba(239, 234, 224, 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(239, 234, 224, 0.05) 1px, transparent 1px);
	background-size: 8.333% 14.8%;
	box-shadow: inset 0 0 0 1px var(--line), inset 0 0 180px rgba(10, 10, 9, 0.55);
}
.kef-mp__canvas::before,
.kef-mp__canvas::after {
	content: "";
	position: absolute;
	z-index: 2;
	width: 28px; height: 28px;
	border-color: var(--brass);
	border-style: solid;
	pointer-events: none;
}
.kef-mp__canvas::before { top: 14px; left: 14px; border-width: 1px 0 0 1px; }
.kef-mp__canvas::after { bottom: 14px; right: 14px; border-width: 0 1px 1px 0; }

.kef-hs {
	position: absolute;
	left: var(--x);
	top: var(--y);
	z-index: 3;
	width: 44px;
	height: 44px;
	margin: -22px 0 0 -22px;
	padding: 0;
	border: 0;
	background: none;
	display: grid;
	place-items: center;
	transition: opacity 0.4s, transform 0.4s var(--ease);
}
.kef-hs__num {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 32px; height: 32px;
	border-radius: 50%;
	background: rgba(10, 10, 9, 0.78);
	border: 1px solid var(--cat, var(--brass));
	color: var(--ivory);
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.35);
	transition: background 0.3s, color 0.3s, transform 0.4s var(--ease);
}
.kef-hs__pulse {
	position: absolute;
	width: 32px; height: 32px;
	border-radius: 50%;
	border: 1px solid var(--cat, var(--brass));
	animation: kef-pulse 2.8s var(--ease) infinite;
}
.kef-hs__tip {
	position: absolute;
	left: 50%;
	bottom: calc(100% + 6px);
	z-index: 3;
	padding: 8px 12px;
	background: var(--ivory);
	color: var(--ink);
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	white-space: nowrap;
	transform: translate(-50%, 6px);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.25s, transform 0.35s var(--ease);
}
.kef-hs:hover .kef-hs__tip,
.kef-hs:focus-visible .kef-hs__tip,
.kef-hs.is-hover .kef-hs__tip { opacity: 1; transform: translate(-50%, 0); }
.kef-hs:hover .kef-hs__num,
.kef-hs.is-hover .kef-hs__num { transform: scale(1.12); }
.kef-hs--below .kef-hs__tip { bottom: auto; top: calc(100% + 6px); transform: translate(-50%, -6px); }
.kef-hs--left .kef-hs__tip { left: auto; right: 0; transform: translate(0, 6px); }
.kef-hs--right .kef-hs__tip { left: 0; transform: translate(0, 6px); }
.kef-hs--left:hover .kef-hs__tip, .kef-hs--right:hover .kef-hs__tip,
.kef-hs--left.is-hover .kef-hs__tip, .kef-hs--right.is-hover .kef-hs__tip { transform: none; }
.kef-hs[aria-expanded="true"] .kef-hs__num { background: var(--cat, var(--brass)); color: var(--ink); transform: scale(1.18); }
.kef-hs.is-dim { opacity: 0.12; pointer-events: none; }
.kef-hs:focus-visible { outline: none; }
.kef-hs:focus-visible .kef-hs__num { outline: 2px solid var(--ivory); outline-offset: 3px; }

.kef-mp__caption {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px 24px;
	margin-top: 14px;
}
.kef-mp__note { font-size: 0.78rem; color: var(--muted); }

.kef-mp__list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--line);
	max-height: min(56.25vw, 800px);
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: var(--bronze) transparent;
}
.kef-mp__item { border-bottom: 1px solid var(--line-soft); transition: opacity 0.3s; outline: none; }
.kef-mp__item.is-dim { opacity: 0.3; }
.kef-mp__item-head {
	display: grid;
	grid-template-columns: 34px 1fr 20px;
	grid-template-areas: "num title icon" "num cat icon";
	align-items: center;
	column-gap: 12px;
	width: 100%;
	padding: 16px 0;
	border: 0;
	background: none;
	text-align: left;
}
.kef-mp__num { grid-area: num; align-self: start; padding-top: 4px; font-size: 0.72rem; color: var(--accent); letter-spacing: 0.1em; }
.kef-mp__item-title { grid-area: title; font-family: var(--f-display); font-size: 1.45rem; line-height: 1.15; }
.kef-mp__cat {
	grid-area: cat;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 6px;
	font-size: 0.66rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--muted);
}
.kef-mp__item-head .kef-icon { grid-area: icon; width: 18px; color: var(--accent); transition: transform 0.4s var(--ease); }
.kef-mp__item-head[aria-expanded="true"] .kef-icon { transform: rotate(45deg); }
.kef-mp__item-head:hover .kef-mp__item-title { color: var(--accent-hi); }
.kef-mp__item-body { padding: 0 0 22px 46px; color: rgba(239, 234, 224, 0.78); font-size: 0.95rem; line-height: 1.65; }
.kef-mp__item-body p { margin: 0 0 12px; }
.kef-mp__item-img { margin-bottom: 14px; width: 100%; aspect-ratio: 3/2; object-fit: cover; }
.kef-mp__status { font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); }
.kef-mp__status span { color: var(--muted); margin-right: 8px; }
.kef-js .kef-mp__item-body { display: none; }
.kef-js .kef-mp__item.is-open .kef-mp__item-body { display: block; animation: kef-up 0.6s var(--ease) both; }
.kef-mp__item.is-open { background: linear-gradient(90deg, rgba(180, 156, 114, 0.08), transparent 70%); }

@media (max-width: 1000px) {
	.kef-mp__head > div,
	.kef-mp__head .kef-lead,
	.kef-tl__head > div,
	.kef-tl__head .kef-lead { grid-column: 1 / -1; }
	.kef-mp__head .kef-lead,
	.kef-tl__head .kef-lead { margin-top: 20px; }
	.kef-mp__stage { grid-template-columns: 1fr; }
	.kef-mp__list { max-height: none; overflow: visible; }
	.kef-mp__stage .kef-container { padding: 0; }
}
@media (max-width: 700px) {
	.kef-mp .kef-container--wide { padding-inline: 0; }
	.kef-mp__canvas { aspect-ratio: 4 / 3.4; }
	.kef-mp__img { object-position: 38% 50%; }
	.kef-mp__caption, .kef-mp__list { margin-inline: var(--gutter); }
	.kef-mp__filters { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scrollbar-width: none; }
	.kef-mp__filters::-webkit-scrollbar { display: none; }
	.kef-chip { flex: none; }
	.kef-hs { width: 40px; height: 40px; margin: -20px 0 0 -20px; }
	.kef-hs__num { width: 26px; height: 26px; font-size: 0.62rem; }
	.kef-hs__pulse { width: 26px; height: 26px; }
	.kef-hs__tip { display: none; }
}

/* --------------------------------------------------------------------------
   Live / Work / Experience
   -------------------------------------------------------------------------- */
.kef-pillars__head { max-width: 900px; margin-bottom: clamp(48px, 6vw, 96px); }
.kef-pillars__head .kef-h2 { margin: 0; }
.kef-pillars__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(20px, 2.4vw, 40px);
	align-items: start;
}
.kef-pillar:nth-child(2) { margin-top: clamp(40px, 7vw, 120px); }
.kef-pillar:nth-child(3) { margin-top: clamp(20px, 3.5vw, 60px); }
.kef-pillar__media .kef-media__frame { aspect-ratio: 3 / 4; }
.kef-pillar__media .kef-media__frame::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(10, 10, 9, 0.5), transparent 50%);
}
.kef-pillar:hover .kef-media__frame img { transform: scale(1.05); }
.kef-pillar__body { position: relative; margin-top: -0.62em; padding-right: 8%; }
.kef-pillar__kicker {
	position: relative;
	z-index: 2;
	margin: 0 0 18px;
	font-size: clamp(2.4rem, 0.8rem + 2.8vw, 4.4rem);
	line-height: 0.9;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ivory);
}
.kef-pillar__title {
	margin: 0 0 10px;
	font-size: 0.75rem;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--accent);
}
.kef-pillar__text { color: rgba(239, 234, 224, 0.74); margin: 0; }

@media (max-width: 900px) {
	.kef-pillars__grid {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: min(82vw, 420px);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		margin-inline: calc(var(--gutter) * -1);
		padding-inline: var(--gutter);
		scroll-padding-inline: var(--gutter);
		padding-bottom: 12px;
		scrollbar-width: none;
	}
	.kef-pillars__grid::-webkit-scrollbar { display: none; }
	.kef-pillar { scroll-snap-align: start; margin-top: 0 !important; }
	.kef-pillar__media .kef-media__frame { aspect-ratio: 4 / 5; }
}

/* --------------------------------------------------------------------------
   Filmstrip gallery
   -------------------------------------------------------------------------- */
.kef-strip { margin-top: clamp(56px, 7vw, 110px); }
.kef-section__content .kef-strip { margin-inline: calc(50% - 50vw); }
.kef-strip__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: clamp(280px, 58vw, 1000px);
	gap: clamp(12px, 1.6vw, 24px);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-inline: max(var(--gutter), calc((100vw - var(--max)) / 2));
	scroll-padding-inline: max(var(--gutter), calc((100vw - var(--max)) / 2));
	scrollbar-width: none;
	outline-offset: -2px;
}
.kef-strip__track::-webkit-scrollbar { display: none; }
.kef-strip__item { scroll-snap-align: start; overflow: hidden; aspect-ratio: 16 / 10; background: var(--graphite); }
.kef-strip__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
.kef-strip__item:hover img { transform: scale(1.04); }
.kef-strip__bar { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: 20px; }
.kef-strip__nav { display: flex; gap: 10px; }
@media (max-width: 700px) {
	.kef-strip__track { grid-auto-columns: 86vw; }
	.kef-strip__nav { display: none; }
}

/* --------------------------------------------------------------------------
   Facts, quote, partners, placeholder
   -------------------------------------------------------------------------- */
.kef-facts { margin: 0; border-top: 1px solid var(--line); }
.kef-facts__row {
	display: grid;
	grid-template-columns: minmax(90px, 160px) 1fr;
	gap: 24px;
	padding: 18px 0;
	border-bottom: 1px solid var(--line-soft);
	align-items: baseline;
}
.kef-facts dt { font-family: var(--f-display); font-size: 1.75rem; line-height: 1; color: var(--accent-hi); }
.kef-facts dd { margin: 0; color: var(--fg); opacity: 0.84; }

.kef-quote { margin: clamp(32px, 4vw, 56px) 0 0; padding-left: clamp(20px, 3vw, 40px); border-left: 1px solid var(--brass); }
.kef-quote blockquote { margin: 0; }
.kef-quote blockquote p {
	margin: 0;
	font-family: var(--f-display);
	font-style: italic;
	font-size: clamp(1.6rem, 1.1rem + 1.8vw, 2.7rem);
	line-height: 1.2;
	color: var(--fg) !important;
	max-width: 26em !important;
}
.kef-quote blockquote p::before { content: "„"; }
.kef-quote blockquote p::after { content: "“"; }
.kef-quote figcaption { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; }
.kef-quote__name { color: var(--accent); }
.kef-quote__role { color: var(--muted); }

.kef-partners__label { font-size: 0.72rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--muted); }
.kef-partners { margin-top: clamp(40px, 5vw, 64px); }
.kef-partners__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--line);
}
.kef-partners__list li {
	display: grid;
	place-items: center start;
	min-height: 96px;
	min-width: 200px;
	padding: 20px 32px 20px 0;
	margin-right: 32px;
	border-bottom: 1px solid var(--line-soft);
}
.kef-partners__list img { max-height: 48px; width: auto; filter: grayscale(1) brightness(1.6); opacity: 0.8; }
.kef-partners__name { font-family: var(--f-display); font-size: 1.5rem; line-height: 1.2; }
.kef-partners__slot { font-size: 0.62rem; letter-spacing: 0.18em; color: var(--muted); text-align: center; }

.kef-placeholder {
	position: relative;
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	min-height: 220px;
	padding: 24px;
	background:
		repeating-linear-gradient(135deg, rgba(180, 156, 114, 0.07) 0 1px, transparent 1px 14px),
		var(--graphite);
	border: 1px dashed rgba(180, 156, 114, 0.45);
	color: var(--champagne);
	text-align: center;
}
.kef-placeholder span { font-size: 0.7rem; letter-spacing: 0.24em; text-transform: uppercase; }
.kef-ratio { aspect-ratio: 16 / 9; }
.kef-ratio--4-3 { aspect-ratio: 4 / 3; }
.kef-ratio--3-4 { aspect-ratio: 3 / 4; }
.kef-ratio--21-9 { aspect-ratio: 21 / 9; }

/* --------------------------------------------------------------------------
   Location map
   -------------------------------------------------------------------------- */
.kef-loc__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: clamp(16px, 2.4vw, 40px);
	align-items: center;
}
.kef-loc__text { grid-column: 1 / span 5; }
.kef-loc__map { grid-column: 6 / -1; margin-right: calc(var(--gutter) * -0.5); }
.kef-loc__points { margin: clamp(32px, 4vw, 56px) 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.kef-loc__points li {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 6px 24px;
	align-items: baseline;
	padding: 18px 0;
	border-bottom: 1px solid var(--line-soft);
}
.kef-loc__name { font-family: var(--f-display); font-size: clamp(1.3rem, 1.1rem + 0.6vw, 1.7rem); line-height: 1.2; }
.kef-loc__detail { font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); text-align: right; }
.kef-loc__map figcaption { margin-top: 10px; font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); text-align: right; }

.kef-map { width: 100%; height: auto; color: var(--ivory); overflow: visible; }
.kef-map__land { fill: #171714; }
.kef-map__coast { fill: none; stroke: var(--brass); stroke-width: 1.2; stroke-opacity: 0.75; }
.kef-map__road { fill: none; stroke: rgba(239, 234, 224, 0.18); stroke-width: 1.5; stroke-dasharray: 2 6; stroke-linecap: round; }
.kef-map__road--draw { stroke: var(--champagne); stroke-width: 1.6; stroke-dasharray: 1; stroke-dashoffset: 0; }
.kef-js .kef-loc__map:not(.is-in) .kef-map__road--draw { stroke-dashoffset: 1; }
.kef-map__road--draw { transition: stroke-dashoffset 2.4s var(--ease-io) 0.4s; }
.kef-map__pt circle { fill: var(--ivory); }
.kef-map__pt circle.kef-map__glow { fill: url(#kef-map-glow); }
.kef-map__pt text { fill: var(--ivory); font-family: var(--f-sans); font-size: 17px; letter-spacing: 0.06em; }
.kef-map__ring { fill: none; stroke: var(--brass); stroke-width: 1.2; }
.kef-map__code { font-size: 13px !important; letter-spacing: 0.3em !important; fill: var(--brass) !important; }
.kef-map__pt--main .kef-map__dot { fill: var(--brass); }
.kef-map__pt--main .kef-map__pulse { fill: none; stroke: var(--champagne); stroke-width: 1.2; transform-origin: center; transform-box: fill-box; animation: kef-pulse 2.8s var(--ease) infinite; }
.kef-map__leader { fill: none; stroke: var(--brass); stroke-width: 1; }
.kef-map__main { font-size: 24px !important; font-weight: 500; letter-spacing: 0.24em !important; fill: var(--champagne) !important; }
.kef-map__sub { font-size: 13px !important; letter-spacing: 0.2em !important; text-transform: uppercase; fill: rgba(239, 234, 224, 0.7) !important; }
.kef-map__area { font-family: var(--f-display); font-style: italic; font-size: 40px; fill: rgba(239, 234, 224, 0.28); letter-spacing: 0.02em; }
.kef-map__sea-label { font-family: var(--f-sans); font-size: 12px; letter-spacing: 0.4em; text-transform: uppercase; fill: rgba(205, 187, 150, 0.55); }
.kef-map__road-label { font-family: var(--f-sans); font-size: 12px; letter-spacing: 0.24em; text-transform: uppercase; fill: rgba(239, 234, 224, 0.5); }
.kef-map__north path { fill: var(--brass); }
.kef-map__north text { fill: var(--brass); font-size: 12px; letter-spacing: 0.1em; font-family: var(--f-sans); }

@media (max-width: 1000px) {
	.kef-loc__text, .kef-loc__map { grid-column: 1 / -1; }
	.kef-loc__map { margin: 56px calc(var(--gutter) * -0.4) 0; }
}
@media (max-width: 560px) {
	.kef-map__pt text { font-size: 24px; }
	.kef-map__main { font-size: 30px !important; }
	.kef-map__sub { font-size: 17px !important; }
	.kef-map__area { font-size: 48px; }
	.kef-map__road-label, .kef-map__sea-label { font-size: 16px; }
	.kef-loc__points li { grid-template-columns: 1fr; }
	.kef-loc__detail { text-align: left; }
}

/* --------------------------------------------------------------------------
   Timeline
   -------------------------------------------------------------------------- */
.kef-tl__list {
	--tl-cols: 6;
	display: grid;
	grid-template-columns: repeat(var(--tl-cols), minmax(0, 1fr));
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: tl;
}
.kef-tl__item {
	position: relative;
	padding: 56px clamp(12px, 1.6vw, 28px) 0 0;
}
.kef-tl__item::before {
	content: "";
	position: absolute;
	top: 13px; left: 0; right: 0;
	height: 1px;
	background: var(--line);
}
.kef-tl__item.is-done::before,
.kef-tl__item.is-active::before { background: linear-gradient(90deg, var(--brass), var(--line)); }
.kef-tl__item.is-done::before { background: var(--brass); }
.kef-tl__marker {
	position: absolute;
	top: 0; left: 0;
	width: 27px; height: 27px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--bg);
	border: 1px solid var(--line);
}
.kef-tl__marker span { width: 7px; height: 7px; border-radius: 50%; background: rgba(239, 234, 224, 0.25); }
.kef-tl__item.is-done .kef-tl__marker { border-color: var(--brass); }
.kef-tl__item.is-done .kef-tl__marker span { background: var(--brass); }
.kef-tl__item.is-active .kef-tl__marker { border-color: var(--champagne); box-shadow: 0 0 0 6px rgba(180, 156, 114, 0.14); }
.kef-tl__item.is-active .kef-tl__marker span { background: var(--champagne); animation: kef-blink 2.4s ease-in-out infinite; }
.kef-tl__item.is-next .kef-tl__marker { border-color: var(--brass); }
@keyframes kef-blink { 50% { opacity: 0.35; } }
.kef-tl__index { margin: 0 0 16px; font-size: 0.72rem; letter-spacing: 0.2em; color: var(--accent); text-transform: uppercase; }
.kef-tl__index span { color: var(--muted); }
.kef-tl__title { font-size: clamp(1.5rem, 1.2rem + 0.9vw, 2.1rem); line-height: 1.1; margin: 0 0 12px; }
.kef-tl__text { font-size: 0.93rem; color: rgba(239, 234, 224, 0.72); line-height: 1.6; margin: 0 0 16px; }
.kef-tl__status {
	display: inline-block;
	margin: 0;
	padding: 5px 10px;
	border: 1px solid var(--line);
	font-size: 0.64rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--champagne);
}
.kef-tl__item.is-future .kef-tl__title,
.kef-tl__item.is-future .kef-tl__text { opacity: 0.72; }
.kef-tl__note { margin: clamp(40px, 5vw, 64px) 0 0; font-size: 0.8rem; color: var(--muted); }

@media (max-width: 1100px) {
	.kef-tl__list { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 48px; }
}
@media (max-width: 700px) {
	.kef-tl__list { grid-template-columns: 1fr; row-gap: 0; }
	.kef-tl__item { padding: 0 0 40px 52px; }
	.kef-tl__item::before { top: 28px; bottom: 0; left: 13px; right: auto; width: 1px; height: auto; }
	.kef-tl__item.is-done::before, .kef-tl__item.is-active::before { background: linear-gradient(var(--brass), var(--line)); }
	.kef-tl__item:last-child::before { display: none; }
	.kef-tl__item:last-child { padding-bottom: 0; }
	.kef-tl__index { padding-top: 5px; }
}

/* --------------------------------------------------------------------------
   News
   -------------------------------------------------------------------------- */
.kef-news__head > div { grid-column: 1 / span 8; }
.kef-news__head > .kef-btn { grid-column: 9 / -1; justify-self: end; }
.kef-news__head .kef-h2 { margin: 0; }
.kef-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(32px, 3vw, 48px) clamp(20px, 2.4vw, 40px);
}
.kef-card { position: relative; }
.kef-card__link { display: block; color: inherit; text-decoration: none; height: 100%; }
.kef-card__media { position: relative; overflow: hidden; aspect-ratio: 3 / 2; background: var(--graphite); }
.kef-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease), opacity 0.6s; }
.kef-card__link:hover .kef-card__media img { transform: scale(1.05); }
.kef-card__fallback {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	background: radial-gradient(circle at 70% 30%, rgba(180, 156, 114, 0.16), transparent 60%), var(--graphite);
}
.kef-card__fallback span { font-size: 1rem; letter-spacing: 0.6em; color: rgba(205, 187, 150, 0.5); font-weight: 500; }
.kef-card__body { padding-top: 22px; }
.kef-card__meta { margin: 0 0 12px; font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); }
.kef-card__title { font-size: clamp(1.45rem, 1.2rem + 0.6vw, 1.9rem); line-height: 1.15; margin: 0 0 12px; transition: color 0.3s; }
.kef-card__link:hover .kef-card__title { color: var(--accent-hi); }
.kef-card__excerpt { color: rgba(239, 234, 224, 0.72); font-size: 0.95rem; line-height: 1.6; margin: 0 0 16px; }
.kef-card__more {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 0.7rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--accent);
}
.kef-card__more .kef-icon { width: 16px; transition: transform 0.4s var(--ease); }
.kef-card__link:hover .kef-card__more .kef-icon { transform: translateX(5px); }

.kef-card--featured { margin-bottom: clamp(56px, 7vw, 96px); }
.kef-card--featured .kef-card__link { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(24px, 4vw, 72px); align-items: end; }
.kef-card--featured .kef-card__media { aspect-ratio: 16 / 10; }
.kef-card--featured .kef-card__title { font-size: clamp(2rem, 1.4rem + 2.2vw, 3.6rem); }
.kef-card--featured .kef-card__excerpt { font-size: 1.08rem; }

.kef-pager { margin-top: clamp(56px, 6vw, 96px); padding-top: 28px; border-top: 1px solid var(--line-soft); }
.kef-pager .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 10px;
	margin-right: 4px;
	color: var(--muted);
	text-decoration: none;
	font-size: 0.8rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.kef-pager .page-numbers.current { color: var(--ink); background: var(--brass); }
.kef-pager a.page-numbers:hover { color: var(--fg); }

@media (max-width: 1000px) {
	.kef-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kef-card--featured .kef-card__link { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.kef-cards { grid-template-columns: 1fr; }
	.kef-news__head > div, .kef-news__head > .kef-btn { grid-column: 1 / -1; justify-self: start; }
	.kef-news__head > .kef-btn { margin-top: 16px; }
}

/* --------------------------------------------------------------------------
   Contact (details only – no forms)
   -------------------------------------------------------------------------- */
.kef-contact__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: clamp(16px, 2.4vw, 40px);
	align-items: end;
}
.kef-contact__intro { grid-column: 1 / span 6; }
.kef-contact__intro .kef-lead { margin-bottom: 0; }
.kef-contact__card { grid-column: 8 / -1; }
.kef-contact__lines { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.kef-contact__lines li {
	display: grid;
	gap: 6px;
	padding: clamp(20px, 2.4vw, 32px) 0;
	border-bottom: 1px solid var(--line-soft);
}
.kef-contact__key {
	font-size: 0.7rem;
	font-weight: 450;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--accent);
}
.kef-contact__lines .kef-contact__value {
	justify-self: start;
	font-family: var(--f-display);
	font-size: clamp(1.9rem, 1.2rem + 2.2vw, 3.2rem);
	font-weight: 300;
	line-height: 1.1;
	color: var(--fg);
	text-decoration: none;
	overflow-wrap: anywhere;
	background: linear-gradient(var(--brass), var(--brass)) 0 100% / 0 1px no-repeat;
	transition: color 0.3s, background-size 0.5s var(--ease);
}
.kef-contact__lines .kef-contact__value:hover,
.kef-contact__lines .kef-contact__value:focus-visible { color: var(--accent-hi); background-size: 100% 1px; }

@media (max-width: 900px) {
	.kef-contact__intro, .kef-contact__card { grid-column: 1 / -1; }
	.kef-contact__card { margin-top: 48px; }
}

/* --------------------------------------------------------------------------
   Press cards (external news)
   -------------------------------------------------------------------------- */
.kef-press {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(16px, 2.4vw, 40px);
}
.kef-press__card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: clamp(260px, 26vw, 360px);
	padding: clamp(28px, 3.2vw, 48px);
	border: 1px solid var(--line-soft);
	background: linear-gradient(160deg, rgba(180, 156, 114, 0.07), transparent 55%), var(--coal);
	transition: border-color 0.4s var(--ease), background-color 0.4s;
}
.kef-press__card:hover,
.kef-press__card:focus-within { border-color: var(--line); background-color: var(--graphite); }
.kef-press__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 10px;
	margin: 0 0 auto;
	padding-bottom: 32px;
	font-size: 0.7rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--accent);
}
.kef-press__title {
	margin: 0 0 28px;
	font-size: clamp(1.7rem, 1.2rem + 1.4vw, 2.6rem);
	line-height: 1.12;
}
.kef-press__title a { color: var(--fg); text-decoration: none; transition: color 0.3s; }
.kef-press__title a::after { content: ""; position: absolute; inset: 0; }
.kef-press__title a:focus-visible { outline: none; }
.kef-press__card:focus-within { outline: 2px solid var(--champagne); outline-offset: 3px; }
.kef-press__card:hover .kef-press__title a { color: var(--accent-hi); }
.kef-press__more {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 0.7rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--accent);
}
.kef-press__more .kef-icon { width: 16px; height: 16px; transition: transform 0.4s var(--ease); }
.kef-press__card:hover .kef-press__more .kef-icon { transform: translate(3px, -3px); }
@media (max-width: 760px) {
	.kef-press { grid-template-columns: 1fr; }
	.kef-press__card { min-height: 0; }
	.kef-press__meta { padding-bottom: 24px; }
}

/* --------------------------------------------------------------------------
   Page heads, articles & prose
   -------------------------------------------------------------------------- */
.kef-page-head { padding: calc(var(--header-h) + clamp(72px, 10vw, 150px)) 0 clamp(48px, 6vw, 88px); border-bottom: 1px solid var(--line-soft); }
.kef-page-head__title { font-size: var(--t-display); line-height: 0.95; margin: 0 0 0.3em; }
.kef-page-head .kef-lead { margin: 0; }
.kef-news--archive { padding-top: clamp(56px, 7vw, 100px); }

.kef-article__head { padding: calc(var(--header-h) + clamp(56px, 8vw, 120px)) 0 clamp(40px, 5vw, 64px); }
.kef-article__back { margin: 0 0 clamp(32px, 4vw, 56px); font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; }
.kef-article__back a { color: var(--muted); text-decoration: none; }
.kef-article__back a:hover { color: var(--accent-hi); }
.kef-article__meta { font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent); display: flex; flex-wrap: wrap; gap: 6px 10px; }
.kef-article__meta a { color: inherit; text-decoration: none; }
.kef-article__title { font-size: clamp(2.6rem, 1.4rem + 4.2vw, 5.4rem); line-height: 1; margin: 0.3em 0 0.4em; }
.kef-article__lead { font-size: var(--t-lead); line-height: 1.5; font-weight: 300; color: rgba(239, 234, 224, 0.84); margin: 0; }
.kef-article__media { margin-bottom: clamp(48px, 6vw, 96px); }
.kef-article__media img { width: 100%; max-height: 82vh; object-fit: cover; }
.kef-article__media figcaption { margin-top: 12px; font-size: 0.8rem; color: var(--muted); }
.kef-article__foot { padding-block: clamp(48px, 6vw, 96px); }

.kef-prose { padding-bottom: clamp(48px, 6vw, 96px); font-size: 1.12rem; line-height: 1.8; color: rgba(239, 234, 224, 0.86); }
.kef-prose > * { max-width: var(--max-narrow); }
.kef-prose h2 { font-size: clamp(2rem, 1.5rem + 1.6vw, 3rem); margin: 1.6em 0 0.5em; color: var(--fg); }
.kef-prose h3 { font-size: clamp(1.5rem, 1.3rem + 0.8vw, 2rem); margin: 1.6em 0 0.5em; color: var(--fg); }
.kef-prose ul, .kef-prose ol { padding-left: 1.2em; }
.kef-prose li { margin-bottom: 0.4em; }
.kef-prose li::marker { color: var(--brass); }
.kef-prose blockquote, .kef-prose .wp-block-quote {
	margin: 2em 0;
	padding-left: 28px;
	border-left: 1px solid var(--brass);
	font-family: var(--f-display);
	font-style: italic;
	font-size: 1.7rem;
	line-height: 1.3;
	color: var(--fg);
}
.kef-prose blockquote cite { display: block; margin-top: 12px; font-family: var(--f-sans); font-style: normal; font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent); }
.kef-prose figure, .kef-prose .wp-block-image { margin: 2.4em 0; }
.kef-prose figcaption, .kef-prose .wp-element-caption { margin-top: 10px; font-size: 0.8rem; color: var(--muted); }
.kef-prose .alignwide { max-width: min(1200px, 100vw - var(--gutter) * 2); margin-inline: calc((min(1200px, 100vw - var(--gutter) * 2) - 100%) / -2); }
.kef-prose .alignfull { max-width: 100vw; margin-inline: calc(50% - 50vw); }
.kef-prose hr { border: 0; height: 1px; background: var(--line); margin: 3em 0; }
.kef-prose .wp-block-button__link { background: var(--brass); color: var(--ink); border-radius: 0; padding: 14px 26px; font-size: 0.75rem; letter-spacing: 0.22em; text-transform: uppercase; text-decoration: none; }
.kef-prose table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.kef-prose th, .kef-prose td { padding: 12px 10px; border-bottom: 1px solid var(--line-soft); text-align: left; }

.kef-postnav { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; border-top: 1px solid var(--line); padding-top: 28px; }
.kef-postnav__item { display: block; color: var(--fg); text-decoration: none; }
.kef-postnav__item--next { text-align: right; grid-column: 2; }
.kef-postnav__label { display: block; margin-bottom: 8px; font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent); }
.kef-postnav__title { font-family: var(--f-display); font-size: 1.4rem; line-height: 1.2; }
.kef-postnav__item:hover .kef-postnav__title { color: var(--accent-hi); }
@media (max-width: 600px) {
	.kef-postnav { grid-template-columns: 1fr; }
	.kef-postnav__item--next { grid-column: 1; text-align: left; }
}

.kef-404 { position: relative; min-height: 100svh; display: flex; align-items: flex-end; overflow: hidden; }
.kef-404__media { position: absolute; inset: 0; opacity: 0.35; }
.kef-404__media img { width: 100%; height: 100%; object-fit: cover; }
.kef-404__inner { position: relative; padding-bottom: clamp(64px, 10vw, 140px); }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.kef-footer { background: var(--ink); border-top: 1px solid var(--line-soft); padding: clamp(72px, 9vw, 140px) 0 calc(28px + env(safe-area-inset-bottom, 0px)); }
.kef-footer__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px 48px; padding-bottom: clamp(48px, 6vw, 88px); border-bottom: 1px solid var(--line-soft); }
.kef-footer__mark {
	display: inline-flex;
	align-items: center;
	gap: clamp(16px, 2vw, 32px);
	color: var(--fg);
	text-decoration: none;
	font-size: clamp(2.2rem, 1rem + 5.4vw, 6.8rem);
	line-height: 1;
}
.kef-footer__mark span:first-child { font-weight: 600; letter-spacing: 0.2em; }
.kef-footer__mark span:last-child { font-weight: 250; letter-spacing: 0.28em; color: var(--champagne); }
.kef-footer__mark-rule { width: clamp(36px, 6vw, 110px); height: 1px; background: var(--brass); }
.kef-footer__mark:hover { color: var(--fg); }
.kef-footer__tagline { max-width: 22em; margin: 0; font-family: var(--f-display); font-style: italic; font-size: clamp(1.2rem, 1rem + 0.7vw, 1.6rem); color: rgba(239, 234, 224, 0.72); line-height: 1.35; }

.kef-footer__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 40px; padding: clamp(40px, 5vw, 72px) 0; }
.kef-footer__heading { margin: 0 0 18px; font-size: 0.7rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--accent); }
.kef-footer__list { display: grid; grid-template-columns: repeat(2, max-content); gap: 4px 56px; margin: 0; padding: 0; list-style: none; }
.kef-footer__list a { display: inline-block; padding: 6px 0; color: var(--fg); text-decoration: none; font-family: var(--f-display); font-size: 1.45rem; }
.kef-footer__list a:hover { color: var(--accent-hi); }
.kef-footer__lines { margin: 0; padding: 0; list-style: none; }
.kef-footer__lines li { padding: 4px 0; font-size: 1.05rem; }
.kef-footer__contact a { color: var(--fg); text-decoration: none; }
.kef-footer__contact a:hover { color: var(--accent-hi); }
.kef-admin-hint { font-size: 0.8rem; color: var(--brass) !important; }

.kef-footer__bottom { display: grid; grid-template-columns: auto 1fr auto; gap: 16px 40px; align-items: center; padding-top: 28px; border-top: 1px solid var(--line-soft); font-size: 0.78rem; color: var(--muted); }
.kef-footer__bottom p { margin: 0; }
.kef-footer__disclaimer { max-width: 60em; }
.kef-footer__top-link { color: var(--muted); text-decoration: none; letter-spacing: 0.16em; text-transform: uppercase; font-size: 0.7rem; white-space: nowrap; min-height: 44px; display: inline-flex; align-items: center; }
.kef-footer__top-link:hover { color: var(--accent-hi); }

@media (max-width: 900px) {
	.kef-footer__grid { grid-template-columns: 1fr; }
	.kef-footer__bottom { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
	.kef-footer__grid { grid-template-columns: 1fr; }
	.kef-footer__list { grid-template-columns: 1fr 1fr; gap: 0 24px; }
	.kef-footer__list a { font-size: 1.25rem; }
}

/* --------------------------------------------------------------------------
   Scroll reveal (only when JS is running)
   -------------------------------------------------------------------------- */
.kef-js .kef-reveal {
	opacity: 0;
	transform: translate3d(0, 28px, 0);
	transition: opacity 1.1s var(--ease), transform 1.1s var(--ease);
	transition-delay: calc(var(--i, 0) * 90ms);
}
.kef-js .kef-reveal.is-in { opacity: 1; transform: none; }
.kef-js .kef-reveal--mask { opacity: 1; transform: none; }
.kef-js .kef-reveal--mask .kef-media__frame { clip-path: inset(12% 0 0 0); transition: clip-path 1.5s var(--ease); }
.kef-js .kef-reveal--mask .kef-media__frame img { transform: scale(1.14); transition: transform 2s var(--ease); }
.kef-js .kef-reveal--mask.is-in .kef-media__frame { clip-path: inset(0); }
.kef-js .kef-reveal--mask.is-in .kef-media__frame img { transform: scale(1); }
.kef-js .kef-section__content > * { transition: opacity 1s var(--ease), transform 1s var(--ease); }
.kef-js .kef-section:not(.is-in) .kef-section__content > :not(.kef-strip) { opacity: 0; transform: translate3d(0, 24px, 0); }
.kef-js .kef-section.is-in .kef-section__content > :nth-child(2) { transition-delay: 0.08s; }
.kef-js .kef-section.is-in .kef-section__content > :nth-child(3) { transition-delay: 0.16s; }
.kef-js .kef-section.is-in .kef-section__content > :nth-child(4) { transition-delay: 0.24s; }
.kef-js .kef-section.is-in .kef-section__content > :nth-child(n+5) { transition-delay: 0.32s; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		transition-delay: 0s !important;
	}
	.kef-js .kef-reveal,
	.kef-js .kef-section:not(.is-in) .kef-section__content > * { opacity: 1; transform: none; }
	.kef-js .kef-reveal--mask .kef-media__frame { clip-path: none; }
	.kef-js .kef-reveal--mask .kef-media__frame img,
	.kef-hero__img { transform: none; }
	.kef-hs__pulse, .kef-map__pulse { display: none; }
	.kef-hero__video { display: none; }
}

@media print {
	.kef-header, .kef-hero__scroll { display: none !important; }
	body, .kef-section { background: #fff !important; color: #000 !important; }
	.kef-js .kef-reveal { opacity: 1 !important; transform: none !important; }
}

/* WordPress core alignment helpers */
.alignleft { float: left; margin: 0.4em 1.6em 1em 0; }
.alignright { float: right; margin: 0.4em 0 1em 1.6em; }
.aligncenter { margin-inline: auto; }
.wp-caption-text { font-size: 0.8rem; color: var(--muted); }

/* Hotel Keflavík photo: keep the building centred when cropped */
#saga .kef-media__frame { --kef-focus: 58% 55%; }
