/* Nostimere: house styles. Built on brand/tokens.json. Square corners, hairlines, nothing bold in GFS Didot. */

:root {
	--nx-ground: #F7F0E4;
	--nx-paper: #FCF9F3;
	--nx-deep: #09162D;
	--nx-ink: #09162D;
	--nx-muted: #655D52;
	--nx-cognac: #854D2F;
	--nx-gold: #C9A05C;
	--nx-on-deep: #F7F0E4;
	--nx-on-deep-muted: #B8B0A2;
	--nx-line: #E2D6C2;
	--nx-deep-line: #24344F;
	--nx-hero-lede: #D9D2C4;
	--nx-display: "GFS Didot", Georgia, "Times New Roman", serif;
	--nx-text: Literata, Georgia, "Times New Roman", serif;
	--nx-label: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
	--nx-gutter: clamp(16px, 4vw, 56px);
	--nx-section: clamp(72px, 9vw, 128px);
	--nx-lift: 0 1px 3px rgba(9, 22, 45, 0.08);
	--nx-shadow: 0 6px 30px rgba(9, 22, 45, 0.14);
	--nx-shadow-strong: 0 6px 30px rgba(9, 22, 45, 0.18);
	--nx-shadow-dark: 0 16px 40px rgba(0, 0, 0, 0.45);
}

/* ---- Base ---------------------------------------------------------------- */

html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--nx-ground); color: var(--nx-ink); overflow-x: hidden; font-family: var(--nx-text); font-size: 17px; line-height: 1.62; }
.wp-site-blocks { min-width: 0; position: relative; min-height: 100vh; display: flex; flex-direction: column; }
.wp-site-blocks > main { flex: 1 0 auto; }
.wp-site-blocks > * { margin-block-start: 0 !important; }
.wp-site-blocks p, .wp-site-blocks h1, .wp-site-blocks h2, .wp-site-blocks h3,
.wp-site-blocks figure, .wp-site-blocks blockquote, .wp-site-blocks dl, .wp-site-blocks dd, .wp-site-blocks ol { margin: 0; }
.wp-site-blocks h1, .wp-site-blocks h2, .wp-site-blocks h3 { font-family: var(--nx-display); font-weight: 400; }
img { max-width: 100%; }
a { color: var(--nx-ink); }
a:hover { color: var(--nx-cognac); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
.wp-block-navigation-item__content:focus-visible { outline: 2px solid var(--nx-gold); outline-offset: 3px; }
[lang="grc"] { font-family: var(--nx-display); font-style: normal; }
i, em { font-family: var(--nx-text); font-style: italic; }

/* The block editor and the front end share these. */
.wp-block-image { margin: 0; }
.wp-block-image img { display: block; width: 100%; height: auto; }
.wp-block-image figcaption, .nx-caption {
	margin: 0; padding-top: 10px; text-align: left;
	font-family: var(--nx-label); font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nx-muted);
}

/* ---- Utilities ------------------------------------------------------------ */

.nx-pad { padding-left: var(--nx-gutter); padding-right: var(--nx-gutter); }
.nx-wrap { max-width: 1240px; width: 100%; margin-left: auto; margin-right: auto; box-sizing: border-box; }
.nx-stack { display: flex; flex-direction: column; }
.nx-row { display: flex; flex-wrap: wrap; }
.nx-dark { color: var(--nx-on-deep); background-color: var(--nx-deep); }
.nx-dark a { color: var(--nx-on-deep); }
.nx-dark a:hover { color: var(--nx-gold); }
.nx-stars {
	background-color: var(--nx-deep);
	background-image:
		radial-gradient(1px 1px at 22px 34px, rgba(247,240,228,0.55), transparent 60%),
		radial-gradient(1px 1px at 140px 90px, rgba(247,240,228,0.35), transparent 60%),
		radial-gradient(1.5px 1.5px at 210px 180px, rgba(201,160,92,0.55), transparent 60%),
		radial-gradient(1px 1px at 80px 210px, rgba(247,240,228,0.3), transparent 60%),
		radial-gradient(1px 1px at 300px 40px, rgba(247,240,228,0.45), transparent 60%),
		radial-gradient(1px 1px at 330px 260px, rgba(247,240,228,0.3), transparent 60%);
	background-size: 360px 300px;
}

/* Type roles */
.nx-eyebrow { font-family: var(--nx-label); font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--nx-cognac); }
.nx-dark .nx-eyebrow { color: var(--nx-gold); }
.nx-eyebrow--wide { letter-spacing: 0.24em; }
.nx-label { font-family: var(--nx-label); font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nx-muted); }
.nx-dark .nx-label { color: var(--nx-on-deep-muted); }
.nx-label--cognac { color: var(--nx-cognac); }
.nx-meta { font-family: var(--nx-label); font-size: 12px; color: var(--nx-muted); }
.nx-dark .nx-meta { color: var(--nx-on-deep-muted); }
.nx-lede { font-size: 19px; line-height: 1.55; color: var(--nx-muted); }
.nx-dark .nx-lede { color: var(--nx-on-deep-muted); }
.nx-muted { color: var(--nx-muted); }
.nx-dark .nx-muted { color: var(--nx-on-deep-muted); }
.nx-small { font-size: 14px; line-height: 1.6; color: var(--nx-muted); }
.nx-body16 { font-size: 16px; }
.nx-display { font-family: var(--nx-display); font-weight: 400; }
.nx-wordmark { font-family: var(--nx-display); letter-spacing: 0.2em; text-transform: uppercase; margin-left: 0.2em !important; }
.nx-greek { font-family: var(--nx-display); color: var(--nx-cognac); }
.nx-dark .nx-greek, .nx-gold { color: var(--nx-gold); }
.nx-cognac { color: var(--nx-cognac); }

.nx-h2 { font-size: clamp(32px, 4vw, 52px); line-height: 1.12; text-wrap: balance; }
.nx-h2--lg { font-size: clamp(34px, 4.4vw, 58px); line-height: 1.1; }
.nx-h2--sm { font-size: clamp(30px, 3.4vw, 44px); line-height: 1.14; }
.nx-nobal { text-wrap: wrap; }
.nx-title { font-family: var(--nx-display); font-size: 27px; line-height: 1.24; }

/* Text links with a rule beneath ("Sixty years of brands in space") */
.nx-textlink a, a.nx-textlink {
	display: inline-block; padding: 12px 0; text-decoration: none; border-bottom: 1px solid var(--nx-ink);
	font-family: var(--nx-label); font-size: 11px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
}
.nx-dark .nx-textlink a, .nx-dark a.nx-textlink { border-bottom-color: var(--nx-gold); }

/* Buttons */
.wp-block-buttons.nx-buttons { display: flex; flex-wrap: wrap; gap: 14px; }
.nx-btn .wp-block-button__link, .nx-form__submit, .nx-form .gform_button {
	display: inline-flex; align-items: center; min-height: 48px; box-sizing: border-box;
	border: 0; border-radius: 0; padding: 17px 30px; cursor: pointer; text-decoration: none;
	font-family: var(--nx-label); font-size: 11px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; line-height: 1.2;
	background: var(--nx-deep); color: var(--nx-on-deep);
}
.nx-btn .wp-block-button__link:hover { color: var(--nx-on-deep); background: #14284A; }
.nx-btn--gold .wp-block-button__link { background: var(--nx-gold); color: var(--nx-deep); font-weight: 700; padding: 18px 32px; }
.nx-btn--gold .wp-block-button__link:hover { background: #D6B273; color: var(--nx-deep); }
.nx-btn--ghost .wp-block-button__link { background: transparent; color: var(--nx-on-deep); border: 1px solid rgba(247,240,228,0.7); padding: 17px 31px; }
.nx-btn--ghost .wp-block-button__link:hover { background: transparent; color: var(--nx-gold); }

/* Figures */
.nx-shadow img { box-shadow: var(--nx-shadow); }
.nx-shadow-strong img { box-shadow: var(--nx-shadow-strong); }
.nx-shadow-dark img { box-shadow: var(--nx-shadow-dark); }
.nx-r219 img { aspect-ratio: 21 / 9; object-fit: cover; }
.nx-r1610 img { aspect-ratio: 16 / 10; object-fit: cover; }
.nx-r43 img { aspect-ratio: 4 / 3; object-fit: cover; }
.nx-r32 img { aspect-ratio: 3 / 2; object-fit: cover; }
.nx-r45 img { aspect-ratio: 4 / 5; object-fit: cover; }
.nx-dark .wp-block-image figcaption { color: var(--nx-on-deep-muted); }

.nx-grid { display: grid; }
.nx-grid--240 { grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 16px; }
.nx-grid--260 { grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 0 40px; }
.nx-grid--300 { grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 24px; }
.nx-grid--320 { grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 24px; }
.nx-grid--340 { grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); gap: 24px; }

/* Section heading pair: title block left, lede right, aligned to the bottom */
.nx-headpair { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 24px 64px; }
.nx-headpair > .nx-headpair__title { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.nx-headpair > .nx-headpair__lede { flex: 1 1 380px; min-width: 0; }

/* Numbered entries (I–VII) and hairline definition entries */
.nx-entry { border-top: 1px solid var(--nx-ink); padding: 26px 0 40px; display: flex; flex-direction: column; gap: 10px; }
.nx-entry__num { font-family: var(--nx-display); font-size: 20px; color: var(--nx-cognac); display: flex; align-items: center; gap: 10px; }
.nx-entry__title { font-size: 30px !important; line-height: 1.2; }
.nx-entry p:last-child { font-size: 16px; color: var(--nx-muted); }
.nx-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--nx-gold); }

.nx-subhead { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 20px; }
.nx-subhead h3 { font-size: 22px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--nx-cognac); }
.nx-subhead p { font-family: var(--nx-label); font-size: 12px; color: var(--nx-muted); }

/* Paper cards */
.nx-card { background: var(--nx-paper); box-shadow: var(--nx-lift); display: flex; flex-direction: column; }
.nx-card--top { border-top: 3px solid var(--nx-cognac); }

/* ---- Header ----------------------------------------------------------------- */

.nx-header { position: relative; z-index: 20; color: var(--nx-on-deep); padding: 24px var(--nx-gutter); }
.nx-header a { color: var(--nx-on-deep); }
.nx-header a:hover { color: var(--nx-gold); }
.nx-header__inner { max-width: 1240px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; }
.nx-brand { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.nx-brand img { width: 40px; height: 40px; }
.nx-brand span { font-family: var(--nx-display); font-size: 22px; letter-spacing: 0.2em; text-transform: uppercase; }
.wp-block-template-part.nx-header-overlay { position: absolute; top: 0; left: 0; right: 0; z-index: 20; }
.wp-block-template-part.nx-header-overlay .nx-header { background: none; }
.nx-header-dark { background-color: var(--nx-deep); }

/* Main navigation */
.nx-nav { font-family: var(--nx-label); font-size: 11px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
.nx-nav .wp-block-navigation__container { gap: 8px 28px; }
.nx-nav .wp-block-navigation-item__content { padding: 12px 0; text-decoration: none; }
.nx-nav .current-menu-item > .wp-block-navigation-item__content { border-bottom: 1px solid var(--nx-gold); }
.nx-nav .nx-nav-cta > .wp-block-navigation-item__content { padding: 13px 20px; border: 1px solid rgba(247,240,228,0.7); }
.nx-nav .wp-block-navigation__responsive-container-open,
.nx-nav .wp-block-navigation__responsive-container-close {
	font-family: var(--nx-label); font-size: 11px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
	color: var(--nx-on-deep); min-height: 44px; padding: 12px 18px; border: 1px solid rgba(247,240,228,0.7);
}
.nx-nav .wp-block-navigation__responsive-container-close { top: 24px; right: var(--nx-gutter); border-color: rgba(247,240,228,0.4); }
/* The full-screen Nostimere Blue panel, links in GFS Didot */
.nx-nav .wp-block-navigation__responsive-container.is-menu-open { background-color: var(--nx-deep) !important; color: var(--nx-on-deep) !important; padding: 24px var(--nx-gutter) 48px; }
.nx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 88px; align-items: flex-start; }
.nx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 4px; align-items: flex-start; }
.nx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--nx-display); font-size: 34px; line-height: 1.2; letter-spacing: 0; text-transform: none; font-weight: 400; padding: 10px 0; border: 0;
}
.nx-nav .wp-block-navigation__responsive-container.is-menu-open .nx-nav-cta > .wp-block-navigation-item__content { color: var(--nx-gold); }
/* Use the menu button below about 760px (core switches at 600px). */
@media (min-width: 600px) and (max-width: 760px) {
	.nx-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.nx-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* ---- Home: hero ------------------------------------------------------------- */

.nx-hero {
	position: relative; overflow: hidden; color: var(--nx-on-deep); min-height: 900px; display: flex; flex-direction: column; box-sizing: border-box;
	padding-top: 88px;
	background-color: #050B18;
	background-image: linear-gradient(180deg, rgba(5,11,24,0.78) 0%, rgba(5,11,24,0.25) 46%, rgba(5,11,24,0) 70%), url("../images/orbit-sunrise.webp");
	background-size: cover; background-position: center 78%;
}
.nx-hero a { color: var(--nx-on-deep); }
.nx-orbit-wrap { position: absolute; inset: 0; pointer-events: none; }
.nx-orbit { position: absolute; right: -14%; top: -30%; width: min(1100px, 95vw); height: auto; opacity: 0.32; animation: nxspin 140s linear infinite; transform-origin: 50% 50%; }
@keyframes nxspin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.nx-hero__body { position: relative; flex: 1; padding: clamp(40px, 7vw, 96px) var(--nx-gutter) 0; }
.nx-hero__body > .nx-wrap { display: flex; flex-direction: column; gap: 26px; }
.nx-hero h1 { max-width: 16ch; font-size: clamp(44px, 6.6vw, 96px); line-height: 1.02; letter-spacing: -0.01em; text-wrap: balance; }
.nx-hero__lede { max-width: 56ch; font-size: clamp(18px, 1.6vw, 21px); line-height: 1.55; color: var(--nx-hero-lede); }
.nx-hero .nx-buttons { margin-top: 8px; }
.nx-hero__foot { position: relative; padding: 0 var(--nx-gutter) 28px; }
.nx-hero__foot > .nx-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 32px; font-family: var(--nx-label); font-size: 11px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--nx-hero-lede); }
.nx-hero__greek { font-family: var(--nx-display); font-size: 16px; font-weight: 400; letter-spacing: 0.08em; text-transform: none; color: var(--nx-gold); }

/* ---- Home: the bridge --------------------------------------------------------- */

.nx-bridge { padding: var(--nx-section) var(--nx-gutter); }
.nx-bridge > .nx-wrap { display: flex; flex-direction: column; gap: 64px; }
.nx-bridge__intro { max-width: 860px; display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.nx-bridge__intro .nx-textlink a { padding: 10px 0; }
.nx-bridge__cards { display: flex; flex-wrap: wrap; align-items: stretch; gap: 24px; }
.nx-bridge__card { flex: 1 1 280px; min-width: 0; border: 1px solid var(--nx-deep-line); padding: 36px 32px; display: flex; flex-direction: column; gap: 14px; }
.nx-bridge__card .nx-display { font-size: 28px; line-height: 1.22; }
.nx-bridge__card p:last-child { font-size: 16px; color: var(--nx-on-deep-muted); }
.nx-bridge__house { flex: 1 1 280px; min-width: 0; background: var(--nx-ground); color: var(--nx-ink); border-top: 3px solid var(--nx-gold); padding: 36px 32px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; text-align: center; }
.nx-bridge__house .wp-block-image img { width: 132px; height: 132px; object-fit: cover; border-radius: 50%; }
.nx-bridge__house .nx-wordmark { font-size: 24px; }
.nx-bridge__house p:last-child { font-size: 16px; color: var(--nx-muted); }

/* ---- Home: ways to partner ------------------------------------------------------ */

.nx-partner { padding: var(--nx-section) var(--nx-gutter); }
.nx-partner > .nx-wrap { display: flex; flex-direction: column; gap: 56px; }
.nx-partner__body { display: flex; flex-direction: column; gap: 48px; }
.nx-partner__group { display: flex; flex-direction: column; gap: 20px; }
.nx-partner .nx-r219 img { object-position: center 55%; }
.nx-partner .nx-grid--240 figcaption { padding-top: 10px; }

/* ---- Home: the return ------------------------------------------------------------- */

.nx-return { position: relative; overflow: hidden; color: var(--nx-on-deep); background: var(--nx-deep); }
.nx-return .wp-block-image img { height: clamp(460px, 52vw, 760px); object-fit: cover; object-position: center 64%; }  /* Kevin 12 Oct: show the horizon and water */
.nx-return__text { position: absolute; left: 0; right: 0; bottom: 0; padding: clamp(32px, 5vw, 72px) var(--nx-gutter); background: linear-gradient(0deg, rgba(5,11,24,0.85) 0%, rgba(5,11,24,0.4) 60%, rgba(5,11,24,0) 100%); }
.nx-return__text > .nx-wrap { display: flex; flex-direction: column; gap: 14px; }
.nx-return h2 { max-width: 18ch; font-size: clamp(34px, 4.6vw, 64px); line-height: 1.08; text-wrap: balance; }
.nx-return .nx-label { color: var(--nx-hero-lede); }

/* ---- Home: seal, objects --------------------------------------------------------- */

.nx-seal { padding: 0 var(--nx-gutter) var(--nx-section); }
.nx-seal > .nx-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 40px 64px; }
.nx-seal__img { flex: 3 1 560px; min-width: 0; }
.nx-seal__img img { box-shadow: var(--nx-shadow-strong); }
.nx-seal__text { flex: 2 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.nx-seal__text h2 { font-size: clamp(32px, 3.8vw, 50px); line-height: 1.12; }
.nx-seal__text p.nx-muted { font-size: 17px; }

.nx-objects { padding: 0 var(--nx-gutter) var(--nx-section); }
.nx-objects > .nx-wrap { display: flex; flex-direction: column; gap: 40px; }
.nx-objects .nx-headpair { gap: 20px 64px; border-top: 1px solid var(--nx-line); padding-top: clamp(56px, 7vw, 96px); }
.nx-objects .nx-headpair__title { flex-basis: 480px; }
.nx-objects .nx-headpair__lede { flex-basis: 360px; font-size: 17px; }

/* ---- Name strip ------------------------------------------------------------------- */

.nx-namestrip { padding: 40px var(--nx-gutter); }
.nx-namestrip > .nx-wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 40px; }
.nx-namestrip .nx-display { font-size: clamp(22px, 2.4vw, 30px); line-height: 1.3; }

/* ---- Who the House serves ------------------------------------------------------------ */

.nx-who { padding: var(--nx-section) var(--nx-gutter); }
.nx-who > .nx-wrap { display: flex; flex-direction: column; gap: 48px; }
.nx-who__intro { max-width: 760px; display: flex; flex-direction: column; gap: 18px; }
.nx-who__card { --p: clamp(32px, 3vw, 40px); padding: var(--p); gap: 16px; border-top: 3px solid var(--nx-cognac); }
.nx-who__card .wp-block-image { margin: calc(-1 * var(--p)) calc(-1 * var(--p)) 8px; }
.nx-who__card .wp-block-image img { aspect-ratio: 3 / 2; object-fit: cover; }
.nx-who__card h3 { font-size: 27px; line-height: 1.24; }
.nx-who__card p:last-child { font-size: 16px; color: var(--nx-muted); }

/* ---- Certificate teaser and specimen ------------------------------------------------------- */

.nx-certteaser { padding: 0 var(--nx-gutter) var(--nx-section); }
.nx-certteaser > .nx-wrap { border-top: 1px solid var(--nx-line); padding-top: clamp(64px, 8vw, 112px); display: flex; flex-wrap: wrap; align-items: center; gap: 56px 72px; }
.nx-certteaser__card { flex: 1 1 520px; min-width: 0; position: relative; padding-bottom: 56px; }
.nx-certteaser__text { flex: 1 1 380px; min-width: 0; display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }
.nx-certteaser__text p.nx-muted { font-size: 17px; }
.nx-certteaser__text .nx-textlink { margin-top: 8px; }

.nx-sheet { background: var(--nx-paper); box-shadow: 0 4px 24px rgba(9,22,45,0.14); padding: 14px; transform: rotate(-1.2deg); }
.nx-sheet__frame { border: 1px solid var(--nx-line); padding: clamp(24px, 3vw, 44px); display: flex; flex-direction: column; gap: 20px; }
.nx-sheet__head { text-align: center; display: flex; flex-direction: column; gap: 6px; }
.nx-sheet__head .nx-wordmark { font-size: 16px; }
.nx-sheet__head .nx-display { font-size: clamp(26px, 2.6vw, 36px); line-height: 1.15; }
.nx-facts { border-top: 1px solid var(--nx-line); padding-top: 16px; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 14px 20px; }
.nx-facts dt { font-family: var(--nx-label); font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nx-cognac); }
.nx-facts dd { margin: 2px 0 0; font-size: 14px; color: var(--nx-muted); }
.nx-sheet__sign { padding-right: 120px; font-size: 14px; font-style: italic; color: var(--nx-muted); }
.nx-certteaser__seal { position: absolute; right: 4%; bottom: 0; width: clamp(130px, 15vw, 200px); height: clamp(130px, 15vw, 200px); object-fit: cover; border-radius: 50%; box-shadow: 0 8px 22px rgba(9,22,45,0.25); }

/* ---- By appointment (form) --------------------------------------------------------------- */

.nx-appointment { padding: 0 var(--nx-gutter) var(--nx-section); scroll-margin-top: 24px; }
.nx-appointment > .nx-wrap, .nx-fate > .nx-wrap { box-sizing: content-box; width: auto; }
.nx-appointment > .nx-wrap { padding: clamp(32px, 5vw, 64px); display: flex; flex-wrap: wrap; gap: 40px 64px; flex-direction: row; }
.nx-appointment__text { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.nx-appointment__text p.nx-muted { font-size: 17px; }
.nx-appointment__form { flex: 1 1 380px; min-width: 0; }

.nx-form { display: flex; flex-direction: column; gap: 20px; }
.nx-field, .nx-form .gfield { display: flex; flex-direction: column; gap: 6px; }
.nx-field label, .nx-form .gfield_label, .nx-form .gform-field-label {
	font-family: var(--nx-label); font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nx-muted);
}
.nx-field input, .nx-form .gfield input[type="text"], .nx-form .gfield input[type="email"], .nx-form .gfield textarea {
	font-family: var(--nx-text); font-size: 17px; color: var(--nx-ink); background: transparent;
	border: 0; border-bottom: 1px solid var(--nx-muted); border-radius: 0; padding: 10px 0; min-height: 44px; box-sizing: border-box; width: 100%;
}
.nx-form__submit, .nx-form .gform_button { align-self: flex-start; margin-top: 8px; }
.nx-form__note, .nx-form .nx-form-note { font-size: 14px; line-height: 1.5; color: var(--nx-muted); }
.nx-form__admin { font-family: var(--nx-label); font-size: 12px; color: var(--nx-cognac); border-left: 3px solid var(--nx-gold); padding-left: 12px; }
/* Gravity Forms states, in the house voice */
.nx-form .gform_fields { display: flex; flex-direction: column; gap: 20px; list-style: none; margin: 0; padding: 0; }
/* The design shows no required marker; keep it for screen readers only. */
.nx-form .gfield_required { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nx-form .gfield_validation_message, .nx-form .validation_message, .nx-form .gform_validation_errors {
	font-family: var(--nx-text); font-size: 15px; color: var(--nx-cognac); background: none; border: 0; padding: 0; margin: 4px 0 0; box-shadow: none;
}
.nx-form .gform_confirmation_message { font-family: var(--nx-display); font-size: 27px; line-height: 1.3; }
.nx-form--gf { gap: 0; }
.nx-form--gf form { display: flex; flex-direction: column; gap: 20px; }
.nx-form--gf .gform_heading, .nx-form--gf .gform_required_legend { display: none; }
.nx-form--gf .gform_footer { margin: 8px 0 0; padding: 0; }
.nx-form--gf .gform_footer input[type="submit"], .nx-form--gf .gform_footer button {
	display: inline-flex; align-items: center; min-height: 48px; box-sizing: border-box; border: 0; border-radius: 0; padding: 17px 30px; cursor: pointer;
	font-family: var(--nx-label); font-size: 11px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; line-height: 1.2;
	background: var(--nx-deep); color: var(--nx-on-deep); -webkit-appearance: none; appearance: none;
}
.nx-form--gf .gform_footer input[type="submit"]:hover { background: #14284A; }
.nx-form--gf .nx-form__note { margin-top: 20px !important; }
.nx-form--gf .gform_confirmation_wrapper + .nx-form__note, .nx-form--gf .gform_confirmation_message ~ .nx-form__note { display: none; }
.nx-form--gf .gfield--type-honeypot, .nx-form--gf .gform_validation_container { position: absolute !important; left: -9999px !important; }
.nx-form--gf .gform_ajax_spinner, .nx-form--gf .gform-loader { display: none !important; }
.nx-form--gf .gfield_error input { border-bottom-color: var(--nx-cognac); }
.nx-form .gform_validation_container, .nx-form .gform_hidden { display: none !important; }

/* ---- Footer ----------------------------------------------------------------------------- */

.nx-footer { padding: 64px var(--nx-gutter) 56px; }
.nx-footer > .nx-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 32px; }
.nx-footer__brand { display: flex; align-items: center; gap: 20px; }
.nx-footer__brand > img { width: 64px; height: 64px; }
.nx-footer__brand .nx-stack { gap: 6px; }
.nx-footer .nx-wordmark { font-size: 22px; }
.nx-footer__motto { font-style: italic; font-size: 15px; color: var(--nx-muted); }
.nx-dark .nx-footer__motto { color: var(--nx-on-deep-muted); }
.nx-footer__nav { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 4px 28px; font-family: var(--nx-label); font-size: 11px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
.nx-footer__nav a { text-decoration: none; padding: 12px 0; display: inline-block; }
.nx-footer__legal { flex-basis: 100%; padding-top: 20px; border-top: 1px solid var(--nx-deep-line); font-family: var(--nx-label); font-size: 12px; color: var(--nx-on-deep-muted); }
.nx-footer--light { border-top: 1px solid var(--nx-line); padding-top: 48px; }
.nx-footer--light .nx-footer__brand { flex-direction: column; align-items: flex-start; gap: 10px; }
.nx-footer--light .nx-wordmark { font-size: 20px; }
.nx-footer--light .nx-footer__legal { border-top-color: var(--nx-line); color: var(--nx-muted); }
.nx-footer__credit { white-space: nowrap; }
.nx-footer__legal a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: currentColor; }

/* ---- Inner-page hero (certificate, history, name) ------------------------------------------- */

.nx-pagehero { color: var(--nx-on-deep); }
.nx-pagehero h1 { font-size: clamp(40px, 6vw, 76px); line-height: 1.06; letter-spacing: -0.01em; text-wrap: balance; }

/* Certificate page */
.nx-cert-hero { padding: clamp(56px, 8vw, 112px) var(--nx-gutter) clamp(120px, 14vw, 200px); }
.nx-cert-hero > .nx-wrap { max-width: 860px; display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; }
.nx-cert-hero .nx-lede { max-width: 60ch; }
.nx-specimen { position: relative; margin-top: clamp(-180px, -12vw, -96px); padding: 0 var(--nx-gutter) clamp(64px, 8vw, 112px); }
.nx-specimen > .nx-wrap { max-width: 1100px; display: flex; flex-direction: column; gap: 16px; }
.nx-specimen__sheet { background: var(--nx-paper); box-shadow: 0 4px 24px rgba(9,22,45,0.12), 0 1px 3px rgba(9,22,45,0.08); padding: clamp(10px, 1.4vw, 18px); }
.nx-specimen__frame { border: 1px solid var(--nx-line); padding: clamp(28px, 5vw, 72px) clamp(20px, 5vw, 80px); display: flex; flex-direction: column; gap: clamp(28px, 3.4vw, 44px); }
.nx-specimen__head { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.nx-specimen__head .nx-wordmark { font-size: 20px; }
.nx-specimen__rule { width: 56px; height: 1px; background: var(--nx-gold); }
.nx-specimen__head h2 { margin-top: 6px !important; font-size: clamp(34px, 4.6vw, 60px); line-height: 1.08; }
.nx-specimen__statement { margin: 0 auto !important; max-width: 52ch; text-align: center; font-size: clamp(16px, 1.5vw, 19px); line-height: 1.6; }
.nx-facts--lg { padding-top: 28px; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px 40px; }
.nx-facts--lg dt { font-size: 11px; }
.nx-facts--lg dd { margin-top: 4px; font-size: 17px; color: var(--nx-ink); font-variant-numeric: tabular-nums; }
.nx-specimen__foot { border-top: 1px solid var(--nx-line); padding-top: 28px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
.nx-specimen__seal { display: flex; align-items: center; gap: 18px; }
.nx-specimen__seal img { width: 120px; height: 120px; flex: none; object-fit: cover; border-radius: 50%; box-shadow: 0 6px 18px rgba(9,22,45,0.22); }
.nx-specimen__seal [lang="grc"] { font-size: 22px; color: var(--nx-cognac); }
.nx-specimen__seal p + p { font-style: italic; font-size: 15px; color: var(--nx-muted); }
.nx-specimen__sigline { min-width: 220px; display: flex; flex-direction: column; gap: 6px; }
.nx-specimen__sigline span { height: 40px; border-bottom: 1px solid var(--nx-ink); }

.nx-split { padding: 0 var(--nx-gutter) clamp(64px, 8vw, 112px); }
.nx-split > .nx-wrap { border-top: 1px solid var(--nx-line); padding-top: clamp(56px, 7vw, 96px); display: flex; flex-wrap: wrap; gap: 40px 72px; }
.nx-split__title { flex: 1 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.nx-split__list { flex: 2 1 560px; min-width: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 0 40px; }
.nx-split__list > div { border-top: 1px solid var(--nx-ink); padding: 20px 0 28px; }
.nx-split__list dt { font-family: var(--nx-display); font-size: 24px; line-height: 1.25; }
.nx-split__list dd { margin: 6px 0 0; font-size: 16px; color: var(--nx-muted); }

.nx-made { padding: 0 var(--nx-gutter) clamp(64px, 8vw, 112px); }
.nx-made > .nx-wrap { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 24px; }
.nx-made__head { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 18px; max-width: 760px; padding-bottom: 16px; }
.nx-made__fig { grid-column: 1 / -1; margin-bottom: 8px !important; }
.nx-made .nx-card { padding: 40px 32px; gap: 10px; }
.nx-made .nx-card p:last-child { font-size: 16px; color: var(--nx-muted); }

.nx-archive { padding: clamp(64px, 9vw, 128px) var(--nx-gutter); }
.nx-archive > .nx-wrap { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 40px 72px; }
.nx-archive__col { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.nx-archive .wp-block-image { flex: 1 1 100%; margin-top: 16px; }
.wp-block-quote.nx-quote { margin: 0; border-left: 3px solid var(--nx-gold); padding: 6px 0 6px 24px; display: flex; flex-direction: column; gap: 10px; }
.wp-block-quote.nx-quote p { font-style: italic; font-size: 22px; line-height: 1.4; }
.wp-block-quote.nx-quote p.nx-meta { font-style: normal; font-size: 12px; }

.nx-cta { padding: clamp(64px, 8vw, 112px) var(--nx-gutter); }
.nx-cta > .nx-wrap { max-width: 760px; display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; }
.nx-cta .nx-buttons { margin-top: 8px; justify-content: center; }
.nx-cta p.nx-muted { font-size: 17px; }
.nx-cta__sentence { font-family: var(--nx-display); font-size: clamp(26px, 3vw, 36px); line-height: 1.3; }

/* History page */
.nx-hist-hero { padding: clamp(56px, 8vw, 112px) var(--nx-gutter) clamp(64px, 8vw, 104px); }
.nx-hist-hero > .nx-wrap { display: flex; flex-direction: column; gap: 22px; }
.nx-hist-hero h1 { max-width: 17ch; font-size: clamp(42px, 6vw, 84px); line-height: 1.04; }
.nx-hist-hero .nx-lede { max-width: 60ch; }
.nx-stats { margin-top: 32px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 32px; }
.nx-stats > div { border-top: 1px solid var(--nx-gold); padding-top: 20px; display: flex; flex-direction: column; gap: 8px; }
.nx-stats .nx-display { font-size: clamp(36px, 3.6vw, 48px); line-height: 1; color: var(--nx-gold); }
.nx-stats p + p { font-size: 16px; color: var(--nx-hero-lede); }

.nx-timeline-sec { padding: clamp(64px, 8vw, 112px) var(--nx-gutter); }
.nx-timeline-sec > .nx-wrap { max-width: 1100px; display: flex; flex-direction: column; gap: 72px; }
.nx-legend { display: flex; align-items: center; gap: 12px; font-family: var(--nx-label); font-size: 12px; color: var(--nx-muted); }
.nx-legend span { width: 11px; height: 11px; border-radius: 50%; background: var(--nx-gold); flex: none; }
.nx-era { display: flex; flex-direction: column; gap: 22px; }
.nx-era h2 { font-size: clamp(30px, 3.4vw, 44px); line-height: 1.14; }
.nx-timeline { list-style: none; margin: 0 0 0 6px !important; padding: 0; border-left: 1px solid #C9B89A; }
.nx-timeline > li { position: relative; padding: 22px 0 34px 40px; display: flex; flex-wrap: wrap; gap: 8px 40px; }
.nx-timeline > li.nx-tl-fig { display: block; padding: 6px 0 44px 40px; }
.nx-tl-mark { position: absolute; left: -6px; top: 30px; width: 11px; height: 11px; border-radius: 50%; background: var(--nx-gold); box-shadow: 0 0 0 4px var(--nx-ground); }
.nx-tl-mark--plain { left: -4px; top: 32px; width: 7px; height: 7px; border-radius: 0; background: var(--nx-ground); border: 1px solid var(--nx-muted); box-shadow: none; }
.nx-tl-year { flex: 0 0 170px; font-family: var(--nx-display); font-size: 30px; line-height: 1.15; color: var(--nx-cognac); }
.nx-tl-body { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.nx-tl-body h3 { font-size: 27px; line-height: 1.22; }
.nx-tl-body p:not(.nx-label) { font-size: 16px; line-height: 1.6; color: #3E3A33; }
.nx-tl-source { align-self: flex-start; font-family: var(--nx-label); font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nx-cognac) !important; text-decoration: none; border-bottom: 1px solid var(--nx-line); padding: 6px 0; }
.nx-tl-figure { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px 32px; }
.nx-tl-figure img { flex: 2 1 520px; min-width: 0; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; box-shadow: 0 6px 30px rgba(9,22,45,0.16); }
.nx-tl-figure img.nx-portrait { flex: 0 1 380px; aspect-ratio: 4 / 5; }
.nx-tl-figure img.nx-wide { aspect-ratio: 3 / 2; }
.nx-tl-figure figcaption { flex: 1 1 220px; min-width: 0; display: flex; flex-direction: column; gap: 6px; padding-bottom: 4px; }
.nx-tl-figure figcaption span:first-child { font-family: var(--nx-display); font-size: 20px; line-height: 1.3; }

.nx-next { padding: clamp(64px, 9vw, 128px) var(--nx-gutter); }
.nx-next > .nx-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 40px 72px; }
.nx-next__text { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.nx-next__text .nx-buttons { margin-top: 8px; }
.nx-next__seal { flex: 0 1 300px; }
.nx-next__seal img { width: 300px; max-width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; box-shadow: var(--nx-shadow-dark); }
.nx-about { padding: 40px var(--nx-gutter); }
.nx-about p { max-width: 1100px; margin: 0 auto !important; font-size: 14px; line-height: 1.6; color: var(--nx-muted); }

/* Name page */
.nx-name-hero { padding: clamp(40px, 6vw, 88px) var(--nx-gutter) clamp(64px, 9vw, 128px); }
.nx-name-hero > .nx-wrap { display: flex; flex-direction: column; gap: 56px; }
.nx-name-hero__top { display: flex; flex-wrap: wrap-reverse; align-items: flex-start; gap: 32px 48px; }
.nx-name-hero__intro { flex: 1 1 560px; min-width: 0; max-width: 820px; display: flex; flex-direction: column; gap: 20px; }
.nx-name-hero h1 { font-size: clamp(40px, 5.4vw, 76px); }
.nx-name-hero__seal { margin-left: auto !important; width: clamp(150px, 17vw, 240px); }
.nx-roots { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 32px; }
.nx-roots > div { border-top: 1px solid var(--nx-deep-line); padding-top: 22px; display: flex; flex-direction: column; gap: 8px; }
.nx-roots > div > p:first-child { font-family: var(--nx-display); font-size: 40px; line-height: 1.1; color: var(--nx-gold); }
.nx-roots p:last-child { font-size: 16px; }
.nx-homer { display: flex; flex-wrap: wrap; align-items: center; gap: 40px 56px; }
.nx-homer .nx-quote { flex: 1 1 420px; min-width: 0; padding: 6px 0 6px 28px; display: flex; flex-direction: column; gap: 10px; }
.nx-homer .nx-quote p:first-child { font-size: clamp(22px, 2.4vw, 28px); }
.nx-homer .nx-quote p:first-child [lang="grc"] { color: var(--nx-gold); }
.nx-homer .nx-quote p.nx-meta { font-style: normal; font-size: 12px; }
.nx-homer .wp-block-image { flex: 1 1 420px; min-width: 0; }

.nx-say { padding: var(--nx-section) var(--nx-gutter) 0; }
.nx-say > .nx-wrap { max-width: 1040px; display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; }
.nx-say h2 { font-size: clamp(40px, 6vw, 84px); line-height: 1.05; letter-spacing: 0.2em; text-transform: uppercase; margin-left: 0.2em !important; }
.nx-say__pron { font-family: var(--nx-label); font-size: 13px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--nx-muted); }
.nx-say__greek { margin-top: 4px !important; font-size: 22px; letter-spacing: 0.08em; color: var(--nx-cognac); }
.nx-say .nx-lede { margin-top: 18px !important; max-width: 58ch; }

.nx-meanings { padding: var(--nx-section) var(--nx-gutter); }
.nx-meanings > .nx-wrap { display: flex; flex-direction: column; gap: 48px; }
.nx-meanings .nx-headpair { gap: 20px 64px; }
.nx-meanings .nx-headpair__lede { font-size: 17px; }
.nx-meanings__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 0 40px; }
.nx-meanings__grid > div { border-top: 1px solid var(--nx-ink); padding: 20px 0 28px; display: flex; flex-direction: column; gap: 8px; }
.nx-meanings__grid .nx-display { font-size: 27px; line-height: 1.22; }
.nx-meanings__grid p:last-child { font-size: 16px; color: var(--nx-muted); }

.nx-fate { padding: 0 var(--nx-gutter) var(--nx-section); }
.nx-fate > .nx-wrap { padding: clamp(32px, 5vw, 72px); flex-direction: row; flex-wrap: wrap; gap: 40px 72px; }
.nx-fate__col { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.nx-fate__col:first-child { gap: 18px; }

/* Plain pages (privacy, 404) */
.nx-plain { padding: clamp(56px, 8vw, 112px) var(--nx-gutter) var(--nx-section); }
.nx-plain > .nx-wrap { max-width: 760px; display: flex; flex-direction: column; gap: 20px; }
.nx-plain h1 { font-size: clamp(36px, 5vw, 60px); line-height: 1.08; }
.nx-prose > * + * { margin-top: 1em !important; }
.nx-prose h2 { font-size: 27px; line-height: 1.24; margin-top: 1.6em !important; }
.nx-404 { padding: clamp(96px, 14vw, 200px) var(--nx-gutter); text-align: center; }
.nx-404 > .nx-wrap { display: flex; flex-direction: column; align-items: center; gap: 24px; }
.nx-404 h1 { font-size: clamp(32px, 4vw, 52px); line-height: 1.12; }

/* Motion images: the clip sits exactly over the still. Hidden unless the script arms it. */
.nx-motion__frame { position: relative; display: block; }
.nx-motion__clip {
	position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block;
	opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 400ms ease;
}
.nx-motion.is-armed .nx-motion__clip { opacity: 1; visibility: visible; }
.nx-motion.is-armed.is-rested .nx-motion__clip { opacity: 0; visibility: hidden; transition: opacity 600ms ease, visibility 0s 600ms; }

/* Gravity images: plate + cut-out layers. At rest identical to the photograph. */
.nx-gravity__frame { position: relative; display: block; width: 100%; }
.nx-shadow .nx-gravity__frame { box-shadow: var(--nx-shadow); }
.nx-shadow-strong .nx-gravity__frame { box-shadow: var(--nx-shadow-strong); }
.nx-shadow-dark .nx-gravity__frame { box-shadow: var(--nx-shadow-dark); }
.nx-gravity__clip { position: absolute; inset: 0; overflow: hidden; }
.wp-block-image .nx-gravity__clip img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; box-shadow: none; }
.nx-gravity__canvas { position: absolute; pointer-events: none; }
.nx-gravity .nx-layer {
	position: absolute; display: block; transform-origin: 50% 60%; will-change: transform, filter;
	transition: transform 5000ms cubic-bezier(.55, .05, .35, 1) 500ms, filter 5000ms ease 500ms;
}
.wp-block-image .nx-layer img { display: block; width: 100%; height: 100%; aspect-ratio: auto; object-fit: fill; box-shadow: none; }
.nx-gravity.is-lifted .nx-layer {
	transform: translate(var(--lx), var(--ly)) rotate(var(--lr)) scale(var(--ls));
	filter: drop-shadow(0 var(--lsh) calc(var(--lsh) * .75) rgba(0, 0, 0, .5));
}
.nx-gravity.is-drifting .nx-layer img { animation: nxDrift var(--dd) ease-in-out infinite alternate; }
@keyframes nxDrift {
	from { transform: translate(0, 0) rotate(0) skewX(0); }
	to { transform: translate(var(--dx), var(--dy)) rotate(var(--dr)) skewX(var(--dk)); }
}

/* Light and angle effects */
.nx-fx__frame { position: relative; display: block; overflow: hidden; }
.nx-fx__frame > img:first-child { position: relative; z-index: 0; }
/* Sheen: a lit copy of the surface, revealed through a soft band that drifts. */
.wp-block-image .nx-fx__sheen {
	position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; pointer-events: none;
	mix-blend-mode: screen; opacity: 0; transition: opacity 1800ms ease 500ms;
	-webkit-mask-image: linear-gradient(var(--ang), transparent 38%, #000 50%, transparent 62%); mask-image: linear-gradient(var(--ang), transparent 38%, #000 50%, transparent 62%);
	-webkit-mask-size: 300% 300%; mask-size: 300% 300%;
	-webkit-mask-position: var(--from) 50%; mask-position: var(--from) 50%;
}
.nx-fx.is-on .nx-fx__sheen { opacity: var(--op); animation: nxSheen var(--dur) ease-in-out 500ms infinite alternate; }
@keyframes nxSheen {
	from { -webkit-mask-position: var(--from) 50%; mask-position: var(--from) 50%; }
	to { -webkit-mask-position: var(--to) 50%; mask-position: var(--to) 50%; }
}
/* Tilt: the photograph turns a degree or two in the light. */
.nx-fx--tilt .nx-fx__frame { perspective: 1100px; }
.nx-fx--tilt .nx-fx__frame > img:first-child { transform-origin: 50% 50%; transition: transform var(--dur) cubic-bezier(.45, .05, .35, 1) 500ms; will-change: transform; }
.nx-fx--tilt.is-on .nx-fx__frame > img:first-child { transform: scale(var(--s)) rotateX(var(--rx)) rotateY(var(--ry)) rotateZ(var(--rz)); }
.nx-fx--tilt .nx-fx__frame::after {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; mix-blend-mode: soft-light;
	background: linear-gradient(115deg, transparent 30%, rgba(255, 240, 215, 1) 50%, transparent 70%) no-repeat;
	background-size: 250% 100%; background-position: 100% 0; opacity: 0;
	transition: background-position var(--dur) cubic-bezier(.45, .05, .35, 1) 500ms, opacity 1200ms ease 500ms;
}
.nx-fx--tilt.is-on .nx-fx__frame::after { background-position: 0 0; opacity: var(--glint); }

/* One permanent cursor (Kevin, 12 Oct, option C): the standard arrow with a navy edge
   and a small gold tip. No hand on links; a text cursor only where you type. */
*, *::before, *::after { cursor: url("../images/cursor-north.svg?v=c") 2 2, auto !important; }
input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]),
textarea, [contenteditable="true"], [contenteditable=""] { cursor: text !important; }
/* Over anything clickable the same arrow fills gold. */
a[href], a[href] *, button, button *, [role="button"], [role="button"] *, summary, select, label[for],
input[type="submit"], input[type="button"], input[type="reset"], input[type="checkbox"], input[type="radio"],
.wp-element-button, .wp-element-button *, .wp-block-button__link, .wp-block-button__link * { cursor: url("../images/cursor-north-link.svg?v=c") 2 2, pointer !important; }

/* Back to top: a quiet cream square, a fine gold line rising above "Top" in tracked small caps. */
.nx-top {
	position: fixed; right: 24px; bottom: 24px; z-index: 90; width: 56px; height: 56px; box-sizing: border-box;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px;
	background: var(--nx-ground); color: var(--nx-ink); border: 1px solid rgba(201, 160, 92, .45);
	font-family: var(--nx-label); font-size: 10px; font-weight: 600; letter-spacing: .24em; text-indent: .24em; text-transform: uppercase; text-decoration: none;
	box-shadow: 0 6px 20px rgba(9, 22, 45, .14);
	opacity: 0; visibility: hidden; transform: translateY(8px);
	transition: opacity 400ms ease, transform 400ms ease, visibility 0s 400ms, border-color 300ms ease;
}
.nx-top.is-shown { opacity: 1; visibility: visible; transform: none; transition: opacity 400ms ease, transform 400ms ease, border-color 300ms ease; }
.nx-top__line { display: block; width: 1px; height: 12px; background: var(--nx-gold); transition: height 300ms ease; }
.nx-top:hover, .nx-top:focus-visible { border-color: var(--nx-gold); }
.nx-top:hover .nx-top__line, .nx-top:focus-visible .nx-top__line { height: 18px; }
.nx-top:focus-visible { outline: 2px solid var(--nx-gold); outline-offset: 3px; }
@media (max-width: 600px) { .nx-top { right: 16px; bottom: 16px; width: 48px; height: 48px; gap: 5px; } }
@media print { .nx-top { display: none; } }
.nx-brand:focus:not(:focus-visible) { outline: none; }

/* Spotlight: on dark cards a faint warm light follows the cursor; on cream cards its
   counterpart, a faint warm shade, like a shadow passing over paper. Both are bounded by
   the card (the ::before box), and the card's border warms to gold while hovered. */
.nx-spot { position: relative; isolation: isolate; transition: border-color 500ms ease; }
.nx-spot::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0; transition: opacity 500ms ease;
	background: radial-gradient(340px circle at var(--mx, 50%) var(--my, 50%), rgba(214, 184, 128, .11), rgba(214, 184, 128, .04) 40%, transparent 70%);
}
.nx-spot--shade::before {
	background: radial-gradient(300px circle at var(--mx, 50%) var(--my, 50%), rgba(120, 82, 34, .075), rgba(120, 82, 34, .025) 45%, transparent 72%);
}
.nx-spot.is-lit::before { opacity: 1; }
.nx-spot.is-lit { border-color: rgba(214, 184, 128, .28); }
.nx-spot--shade.is-lit { border-top-color: var(--nx-gold); }
.nx-bridge__house { position: relative; z-index: 2; }  /* the seal stamp's hand floats over the neighbouring cards */

/* Seal stamp: a cut-out hand and stamp hovering above the page comes in out of focus,
   presses the seal (its face exactly over the impression), and lifts away. */
.nx-stamp__frame { position: relative; display: block; width: fit-content; max-width: 100%; margin-inline: auto; }
.wp-block-image img.nx-stamp__hand {
	position: absolute; z-index: 5; height: auto; max-width: none; aspect-ratio: auto; object-fit: fill; border-radius: 0; box-shadow: none;
	pointer-events: none; opacity: 0; will-change: transform, filter, opacity;
}
.nx-fx--stamp.is-on .nx-stamp__hand { animation: nxStampHand var(--dur) cubic-bezier(.45, .05, .3, 1) 300ms both; }
.nx-fx--stamp.is-on .nx-stamp__frame > img:first-child { animation: nxStampPress var(--dur) ease 300ms both; }
@keyframes nxStampHand {
	0%   { opacity: 0; transform: translate(18%, -26%) scale(2.3); filter: blur(12px) drop-shadow(0 40px 30px rgba(9, 22, 45, .10)); }
	16%  { opacity: 1; }
	46%  { opacity: 1; transform: translate(0, 0) scale(1.07); filter: blur(2.2px) drop-shadow(0 14px 12px rgba(9, 22, 45, .28)); }
	56%  { transform: translate(0, 0) scale(1); filter: blur(.4px) drop-shadow(0 3px 4px rgba(9, 22, 45, .45)); }
	68%  { transform: translate(0, 0) scale(1); filter: blur(.4px) drop-shadow(0 3px 4px rgba(9, 22, 45, .45)); }
	86%  { opacity: 1; transform: translate(12%, -18%) scale(1.8); filter: blur(7px) drop-shadow(0 30px 24px rgba(9, 22, 45, .16)); }
	100% { opacity: 0; transform: translate(22%, -32%) scale(2.5); filter: blur(13px) drop-shadow(0 44px 34px rgba(9, 22, 45, .08)); }
}
@keyframes nxStampPress {
	0%, 54%   { transform: scale(1); filter: none; }
	60%       { transform: scale(.975); filter: brightness(.88); }
	70%       { transform: scale(.985); filter: brightness(.92); }
	82%, 100% { transform: scale(1); filter: none; }
}

/* Ticking images: dial patch, hand and cap over the photo, cropped exactly as the photo is. */
.nx-tick__frame { position: relative; display: block; }
.nx-tick__layers { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: hidden; }
.nx-tick__hand { transform-box: view-box; transition: transform 160ms cubic-bezier(.3, 1.9, .55, 1); }
.nx-tick__hand.is-reset { transition: none; }

@media (prefers-reduced-motion: reduce) {
	.nx-motion__clip, .nx-tick__layers, .nx-stamp__hand { display: none !important; }
	.nx-stamp__frame > img:first-child { animation: none !important; }
	.nx-fx__sheen, .nx-fx__frame::after { display: none !important; }
	.nx-fx--tilt .nx-fx__frame > img:first-child { transform: none !important; transition: none !important; }
	.nx-gravity .nx-layer, .nx-gravity .nx-layer img { transition: none !important; animation: none !important; transform: none !important; filter: none !important; }
	.nx-orbit { animation: none; }
	* { scroll-behavior: auto !important; transition: none !important; }
}
@media (max-width: 600px) {
	.nx-hero { min-height: 760px; }
	.nx-sheet__sign { padding-right: 0; }
}

/* ---- Space Phoenix page (Beth's handover, 14 Oct 2026) ------------------------ */
.nx-sp-hero { padding: clamp(48px, 7vw, 104px) var(--nx-gutter) clamp(64px, 8vw, 112px); }
.nx-sp-hero > .nx-wrap { display: flex; flex-direction: column; gap: 24px; }
.nx-sp-hero h1 { max-width: 18ch; font-size: clamp(40px, 5.6vw, 80px); line-height: 1.05; }
.nx-sp-hero .nx-lede { max-width: 60ch; }

.nx-sp-banner { position: relative; overflow: hidden; }
.nx-sp-banner .wp-block-image img { height: clamp(420px, 46vw, 680px); object-fit: cover; object-position: center 40%; }
.nx-sp-banner .nx-sp-banner__img--orbit img { height: auto; aspect-ratio: 4052 / 1536; max-height: 88vh; min-height: 420px; object-position: 20% 40%; }
.nx-sp-banner__text { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: clamp(32px, 5vw, 72px) var(--nx-gutter); pointer-events: none;
	background: linear-gradient(0deg, rgba(5, 11, 24, .88) 0%, rgba(5, 11, 24, .4) 60%, rgba(5, 11, 24, 0) 100%); }
.nx-sp-banner--right .nx-sp-banner__text { background: linear-gradient(0deg, rgba(5, 11, 24, .85) 0%, rgba(5, 11, 24, .35) 60%, rgba(5, 11, 24, 0) 100%); }
.nx-sp-banner__text > .nx-wrap { display: flex; flex-direction: column; gap: 12px; }
.nx-sp-banner--right .nx-sp-banner__text > .nx-wrap { align-items: flex-end; text-align: right; }
.nx-sp-banner__line { max-width: 22ch; font-family: var(--nx-display); font-size: clamp(30px, 4vw, 56px); line-height: 1.1; color: var(--nx-on-deep); }
.nx-sp-banner--right .nx-sp-banner__line { max-width: 16ch; text-wrap: balance; }
.nx-sp-banner__text .nx-label { color: var(--nx-hero-lede); }

.nx-sp-why { padding: var(--nx-section) var(--nx-gutter); }
.nx-sp-why__inner { display: flex; flex-wrap: wrap; gap: 32px 72px; }
.nx-sp-why__head, .nx-sp-why__body { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; }
.nx-sp-why__head { gap: 18px; }
.nx-sp-why__body { gap: 16px; font-size: 18px; line-height: 1.6; }

.nx-sp-intro { max-width: 820px; display: flex; flex-direction: column; gap: 18px; }
.nx-sp-roles { padding: var(--nx-section) var(--nx-gutter); }
.nx-sp-roles > .nx-wrap { display: flex; flex-direction: column; gap: 48px; }
.nx-sp-roles__cards { display: flex; flex-wrap: wrap; align-items: stretch; gap: 24px; }
.nx-sp-role { flex: 1 1 280px; min-width: 0; border: 1px solid var(--nx-deep-line); padding: 32px 28px; display: flex; flex-direction: column; gap: 12px; font-size: 16px; color: var(--nx-on-deep-muted); }
.nx-sp-role__name { font-family: var(--nx-display); font-size: 30px; line-height: 1.15; color: var(--nx-on-deep); }
.nx-sp-role--partner { background: var(--nx-ground); color: var(--nx-muted); border: 0; border-top: 3px solid var(--nx-gold); }
.nx-sp-role--partner .nx-sp-role__name { color: var(--nx-ink); }
.nx-sp-role--partner.nx-spot--shade.is-lit { border-top-color: var(--nx-gold); }

.nx-sp-mission { padding: var(--nx-section) var(--nx-gutter); }
.nx-sp-mission > .nx-wrap { display: flex; flex-direction: column; gap: 48px; }
.nx-sp-mission__head { display: flex; flex-wrap: wrap; gap: 20px 64px; align-items: flex-end; }
.nx-sp-mission__title { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.nx-sp-mission__note { flex: 1 1 360px; min-width: 0; color: var(--nx-muted); }
.nx-sp-steps { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 0 40px; }
.nx-sp-steps li { border-top: 1px solid var(--nx-ink); padding: 22px 0 32px; display: flex; flex-direction: column; gap: 8px; }
.nx-sp-steps__num { display: flex; align-items: center; gap: 10px; font-family: var(--nx-display); font-size: 20px; color: var(--nx-cognac); }
.nx-sp-steps__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--nx-gold); }
.wp-site-blocks .nx-sp-steps h3 { font-size: 28px; line-height: 1.2; }
.nx-sp-steps li > p:last-child { font-size: 16px; color: #3E3A33; }

.nx-sp-fleet { padding: 0 var(--nx-gutter) var(--nx-section); }
.nx-sp-fleet > .nx-wrap { display: flex; flex-direction: column; gap: 40px; }
.nx-sp-fleet__intro { border-top: 1px solid var(--nx-line); padding-top: clamp(56px, 7vw, 96px); }
.nx-sp-fleet__lede { font-size: 18px; line-height: 1.6; color: var(--nx-muted); }
.nx-sp-fleet__fig img { background: var(--nx-deep); }
.nx-sp-fleet__fig figcaption { padding-top: 12px; }
.nx-sp-classes { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.nx-sp-class { padding: 36px 32px; gap: 10px; }
.nx-sp-class__kg { font-family: var(--nx-display); font-size: clamp(44px, 4vw, 56px); line-height: 1; }
.nx-sp-class__unit { font-family: var(--nx-label); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--nx-muted); }
.wp-site-blocks .nx-sp-class__text { margin-top: 6px; font-size: 16px; color: var(--nx-muted); }
.nx-sp-quote { max-width: 900px; border-left: 3px solid var(--nx-gold); background: #F3E9D6; padding: 20px 28px; display: flex; flex-direction: column; gap: 8px; }
.nx-sp-quote > p:first-child { font-style: italic; font-size: clamp(20px, 2.2vw, 26px); line-height: 1.4; }

.nx-sp-company { padding: var(--nx-section) var(--nx-gutter); }
.nx-sp-company > .nx-wrap { display: flex; flex-direction: column; gap: 48px; }
.nx-sp-creds { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 32px; }
.nx-sp-creds > div { border-top: 1px solid var(--nx-deep-line); padding-top: 22px; display: flex; flex-direction: column; gap: 10px; font-size: 17px; line-height: 1.55; }
.nx-dark .nx-sp-creds .nx-label.nx-gold { color: var(--nx-gold); }
.nx-sp-company__note { font-size: 14px; color: var(--nx-on-deep-muted); }

.nx-sp-cta { padding: clamp(64px, 8vw, 112px) var(--nx-gutter); }
.nx-sp-cta > .nx-wrap { max-width: 760px; display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; }
.nx-sp-cta__buttons { gap: 14px; margin-top: 8px; }
.nx-btn--outline .wp-block-button__link { background: transparent; color: var(--nx-ink); border: 1px solid var(--nx-ink); padding: 16px 29px; }
.nx-btn--outline .wp-block-button__link:hover { background: transparent; color: var(--nx-cognac); border-color: var(--nx-cognac); }

/* Orbit banner (photoreal backdrop, widened to the right in Firefly, 15 Oct 2026):
   the spacecraft sits in the left 60%; the text has the open black space on the right. */
.nx-sp-banner--right .nx-sp-banner__text {
	top: 0; bottom: 0; display: flex; flex-direction: column; justify-content: center;
	padding: 0 var(--nx-gutter) 6%; background: none;
}
.nx-sp-banner--right .nx-sp-banner__line { max-width: 12ch; font-size: clamp(30px, 3.8vw, 60px); }
@media (min-width: 821px) { .nx-sp-banner--right .nx-sp-banner__text > .nx-wrap { max-width: none; width: 34%; margin: 0 4% 0 auto; } }
@media (max-width: 820px) {
	.nx-sp-banner--right .nx-sp-banner__text { position: static; display: block; background: var(--nx-deep); padding: 28px var(--nx-gutter) 44px; }
	.nx-sp-banner--right .nx-sp-banner__text > .nx-wrap { align-items: flex-start; text-align: left; }
	.nx-sp-banner--right .nx-sp-banner__line { max-width: 16ch; }
	.nx-sp-banner .nx-sp-banner__img--orbit img { aspect-ratio: 16 / 10; object-position: 22% 40%; }
}
