/* Nar Psikoteknik — component styles.
   Tokens (colours, fonts, sizes, spacing) come from theme.json; this file
   only adds what blocks cannot express. One continuous paper surface:
   sections are separated by rules and rhythm, never by colour blocks. */

:root {
	--nar-paper: var(--wp--preset--color--paper);
	--nar-surface: var(--wp--preset--color--surface);
	--nar-ink: var(--wp--preset--color--ink);
	--nar-ink-2: var(--wp--preset--color--ink-2);
	--nar-ink-3: var(--wp--preset--color--ink-3);
	--nar-rule: var(--wp--preset--color--rule);
	--nar-rule-strong: var(--wp--preset--color--rule-strong);
	--nar-red: var(--wp--preset--color--nar);
	--nar-red-deep: var(--wp--preset--color--nar-deep);
	--nar-display: var(--wp--preset--font-family--barlow-semi-condensed);
	--nar-radius: var(--wp--custom--radius, 6px);
	--nar-section: var(--wp--preset--spacing--70);
	--nar-ease: cubic-bezier(.2, .7, .2, 1);
	--nar-shadow: 0 30px 60px -36px rgba(27, 23, 20, .28);

	/* Liquid glass. Only three small surfaces use backdrop-filter (header,
	   bottom dock, fact card) so scrolling stays cheap on low-end phones. */
	--nar-glass-fill: rgba(251, 249, 245, .64);
	--nar-glass-sheen: linear-gradient(180deg, rgba(255, 255, 255, .42), rgba(255, 255, 255, .06) 55%, rgba(255, 255, 255, 0));
	--nar-glass-blur: 18px;
	--nar-glass-sat: 1.8;
	--nar-glass-rim: linear-gradient(160deg, rgba(255, 255, 255, .95), rgba(255, 255, 255, .3) 30%, rgba(255, 255, 255, 0) 55%, rgba(255, 255, 255, .6));
	--nar-glass-shadow:
		inset 0 1px 0 rgba(255, 255, 255, .8),
		inset 0 -1px 0 rgba(255, 255, 255, .25),
		0 0 0 1px rgba(27, 23, 20, .07),
		0 14px 36px -12px rgba(27, 23, 20, .30),
		0 2px 8px rgba(27, 23, 20, .07);
	--nar-i-phone: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M22 16.92v3a2 2 0 0 1-2.18 2 19.8 19.8 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.12 4.18 2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92Z%22/%3E%3C/svg%3E");
	--nar-i-mail: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect width=%2220%22 height=%2216%22 x=%222%22 y=%224%22 rx=%222%22/%3E%3Cpath d=%22m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7%22/%3E%3C/svg%3E");
	--nar-i-insta: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect width=%2220%22 height=%2220%22 x=%222%22 y=%222%22 rx=%225%22/%3E%3Cpath d=%22M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37Z%22/%3E%3Cpath d=%22M17.5 6.5h.01%22/%3E%3C/svg%3E");
	--nar-i-pin: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z%22/%3E%3Ccircle cx=%2212%22 cy=%2210%22 r=%223%22/%3E%3C/svg%3E");
	--nar-i-chat: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7.9 20A9 9 0 1 0 4 16.1L2 22Z%22/%3E%3C/svg%3E");
	--nar-i-route: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 11 22 2l-9 19-2-8-8-2Z%22/%3E%3C/svg%3E");
}

html { scroll-padding-top: calc(var(--wp--custom--header-height, 64px) + 2rem); }
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

:where(a):focus-visible,
:where(button, summary):focus-visible {
	outline: 2px solid var(--nar-red);
	outline-offset: 3px;
	border-radius: 2px;
}

/* The page shell has no gaps between header, main and footer. */
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-site-blocks { overflow-x: clip; }

/* ---------- liquid glass ---------- */

/* The header paints its glass on ::before: backdrop-filter on the capsule
   itself would trap the fixed-position mobile menu inside it. */
.site-header__inner::before,
.nar-dock,
:root .nar-factcard {
	background: var(--nar-glass-sheen), var(--nar-glass-fill);
	-webkit-backdrop-filter: blur(var(--nar-glass-blur)) saturate(var(--nar-glass-sat));
	backdrop-filter: blur(var(--nar-glass-blur)) saturate(var(--nar-glass-sat));
	box-shadow: var(--nar-glass-shadow);
}

.nar-dock,
:root .nar-factcard { position: relative; }

.site-header__inner {
	position: relative;
	z-index: 0;
}
.site-header__inner::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	pointer-events: none;
}

/* Specular rim: a 1px gradient border drawn with a mask, no extra layers. */
.site-header__inner::after,
.nar-dock::after,
.nar-factcard::after {
	content: "";
	position: absolute;
	inset: 0;
	padding: 1px;
	border-radius: inherit;
	background: var(--nar-glass-rim);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.site-header__inner::before,
	.nar-dock,
	:root .nar-factcard { background: rgba(251, 249, 245, .96); }
}

@media (prefers-reduced-transparency: reduce) {
	.site-header__inner::before,
	.nar-dock,
	:root .nar-factcard {
		background: var(--nar-surface);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}
}

/* ---------- icons (CSS masks, so blocks stay plain) ---------- */

.nar-ico:not(.wp-block-button)::before,
.wp-block-button.nar-ico .wp-block-button__link::before {
	content: "";
	display: inline-block;
	flex: none;
	width: 1.125em;
	height: 1.125em;
	background-color: currentColor;
	-webkit-mask: var(--nar-icon) center / contain no-repeat;
	mask: var(--nar-icon) center / contain no-repeat;
}
.nar-ico-phone { --nar-icon: var(--nar-i-phone); }
.nar-ico-mail { --nar-icon: var(--nar-i-mail); }
.nar-ico-insta { --nar-icon: var(--nar-i-insta); }
.nar-ico-pin { --nar-icon: var(--nar-i-pin); }
.nar-ico-route { --nar-icon: var(--nar-i-route); }
.nar-ico-chat { --nar-icon: var(--nar-i-chat); }

.wp-block-button.nar-ico .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
}

.wp-block-button__link {
	transition: background-color .2s var(--nar-ease), border-color .2s var(--nar-ease), color .2s var(--nar-ease);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: transparent;
	color: var(--nar-ink);
	border-color: var(--nar-ink);
}

/* ---------- shared type ---------- */

.nar-label {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--nar-ink-3);
}

.nar-h2 { text-wrap: balance; }

.nar-lead {
	color: var(--nar-ink-2);
	font-size: var(--wp--preset--font-size--large);
	max-width: 38em;
}

.nar-link-arrow a {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font-weight: 600;
	text-decoration: none;
}
.nar-link-arrow a::after {
	content: "→";
	transition: transform .2s var(--nar-ease);
}
.nar-link-arrow a:hover::after { transform: translateX(3px); }

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

.site-header {
	position: sticky;
	top: 0;
	z-index: 40;
	padding-top: .75rem;
	/* The strip around the capsule stays click-through. */
	pointer-events: none;
}
.admin-bar .site-header { top: var(--wp-admin--admin-bar--height, 32px); }
/* Below 600px the admin bar scrolls away with the page. */
@media (max-width: 600px) {
	.admin-bar .site-header { top: 0; }
}

.site-header__inner {
	min-height: var(--wp--custom--header-height, 64px);
	gap: 2rem;
	padding: .5rem .5rem .5rem 1.25rem;
	border-radius: 999px;
	pointer-events: auto;
}
.site-header__inner > .brand { margin-right: auto; }

.brand { gap: .75rem; flex-shrink: 0; }
.brand .brand__mark { margin: 0; flex-shrink: 0; }
.brand .brand__mark img { width: 34px; height: auto; aspect-ratio: 830 / 972; display: block; }
.brand__text { gap: .3rem; }
.brand__text > * { margin: 0; }
.brand .wp-block-site-title { white-space: nowrap; }
.brand__sub {
	font-size: .6875rem;
	font-weight: 600;
	letter-spacing: .14em;
	line-height: 1;
	color: var(--nar-ink-3);
	white-space: nowrap;
}

.site-nav .wp-block-navigation-item__content {
	padding-block: .375rem;
	border-bottom: 1.5px solid transparent;
	transition: color .2s var(--nar-ease), border-color .2s var(--nar-ease);
}
.site-nav .wp-block-navigation-item__content:hover { border-bottom-color: var(--nar-red); }
.site-nav .wp-block-navigation__container { gap: 1.75rem; }

.header-phone {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: 0;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.header-phone::before { color: var(--nar-red); }
.header-phone a { color: var(--nar-ink); text-decoration: none; }
.header-cta { margin: 0; }
.header-cta .wp-block-button__link {
	padding: .75rem 1.25rem;
	font-size: var(--wp--preset--font-size--small);
}

.site-nav .wp-block-navigation__responsive-container-open {
	width: 44px;
	height: 44px;
	justify-content: center;
	align-items: center;
	border-radius: 999px;
	background: rgba(255, 255, 255, .55);
	box-shadow: inset 0 0 0 1px rgba(27, 23, 20, .08);
}

/* mobile overlay menu */
/* Doubled class beats core's :not(.has-background) white overlay. */
:root .site-nav.site-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: rgba(247, 244, 239, .78);
	-webkit-backdrop-filter: blur(24px) saturate(1.6);
	backdrop-filter: blur(24px) saturate(1.6);
	padding: 1.5rem var(--wp--custom--gutter);
}
:root .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
:root .site-nav .is-menu-open .wp-block-navigation__container {
	align-items: flex-start;
}
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 3rem;
	gap: 1.25rem;
}
.site-nav .is-menu-open .wp-block-navigation-item__content {
	font-family: var(--nar-display);
	font-size: 1.75rem;
	font-weight: 600;
	color: var(--nar-ink);
}

/* ---------- sections ---------- */

:root :where(.wp-block-post-content) > .nar-section,
:root :where(.wp-block-post-content) > .nar-section + .nar-section {
	margin-block: 0;
}
.nar-section { padding-block: var(--nar-section); }
.nar-section + .nar-section { border-top: 1px solid var(--nar-rule); }

/* Inside designed sections, spacing is set explicitly below. */
:root .nar-section :where(.nar-label) + * { margin-block-start: 1rem; }

.nar-section__head { margin-block: 1rem clamp(2.5rem, 5vw, 4rem); }
.nar-section__head .nar-lead { margin-left: auto; }
.nar-section__title { margin-bottom: clamp(2.5rem, 5vw, 4rem); }

/* Columns gap follows the design grid, not the default block gap. */
.nar-section .wp-block-columns { gap: 1.5rem clamp(2rem, 6vw, 6rem); margin-bottom: 0; }

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

.nar-hero { padding-block: clamp(3rem, 6vw, 5.5rem); }
.nar-hero + .nar-section { border-top: 1px solid var(--nar-rule); }

:root .nar-hero > * { margin-block: 0; }

.nar-hero__place {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	font-family: var(--wp--preset--font-family--barlow);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.4;
	color: var(--nar-ink-2);
}
.nar-hero__place::before { color: var(--nar-red); }

:root .nar-hero .nar-hero__title {
	margin-top: 1.5rem;
	font-family: var(--nar-display);
	font-weight: 600;
	font-size: var(--wp--preset--font-size--display);
	line-height: .94;
	letter-spacing: -.02em;
	color: var(--nar-ink);
}

:root .nar-hero .nar-hero__cols { margin-top: clamp(2rem, 4vw, 3rem); }
:root .nar-hero > .nar-lead { margin-top: 1.75rem; }

.nar-hero__body .nar-lead { max-width: 34em; }
.nar-hero__actions {
	margin-top: 2.25rem;
	gap: .75rem 1.75rem;
	align-items: center;
}
.nar-hero__actions > * { margin: 0; }

/* fact card — reads like the header of an official form */
.nar-factcard { border-radius: var(--nar-radius); }

/* The brand pomegranate sits behind the card so the glass has something to refract. */
.nar-hero__aside {
	position: relative;
	isolation: isolate;
}
.nar-hero__aside::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: -4.75rem;
	right: -3.25rem;
	width: 230px;
	aspect-ratio: 830 / 972;
	background: url("../img/nar-logo-460.webp") center / contain no-repeat;
	pointer-events: none;
}
:root .nar-factcard > * { margin-block: 0; }

.nar-factcard__head {
	gap: .75rem;
	padding: 1.125rem 1.5rem;
	border-bottom: 1px solid rgba(27, 23, 20, .09);
}
.nar-factcard__head > * { margin: 0; }
.nar-factcard__head img { width: 22px; height: auto; aspect-ratio: 830 / 972; display: block; }
.nar-factcard__head p {
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .1em;
	color: var(--nar-ink-3);
}

.nar-factcard__row {
	display: grid;
	grid-template-columns: 6.5rem minmax(0, 1fr);
	gap: 1rem;
	margin-inline: 1.5rem;
	padding-block: 1rem;
	border-bottom: 1px dashed rgba(27, 23, 20, .14);
}
:root .nar-factcard__row > * { margin: 0; }
.nar-factcard__dt {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--nar-ink-3);
	padding-top: .15rem;
}
.nar-factcard__dd { font-weight: 500; line-height: 1.45; }
.nar-factcard__big {
	font-family: var(--nar-display);
	font-size: 1.75rem;
	font-weight: 600;
	line-height: 1;
	color: var(--nar-red);
}

:root .nar-factcard__foot {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: .5rem;
	padding: 1rem 1.5rem 1.5rem;
}
.nar-factcard__foot .wp-block-button,
.nar-factcard__foot .wp-block-button__link { width: 100%; }
.nar-factcard__foot .wp-block-button__link { padding-inline: .75rem; }

/* ---------- about ---------- */

:root .nar-split .wp-block-column > .nar-lead + .nar-lead { margin-top: 1.25rem; }

.nar-abilities {
	counter-reset: nar-ability;
	list-style: none;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 2.5rem 0 0;
	padding: 0;
	border-top: 1px solid var(--nar-ink);
}
.nar-abilities li {
	counter-increment: nar-ability;
	margin: 0;
	padding: 1rem 1rem 0 0;
	font-family: var(--nar-display);
	font-weight: 600;
	font-size: 1.375rem;
	line-height: 1.1;
}
.nar-abilities li::before {
	content: counter(nar-ability, decimal-leading-zero);
	display: block;
	margin-bottom: .5rem;
	font-family: var(--wp--preset--font-family--barlow);
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .08em;
	color: var(--nar-red);
}

:root .nar-aim {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 1rem;
	margin-top: 3rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--nar-rule);
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1.45;
}
.nar-aim::before {
	content: "";
	width: 3px;
	background: var(--nar-red);
	border-radius: 2px;
}

/* ---------- who needs it ---------- */

.nar-cases {
	counter-reset: nar-case;
	border-top: 1px solid var(--nar-ink);
}
.nar-case {
	counter-increment: nar-case;
	display: grid;
	grid-template-columns: 3rem minmax(0, 4fr) minmax(0, 6fr);
	grid-template-areas: "no tag text" "no title text";
	grid-template-rows: auto 1fr;
	column-gap: 1.5rem;
	padding-block: 1.75rem;
	border-bottom: 1px solid var(--nar-rule);
	transition: background-color .25s var(--nar-ease);
}
:root .nar-cases > .nar-case,
:root .nar-case > * { margin: 0; }
.nar-case::before {
	content: counter(nar-case, decimal-leading-zero);
	grid-area: no;
	font-family: var(--nar-display);
	font-weight: 500;
	font-size: 1.125rem;
	line-height: 1.6;
	color: var(--nar-ink-3);
	font-variant-numeric: tabular-nums;
}
.nar-case__tag {
	grid-area: tag;
	margin-bottom: .5rem !important;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--nar-red);
}
.nar-case__title {
	grid-area: title;
	font-size: 1.5rem;
	line-height: 1.12;
	text-wrap: balance;
}
.nar-case__text {
	grid-area: text;
	color: var(--nar-ink-2);
	padding-top: 1.45rem;
}

/* ---------- document ---------- */

.nar-section .nar-doc {
	gap: 0;
	border-top: 1px solid var(--nar-ink);
}
.nar-doc > .wp-block-column { padding: 2rem 2.5rem 0 0; }
.nar-doc > .wp-block-column + .wp-block-column {
	padding: 2rem 0 0 2.5rem;
	border-left: 1px solid var(--nar-rule);
}
.nar-doc p { color: var(--nar-ink-2); max-width: 30em; }
.nar-doc__title {
	font-family: var(--wp--preset--font-family--barlow);
	font-size: 1.25rem;
	letter-spacing: 0;
}
:root .nar-doc .nar-doc__title + * { margin-top: .75rem; }
:root .nar-doc .nar-doc__years {
	margin-top: 1.25rem;
	font-family: var(--nar-display);
	font-weight: 600;
	font-size: clamp(4.5rem, 3rem + 6vw, 8.5rem);
	line-height: .85;
	letter-spacing: -.02em;
	color: var(--nar-red);
}

/* ---------- contact ---------- */

.nar-nap {
	margin-top: 2.5rem !important;
	border-top: 1px solid var(--nar-ink);
}
.nar-nap__row {
	display: grid;
	grid-template-columns: 1.5rem minmax(0, 1fr);
	column-gap: 1rem;
	padding-block: 1.125rem;
	border-bottom: 1px solid var(--nar-rule);
}
:root .nar-nap > .nar-nap__row,
:root .nar-nap__row > * { margin: 0; }
.nar-nap__row::before {
	grid-row: span 2;
	margin-top: .2rem;
	color: var(--nar-red);
}
.nar-nap__dt {
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--nar-ink-3);
}
.nar-nap__dd { font-weight: 500; line-height: 1.45; overflow-wrap: anywhere; }
.nar-nap__dd a {
	color: var(--nar-ink);
	text-decoration-color: var(--nar-rule-strong);
	text-underline-offset: 3px;
}
.nar-nap__dd a:hover { text-decoration-color: var(--nar-red); }

.nar-contact__actions { margin-top: 1.75rem !important; gap: .75rem; }

.nar-map {
	position: relative;
	height: 100%;
	min-height: 420px;
	border: 1px solid var(--nar-rule);
	border-radius: var(--nar-radius);
	overflow: hidden;
	background: #ece7e0;
}
.nar-map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	filter: grayscale(.35) contrast(1.02);
}

/* ---------- call-to-action box (posts, landing pages) ---------- */

.nar-cta {
	margin-block: var(--wp--preset--spacing--60) 0 !important;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	background: var(--nar-surface);
	border: 1px solid var(--nar-rule);
	border-radius: var(--nar-radius);
	box-shadow: var(--nar-shadow);
}
:root .nar-cta > * { margin-block: 0; }
:root .nar-cta > * + * { margin-top: 1rem; }
.nar-cta__title { font-size: var(--wp--preset--font-size--xx-large); }
.nar-cta__text { color: var(--nar-ink-2); }
:root .nar-cta > .wp-block-buttons { margin-top: 1.5rem; }

/* ---------- inner pages & blog ---------- */

.nar-page { padding-block: var(--wp--preset--spacing--60) var(--nar-section); }
.nar-page__title { margin-bottom: var(--wp--preset--spacing--50); text-wrap: balance; }
.nar-page__image { margin-bottom: var(--wp--preset--spacing--50); }
.nar-page__image img { border-radius: var(--nar-radius); }

.nar-posts .wp-block-post-template { border-top: 1px solid var(--nar-ink); }
.nar-post {
	padding-block: 1.75rem;
	border-bottom: 1px solid var(--nar-rule);
}
:root .nar-post > * { margin-block: 0; }
:root .nar-post > * + * { margin-top: .5rem; }
.nar-post__title { font-size: var(--wp--preset--font-size--x-large); }
.nar-post .wp-block-post-excerpt__excerpt { color: var(--nar-ink-2); margin: 0; }

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

.site-footer {
	border-top: 1px solid var(--nar-rule);
	padding-block: 3rem 2rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--nar-ink-2);
}
.site-footer__grid { gap: 2rem; margin-bottom: 0; }
.site-footer a:not(.wp-element-button) { color: inherit; text-decoration: none; }
.site-footer a:not(.wp-element-button):hover { color: var(--nar-red); }
.site-footer__address { line-height: 1.6; }
.footer-nav .wp-block-navigation__container { gap: .375rem; }
.footer-nav { font-weight: 400; }
:root .site-footer__base {
	margin-top: 2.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--nar-rule);
	font-size: .8125rem;
	color: var(--nar-ink-3);
}
.site-footer__base > * { margin: 0; }

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

/* Floating glass dock: phones and small tablets only. */
.nar-dock {
	display: none;
	position: fixed;
	z-index: 50;
	left: 12px;
	right: 12px;
	bottom: calc(12px + env(safe-area-inset-bottom));
	padding: 6px;
	border-radius: 999px;
}
:root .nar-dock .wp-block-buttons {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0;
}
.nar-dock .wp-block-button { margin: 0; }
.nar-dock__item { position: relative; }
.nar-dock__item .wp-block-button__link {
	background: transparent;
	border-color: transparent;
	color: var(--nar-ink);
	padding: .875rem 1rem;
	white-space: nowrap;
}
.nar-dock__item .wp-block-button__link:hover,
.nar-dock__item .wp-block-button__link:focus-visible {
	background: rgba(255, 255, 255, .55);
	border-color: transparent;
	color: var(--nar-ink);
}
.nar-dock__item .wp-block-button__link::before { color: var(--nar-red); }
.nar-dock__item + .nar-dock__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 25%;
	height: 50%;
	width: 1px;
	background: rgba(27, 23, 20, .16);
}
.nar-dock__cta { flex: 1 1 auto; margin-left: .25rem !important; }
.nar-dock__cta .wp-block-button__link {
	width: 100%;
	min-height: 50px;
	padding-inline: 1rem;
	white-space: nowrap;
}

/* ---------- load motion ---------- */

@media (prefers-reduced-motion: no-preference) {
	.nar-hero > *,
	.nar-hero .nar-factcard {
		animation: nar-rise .8s var(--nar-ease) both;
	}
	.nar-hero > :nth-child(2) { animation-delay: .09s; }
	.nar-hero > :nth-child(3) { animation-delay: .18s; }
	.nar-hero .nar-factcard { animation-delay: .3s; }

	@keyframes nar-rise {
		from { opacity: 0; transform: translateY(14px); }
		to { opacity: 1; transform: none; }
	}

	.nar-case:hover { background: color-mix(in srgb, var(--nar-surface) 70%, transparent); }
}

/* ---------- responsive ---------- */

/* Between 600px and 1040px the inline menu does not fit: use the overlay. */
@media (min-width: 600px) and (max-width: 1040px) {
	.site-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.site-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.site-nav .wp-block-navigation__responsive-container-close:not(.always-shown) { display: flex; }
}

@media (max-width: 1040px) {
	:root .header-cta { display: none; }
	.nar-factcard__row { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
	.site-header__inner { gap: 1.25rem; }
}

@media (max-width: 781px) {
	.nar-section__head .nar-lead { margin-left: 0; }
	.nar-abilities { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 1.25rem; }
	.nar-case {
		grid-template-columns: 2.25rem minmax(0, 1fr);
		grid-template-areas: "no tag" "no title" "no text";
		grid-template-rows: auto;
		column-gap: 1rem;
	}
	.nar-case__text { padding-top: .5rem; }
	.nar-doc > .wp-block-column + .wp-block-column {
		padding: 2rem 0 0;
		margin-top: 2rem;
		border-left: 0;
		border-top: 1px solid var(--nar-rule);
	}
	.nar-doc > .wp-block-column { padding-right: 0; }
	.nar-map { min-height: 320px; }

	.header-phone { display: none; }
	.nar-dock { display: block; }
	body { padding-bottom: calc(62px + 24px + env(safe-area-inset-bottom)); }
}

@media (max-width: 640px) {
	.site-header { padding-top: .5rem; }
	.site-header__inner { min-height: 56px; gap: .75rem; padding-left: 1rem; }
	.brand__sub { font-size: .625rem; letter-spacing: .12em; }
	.nar-hero__actions > .wp-block-buttons,
	.nar-hero__actions .wp-block-button,
	.nar-hero__actions .wp-block-button__link { width: 100%; }
	.nar-factcard__row { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
	.nar-factcard__foot { display: none; }
	.site-footer__base { flex-direction: column; align-items: flex-start; }

	.nar-hero__aside::before { top: -3.25rem; right: -.75rem; width: 150px; }
}
