/* ==========================================================================
   Windham Knox: main stylesheet
   Colors, fonts and base typography come from theme.json. This file holds the
   layout and behavior styles ported from the approved prototype.
   ========================================================================== */

:root {
	--wk-ink: var(--wp--preset--color--ink);
	--wk-ink-2: var(--wp--preset--color--ink-2);
	--wk-ink-3: var(--wp--preset--color--ink-3);
	--wk-paper: var(--wp--preset--color--paper);
	--wk-muted: var(--wp--preset--color--muted);
	--wk-dim: var(--wp--preset--color--dim);
	--wk-row: var(--wp--preset--color--row);
	--wk-name: var(--wp--preset--color--name);
	--wk-line: var(--wp--preset--color--line);
	--wk-line-2: var(--wp--preset--color--line-2);
	/* Side gutter; never less than the notch / home-indicator inset on phones. */
	--wk-pad: max(clamp(20px, 4.8vw, 64px), env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px));
	--wk-serif: var(--wp--preset--font-family--libre-caslon);
	--wk-sans: var(--wp--preset--font-family--lora);
	--wk-ease: cubic-bezier(.2, .7, .1, 1);
	--wk-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M1 5h14M11 1l4 4-4 4'/%3E%3C/svg%3E");
	--wk-menu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 14' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M0 1h22M0 7h22M0 13h22'/%3E%3C/svg%3E");
	--wk-logo-ratio: 6599.29 / 462.86;
	--wk-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M2 2l12 12M14 2L2 14'/%3E%3C/svg%3E");
	color-scheme: dark;
}

html { scroll-behavior: smooth; background: var(--wk-ink); }
body { -webkit-font-smoothing: antialiased; }
img { max-width: 100%; }
:focus-visible { outline: 2px solid var(--wk-paper); outline-offset: 3px; }

.wk-wrap { max-width: 1360px; margin: 0 auto; padding: 0 var(--wk-pad); box-sizing: border-box; }
.wk-caps,
.wk-caps a,
.is-style-wk-label { font-size: 14px; font-weight: 400; letter-spacing: .03em; text-transform: uppercase; }
.wk-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Text link with arrow ("OUR LEADERSHIP →"). Add the class "wk-text-link" to a paragraph or a link. */
.wk-text-link a,
.is-style-wk-text-link a,
a.wk-text-link {
	display: inline-flex; align-items: center; gap: 14px; min-height: 44px;
	color: var(--wk-paper); text-decoration: none;
	font-size: 14px; font-weight: 400; letter-spacing: .03em; text-transform: uppercase;
	transition: color .25s ease;
}
.wk-text-link a::after,
.is-style-wk-text-link a::after,
a.wk-text-link::after {
	content: ""; width: 16px; height: 10px; background: currentColor;
	-webkit-mask: var(--wk-arrow) no-repeat center / contain; mask: var(--wk-arrow) no-repeat center / contain;
	transition: transform .3s ease;
}
.wk-text-link a:hover,
.is-style-wk-text-link a:hover,
a.wk-text-link:hover { color: #fff; }
.wk-text-link a:hover::after,
.is-style-wk-text-link a:hover::after,
a.wk-text-link:hover::after { transform: translateX(4px); }

/* ---------- Page structure ---------- */
.wp-site-blocks > * { margin-block: 0; }
/* Short pages (e.g. Careers with no roles) still push the footer to the bottom of the window. */
.wp-site-blocks { display: flex; flex-direction: column; min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px)); min-height: calc(100svh - var(--wp-admin--admin-bar--height, 0px)); }
.wp-site-blocks > .wk-main { flex: 1 0 auto; }
/* Custom blocks (.wk-block) run full width; regular blocks added to a page sit in a 920px column. */
.wk-main .wp-block-post-content > * { margin-block: 0; }
.wk-main .wp-block-post-content > :not(.wk-block):not(.alignfull):not(.alignwide) {
	max-width: 920px; margin-left: auto; margin-right: auto; padding-left: var(--wk-pad); padding-right: var(--wk-pad); box-sizing: content-box;
}
.wk-main .wp-block-post-content > :not(.wk-block) + :not(.wk-block) { margin-top: 24px; }
.wk-main .wp-block-post-content > .alignwide { max-width: 1360px; margin-left: auto; margin-right: auto; padding-left: var(--wk-pad); padding-right: var(--wk-pad); box-sizing: border-box; }
/* A page that doesn't open with a hero or banner still clears the header. */
.wk-main .wp-block-post-content > :first-child:not(.wk-hero):not(.wk-page-head):not(.wk-home-hero):not(.wk-banner) { margin-top: 160px; }
.wk-main .wp-block-post-content > :last-child:not(.wk-block) { margin-bottom: clamp(96px, 13vh, 140px); }
.wk-main--plain { padding-top: 160px; padding-bottom: clamp(96px, 13vh, 140px); }

/* ---------- Header ---------- */
.wk-header {
	position: absolute; inset: 0 0 auto 0; z-index: 50;
	padding-left: var(--wk-pad); padding-right: var(--wk-pad);
	border-bottom: 1px solid rgba(255, 255, 255, .22);
	background: rgba(14, 14, 15, 0);
	transition: transform .45s var(--wk-ease), background .3s ease;
}
.admin-bar .wk-header { top: 32px; }
.wk-header.is-fixed { position: fixed; }
.admin-bar .wk-header.is-fixed { top: var(--wp-admin--admin-bar--height, 32px); }
.wk-header.is-hidden { transform: translateY(-101%); }
.admin-bar .wk-header.is-hidden { transform: translateY(calc(-101% - 46px)); }
.wk-header.is-solid { background: var(--wk-ink); }
/* Soft shade behind the nav while it sits over the hero, so the logo and links separate from the video.
   It runs a little below the bar and fades out, so there's no visible edge. */
.wk-header::before {
	content: ""; position: absolute; left: 0; right: 0; top: 0; height: 170%; z-index: -1; pointer-events: none;
	background: linear-gradient(180deg, rgba(14, 14, 15, .62) 0%, rgba(14, 14, 15, .38) 45%, rgba(14, 14, 15, .12) 75%, rgba(14, 14, 15, 0) 100%);
	transition: opacity .3s ease;
}
.wk-header.is-solid::before { opacity: 0; }
.wk-header.no-anim { transition: none; }
.wk-header__bar { height: 80px; gap: 24px; }

.wk-logo .custom-logo-link,
.wk-nav__logo { display: block; color: var(--wk-paper); }
.wk-logo svg,
.wk-nav__logo svg { display: block; width: clamp(180px, 22vw, 300px); height: auto; aspect-ratio: var(--wk-logo-ratio); }

/* Desktop nav */
.wk-nav { gap: clamp(18px, 2.6vw, 36px); }
.wk-nav .wp-block-navigation-item__content {
	color: #d6d3cd; padding: 12px 0; text-decoration: none; text-underline-offset: 7px;
	font-size: 14px; font-weight: 400; letter-spacing: .03em; text-transform: uppercase;
}
.wk-nav .wp-block-navigation-item__content:hover,
.wk-nav .wp-block-navigation-item__content[aria-current="page"] { text-decoration: underline; }
.wk-nav .wk-mobile-only { display: none; }

/* Menu button: hamburger icon (the "Menu" text stays for screen readers via the button label) */
.wk-nav .wp-block-navigation__responsive-container-open {
	width: 44px; height: 44px; margin-right: -11px; padding: 0; align-items: center; justify-content: center;
	color: #fff; font-size: 0 !important; line-height: 0;
}
.wk-nav .wp-block-navigation__responsive-container-open::before {
	content: ""; width: 22px; height: 14px; background: currentColor;
	-webkit-mask: var(--wk-menu) no-repeat center / contain; mask: var(--wk-menu) no-repeat center / contain;
}

/* Full-screen mobile overlay: logo where it sits in the header, X where the hamburger was, links centered. */
.wk-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 80px var(--wk-pad) 40px; background: var(--wk-ink);
	animation: wkMenuIn .7s cubic-bezier(.76, 0, .24, 1) both;
}
/* Open: the panel wipes down from the header, then the links rise in one by one.
   Close (main.js holds the close for this): links drop away and the panel wipes back up. */
@keyframes wkMenuIn { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes wkMenuOut { from { clip-path: inset(0 0 0 0); } to { clip-path: inset(0 0 100% 0); } }
@keyframes wkMenuItem { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes wkMenuItemOut { to { opacity: 0; transform: translateY(-12px); } }
.wk-nav .is-menu-open .wp-block-navigation-item { animation: wkMenuItem .8s cubic-bezier(.2, .7, .1, 1) both; }
.wk-nav .is-menu-open .wp-block-navigation-item:nth-child(1) { animation-delay: .32s; }
.wk-nav .is-menu-open .wp-block-navigation-item:nth-child(2) { animation-delay: .39s; }
.wk-nav .is-menu-open .wp-block-navigation-item:nth-child(3) { animation-delay: .46s; }
.wk-nav .is-menu-open .wp-block-navigation-item:nth-child(4) { animation-delay: .56s; }
.wk-nav .is-menu-open .wk-nav__logo,
.wk-nav .is-menu-open .wp-block-navigation__responsive-container-close { animation: wkFadeIn .5s .3s ease both; }
.wk-nav .is-menu-open.wk-menu-closing { animation: wkMenuOut .55s .12s cubic-bezier(.76, 0, .24, 1) both; }
.wk-nav .is-menu-open.wk-menu-closing .wp-block-navigation-item { animation: wkMenuItemOut .3s ease both; animation-delay: 0s; }
.wk-nav .is-menu-open.wk-menu-closing .wk-nav__logo,
.wk-nav .is-menu-open.wk-menu-closing .wp-block-navigation__responsive-container-close { animation: none; opacity: 0; transition: opacity .25s ease; }
.wk-nav .is-menu-open .wp-block-navigation__responsive-close,
.wk-nav .is-menu-open .wp-block-navigation__responsive-dialog { height: 100%; max-width: none; }
.wk-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	height: 100%; padding-top: 0 !important; justify-content: center !important; align-items: center !important;
}
.wk-nav .is-menu-open .wp-block-navigation__container { align-items: center !important; justify-content: center !important; gap: 6px !important; width: 100%; }
.wk-nav .is-menu-open .wk-mobile-only { display: block; }
.wk-nav .is-menu-open .wp-block-navigation-item { width: 100%; justify-content: center; text-align: center; }
.wk-nav .is-menu-open .wp-block-navigation-item__content {
	display: block; width: 100%; padding: 10px 0 !important;
	font-size: clamp(28px, 8vw, 40px); font-weight: 500; letter-spacing: -.01em; line-height: 1.1; color: var(--wk-paper);
}
.wk-nav .is-menu-open .wk-contact-email .wp-block-navigation-item__content {
	font-size: 16px; font-weight: 400; letter-spacing: 0; text-transform: none;
	color: var(--wk-muted); margin-top: 28px;
}
.wk-nav .wk-nav__logo { display: none; }
.wk-nav .is-menu-open .wk-nav__logo { display: block; position: fixed; top: 40px; left: var(--wk-pad); transform: translateY(-50%); }
.wk-nav .wp-block-navigation__responsive-container-close {
	position: fixed; top: 18px; right: calc(var(--wk-pad) - 11px); width: 44px; height: 44px; padding: 0; margin: 0;
	display: grid; place-items: center; border: 0; background: none;
	font-size: 0 !important; line-height: 0; overflow: hidden; color: var(--wk-paper) !important;
}
.wk-nav .wp-block-navigation__responsive-container-close svg { display: none; }
.wk-nav .wp-block-navigation__responsive-container-close::before {
	content: ""; width: 18px; height: 18px; background: currentColor;
	-webkit-mask: var(--wk-close) no-repeat center / contain; mask: var(--wk-close) no-repeat center / contain;
}
.wk-nav .is-menu-open .wp-block-navigation-item__content[aria-current="page"] { text-decoration: none; }
.admin-bar .wk-nav .is-menu-open .wp-block-navigation__responsive-container-close { top: calc(18px + var(--wp-admin--admin-bar--height, 0px)); }
.admin-bar .wk-nav .is-menu-open .wk-nav__logo { top: calc(40px + var(--wp-admin--admin-bar--height, 0px)); }

/* WordPress switches the nav at 600px; the design switches at 640px. */
@media (min-width: 600px) and (max-width: 640px) {
	.wk-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.wk-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* ---------- Logo intro (home, once per visit) ---------- */
.wk-intro { display: none; }
.wk-intro-on .wk-intro {
	position: fixed; inset: 0; z-index: 100; display: grid; place-items: center;
	background: var(--wk-ink); transition: background-color .9s ease;
}
.wk-intro svg {
	display: block; width: min(560px, 76vw); height: auto; aspect-ratio: var(--wk-logo-ratio); color: var(--wk-paper);
	transition: opacity .7s ease, transform 1s var(--wk-ease);
}
/* Letters rise in one after another (each shape carries --i from PHP). */
.wk-intro svg > * {
	opacity: 0; transform: translateY(40%); transform-box: fill-box;
	animation: wkLetter .9s var(--wk-ease) forwards; animation-delay: calc(.25s + var(--i, 0) * 70ms);
}
@keyframes wkLetter { to { opacity: 1; transform: none; } }
.wk-intro.is-leaving { background-color: rgba(14, 14, 15, 0); pointer-events: none; }
.wk-intro.is-leaving svg { opacity: 0; transform: scale(1.03); }
.wk-intro-on .wk-header .wk-logo svg { opacity: 0; transition: opacity .8s ease .25s; }
.wk-intro-on.wk-intro-done .wk-header .wk-logo svg { opacity: 1; }

/* ---------- Hero ---------- */
.wk-hero {
	position: relative; min-height: max(560px, min(100svh, 52vw)); display: flex; align-items: center;
	overflow: hidden; background: var(--wk-ink);
}
.wk-hero__img { position: absolute; inset: 0; background-size: cover; background-repeat: no-repeat; }
.wk-hero::before {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background:
		linear-gradient(90deg, rgba(14,14,15,.72) 0%, rgba(14,14,15,.5) 30%, rgba(14,14,15,0) 58%),
		linear-gradient(0deg, rgba(14,14,15,.6) 0%, rgba(14,14,15,0) 30%),
		linear-gradient(180deg, rgba(14,14,15,.6) 0%, rgba(14,14,15,0) 22%);
}
.wk-hero .wk-wrap { position: relative; z-index: 2; width: 100%; padding-top: 120px; padding-bottom: 72px; }
.wk-hero h1 {
	margin: 0; max-width: 7em; font-family: var(--wk-serif); font-weight: 400; font-size: clamp(38px, 4.1vw, 56px);
	line-height: 1.15; letter-spacing: -.005em; text-transform: none; color: var(--wk-paper);
}
.wk-hero h1 em { font-style: italic; color: #a8977a; }
.wk-hero__next {
	margin: 24px 0 0; max-width: 18em; font-family: var(--wk-serif); font-weight: 400; font-size: clamp(20px, 2.1vw, 28px);
	line-height: 1.35; color: var(--wk-paper);
}

/* Hero sequence: only runs when JS is on and motion is allowed (html.wk-anim). */
.wk-anim .wk-hero__img { opacity: 0; transform: scale(1.05); }
.wk-anim .wk-hero h1,
.wk-anim .wk-hero__next { opacity: 0; transform: translateY(24px); }
.wk-anim .wk-hero.is-go .wk-hero__img { animation: wkHeroIn 2.6s var(--wk-ease) forwards; }
.wk-anim .wk-hero.is-go h1 { animation: wkRise 1.2s .35s var(--wk-ease) forwards; }
.wk-anim .wk-hero.is-go .wk-hero__next { animation: wkRise 1.2s .8s var(--wk-ease) forwards; }
@keyframes wkRise { to { opacity: 1; transform: none; } }
@keyframes wkHeroIn { to { opacity: 1; transform: none; } }
@keyframes wkFadeIn { to { opacity: 1; } }

/* ---------- Services ---------- */
.wk-services { padding: clamp(96px, 13vh, 150px) 0; scroll-margin-top: 0; }
.wk-services .wk-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.9fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.wk-services__head { position: sticky; top: 120px; }
.wk-services__intro {
	margin: 0; max-width: 10.5em;
	font-family: var(--wk-serif); font-size: clamp(22px, 2.2vw, 30px); font-weight: 400; line-height: 1.45; letter-spacing: 0; text-transform: none;
	color: var(--wk-paper);
}
.wk-services__intro b { font-weight: 400; font-style: italic; color: #a8977a; }
.wk-services__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid #3a3a3a; }
.wk-services__row { margin: 0; border-bottom: 1px solid #3a3a3a; padding: 25px 16px; }
.wk-services__row h3 {
	margin: 0; font-family: var(--wk-sans); font-weight: 300; font-size: clamp(17px, 1.55vw, 20px); line-height: 1.3; letter-spacing: .02em;
	text-transform: uppercase; color: #6b6b6b; transition: color .3s ease;
}
/* Rows sit faint and brighten only under the pointer (the reverse of a dark-on-light hover). */
.wk-services__row:hover h3,
.wk-services__row:focus-within h3 { color: var(--wk-paper); }

/* ---------- Leadership panel (home) ---------- */
.wk-lead-block { padding: 0 0 clamp(96px, 13vh, 150px); }
/* Desktop: the whole image fills the frame at its own shape; the quote panel sits over its right half. */
.wk-lead-frame { position: relative; display: grid; grid-template-columns: 1fr 1fr; aspect-ratio: var(--wk-lead-ratio, 2400 / 1453); min-height: 420px; min-width: 0; background: #1a1918; overflow: hidden; }
.wk-lead-frame__photo {
	position: absolute; inset: 0; background-image: var(--wk-lead-lg); background-size: cover; background-position: 0 50%; background-repeat: no-repeat;
	filter: grayscale(1) contrast(1.05);
}
.wk-lead-frame__panel { position: relative; grid-column: 2; align-self: center; margin: clamp(40px, 6vw, 84px) 0; background: transparent; padding: clamp(36px, 4.4vw, 64px) clamp(28px, 4.4vw, 56px); }
.wk-lead-frame blockquote { margin: 0; padding: 0; border: 0; font-family: var(--wk-serif); font-weight: 400; font-size: clamp(22px, 2.35vw, 31px); line-height: 1.22; letter-spacing: 0; max-width: 14em; color: var(--wk-paper); }
.wk-lead-frame .wk-text-link { margin-top: 28px; }
.wk-lead-frame.is-linked { cursor: pointer; }
.wk-lead-frame.is-linked:hover .wk-text-link { color: #fff; }
.wk-lead-frame.is-linked:hover .wk-text-link::after { transform: translateX(4px); }

/* ---------- Interior page banner ---------- */
.wk-page-head { position: relative; overflow: hidden; padding: clamp(140px, 17vh, 160px) 0 clamp(64px, 8vh, 84px); background: var(--wk-ink); }
.wk-page-head__img {
	position: absolute; top: 0; right: 0; bottom: 0; width: 62%;
	background-size: cover; background-position: 100% 50%; background-repeat: no-repeat; opacity: .9;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 40%); mask-image: linear-gradient(90deg, transparent 0%, #000 40%);
}
.wk-page-head .wk-wrap { position: relative; }
.wk-page-head h1 { margin: 0; font-family: var(--wk-serif); font-weight: 400; font-size: clamp(40px, 5vw, 68px); line-height: 1.05; letter-spacing: 0; text-transform: uppercase; color: #ece7dd; }

/* ---------- Leader grid ---------- */
.wk-people {
	display: flex; flex-wrap: wrap; justify-content: flex-start;
	gap: clamp(48px, 7vh, 72px) clamp(16px, 2.6vw, 36px);
	max-width: 1100px; margin: 0 auto; padding: clamp(72px, 10vh, 112px) 0 clamp(96px, 13vh, 140px);
}
.wk-person {
	flex: 0 0 calc((100% - 2 * clamp(16px, 2.6vw, 36px)) / 3);
	display: flex; flex-direction: column; justify-content: flex-start; align-self: flex-start;
	padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; text-align: center;
}
/* Photos line up across a row; longer names/titles only grow downward (buttons center their content by default). */
.wk-people { align-items: flex-start; }
.wk-person__photo { position: relative; display: block; aspect-ratio: 3 / 4; overflow: hidden; background: var(--wk-ink-3); border: 1px solid var(--wk-line-2); }
.wk-person__photo img {
	/* 1px overscan: the filter + fractional frame height left a hairline of the frame showing at the bottom. */
	position: absolute; inset: -1px; width: calc(100% + 2px); height: calc(100% + 2px); max-width: none; object-fit: cover; object-position: 50% 22%;
	filter: grayscale(1); transition: transform .8s var(--wk-ease), filter .6s ease;
}
.wk-person:hover .wk-person__photo img { transform: scale(1.04); filter: grayscale(0); }
/* Photos fade in once they've loaded instead of popping in over the empty frame. */
.wk-anim .wk-person__photo img:not(.is-loaded) { opacity: 0; }
.wk-person__photo img { transition: transform .8s var(--wk-ease), filter .6s ease, opacity .6s ease; }
.wk-person:focus-visible .wk-person__photo img { filter: grayscale(0); }
.wk-person__name {
	display: block; margin: 22px 0 0; font-family: var(--wk-sans); font-size: clamp(17px, 1.6vw, 22px); font-weight: 400; letter-spacing: .01em;
	text-transform: uppercase; line-height: 1.2; color: var(--wk-name); transition: color .25s ease;
}
.wk-person:hover .wk-person__name { color: var(--wk-paper); }
.wk-person__title { display: block; margin-top: 6px; font-size: 13px; line-height: 1.4; letter-spacing: .04em; text-transform: uppercase; color: var(--wk-dim); transition: color .25s ease; }
.wk-person:hover .wk-person__title { color: var(--wk-muted); }
.wk-empty { color: var(--wk-muted); padding: 48px 0; }

/* Bio dialog */
dialog.wk-bio {
	width: min(1000px, calc(100vw - 2 * var(--wk-pad))); max-height: calc(100svh - 64px);
	padding: 0; border: 1px solid var(--wk-line-2); background: var(--wk-ink-2); color: var(--wk-paper); overflow: hidden;
}
dialog.wk-bio::backdrop { background: rgba(5, 5, 6, .8); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
/* Open: backdrop fades in while the panel rises and settles. Close (main.js adds .is-closing): both ease out, then the dialog shuts. */
dialog.wk-bio[open] { animation: wkBioIn .7s var(--wk-ease); }
dialog.wk-bio[open]::backdrop { animation: wkBackdropIn .5s ease; }
dialog.wk-bio.is-closing { animation: wkBioOut .38s cubic-bezier(.4, 0, .6, 1) forwards; }
dialog.wk-bio.is-closing::backdrop { animation: wkBackdropOut .38s ease forwards; }
@keyframes wkBioIn { from { opacity: 0; transform: translateY(24px) scale(.985); } }
@keyframes wkBioOut { to { opacity: 0; transform: translateY(14px) scale(.99); } }
@keyframes wkBackdropIn { from { opacity: 0; } }
@keyframes wkBackdropOut { to { opacity: 0; } }
.wk-bio__inner { display: grid; grid-template-columns: minmax(220px, 330px) 1fr; max-height: calc(100svh - 66px); }
.wk-bio__img { width: 100%; height: 100%; min-height: 440px; object-fit: cover; object-position: 50% 22%; border-right: 1px solid var(--wk-line-2); }
.wk-bio__text { padding: clamp(32px, 4vw, 56px) clamp(28px, 4vw, 48px); overflow: auto; }
.wk-bio__title { margin: 10px 0 0; color: var(--wk-muted); font-size: 15px; letter-spacing: .04em; text-transform: uppercase; }
.wk-bio__text h2 { margin: 0 48px 0 0; font-family: var(--wk-serif); font-size: clamp(28px, 2.8vw, 40px); font-weight: 400; letter-spacing: 0; text-transform: uppercase; line-height: 1.1; }
.wk-bio__copy p { margin: 24px 0 0; color: #dcd8d0; font-size: 16px; line-height: 1.65; max-width: 62ch; }
/* Quiet close control: a small X on a soft dark disc, no box. */
.wk-bio__close {
	position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; display: grid; place-items: center; padding: 0;
	background: rgba(14, 14, 15, .55); color: rgba(247, 245, 240, .85); border: 0; border-radius: 50%; cursor: pointer;
	-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); transition: background .2s ease, color .2s ease;
}
.wk-bio__close svg { width: 14px; height: 14px; }
.wk-bio__close:hover { background: rgba(14, 14, 15, .8); color: var(--wk-paper); }
.wk-bio__close:focus { outline: none; }
.wk-bio__close:focus-visible { outline: 1px solid rgba(247, 245, 240, .6); outline-offset: 2px; }
.wk-bio__text:focus,
.wk-bio__inner:focus { outline: none; }

/* ---------- Hiring band ---------- */
.wk-hire { border-top: 1px solid var(--wk-line); padding: clamp(80px, 11vh, 120px) var(--wk-pad); text-align: center; }
.wk-hire > * { margin-left: auto; margin-right: auto; }
.wk-hire .wk-hire__text { margin: 0; font-family: var(--wk-serif); font-weight: 400; font-size: clamp(22px, 2.4vw, 32px); letter-spacing: -.01em; }
.wk-hire .wk-text-link { margin-top: 16px; }
.wk-hire .wk-hire__text a { text-decoration: none; color: inherit; transition: opacity .25s ease; }
.wk-hire .wk-hire__text a:hover { opacity: .75; }

/* ---------- Roles ---------- */
.wk-roles { max-width: 920px; margin: 0 auto; padding: clamp(64px, 9vh, 100px) 0 clamp(96px, 13vh, 140px); }
.wk-role { border-bottom: 1px solid var(--wk-line-2); }
.wk-role:first-child { border-top: 1px solid var(--wk-line-2); }
.wk-role summary {
	list-style: none; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 24px; padding: 22px 16px; cursor: pointer;
	-webkit-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent;
}
/* Opening a role: the body's height is animated in main.js; its paragraphs and lists rise in one after another. */
.wk-role__body { overflow: hidden; box-sizing: border-box; }
.wk-role.is-closing .wk-role__body > * { opacity: 0; transition: opacity .45s ease; }
.wk-anim .wk-role.is-opening .wk-role__body > * { opacity: 0; animation: wkRoleIn .7s var(--wk-ease) forwards; animation-delay: calc(.08s + var(--d, 0) * 60ms); }
@keyframes wkRoleIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.wk-role summary::-webkit-details-marker { display: none; }
.wk-role__title { font-family: var(--wk-serif); font-weight: 400; font-size: clamp(19px, 1.8vw, 22px); letter-spacing: 0; text-transform: uppercase; color: var(--wk-name); }
.wk-role[open] .wk-role__title,
.wk-role summary:hover .wk-role__title { color: var(--wk-paper); }
.wk-role__icon {
	width: 36px; height: 36px; display: grid; place-items: center;
	border: 1px solid rgba(247, 245, 240, .5); border-radius: 50%;
	transition: transform .35s var(--wk-ease), background .25s ease;
}
.wk-role summary:hover .wk-role__icon { background: rgba(247, 245, 240, .08); }
.wk-role[open]:not(.is-closing) .wk-role__icon { transform: rotate(45deg); }
.wk-role__body { padding: 0 16px 32px; max-width: 68ch; }
.wk-role__body p,
.wk-role__body li { color: #d8d4cc; font-size: 16px; }
.wk-role__body p { margin: 0; }
.wk-role__body p + p { margin-top: 18px; }
.wk-role__body h3,
.wk-role__body h4 { margin: 28px 0 8px; font-family: var(--wk-sans); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--wk-muted); }
.wk-role__body ul { margin: 0; padding-left: 20px; }
.wk-role__body .wk-role__send { margin-top: 22px; }
.wk-role__send p { margin: 0; }
.wk-role__body a,
.wk-roles__note a { color: var(--wk-paper); text-decoration: none; transition: opacity .25s ease; }
.wk-role__body a:hover,
.wk-roles__note a:hover { opacity: .75; }
.wk-roles__note { margin: 32px 16px 0; color: var(--wk-muted); font-size: 16px; }
.wk-roles__note p { margin: 0; }
.wk-roles__note p + p { margin-top: 12px; }
.wk-roles--empty .wk-roles__note { margin-top: 0; }
.wk-roles__empty { max-width: 640px; color: var(--wk-muted); font-size: 17px; line-height: 1.6; }
.wk-roles__empty p { margin: 0; }
.wk-roles__empty p + p { margin-top: 14px; }
.wk-roles__empty a { color: var(--wk-paper); text-decoration: none; }
.wk-roles__empty a:hover { opacity: .75; }

/* ---------- Footer ---------- */
.wk-footer { border-top: 1px solid var(--wk-line); padding-left: var(--wk-pad); padding-right: var(--wk-pad); }
.wk-footer__bar { gap: 24px 40px; padding: 44px 0; }
.wk-footer__nav { gap: 12px clamp(24px, 3vw, 44px); }
.wk-footer__nav p { margin: 0; }
.wk-footer__nav a { text-decoration: none; color: #d6d3cd; font-size: 15px; padding: 10px 0; display: inline-block; text-underline-offset: 7px; }
.wk-footer__nav a:hover,
.wk-footer__nav a[aria-current="page"] { color: var(--wk-paper); text-decoration: underline; }
.wk-footer__nav .wk-mail { font-size: 15px; color: #d6d3cd; letter-spacing: 0; text-transform: none; }
.wk-footer__nav .wk-caps a { font-size: 15px; }

/* ==========================================================================
   Core-block sections (patterns: home-hero, home-services, home-team-card, page-banner).
   Fonts, sizes and colors come from the blocks' own settings so they can be changed in the editor;
   this only handles layout, overlays and motion.
   ========================================================================== */
.wk-home-hero,
.wk-banner { position: relative; overflow: hidden; }
.wk-home-hero::before,
.wk-banner::before { content: ""; position: absolute; inset: 0; pointer-events: none; }
.wk-home-hero > .wk-wrap,
.wk-banner > .wk-wrap { position: relative; z-index: 2; }
.wk-home-hero::before,
.wk-home-hero::after,
.wk-banner::before { z-index: 1; }

/* Background video block: fills its section behind the overlays and content. Hidden until it is actually
   playing, so the section's background image shows while loading, if autoplay is blocked, or with reduced motion. */
/* Sized to the largest screen height (lvh), which doesn't change as toolbars slide, so the footage never rescales mid-scroll. */
.wk-bg-video { position: absolute; top: 0; left: 0; right: 0; height: max(100%, 100lvh); z-index: 0; overflow: hidden; pointer-events: none; }
/* The footage keeps its map in the top of the frame with empty black below. main.js works out how much to
   enlarge it (from the top-right corner) so the map always reaches near the bottom of the hero, whatever the
   screen shape, and the headline sits over the map's soft lower edge. */
.wk-bg-video video { width: 100%; height: 100%; object-fit: cover; object-position: 62% 0; transform: scale(var(--wk-vs, 1.22)); transform-origin: 62% 0; opacity: 0; transition: opacity 1.2s ease; }
.wk-bg-video video.is-playing,
.wk-bg-video video[poster] { opacity: 1; }
.editor-styles-wrapper .wk-bg-video video { opacity: 1; }
.wk-home-hero > .wp-block[data-type="wk/hero-video"],
.wk-home-hero > .acf-block-component { position: absolute !important; inset: 0; z-index: 0; }

/* Hero: image anchored top right, headline left. */
/* Portrait: a steady height (svh) so nothing moves as Safari's toolbars slide while scrolling.
   Landscape: dvh, so the hero still fills the screen when Safari hides its bars after rotating. */
/* Minus the WordPress admin bar (logged-in only), so the headline isn't pushed below the fold when you're signed in. */
.wk-home-hero { display: flex; align-items: flex-end; min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px)); min-height: calc(100svh - var(--wp-admin--admin-bar--height, 0px)); }
@media (orientation: landscape) { .wk-home-hero { min-height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px)); } }
.wk-home-hero::before {
	background:
		linear-gradient(90deg, rgba(14,14,15,.8) 0%, rgba(14,14,15,.45) 32%, rgba(14,14,15,0) 60%),
		linear-gradient(0deg, rgba(14,14,15,1) 0%, rgba(14,14,15,0) 32%),
		linear-gradient(180deg, rgba(14,14,15,.6) 0%, rgba(14,14,15,0) 22%);
}
.wk-home-hero > .wk-wrap { width: 100%; padding-top: 120px; padding-bottom: clamp(44px, 10vh, 120px); }
.wk-home-hero h1 { margin: 0; max-width: 7em; line-height: 1.15; letter-spacing: -.005em; text-transform: none; }

/* Services: title left, list right; rows brighten under the pointer. */
.wk-home-services { padding: clamp(80px, 11vh, 130px) 0; }
.wk-home-services__cols { gap: clamp(32px, 5vw, 80px); margin: 0; }
.wk-home-services__title { margin: 0; position: sticky; top: 120px; line-height: 1.3; text-align: left; }
/* "What We Do." sits in from the page's left edge rather than on the logo/headline line. */
.wk-home-services__cols > .wp-block-column:first-child { padding-left: clamp(0px, 7vw, 110px); }
.wk-services-list { list-style: none; margin: 0; padding: 0; line-height: 1.3; text-align: left; }
.wk-services-list li { margin: 0; padding: 12px 0; cursor: default; }
/* Services are plain text: no hover highlight (it read like links). */

/* Team card: photo on the left fading to black; copy over the dark right half; whole card clickable. */
.wk-home-card { padding: 0 0 clamp(96px, 13vh, 150px); }
.wk-lead-card { position: relative; display: flex; align-items: center; aspect-ratio: 1159 / 436; min-height: 360px; min-width: 0; overflow: hidden; }
.wk-lead-card::after {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: linear-gradient(90deg, rgba(14,14,15,0) 0%, rgba(14,14,15,0) 40%, rgba(14,14,15,.65) 68%, var(--wk-ink) 92%);
}
/* Parallax layer (main.js moves the card's photo into it on desktop). */
.wk-lead-card.has-par-bg { background-image: none !important; }
.wk-par-bg { position: absolute; left: 0; right: 0; top: -6%; bottom: -6%; z-index: 0; background-size: cover; background-repeat: no-repeat; will-change: transform; filter: grayscale(1); transition: filter .7s ease; }
/* Team card photo: black and white until hovered (the gradient overlay stays on top either way). */
@media (hover: hover) { .wk-lead-card:hover .wk-par-bg { filter: grayscale(0); } }
/* Phones (photo is the card's own background there): keep it black and white by blending it with the Ink color. */
.wk-lead-card:not(.has-par-bg) { background-blend-mode: luminosity; }
.wk-lead-card__text { position: relative; z-index: 2; width: 50%; margin-left: 50%; padding: clamp(32px, 4vw, 56px) clamp(28px, 4vw, 56px) clamp(32px, 4vw, 56px) 0; box-sizing: border-box; }
.wk-lead-card__text p { margin: 0; line-height: 1.25; max-width: 15em; }
.wk-lead-card__text .is-style-wk-text-link { margin-top: 24px; }
.wk-lead-card.is-linked { cursor: pointer; }
.wk-lead-card.is-linked:hover .is-style-wk-text-link a { color: #fff; }
.wk-lead-card.is-linked:hover .is-style-wk-text-link a::after { transform: translateX(4px); }

/* Interior page banner: photo on the right, fading into black on the left. */
.wk-banner { padding: clamp(140px, 17vh, 160px) 0 clamp(64px, 8vh, 84px); }
.wk-banner::before { background: linear-gradient(90deg, var(--wk-ink) 0%, var(--wk-ink) 34%, rgba(14,14,15,.55) 55%, rgba(14,14,15,.1) 100%); }
.wk-banner h1 { margin: 0; line-height: 1.05; letter-spacing: 0; }

/* Motion for the new sections: the hero image fades up out of black, then the headline rises. */
/* Headline: main.js splits it into words that rise out of a soft blur one after another; the accent word
   ("win") arrives in off-white, then warms to its tan with a brief glow. */
.wk-anim .wk-home-hero > .wk-wrap > :not(h1) { opacity: 0; transform: translateY(24px); }
.wk-anim .wk-home-hero.is-go > .wk-wrap > :not(h1) { animation: wkRise 1.2s .9s var(--wk-ease) forwards; }
.wk-anim .wk-home-hero h1:not(.is-split) { opacity: 0; }
.wk-word { display: inline-block; }
.wk-anim .wk-home-hero .wk-word { opacity: 0; transform: translateY(.45em); filter: blur(8px); }
.wk-anim .wk-home-hero.is-go .wk-word {
	animation: wkWordIn 1.1s var(--wk-ease) forwards; animation-delay: calc(.45s + var(--i, 0) * 95ms);
}
.wk-anim .wk-home-hero.is-go mark .wk-word,
.wk-anim .wk-home-hero.is-go em .wk-word {
	/* The color change waits until the word has fully landed; "both" holds it white until then. */
	animation: wkWordIn 1.1s var(--wk-ease) forwards, wkAccent .75s ease both;
	animation-delay: calc(.45s + var(--i, 0) * 95ms), calc(1.05s + var(--i, 0) * 95ms);
}
@keyframes wkWordIn { to { opacity: 1; transform: none; filter: blur(0); } }
/* No "to" frame: it settles on the word's own color (whatever is set in the editor). */
@keyframes wkAccent {
	0% { color: var(--wk-paper); text-shadow: 0 0 0 rgba(168, 151, 122, 0); }
	50% { text-shadow: 0 0 22px rgba(196, 170, 120, .55); }
	100% { text-shadow: 0 0 0 rgba(168, 151, 122, 0); }
}
.wk-anim .wk-home-hero::after { content: ""; position: absolute; inset: 0; background: var(--wk-ink); pointer-events: none; }
.wk-anim .wk-home-hero.is-go::after { animation: wkFadeOut 2.2s var(--wk-ease) forwards; }
@keyframes wkFadeOut { to { opacity: 0; } }

@media (max-width: 781px) {
	.wk-home-services__title { position: static; }
	/* Tighter hand-off from the hero headline into What We Do on phones. */
	.wk-home-hero > .wk-wrap { padding-bottom: 28px; }
	.wk-home-services { padding-top: 40px; }
	.wk-home-services__cols { gap: 20px; }
	.wk-home-services__cols > .wp-block-column:first-child { padding-left: 0; }
	/* Mobile: photo across the top (no tiling), fading into black behind the copy. */
	.wk-lead-card { aspect-ratio: auto; min-height: 0; display: block; padding-top: 240px; background-size: auto 280px !important; background-position: 30% 0 !important; background-repeat: no-repeat !important; }
	.wk-lead-card::before { content: ""; position: absolute; inset: 160px 0 auto 0; height: 120px; background: linear-gradient(180deg, rgba(14,14,15,0), var(--wk-ink)); }
	.wk-lead-card__text { position: relative; width: auto; margin: 0; padding: 0 24px 32px; }
	.wk-lead-card::after { display: none; }
	.wk-banner::before { background: linear-gradient(90deg, var(--wk-ink) 0%, rgba(14,14,15,.7) 50%, rgba(14,14,15,.3) 100%); }
}

/* ---------- Phones in landscape (short screens) ----------
   Slimmer header and a smaller headline so the hero still reads as a composed screen. */
@media (max-height: 520px) and (orientation: landscape) {
	.wk-header__bar { height: 64px; }
	.wk-logo svg { width: clamp(160px, 20vw, 220px); }
	.wk-home-hero > .wk-wrap { padding-top: 84px; padding-bottom: 36px; }
	.wk-home-hero h1 { font-size: clamp(30px, 8.5vh, 42px) !important; }
	.wk-home-services__title { top: 90px; }
	.wk-banner { padding: 110px 0 44px; }
	.wk-nav .wp-block-navigation__responsive-container-close { top: 10px; }
	.wk-nav .is-menu-open .wk-nav__logo { top: 32px; }
	.wk-nav .wp-block-navigation__responsive-container.is-menu-open { padding-top: 64px; }
	.wk-nav .is-menu-open .wp-block-navigation-item__content { font-size: clamp(22px, 6vh, 30px); padding: 4px 0 !important; }
	dialog.wk-bio { max-height: calc(100svh - 24px); }
	.wk-bio__inner { max-height: calc(100svh - 26px); }
	.wk-bio__img { min-height: 0; }
}

/* ---------- Masked line reveals ----------
   main.js wraps each word of a heading/lead line in a clipping box and tags it with its line number;
   words slide up from behind that edge, a line at a time, once the element scrolls into view. */
.wk-mw { display: inline-block; overflow: hidden; vertical-align: top; padding: .08em 0 .16em; margin: -.08em 0 -.16em; }
.wk-mw__in { display: inline-block; }
.wk-anim .wk-masked .wk-mw__in { transform: translateY(110%); }
.wk-anim .wk-masked.is-in .wk-mw__in {
	transform: none; transition: transform 1.05s cubic-bezier(.2, .7, .1, 1); transition-delay: calc(var(--line, 0) * 110ms + 80ms);
}

/* ---------- Page-to-page crossfade (Chrome / Safari; others just load normally) ---------- */
@view-transition { navigation: auto; }
/* The old page steps out at once (no lingering copy of content that's about to fade in again). */
::view-transition-old(root) { animation: wkVtOut .12s ease both; }
::view-transition-new(root) { animation: wkVtIn .5s ease both; }
@keyframes wkVtOut { to { opacity: 0; } }
@keyframes wkVtIn { from { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } }

/* ---------- Reveals ---------- */
/* Anything in this list fades and rises in as it scrolls into view (main.js adds .is-in). */
.wk-anim :is(.wk-reveal, .wk-services__row, .wk-hire > :not(.wk-hire__text), .wk-services-list > li, .wk-lead-card) {
	opacity: 0; transform: translateY(24px);
	transition: opacity .8s ease, transform 1s var(--wk-ease); transition-delay: calc(var(--d, 0) * 80ms);
}
.wk-anim :is(.wk-reveal, .wk-services__row, .wk-hire > :not(.wk-hire__text), .wk-services-list > li, .wk-lead-card).is-in { opacity: 1; transform: none; }
/* Team cards: a slower, softer rise, with a clear beat between the cards in a row. */
.wk-anim .wk-person.wk-reveal { transform: translateY(32px); transition: opacity 1.1s ease, transform 1.2s var(--wk-ease); transition-delay: calc(var(--d, 0) * 140ms); }
.wk-anim .wk-person.wk-reveal.is-in { transform: none; }

/* Services: the label's rule draws across once the heading is in. */

/* Leadership panel: photo settles from a slow zoom, then the quote panel slides up over it. */
.wk-anim .wk-lead-frame__photo { transform: scale(1.12); transition: transform 2.2s var(--wk-ease); }
.wk-anim .wk-lead-frame.is-in .wk-lead-frame__photo { transform: none; }
.wk-anim .wk-lead-frame__panel { opacity: 0; transform: translateY(48px); transition: opacity .9s .35s ease, transform 1.2s .35s var(--wk-ease); }
.wk-anim .wk-lead-frame.is-in .wk-lead-frame__panel { opacity: 1; transform: none; }
.wk-anim .wk-lead-frame .wk-text-link { opacity: 0; transition: opacity .8s .9s ease; }
.wk-anim .wk-lead-frame.is-in .wk-text-link { opacity: 1; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
	.wk-services .wk-wrap { grid-template-columns: 1fr; }
	.wk-services__head { position: static; }
	.wk-services__intro { max-width: 14em; font-size: clamp(28px, 7.4vw, 38px); }
	.wk-lead-frame { grid-template-columns: 1fr; aspect-ratio: auto; min-height: 0; }
	.wk-lead-frame__photo { position: relative; inset: auto; min-height: 320px; background-image: var(--wk-lead-sm); background-position: 40% 40%; }
	.wk-lead-frame__panel { grid-column: 1; background: var(--wk-ink); }
	/* Panel rides up over the photo and sits inset in the frame, like the desktop layout. */
	.wk-lead-frame__panel { position: relative; margin: -72px clamp(16px, 4vw, 32px) clamp(16px, 4vw, 32px); padding: 32px 26px; }
	.wk-person { flex-basis: calc((100% - clamp(16px, 2.6vw, 36px)) / 2); }
	.wk-hero__img { background-position: 72% 50% !important; }
	.wk-hero::before { background: linear-gradient(0deg, rgba(14,14,15,.95) 0%, rgba(14,14,15,.75) 45%, rgba(14,14,15,.2) 100%); }
}
@media (max-width: 782px) {
	.admin-bar .wk-header { top: 46px; }
}
@media (max-width: 640px) {
	.wk-bio__inner { grid-template-columns: 1fr; overflow: auto; }
	/* Mobile: show the portrait at its own shape instead of a short landscape crop. */
	.wk-bio__img { height: auto; min-height: 0; aspect-ratio: 3 / 4; max-height: 72svh; object-position: 50% 18%; border-right: 0; border-bottom: 1px solid var(--wk-line-2); }
	.wk-bio__text { overflow: visible; }
	.wk-services__row { padding-left: 0; padding-right: 0; }
	.wk-footer__bar { flex-direction: column; align-items: flex-start !important; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	html { scroll-behavior: auto; }
	.wk-intro { display: none !important; }
}

/* ---------- Editor only ---------- */
/* Match the live page: the theme's blocks run edge to edge with no gaps (whether editing the page or the template);
   other blocks keep the 920px column and side gutter. */
.editor-styles-wrapper .is-root-container,
.editor-styles-wrapper .wp-block-post-content { padding-left: 0 !important; padding-right: 0 !important; }
/* The front-end column rule (.wk-main .wp-block-post-content > :not(.wk-block)) would otherwise catch the editor's
   block wrappers and give every theme block a 920px width, side padding and a 160px top margin. */
.editor-styles-wrapper .wp-block[data-type^="wk/"] { max-width: none !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box; }
.editor-styles-wrapper .wp-block-post-content > .wk-block.wp-block-group { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.editor-styles-wrapper .wp-block-post-content > .wp-block:not([data-type^="wk/"]):not(.wk-block):not(.alignfull):not(.alignwide),
.editor-styles-wrapper .is-root-container > .wp-block:not([data-type^="wk/"]):not(.alignfull):not(.alignwide) {
	max-width: 920px; margin-left: auto; margin-right: auto; padding-left: var(--wk-pad); padding-right: var(--wk-pad); box-sizing: content-box;
}
.editor-styles-wrapper .is-root-container > .wk-block.wp-block-group { margin-top: 0; margin-bottom: 0; max-width: none; }
.editor-styles-wrapper .wk-hero { min-height: 620px; }
.editor-styles-wrapper .wk-services__head { position: static; }
