/*
Theme Name: NovaWorks
Theme URI: https://novaworks.test/
Author: NovaWorks
Description: Minimalistyczny motyw blokowy dla NovaWorks.
Version: 2.1.2
Requires at least: 6.7
Requires PHP: 7.4
Text Domain: novaworks
*/

:root {
	--nw-brand-logo: url("assets/images/novaworks-logo-glow.png");
	--nw-gutter: #e5e5e5;
	--nw-paper: #f5f5f3;
	--nw-white: #fff;
	--nw-ink: #1d1d1d;
	--nw-muted: #6d6d6c;
	--nw-line: #d8d8d4;
	--nw-sage: #dfe1d8;
	--nw-blush: #e4dbd4;
	--nw-sand: #ded1c4;
	--nw-content: 1384px;
	--nw-side: max(clamp(64px, 6.7vw, 108px), calc((100% - var(--nw-content)) / 2));
	--nw-radius: 24px;
	--nw-shadow-soft: 0 24px 70px rgba(29, 29, 29, 0.075);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scrollbar-gutter: stable;
	scroll-behavior: auto;
}

body {
	background: var(--nw-gutter);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

html.nw-section-scroll-ready body::after {
	background: rgba(20, 22, 20, 0.055);
	content: "";
	inset: 0;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	transition: opacity 360ms cubic-bezier(0.22, 1, 0.36, 1);
	z-index: 99999;
}

html.nw-section-scroll-ready.nw-section-scroll-active body::after {
	opacity: 1;
	transition-duration: 180ms;
}

.wp-site-blocks {
	background: var(--nw-paper);
	box-shadow: none;
	margin-inline: 0;
	max-width: none;
	min-height: 100vh;
	position: relative;
	width: 100%;
}

.wp-site-blocks > * {
	margin-block-start: 0;
}

a,
button,
input,
textarea {
	transition-duration: 160ms;
	transition-property: color, background-color, border-color, opacity, transform;
	transition-timing-function: ease;
}

:where(a, button, input, textarea):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.nw-site-header {
	align-items: center;
	background: transparent;
	left: 0;
	margin: 0 !important;
	padding: 34px var(--nw-side);
	position: absolute;
	right: 0;
	top: 0;
	z-index: 20;
}

.admin-bar .nw-site-header {
	top: 32px;
}

.nw-site-header .wp-block-site-title {
	line-height: 0;
	margin: 0;
}

.nw-site-header .wp-block-site-title a {
	background: var(--nw-brand-logo) center / 112% auto no-repeat;
	color: transparent;
	display: block;
	font-size: 0;
	height: 44px;
	overflow: hidden;
	width: clamp(150px, 11.5vw, 178px);
}

.nw-footer-brand::before {
	content: "✦";
	display: inline-block;
	font-size: 0.75em;
	margin-right: 10px;
}

.nw-site-header > .nw-header-nav.wp-block-navigation {
	background: rgba(255, 255, 255, 0.86);
	border: 1px solid rgba(29, 29, 29, 0.055);
	border-radius: 999px;
	box-shadow: 0 8px 24px rgba(29, 29, 29, 0.045);
	left: 50%;
	padding: 5px 8px;
	position: absolute;
	transform: translateX(-50%);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
}

.nw-header-nav .wp-block-navigation__container {
	gap: 0;
}

.nw-header-nav .wp-block-navigation-item__content {
	border-radius: 999px;
	color: var(--nw-muted);
	font-size: 12px;
	font-weight: 500;
	padding: 8px 18px;
}

.nw-header-nav .wp-block-navigation-item__content:hover {
	background: rgba(29, 29, 29, 0.045);
	color: var(--nw-ink);
}

.nw-header-nav .is-current .wp-block-navigation-item__content {
	color: var(--nw-ink);
}

.nw-header-nav .is-current .wp-block-navigation-item__label::before {
	background: var(--nw-ink);
	border-radius: 50%;
	content: "";
	display: inline-block;
	height: 7px;
	margin-right: 8px;
	vertical-align: 1px;
	width: 7px;
}

.nw-header-actions,
.nw-header-actions .wp-block-button {
	margin: 0;
}

.nw-header-cta .wp-block-button__link {
	background: var(--nw-ink);
	border: 1px solid var(--nw-ink);
	box-shadow: 0 10px 28px rgba(29, 29, 29, 0.13);
	color: var(--nw-white);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: -0.015em;
	min-width: 168px;
	padding: 15px 24px;
}

.nw-header-cta .wp-block-button__link:hover {
	background: #30302f;
	border-color: #30302f;
	box-shadow: 0 14px 32px rgba(29, 29, 29, 0.18);
	color: var(--nw-white);
	transform: translateY(-2px);
}

.nw-header-actions .nw-header-cta--mobile {
	display: none !important;
}

.nw-main {
	overflow: clip;
}

.nw-hero {
	background: var(--nw-white);
	display: grid;
	grid-template-rows: 1fr auto;
	height: 100svh;
	min-height: 740px;
	padding: 132px var(--nw-side) 48px;
}

.nw-hero-center {
	align-self: center;
	isolation: isolate;
	margin-top: 24px;
	position: relative;
	text-align: center;
}

.nw-hero-center::before,
.nw-hero-center::after {
	backface-visibility: hidden;
	content: "";
	left: 50%;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	top: 50%;
	will-change: opacity, transform;
	z-index: 0;
}

.nw-hero-center::before {
	background: radial-gradient(ellipse at center, rgba(194, 205, 220, 0.4) 0%, rgba(217, 218, 218, 0.27) 24%, rgba(233, 221, 210, 0.16) 44%, rgba(248, 245, 242, 0.06) 60%, rgba(255, 255, 255, 0) 78%);
	height: clamp(180px, 22vw, 320px);
	width: min(82vw, 1040px);
}

.nw-hero-center::after {
	background: linear-gradient(105deg, rgba(255, 255, 255, 0) 20%, rgba(208, 217, 228, 0.04) 32%, rgba(225, 229, 233, 0.28) 43%, rgba(255, 255, 255, 0.78) 50%, rgba(231, 221, 212, 0.24) 58%, rgba(248, 245, 242, 0.06) 68%, rgba(255, 255, 255, 0) 80%);
	height: clamp(190px, 24vw, 340px);
	width: min(46vw, 600px);
}

.nw-hero-center > * {
	position: relative;
	z-index: 1;
}

.nw-hero-title {
	font-size: clamp(64px, 6.75vw, 100px) !important;
	font-weight: 520;
	letter-spacing: -0.066em;
	line-height: 0.94;
	margin: 0 auto;
	max-width: 11ch;
	text-wrap: balance;
}

.nw-hero-copy {
	color: #777773;
	font-size: 20px;
	letter-spacing: -0.025em;
	margin: 32px auto 0;
	max-width: 34rem;
}

.nw-hero-footer {
	align-items: flex-end;
	border-top: 1px solid var(--nw-line);
	display: flex !important;
	font-size: 11px;
	gap: 32px;
	justify-content: space-between !important;
	letter-spacing: -0.01em;
	margin: 0;
	padding-top: 110px;
	width: 100%;
}

.nw-hero-footer p {
	margin: 0;
}

.nw-hero-footer p:last-child {
	margin-left: auto;
	text-align: right;
}

.nw-hero-footer a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

.nw-hero-footer a:hover {
	opacity: 0.58;
}

html.nw-intro-pending,
html.nw-intro-running {
	background: var(--nw-white);
	overflow: hidden;
}

html.nw-intro-pending body,
html.nw-intro-running body,
html.nw-intro-pending .wp-site-blocks,
html.nw-intro-running .wp-site-blocks {
	background: var(--nw-white);
}

html.nw-intro-pending .nw-site-header,
html.nw-intro-running .nw-site-header,
html.nw-intro-pending .nw-hero-footer,
html.nw-intro-running .nw-hero-footer,
html.nw-intro-pending .nw-main > :not(.nw-hero),
html.nw-intro-running .nw-main > :not(.nw-hero),
html.nw-intro-pending .nw-site-footer,
html.nw-intro-running .nw-site-footer {
	opacity: 0;
	pointer-events: none;
	visibility: hidden;
}

html.nw-intro-pending .nw-hero-title,
html.nw-intro-pending .nw-hero-copy {
	opacity: 0;
}

html.nw-intro-running .nw-hero-title {
	animation:
		nw-intro-title-motion 2200ms 250ms cubic-bezier(0.22, 0.61, 0.36, 1) both,
		nw-intro-title-fade 1500ms 250ms cubic-bezier(0.16, 1, 0.3, 1) both;
	backface-visibility: hidden;
	color: var(--nw-ink);
	will-change: opacity, transform;
}

html.nw-intro-running .nw-hero-copy {
	animation: nw-intro-copy 900ms 1800ms cubic-bezier(0.16, 1, 0.3, 1) both;
	backface-visibility: hidden;
	will-change: opacity, transform;
}

html.nw-intro-running .nw-hero-center::before {
	animation:
		nw-intro-halo-motion 3000ms 180ms cubic-bezier(0.37, 0, 0.63, 1) both,
		nw-intro-halo-opacity 3000ms 180ms linear both;
}

html.nw-intro-running .nw-hero-center::after {
	animation:
		nw-intro-light-motion 2400ms 450ms cubic-bezier(0.37, 0, 0.63, 1) both,
		nw-intro-light-opacity 2400ms 450ms linear both;
}

html.nw-intro-running.nw-intro-revealing .nw-site-header,
html.nw-intro-running.nw-intro-revealing .nw-hero-footer {
	animation: nw-page-reveal 850ms cubic-bezier(0.22, 1, 0.36, 1) both;
	pointer-events: auto;
	visibility: visible;
}

html.nw-intro-running.nw-intro-revealing .nw-main > :not(.nw-hero),
html.nw-intro-running.nw-intro-revealing .nw-site-footer {
	opacity: 1;
	pointer-events: auto;
	visibility: visible;
}

@keyframes nw-intro-title-motion {
	from {
		transform: translate3d(0, 24px, 0) scale(0.975);
	}
	to {
		transform: translate3d(0, 0, 0) scale(1);
	}
}

@keyframes nw-intro-title-fade {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@keyframes nw-intro-copy {
	from {
		opacity: 0;
		transform: translate3d(0, 12px, 0);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@keyframes nw-intro-halo-motion {
	from {
		transform: translate3d(-58%, -50%, 0) scale(0.78);
	}
	to {
		transform: translate3d(-44%, -50%, 0) scale(1.16);
	}
}

@keyframes nw-intro-halo-opacity {
	0% {
		opacity: 0;
	}
	28% {
		opacity: 0.66;
	}
	70% {
		opacity: 0.38;
	}
	100% {
		opacity: 0;
	}
}

@keyframes nw-intro-light-motion {
	from {
		transform: translate3d(-130%, -50%, 0) skewX(-12deg);
	}
	to {
		transform: translate3d(40%, -50%, 0) skewX(-12deg);
	}
}

@keyframes nw-intro-light-opacity {
	0% {
		opacity: 0;
	}
	22% {
		opacity: 0.72;
	}
	72% {
		opacity: 0.42;
	}
	100% {
		opacity: 0;
	}
}

@keyframes nw-page-reveal {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.nw-section {
	background: var(--nw-paper);
	padding: clamp(76px, 6.25vw, 100px) var(--nw-side) clamp(82px, 6.75vw, 108px);
}

@media (min-width: 1024px) {
	.nw-main > .nw-section {
		min-height: 100vh;
		min-height: 100svh;
	}

	.nw-projects-section {
		display: flex;
		flex-direction: column;
		justify-content: center;
		padding-block: clamp(46px, 7svh, 72px);
		padding-inline: max(clamp(48px, 5vw, 80px), calc((100% - 1520px) / 2));
	}

	.nw-projects-section .nw-section-heading {
		margin-bottom: clamp(46px, 6svh, 60px);
	}

	.nw-projects-section .nw-section-title {
		font-size: clamp(44px, 3.7vw, 60px) !important;
	}

	.nw-projects-section .nw-project-card__face {
		padding: clamp(28px, 2vw, 34px);
	}

	.nw-projects-section .nw-project-card__visual h3 {
		font-size: clamp(27px, 2.45vw, 38px);
	}

	.nw-projects-section .nw-project-card__title-row {
		font-size: 17px;
	}

	.nw-projects-section .nw-project-card__excerpt {
		font-size: 12px;
	}

	.nw-packages-section {
		display: flex;
		flex-direction: column;
		justify-content: center;
		padding-block: clamp(46px, 7svh, 72px);
		padding-inline: max(clamp(48px, 5vw, 80px), calc((100% - 1520px) / 2));
	}

	.nw-packages-section .nw-section-heading {
		margin-bottom: clamp(46px, 6svh, 60px);
	}

	.nw-packages-section .nw-package-card {
		min-height: 540px;
	}
}

html.nw-scroll-reveal-ready .nw-reveal-item {
	opacity: 0;
	transform: translate3d(0, 28px, 0);
	transition:
		opacity 720ms cubic-bezier(0.22, 1, 0.36, 1),
		transform 720ms cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--nw-reveal-delay, 0ms);
	will-change: opacity, transform;
}

html.nw-scroll-reveal-ready .nw-reveal-item.nw-reveal-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.nw-section-heading {
	align-items: flex-start;
	gap: 18px;
	justify-content: flex-start !important;
	margin: 0 0 clamp(42px, 3.35vw, 54px);
}

.nw-section-number,
.nw-package-label {
	color: #4d4d4b;
	font-size: 10px;
	letter-spacing: 0.075em;
	line-height: 1.2;
	margin: 8px 0 0;
	text-transform: uppercase;
	white-space: nowrap;
}

.nw-section-title {
	font-size: clamp(40px, 3.45vw, 56px) !important;
	font-weight: 450;
	letter-spacing: -0.055em;
	line-height: 0.98;
	margin: 0;
	max-width: 22ch;
	text-wrap: balance;
}

.nw-projects-query .wp-block-post-template {
	display: grid;
	gap: clamp(20px, 1.5vw, 28px);
	grid-template-columns: repeat(3, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.nw-project-card {
	min-width: 0;
	transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nw-project-card__link {
	color: inherit;
	display: block;
}

.nw-project-card.is-transition-source {
	pointer-events: none;
}

.nw-project-card.is-transition-source .nw-project-card__visual {
	visibility: hidden;
}

.nw-project-card__visual {
	aspect-ratio: 1.38 / 1;
	border-radius: var(--nw-radius);
	display: block;
	overflow: hidden;
	position: relative;
	transform: translateZ(0);
}

.nw-project-card__face {
	background: var(--nw-sage);
	border: 1px solid rgba(29, 29, 29, 0.055);
	border-radius: inherit;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.46), 0 16px 45px rgba(29, 29, 29, 0.035);
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: space-between;
	overflow: hidden;
	padding: 28px;
	position: relative;
	transition:
		box-shadow 520ms cubic-bezier(0.22, 1, 0.36, 1),
		transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
	width: 100%;
}

.nw-project-card--blush .nw-project-card__face {
	background: var(--nw-blush);
	color: #43362f;
}

.nw-project-card--ink .nw-project-card__face {
	background: linear-gradient(145deg, #202723 0%, #1b211e 100%);
	border-color: rgba(255, 255, 255, 0.07);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), 0 18px 48px rgba(19, 23, 21, 0.12);
	color: var(--nw-white);
}

.nw-project-card__arrow {
	font-size: 18px;
	line-height: 1;
	position: absolute;
	right: 28px;
	top: 26px;
	transition:
		opacity 520ms cubic-bezier(0.22, 1, 0.36, 1),
		transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nw-project-card__eyebrow,
.nw-project-card__tagline {
	font-size: 10px;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-transform: uppercase;
}

.nw-project-card__eyebrow {
	padding-right: 42px;
}

.nw-project-card__visual h3 {
	font-size: clamp(25px, 2.35vw, 36px);
	font-weight: 450;
	letter-spacing: -0.035em;
	line-height: 1.02;
	margin: auto 0;
	max-width: 100%;
	text-wrap: balance;
}

@media (min-width: 900px) {
	.nw-project-card--blush .nw-project-card__visual h3 {
		font-size: clamp(27px, 2.3vw, 32px);
		letter-spacing: -0.045em;
	}
}

@media (hover: hover) and (pointer: fine) {
	.nw-project-card:hover,
	.nw-project-card:focus-within {
		transform: translateY(-5px) scale(1.01);
	}

	.nw-project-card.is-transition-source {
		transform: translateY(-5px) scale(1.01);
		transition: none;
	}

	.nw-project-card__link:hover .nw-project-card__face,
	.nw-project-card__link:focus-visible .nw-project-card__face {
		box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.52), 0 22px 54px rgba(29, 29, 29, 0.085);
	}

	.nw-project-card__link:hover .nw-project-card__arrow,
	.nw-project-card__link:focus-visible .nw-project-card__arrow {
		transform: translate3d(4px, -4px, 0);
	}

}

body.nw-project-transitioning {
	overflow: hidden;
}

.nw-project-transition-layer {
	contain: layout paint style;
	inset: 0;
	overflow: hidden;
	pointer-events: auto;
	position: fixed;
	z-index: 100000;
}

.nw-project-transition__backdrop {
	background: rgba(16, 17, 16, 0.12);
	inset: 0;
	opacity: 0;
	position: absolute;
	transform: translateZ(0);
	will-change: opacity;
}

.nw-project-transition__scene {
	perspective: 1200px;
	perspective-origin: center center;
	pointer-events: none;
	position: absolute;
	transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
	transform-origin: center center;
	will-change: transform;
}

.nw-project-transition__tile {
	contain: layout style;
	inset: 0;
	pointer-events: none;
	position: absolute;
	transform: rotateY(0deg);
	transform-style: preserve-3d;
	-webkit-transform-style: preserve-3d;
	transform-origin: center center;
	transition: none !important;
	will-change: transform;
}

.nw-project-transition__face {
	backface-visibility: hidden;
	border-radius: inherit;
	inset: 0;
	overflow: hidden;
	position: absolute;
	-webkit-backface-visibility: hidden;
}

.nw-project-transition__face--front {
	transform: translateZ(0.5px);
}

.nw-project-transition__face--back {
	align-items: center;
	display: flex;
	justify-content: center;
	padding: clamp(24px, 2.4vw, 38px);
	text-align: center;
	transform: rotateY(180deg) translateZ(0.5px);
}

.nw-project-transition__visual {
	aspect-ratio: auto;
	border-radius: inherit;
	height: 100%;
	width: 100%;
}

.nw-project-transition__tile .nw-project-card__face {
	height: 100%;
}

.nw-project-transition__title-track {
	opacity: 0;
	pointer-events: none;
	position: absolute;
	transform: translate3d(0, 0, 0);
	will-change: opacity, transform;
	z-index: 2;
}

.nw-project-transition__title {
	display: block;
	font-weight: 450;
	max-width: min(72vw, 12ch);
	text-align: center;
	text-wrap: balance;
	width: max-content;
}

html.nw-project-entry-pending {
	overflow: hidden;
}

html.nw-project-entry-pending::before {
	background: var(--nw-paper);
	content: "";
	inset: 0;
	opacity: 1;
	pointer-events: auto;
	position: fixed;
	transform: translateZ(0);
	transition: opacity 200ms cubic-bezier(0.22, 0.72, 0, 1);
	will-change: opacity;
	z-index: 100001;
}

html.nw-project-entry-pending.nw-project-entry--sage::before {
	background: var(--nw-sage);
}

html.nw-project-entry-pending.nw-project-entry--blush::before {
	background: var(--nw-blush);
}

html.nw-project-entry-pending.nw-project-entry--ink::before {
	background: linear-gradient(145deg, #202723 0%, #1b211e 100%);
}

html.nw-project-entry-pending.nw-project-entry-revealing::before {
	opacity: 0;
	pointer-events: none;
}

.nw-project-card__meta {
	padding-top: 16px;
}

.nw-project-card__title-row {
	display: flex;
	font-size: 16px;
	font-weight: 520;
	justify-content: space-between;
	line-height: 1.2;
	min-width: 0;
}

.nw-project-card__excerpt {
	color: var(--nw-muted);
	font-size: 11px;
	margin: 18px 0 0;
}

.nw-project-card-editor {
	background: var(--nw-sage);
	border-radius: 18px;
	padding: 24px;
}

.nw-project-card-editor p {
	font-size: 12px;
	margin-bottom: 0;
}

.nw-packages-note {
	color: var(--nw-muted);
	font-size: 10px;
	margin: 24px 0 0;
	text-decoration: underline;
	text-decoration-color: #b9b9b5;
	text-underline-offset: 2px;
}

.nw-packages-section {
	border-top: 1px solid var(--nw-line);
}

.nw-packages-grid {
	display: grid !important;
	gap: clamp(14px, 1.15vw, 20px);
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nw-package-card {
	background: var(--nw-white);
	border: 1px solid rgba(29, 29, 29, 0.055);
	border-radius: var(--nw-radius);
	box-shadow: 0 16px 48px rgba(29, 29, 29, 0.035);
	cursor: pointer;
	display: flex;
	flex-direction: column;
	isolation: isolate;
	min-height: 520px;
	min-width: 0;
	overflow: hidden;
	padding: clamp(24px, 1.8vw, 32px);
	position: relative;
	transition: box-shadow 240ms ease, transform 240ms ease;
}

.nw-package-card:hover,
.nw-package-card:focus-visible {
	box-shadow: 0 26px 64px rgba(29, 29, 29, 0.09);
	transform: translateY(-6px);
}

.nw-package-card:focus-visible {
	outline: 2px solid var(--nw-ink);
	outline-offset: 4px;
}

.nw-package-card__summary {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 100%;
}

.nw-package-card--accent,
.nw-packages-grid > .nw-package-card:nth-child(2) {
	background: linear-gradient(145deg, #e9e0d7 0%, var(--nw-sand) 100%);
	border-color: rgba(88, 68, 52, 0.16);
	box-shadow: 0 20px 54px rgba(88, 68, 52, 0.095);
}

.nw-package-card--accent::after,
.nw-packages-grid > .nw-package-card:nth-child(2)::after {
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: inherit;
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: -1;
}

.nw-package-card--featured {
	background: linear-gradient(145deg, #242423 0%, #181919 100%);
	border-color: rgba(255, 255, 255, 0.075);
	box-shadow: 0 24px 62px rgba(20, 20, 20, 0.15);
	color: var(--nw-white);
}

.nw-package-card--commerce {
	background: linear-gradient(145deg, #e5e8df 0%, #d9ded4 100%);
	border-color: rgba(67, 81, 61, 0.12);
	box-shadow: 0 20px 54px rgba(57, 69, 53, 0.08);
}

.nw-package-card--featured .nw-package-label,
.nw-package-card--featured .nw-package-price {
	color: #d3d3d0;
}

.nw-package-label {
	margin-top: 0;
}

.nw-package-card h3 {
	font-size: clamp(25px, 1.7vw, 31px);
	font-weight: 450;
	letter-spacing: -0.035em;
	line-height: 1.02;
	margin: 42px 0 30px;
	max-width: 13ch;
	text-wrap: balance;
}

.nw-package-card__summary > .wp-block-list {
	border-top: 1px solid var(--nw-line);
	font-size: clamp(11px, 0.72vw, 13px);
	line-height: 1.35;
	list-style: none;
	margin: 0;
	padding: 25px 0 0;
}

.nw-package-card--accent .nw-package-card__summary > .wp-block-list,
.nw-packages-grid > .nw-package-card:nth-child(2) .nw-package-card__summary > .wp-block-list {
	border-color: rgba(88, 68, 52, 0.2);
}

.nw-package-card--featured .nw-package-card__summary > .wp-block-list {
	border-color: #696966;
}

.nw-package-card__summary > .wp-block-list li {
	margin: 0 0 11px;
}

.nw-package-price {
	color: var(--nw-muted);
	font-size: 10px;
	margin: 28px 0 18px;
}

.nw-package-open {
	align-items: center;
	border-top: 1px solid rgba(29, 29, 29, 0.1);
	display: flex;
	font-size: 11px;
	font-weight: 560;
	justify-content: space-between;
	letter-spacing: -0.01em;
	margin: auto 0 0;
	padding-top: 18px;
	transition: opacity 180ms ease, transform 180ms ease;
}

.nw-package-card:hover .nw-package-open span,
.nw-package-card:focus-visible .nw-package-open span {
	transform: translate(2px, -2px);
}

.nw-package-open span {
	display: inline-block;
	transition: transform 180ms ease;
}

.nw-package-card--featured .nw-package-open {
	border-color: rgba(255, 255, 255, 0.24);
}

.nw-package-card .nw-package-details__cta {
	margin-top: auto;
}

.nw-package-card .nw-package-details__cta .wp-block-button,
.nw-package-card .nw-package-details__cta .wp-block-button__link {
	width: 100%;
}

.nw-package-card .nw-package-details__cta .wp-block-button__link {
	background: var(--nw-ink);
	border: 1px solid var(--nw-ink);
	color: var(--nw-white);
	font-size: 12px;
	font-weight: 570;
	padding: 15px 20px;
}

.nw-package-card .nw-package-details__cta .wp-block-button__link:hover {
	background: transparent;
	color: var(--nw-ink);
	transform: translateY(-2px);
}

.nw-package-card--featured .nw-package-details__cta .wp-block-button__link {
	background: var(--nw-white);
	border-color: var(--nw-white);
	color: var(--nw-ink);
}

.nw-package-card--featured .nw-package-details__cta .wp-block-button__link:hover {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.7);
	color: var(--nw-white);
}

.nw-package-card__details {
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transform: translateY(20px);
	transition:
		opacity 440ms ease,
		transform 720ms cubic-bezier(0.22, 1, 0.36, 1),
		visibility 0s linear 720ms;
	visibility: hidden;
}

.nw-package-overlay {
	align-items: center;
	background: rgba(22, 24, 22, 0);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	display: flex;
	inset: 0;
	justify-content: center;
	padding: 24px;
	pointer-events: none;
	position: fixed;
	transition: background-color 760ms cubic-bezier(0.22, 1, 0.36, 1);
	z-index: 100100;
}

.nw-package-overlay.is-visible {
	background: rgba(22, 24, 22, 0.54);
	pointer-events: auto;
}

body.nw-package-dialog-open {
	overflow: hidden;
}

.nw-package-card-placeholder {
	min-height: 520px;
	visibility: hidden;
}

.nw-package-card.is-dialog-card,
html.nw-scroll-reveal-ready .nw-package-card.nw-reveal-item.is-dialog-card {
	cursor: default;
	margin: 0 !important;
	max-width: none !important;
	min-height: 0;
	position: fixed !important;
	transform: none !important;
	transition:
		top 1000ms cubic-bezier(0.77, 0, 0.18, 1),
		left 1000ms cubic-bezier(0.77, 0, 0.18, 1),
		width 1000ms cubic-bezier(0.77, 0, 0.18, 1),
		height 1000ms cubic-bezier(0.77, 0, 0.18, 1),
		border-radius 1000ms cubic-bezier(0.77, 0, 0.18, 1),
		box-shadow 700ms ease,
		padding 1000ms cubic-bezier(0.77, 0, 0.18, 1);
	will-change: top, left, width, height;
	z-index: 2;
}

.nw-package-card.is-dialog-card:hover {
	transform: none;
}

.nw-package-card.is-expanded {
	-ms-overflow-style: none;
	border-radius: 30px;
	box-shadow: 0 36px 100px rgba(17, 19, 17, 0.28);
	overflow-x: hidden;
	overflow-y: auto;
	padding: clamp(30px, 3.5vw, 54px);
	scrollbar-width: none;
}

.nw-package-card.is-expanded::-webkit-scrollbar {
	display: none;
	height: 0;
	width: 0;
}

.nw-package-dialog__close {
	align-items: center;
	background: rgba(255, 255, 255, 0.74);
	border: 1px solid rgba(29, 29, 29, 0.12);
	border-radius: 999px;
	color: var(--nw-ink);
	cursor: pointer;
	display: none;
	font: inherit;
	font-size: 20px;
	height: 44px;
	justify-content: center;
	margin: 0 0 -44px auto;
	position: sticky;
	top: 0;
	width: 44px;
	z-index: 3;
}

.nw-package-card--featured .nw-package-dialog__close {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.26);
	color: var(--nw-white);
}

.nw-package-card.is-dialog-card .nw-package-dialog__close {
	display: flex;
}

.nw-package-card.is-expanded .nw-package-card__summary {
	flex: 0 0 auto;
	min-height: 0;
	padding-right: 64px;
}

.nw-package-card.is-expanded .nw-package-card__summary > .wp-block-list,
.nw-package-card.is-expanded .nw-package-price,
.nw-package-card.is-expanded .nw-package-open {
	display: none;
}

.nw-package-card.is-expanded h3 {
	font-size: clamp(38px, 4.2vw, 68px);
	margin: clamp(20px, 3vh, 34px) 0 clamp(32px, 5vh, 54px);
	max-width: 16ch;
}

.nw-package-card.is-expanded .nw-package-card__details {
	border-top: 1px solid rgba(29, 29, 29, 0.16);
	display: flex;
	flex: 1;
	flex-direction: column;
	max-height: 1600px;
	opacity: 1;
	overflow: visible;
	padding-top: clamp(26px, 3.2vh, 42px);
	transform: translateY(0);
	transition-delay: 360ms, 360ms, 0s;
	visibility: visible;
}

.nw-package-card--featured.is-expanded .nw-package-card__details {
	border-color: rgba(255, 255, 255, 0.24);
}

.nw-package-details__eyebrow {
	font-size: 10px;
	letter-spacing: 0.075em;
	margin: 0 0 18px;
	text-transform: uppercase;
}

.nw-package-card__details h4 {
	font-size: clamp(25px, 2.2vw, 38px);
	font-weight: 460;
	letter-spacing: -0.045em;
	line-height: 1.02;
	margin: 0 0 22px;
	max-width: 25ch;
	text-wrap: balance;
}

.nw-package-card__details > p:not(.nw-package-details__eyebrow) {
	font-size: clamp(13px, 0.95vw, 16px);
	line-height: 1.55;
	margin: 0;
	max-width: 65ch;
}

.nw-package-details__grid {
	display: grid !important;
	gap: clamp(28px, 5vw, 80px);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: clamp(30px, 4vh, 48px) 0;
}

.nw-package-details__grid h5 {
	font-size: 12px;
	font-weight: 640;
	letter-spacing: 0.04em;
	margin: 0 0 14px;
	text-transform: uppercase;
}

.nw-package-details__grid p,
.nw-package-details__grid .wp-block-list {
	font-size: 12px;
	line-height: 1.55;
	margin: 0;
}

.nw-package-details__grid .wp-block-list {
	padding-left: 18px;
}

.nw-package-details__grid .wp-block-list li {
	margin-bottom: 6px;
}

.editor-styles-wrapper .nw-package-card {
	cursor: default;
}

.editor-styles-wrapper .nw-package-card__details {
	border-top: 1px dashed var(--nw-line);
	max-height: none;
	opacity: 1;
	overflow: visible;
	padding-top: 28px;
	transform: none;
	visibility: visible;
}

.nw-contact-section {
	border-top: 1px solid var(--nw-line);
	padding-bottom: 78px;
}

.nw-contact-grid {
	align-items: stretch;
	display: grid !important;
	gap: clamp(52px, 5vw, 80px);
	grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
}

.nw-contact-copy {
	display: flex;
	flex-direction: column;
}

.nw-contact-copy .nw-section-number {
	margin-top: 0;
}

.nw-contact-copy h2 {
	font-size: clamp(45px, 4.25vw, 64px);
	font-weight: 450;
	letter-spacing: -0.06em;
	line-height: 0.98;
	margin: 46px 0 32px;
	text-wrap: balance;
}

.nw-contact-intro {
	color: var(--nw-muted);
	font-size: 16px;
	line-height: 1.2;
	margin: 0 0 30px;
}

.nw-contact-detail {
	font-size: 13px;
	margin: 0 0 12px;
}

.nw-site-footer {
	align-items: end;
	background: var(--nw-paper);
	border-top: 1px solid var(--nw-line);
	display: grid !important;
	font-size: 11px;
	grid-template-columns: repeat(3, 1fr);
	margin: 0 !important;
	padding: 42px var(--nw-side) 58px;
}

.nw-site-footer p,
.nw-site-footer .wp-block-shortcode {
	margin: 0;
}

.nw-footer-brand {
	font-size: 18px;
	font-weight: 650;
	letter-spacing: -0.035em;
}

.nw-footer-claim {
	color: var(--nw-muted);
	text-align: center;
}

.nw-site-footer .wp-block-shortcode {
	color: var(--nw-muted);
	text-align: right;
}

.nw-content-shell {
	background: var(--nw-paper);
	min-height: 70svh;
	padding: 150px max(24px, calc((100% - 780px) / 2)) 96px;
}

.nw-content-shell > h1 {
	font-size: clamp(48px, 6vw, 84px);
	font-weight: 450;
	letter-spacing: -0.06em;
	line-height: 0.94;
}

.nw-project-single {
	background: var(--nw-paper);
	overflow: clip;
	padding: 0;
}

.nw-project-single > .wp-block-shortcode {
	margin: 0;
}

.nw-case-study {
	background: var(--nw-paper);
	color: var(--nw-ink);
}

.nw-case-hero {
	margin-inline: auto;
	max-width: var(--nw-content);
	padding: clamp(160px, 13vw, 210px) var(--nw-side) clamp(72px, 7vw, 112px);
}

.nw-case-eyebrow,
.nw-case-section__index {
	color: var(--nw-muted);
	font-size: 10px;
	font-weight: 520;
	letter-spacing: 0.075em;
	line-height: 1.2;
	margin: 0;
	text-transform: uppercase;
}

.nw-case-hero h1 {
	font-size: clamp(64px, 9vw, 136px);
	font-weight: 440;
	letter-spacing: -0.07em;
	line-height: 0.88;
	margin: clamp(30px, 3.5vw, 54px) 0 0;
	max-width: 11ch;
	text-wrap: balance;
}

.nw-case-intro {
	font-size: clamp(18px, 1.55vw, 24px);
	letter-spacing: -0.025em;
	line-height: 1.28;
	margin: clamp(40px, 5vw, 76px) 0 0 auto;
	max-width: 680px;
}

.nw-case-meta-wrap {
	align-items: end;
	border-top: 1px solid var(--nw-line);
	display: grid;
	gap: 32px;
	grid-template-columns: minmax(0, 1fr) auto;
	margin-top: clamp(64px, 7vw, 106px);
	padding-top: 26px;
}

.nw-case-meta {
	display: grid;
	gap: clamp(22px, 3vw, 48px);
	grid-template-columns: 0.85fr 1.35fr 1.5fr 0.45fr;
	margin: 0;
}

.nw-case-meta div {
	min-width: 0;
}

.nw-case-meta dt {
	color: var(--nw-muted);
	font-size: 9px;
	letter-spacing: 0.065em;
	margin-bottom: 11px;
}

.nw-case-meta dd {
	font-size: 12px;
	line-height: 1.45;
	margin: 0;
}

.nw-case-visit {
	align-items: center;
	border-bottom: 1px solid var(--nw-ink);
	display: inline-flex;
	font-size: 12px;
	font-weight: 560;
	gap: 12px;
	padding-bottom: 5px;
	white-space: nowrap;
}

.nw-case-visit span {
	transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

@media (hover: hover) and (pointer: fine) {
	.nw-case-visit:hover span,
	.nw-case-visit:focus-visible span {
		transform: translate3d(3px, -3px, 0);
	}
}

.nw-case-preview {
	padding: 0 var(--nw-side) clamp(104px, 10vw, 160px);
}

.nw-case-media {
	margin: 0;
	min-width: 0;
}

.nw-case-media__browser {
	background: var(--nw-white);
	border: 1px solid var(--nw-line);
	border-radius: var(--nw-radius);
	box-shadow: 0 24px 70px rgba(29, 29, 29, 0.055);
	overflow: hidden;
}

.nw-case-media__bar {
	align-items: center;
	border-bottom: 1px solid var(--nw-line);
	color: var(--nw-muted);
	display: flex;
	font-size: 9px;
	height: 42px;
	justify-content: center;
	letter-spacing: 0.025em;
	padding: 0 18px;
	position: relative;
}

.nw-case-media__dots {
	display: flex;
	gap: 5px;
	left: 18px;
	position: absolute;
}

.nw-case-media__dots i {
	background: #c7c7c2;
	border-radius: 50%;
	display: block;
	height: 6px;
	width: 6px;
}

.nw-case-media__viewport {
	aspect-ratio: 16 / 9;
	background: #ecece8;
	overflow: hidden;
	position: relative;
}

.nw-case-media__viewport img {
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	width: 100%;
}

.nw-case-media__placeholder {
	align-items: center;
	background: #ecece8;
	color: var(--nw-muted);
	display: flex;
	flex-direction: column;
	gap: 10px;
	height: 100%;
	justify-content: center;
	padding: 32px;
	text-align: center;
}

.nw-case-media__placeholder span {
	font-size: 9px;
	letter-spacing: 0.075em;
	text-transform: uppercase;
}

.nw-case-media__placeholder strong {
	color: var(--nw-ink);
	font-size: clamp(18px, 2vw, 30px);
	font-weight: 450;
	letter-spacing: -0.035em;
}

.nw-case-media figcaption {
	color: var(--nw-muted);
	font-size: 10px;
	margin-top: 12px;
}

.nw-case-section {
	border-top: 1px solid var(--nw-line);
	margin-inline: auto;
	max-width: var(--nw-content);
	padding: clamp(96px, 10vw, 160px) 0;
	width: calc(100% - (2 * var(--nw-side)));
}

.nw-case-challenge {
	display: grid;
	gap: clamp(44px, 8vw, 140px);
	grid-template-columns: 0.75fr 2.25fr;
}

.nw-case-challenge h2,
.nw-case-section__heading h2,
.nw-case-gallery__heading h2 {
	font-size: clamp(44px, 5.5vw, 84px);
	font-weight: 440;
	letter-spacing: -0.06em;
	line-height: 0.94;
	margin: 0;
	text-wrap: balance;
}

.nw-case-challenge > div > p {
	font-size: clamp(22px, 2.35vw, 36px);
	letter-spacing: -0.04em;
	line-height: 1.18;
	margin: clamp(34px, 4vw, 58px) 0 0;
	max-width: 880px;
}

.nw-case-section__heading {
	display: grid;
	gap: 32px clamp(44px, 8vw, 140px);
	grid-template-columns: 0.75fr 2.25fr;
}

.nw-case-section__heading > h2,
.nw-case-section__heading > p:last-child {
	grid-column: 2;
}

.nw-case-section__heading > p:last-child {
	color: var(--nw-muted);
	font-size: 16px;
	line-height: 1.55;
	margin: 0;
	max-width: 700px;
}

.nw-case-solution__list,
.nw-case-features__grid {
	list-style: none;
	margin: clamp(72px, 8vw, 120px) 0 0;
	padding: 0;
}

.nw-case-solution__list li {
	align-items: start;
	border-top: 1px solid var(--nw-line);
	display: grid;
	gap: 24px;
	grid-template-columns: 0.35fr 0.9fr 1.35fr;
	padding: 28px 0 clamp(56px, 5vw, 82px);
}

.nw-case-solution__list span,
.nw-case-features__grid span {
	color: var(--nw-muted);
	font-size: 10px;
}

.nw-case-solution__list h3,
.nw-case-features__grid h3 {
	font-size: clamp(20px, 2vw, 30px);
	font-weight: 480;
	letter-spacing: -0.035em;
	line-height: 1.1;
	margin: 0;
}

.nw-case-solution__list p,
.nw-case-features__grid p {
	color: var(--nw-muted);
	font-size: 14px;
	line-height: 1.55;
	margin: 0;
}

.nw-case-section__heading--compact {
	align-items: end;
}

.nw-case-features__grid {
	display: grid;
	gap: 0 24px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nw-case-features__grid li {
	border-top: 1px solid var(--nw-line);
	padding: 24px 0 0;
}

.nw-case-features__grid h3 {
	margin-top: clamp(36px, 4vw, 58px);
}

.nw-case-features__grid p {
	margin-top: 20px;
}

.nw-case-gallery {
	background: var(--nw-white);
	padding: clamp(96px, 10vw, 160px) var(--nw-side);
}

.nw-case-gallery__heading {
	display: grid;
	gap: 32px clamp(44px, 8vw, 140px);
	grid-template-columns: 0.75fr 2.25fr;
	margin: 0 auto clamp(64px, 7vw, 108px);
	max-width: var(--nw-content);
}

.nw-case-gallery__heading h2 {
	grid-column: 2;
}

.nw-case-gallery__grid {
	display: grid;
	gap: clamp(28px, 3vw, 48px);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-inline: auto;
	max-width: var(--nw-content);
}

.nw-case-media--wide {
	grid-column: 1 / -1;
}

.nw-case-media--detail .nw-case-media__viewport {
	aspect-ratio: 4 / 3;
}

.nw-case-next {
	padding: 0 var(--nw-side);
}

.nw-case-next a {
	border-top: 1px solid var(--nw-line);
	display: block;
	margin-inline: auto;
	max-width: var(--nw-content);
	padding: clamp(72px, 8vw, 122px) 0 clamp(96px, 10vw, 160px);
}

.nw-case-next span {
	color: var(--nw-muted);
	display: block;
	font-size: 11px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.nw-case-next strong {
	display: block;
	font-size: clamp(48px, 8vw, 120px);
	font-weight: 440;
	letter-spacing: -0.07em;
	line-height: 0.92;
	margin-top: 24px;
	transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

@media (hover: hover) and (pointer: fine) {
	.nw-case-next a:hover strong,
	.nw-case-next a:focus-visible strong {
		transform: translateX(8px);
	}
}

.nw-project-archive {
	max-width: none;
	padding-inline: var(--nw-side);
}

.nw-project-archive > h1 {
	margin-bottom: clamp(48px, 6vw, 84px);
}

@media (max-width: 1023px) {
	.nw-case-meta-wrap {
		align-items: start;
		grid-template-columns: 1fr;
	}

	.nw-case-meta {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nw-case-visit {
		justify-self: start;
	}

	.nw-case-challenge,
	.nw-case-section__heading,
	.nw-case-gallery__heading {
		gap: 30px;
		grid-template-columns: 1fr;
	}

	.nw-case-section__heading > h2,
	.nw-case-section__heading > p:last-child,
	.nw-case-gallery__heading h2 {
		grid-column: 1;
	}

	.nw-case-solution__list li {
		grid-template-columns: 54px minmax(0, 1fr);
	}

	.nw-case-solution__list p {
		grid-column: 2;
	}

	.nw-case-features__grid {
		gap: 54px 24px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.nw-case-hero {
		padding-bottom: 68px;
		padding-top: 128px;
	}

	.nw-case-hero h1 {
		font-size: clamp(50px, 14vw, 72px);
		line-height: 0.92;
		margin-top: 28px;
		overflow-wrap: anywhere;
	}

	.nw-case-intro {
		font-size: 17px;
		line-height: 1.35;
		margin-top: 36px;
	}

	.nw-case-meta-wrap {
		gap: 32px;
		margin-top: 54px;
		padding-top: 22px;
	}

	.nw-case-meta {
		gap: 26px;
		grid-template-columns: 1fr;
	}

	.nw-case-preview {
		padding-bottom: 76px;
	}

	.nw-case-media__browser {
		border-radius: 16px;
	}

	.nw-case-media__bar {
		height: 36px;
	}

	.nw-case-media__bar > span:last-child {
		max-width: 56%;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.nw-case-media__placeholder {
		padding: 18px;
	}

	.nw-case-media figcaption {
		margin-top: 9px;
	}

	.nw-case-section {
		padding: 72px 0;
	}

	.nw-case-challenge h2,
	.nw-case-section__heading h2,
	.nw-case-gallery__heading h2 {
		font-size: clamp(38px, 11vw, 54px);
	}

	.nw-case-challenge > div > p {
		font-size: 22px;
		margin-top: 28px;
	}

	.nw-case-section__heading > p:last-child {
		font-size: 14px;
	}

	.nw-case-solution__list,
	.nw-case-features__grid {
		margin-top: 54px;
	}

	.nw-case-solution__list li {
		gap: 12px;
		grid-template-columns: 34px minmax(0, 1fr);
		padding: 22px 0 42px;
	}

	.nw-case-solution__list h3,
	.nw-case-features__grid h3 {
		font-size: 21px;
	}

	.nw-case-solution__list p,
	.nw-case-features__grid p {
		font-size: 13px;
	}

	.nw-case-features__grid {
		display: block;
	}

	.nw-case-features__grid li {
		padding: 22px 0 44px;
	}

	.nw-case-features__grid h3 {
		margin-top: 28px;
	}

	.nw-case-gallery {
		padding-bottom: 76px;
		padding-top: 76px;
	}

	.nw-case-gallery__heading {
		margin-bottom: 46px;
	}

	.nw-case-gallery__grid {
		grid-template-columns: 1fr;
	}

	.nw-case-media--wide {
		grid-column: auto;
	}

	.nw-case-media--detail .nw-case-media__viewport {
		aspect-ratio: 16 / 10;
	}

	.nw-case-next a {
		padding: 64px 0 84px;
	}

	.nw-case-next strong {
		font-size: clamp(44px, 13vw, 66px);
		margin-top: 20px;
		overflow-wrap: anywhere;
	}
}

@media (max-width: 782px) {
	.admin-bar .nw-site-header {
		top: 46px;
	}
}

@media (min-width: 768px) and (max-width: 840px) {
	.nw-site-header .nw-header-nav.wp-block-navigation,
	.nw-header-actions .nw-header-cta--desktop {
		display: none !important;
	}

	.nw-header-actions .nw-header-cta--mobile {
		display: block !important;
	}

	.nw-header-cta .wp-block-button__link {
		font-size: 11px;
		min-width: 0;
		padding: 13px 18px;
	}
}

@media (min-width: 768px) and (max-width: 899px) {
	.nw-projects-query .wp-block-post-template {
		gap: 14px;
	}

	.nw-project-card__face {
		padding: 20px;
	}

	.nw-project-card__visual h3 {
		font-size: 22px;
	}

	.nw-project-card__eyebrow,
	.nw-project-card__tagline {
		font-size: 8px;
	}

}

@media (min-width: 768px) and (max-width: 1279px) {
	.nw-packages-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 768px) and (max-width: 959px) {
	.nw-contact-grid {
		grid-template-columns: 1fr;
	}

	.nw-package-card {
		min-height: 430px;
	}

	.nw-contact-grid {
		gap: 44px;
	}
}

@media (max-width: 767px) {
	:root {
		--nw-side: 24px;
		--nw-radius: 22px;
	}

	.wp-site-blocks {
		max-width: 100%;
	}

	.nw-site-header {
		padding-top: 30px;
	}

	.nw-site-header .wp-block-site-title {
		line-height: 0;
	}

	.nw-site-header .wp-block-site-title a {
		height: 38px;
		width: 130px;
	}

	.nw-site-header .nw-header-nav.wp-block-navigation,
	.nw-header-actions .nw-header-cta--desktop {
		display: none !important;
	}

	.nw-header-actions .nw-header-cta--mobile {
		display: block !important;
	}

	.nw-header-cta .wp-block-button__link {
		font-size: 11px;
		min-width: 0;
		padding: 13px 18px;
	}

	.nw-hero {
		height: 100svh;
		min-height: 720px;
		padding-bottom: 28px;
		padding-top: 108px;
	}

	.nw-hero-center {
		margin-top: 20px;
	}

	.nw-hero-title {
		font-size: 48px !important;
		line-height: 0.98;
	}

	.nw-hero-copy {
		font-size: 16px;
		line-height: 1.2;
		margin-top: 24px;
		max-width: 18rem;
	}

	.nw-hero-footer {
		align-items: flex-start;
		border-top: 0;
		flex-direction: column;
		font-size: 10px;
		gap: 2px;
		padding-top: 0;
	}

	.nw-hero-footer p:last-child {
		margin-left: 0;
		text-align: left;
	}

	.nw-section {
		padding-bottom: 46px;
		padding-top: 46px;
	}

	.nw-section-heading {
		gap: 7px;
		margin-bottom: 28px;
	}

	.nw-section-number,
	.nw-package-label {
		font-size: 9px;
		margin-top: 5px;
	}

	.nw-section-title {
		font-size: 31px !important;
		line-height: 1.02;
	}

	.nw-projects-query .wp-block-post-template,
	.nw-packages-grid,
	.nw-contact-grid,
	.nw-site-footer {
		grid-template-columns: 1fr;
	}

	.nw-projects-query .wp-block-post-template,
	.nw-packages-grid {
		gap: 18px;
	}

	.nw-project-card__visual {
		aspect-ratio: 1.22 / 1;
	}

	.nw-project-card__face {
		padding: 28px;
	}

	.nw-project-card__visual h3 {
		font-size: 32px;
	}

	.nw-project-card__meta {
		padding-top: 12px;
	}

	.nw-project-card__excerpt {
		margin-top: 16px;
	}

	.nw-projects-note {
		line-height: 1.25;
		margin-top: 22px;
	}

	.nw-packages-section {
		padding-left: 16px;
		padding-right: 16px;
	}

	.nw-packages-section .nw-section-heading,
	.nw-packages-note {
		margin-left: 8px;
		margin-right: 8px;
	}

	.nw-package-card {
		box-shadow: 0 12px 34px rgba(29, 29, 29, 0.045);
		min-height: 410px;
		padding: 24px;
	}

	.nw-package-card h3 {
		font-size: 24px;
		margin: 30px 0 22px;
	}

	.nw-package-card__summary > .wp-block-list {
		font-size: 10px;
		padding-top: 18px;
	}

	.nw-package-price {
		margin: 20px 0;
	}

	.nw-package-open {
		padding-top: 15px;
	}

	.nw-package-overlay {
		padding: 12px;
	}

	.nw-package-card.is-expanded {
		border-radius: 24px;
		padding: 28px 24px 32px;
	}

	.nw-package-card.is-expanded .nw-package-card__summary {
		padding-right: 52px;
	}

	.nw-package-card.is-expanded h3 {
		font-size: 36px;
		margin: 22px 0 32px;
	}

	.nw-package-details__grid {
		gap: 26px;
		grid-template-columns: 1fr;
	}

	.nw-package-dialog__close {
		height: 40px;
		margin-bottom: -40px;
		width: 40px;
	}

	.nw-contact-section {
		padding-bottom: 46px;
	}

	.nw-contact-grid {
		gap: 32px;
	}

	.nw-contact-copy h2 {
		font-size: 39px;
		margin: 28px 0 26px;
	}

	.nw-contact-intro {
		font-size: 13px;
		margin-bottom: 24px;
	}

	.nw-contact-detail {
		font-size: 11px;
		margin-bottom: 9px;
	}

	.nw-site-footer {
		align-items: start;
		gap: 3px;
		padding-bottom: 40px;
		padding-top: 36px;
	}

	.nw-footer-brand {
		font-size: 15px;
		margin-bottom: 4px !important;
	}

	.nw-footer-claim,
	.nw-site-footer .wp-block-shortcode {
		font-size: 9px;
		text-align: left;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* Editorial SEO pages share the original typography, paper and line palette. */
.nw-hero-title { max-width: 19ch; font-size: clamp(44px, 6.2vw, 90px) !important; line-height: 1.02; }
.nw-hero-copy { max-width: 42rem; }
.nw-seo-section { padding: clamp(32px, 6vw, 88px); }
.nw-seo-section > *, .nw-content-shell > .wp-block-post-content { max-width: 780px; margin-inline: auto; }
.nw-seo-section h2, .nw-content-shell .wp-block-post-content h2 { font-size: clamp(26px, 3.5vw, 40px); letter-spacing: -.035em; line-height: 1.15; margin-top: 2em; }
.nw-seo-section p, .nw-content-shell .wp-block-post-content p { line-height: 1.75; }
.nw-seo-section a, .nw-content-shell .wp-block-post-content a, .nw-case-editorial a { text-decoration: underline; text-underline-offset: .2em; }
.nw-content-shell > h1 { overflow-wrap: anywhere; font-size: clamp(38px, 6vw, 76px); }
.nw-price-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-block: 40px; }
.nw-price-item { padding: 24px; border: 1px solid var(--nw-line); border-radius: 12px; }
.nw-price-item h2 { margin-top: 0 !important; }
.nw-price-amount { font-size: 26px; font-weight: 600; }
.nw-price-item li { margin-block: 10px; }
.nw-breadcrumbs { font-size: 13px; line-height: 1.6; margin: 0 0 32px; color: var(--nw-muted); }
.nw-project-single > .nw-breadcrumbs { padding: 24px 5%; margin: 0; }
.nw-footer-links { grid-column: 1 / -1; line-height: 2; text-wrap: balance; }
.nw-case-editorial { max-width: 780px; padding: 40px 24px; margin-inline: auto; line-height: 1.75; }
@media (max-width: 600px) { .nw-price-list { grid-template-columns: 1fr; } .nw-seo-section { padding: 32px 20px; } }

/* Two-stage cinematic intro: 2.2 s welcome, 1.85 s masked typography, 1 s hold, 350 ms page reveal. */
.nw-hero-center { display: grid; grid-template-columns: minmax(0, 1fr); }
.nw-hero-title, .nw-intro-welcome-text { grid-area: 1 / 1; align-self: center; }
.nw-hero-copy { grid-area: 2 / 1; }
.nw-intro-welcome-text { pointer-events: none; font-size: clamp(44px, 6.2vw, 90px); font-weight: 520; letter-spacing: -.066em; line-height: 1.02; opacity: 0; visibility: hidden; }
html.nw-intro-pending .nw-hero-copy,
html.nw-intro-running .nw-hero-copy { opacity: 0; visibility: hidden; animation: none; }
html.nw-intro-running .nw-hero-title { animation: none; }
html.nw-intro-welcome .nw-hero-title { opacity: 0; }
html.nw-intro-welcome .nw-intro-welcome-text { visibility: visible; animation: nw-cinema-in 650ms cubic-bezier(.16,1,.3,1) both; }
html.nw-intro-message .nw-intro-welcome-text { visibility: hidden; animation: none; }
html.nw-intro-message .nw-hero-title { opacity: 1; animation: none; }
html.nw-intro-running .nw-hero-center::before { animation: nw-intro-halo-motion 5050ms ease both, nw-intro-halo-opacity 5050ms linear both; }
html.nw-intro-running .nw-hero-center::after { animation: nw-intro-light-motion 4550ms 100ms ease both, nw-intro-light-opacity 4550ms 100ms linear both; }
html.nw-intro-revealing .nw-site-header,
html.nw-intro-revealing .nw-hero-copy,
html.nw-intro-revealing .nw-hero-footer,
html.nw-intro-revealing .nw-main > :not(.nw-hero),
html.nw-intro-revealing .nw-site-footer { animation: nw-page-reveal 350ms ease both; }
@keyframes nw-cinema-in { from { opacity: 0; transform: translateY(12px) scale(.98); filter: blur(5px); } to { opacity: 1; transform: none; filter: blur(0); } }


@media (prefers-reduced-motion: reduce) { .nw-intro-welcome-text { display: none; } }

/* Quiet editorial typography: line masks, one easing, no glyph effects. */
.nw-hero-center > .nw-letter-morph { position: absolute; inset: 0; pointer-events: none; z-index: 2; text-align: left; }
.nw-type-mask { position: absolute; left: 0; top: 0; overflow: hidden; padding: 0; width: max-content; }
.nw-type-line { display: block; white-space: pre; margin: 0; padding: 0; will-change: transform; }
html.nw-intro-morphing .nw-hero-title { opacity: 0; }
html.nw-intro-morphing .nw-intro-welcome-text { visibility: hidden; animation: none; }
@media (prefers-reduced-motion: reduce) { .nw-letter-morph { display: none; } }
/* About: editorial layout using the site's existing palette and typography. */
.nw-about-section { border-top: 1px solid var(--nw-line); }
.nw-about-section p { color: var(--nw-muted); line-height: 1.75; }
.nw-about-section a:not(.wp-element-button) { text-decoration: underline; text-underline-offset: .22em; }
.nw-about-section h2, .nw-about-section h3 { color: var(--nw-ink); letter-spacing: -.045em; line-height: 1.12; }
.nw-about-intro { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: end; }
.nw-about-heading > p:first-child, .nw-about-step > p:first-child { font-size: 11px; letter-spacing: .075em; color: var(--nw-ink); margin: 0 0 28px; }
.nw-about-heading h2 { font-size: clamp(36px, 4.1vw, 64px); margin: 0; }
.nw-about-description { font-size: 14px; }
.nw-about-description > p:first-child { margin-top: 0; }
.nw-about-description > p:last-child { margin-bottom: 0; }
.nw-about-process, .nw-about-faq { margin-top: clamp(64px, 8vw, 120px); }
.nw-about-process > h2, .nw-about-faq > h2 { font-size: clamp(28px, 2.7vw, 40px); margin: 0 0 36px; }
.nw-about-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }
.nw-about-step { border-top: 1px solid var(--nw-line); padding-top: 24px; margin: 0; }
.nw-about-step h3 { font-size: 23px; margin: 0 0 16px; }
.nw-about-step p { font-size: 14px; margin: 0; }
.nw-about-faq { display: grid; grid-template-columns: 1fr 1.4fr; gap: 64px; }
.nw-about-questions { margin: 0; }
.nw-about-questions details { border-top: 1px solid var(--nw-line); margin: 0; }
.nw-about-questions details:last-child { border-bottom: 1px solid var(--nw-line); }
.nw-about-questions summary { cursor: pointer; position: relative; padding: 24px 40px 24px 0; font-size: 16px; font-weight: 500; list-style: none; }
.nw-about-questions summary::-webkit-details-marker { display: none; }
.nw-about-questions summary::after { content: '+'; position: absolute; right: 4px; top: 22px; font-size: 22px; font-weight: 400; }
.nw-about-questions details[open] summary::after { content: '−'; }
.nw-about-questions summary:focus-visible { outline: 2px solid var(--nw-ink); outline-offset: 4px; }
.nw-about-questions details > p { font-size: 14px; margin: 0; padding: 0 32px 24px 0; }
.nw-about-footer { margin-top: 56px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.nw-about-footer > * { margin: 0; }
.nw-about-footer p { font-size: 13px; }
.nw-about-footer .wp-element-button { background: var(--nw-ink); color: var(--nw-white); border-radius: 999px; padding: 18px 26px; font-size: 13px; }
.nw-about-footer .wp-element-button:hover { background: #383836; }
@media (min-width: 841px) and (max-width: 1100px) {
 .nw-header-nav .wp-block-navigation-item__content { padding-inline: 11px; }
}
@media (max-width: 767px) {
 .nw-about-intro, .nw-about-steps, .nw-about-faq { grid-template-columns: 1fr; gap: 28px; }
 .nw-about-heading h2 { font-size: clamp(34px, 8vw, 48px); }
 .nw-about-faq > h2 { margin-bottom: 0; }
 .nw-about-footer { flex-direction: column; align-items: flex-start; }
}
/* Match the project cards' motion, shadow and arrow treatment. */
.nw-packages-grid > .nw-package-card:not(.is-dialog-card) {
 transition: opacity 720ms ease, transform 520ms cubic-bezier(.22, 1, .36, 1), box-shadow 520ms cubic-bezier(.22, 1, .36, 1);
 transition-delay: 0ms;
}
@media (hover: hover) and (pointer: fine) {
 .nw-packages-grid > .nw-package-card:not(.is-dialog-card):hover,
 .nw-packages-grid > .nw-package-card:not(.is-dialog-card):focus-within {
  transform: translateY(-5px) scale(1.01);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .52), 0 22px 54px rgba(29, 29, 29, .085);
 }
 .nw-packages-grid > .nw-package-card:not(.is-dialog-card):hover .nw-package-open span,
 .nw-packages-grid > .nw-package-card:not(.is-dialog-card):focus-within .nw-package-open span { transform: translate3d(4px, -4px, 0); }
}
/* Independent translate leaves the normal hover transform untouched. */
.nw-packages-grid > .nw-package-card.nw-package-highlight:not(.is-dialog-card) {
 animation: nw-package-lift 1800ms cubic-bezier(.22, 1, .36, 1) 1 both;
}
@keyframes nw-package-lift {
 0%, 100% { translate: 0 0; }
 22.222%, 77.778% { translate: 0 -8px; }
}
@media (prefers-reduced-motion: reduce) {
 .nw-packages-grid > .nw-package-card:not(.is-dialog-card) { transition: none; }
 .nw-packages-grid > .nw-package-card:not(.is-dialog-card):hover,
 .nw-packages-grid > .nw-package-card:not(.is-dialog-card):focus-within { transform: none; }
 .nw-packages-grid > .nw-package-card.nw-package-highlight:not(.is-dialog-card) { animation: none; }
}

/* Native cross-document blend: no delayed clicks, DOM replacement or scroll reset. */
::view-transition-old(root), ::view-transition-new(root) {
 animation-duration: 240ms;
 animation-timing-function: cubic-bezier(.22, 1, .36, 1);
}
html.nw-project-entry-pending::before {
 transition: opacity 340ms cubic-bezier(.22, 1, .36, 1);
}
@media (prefers-reduced-motion: reduce) {
 @view-transition { navigation: none; }
 ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
 html.nw-project-entry-pending::before { transition: none; }
}

/* Supplied brand artwork, with its transparent margins accounted for in CSS. */
.nw-footer-brand {
 background: var(--nw-brand-logo) center / 112% auto no-repeat;
 color: transparent;
 font-size: 0;
 width: 178px;
 height: 44px;
 overflow: hidden;
}
.nw-footer-brand::before { content: none; }
@media (max-width: 767px) {
 .nw-footer-brand { width: 130px; height: 38px; font-size: 0; }
}

/* Decorative intro logo shares the same artwork as the header and footer. */
.nw-intro-logo {
 display: block;
 width: min(100%, clamp(260px, 36vw, 530px));
 height: 1.02em;
 margin-inline: auto;
 background: var(--nw-brand-logo) center / 112% auto no-repeat;
}
.nw-privacy-content { overflow-wrap: anywhere; }
.nw-privacy-content li { line-height: 1.75; margin-block: .5em; }
.nw-privacy-content .wp-block-list { padding-inline-start: 1.6em; }
.nw-privacy-content h2 { scroll-margin-top: 32px; }

/* Real project captures keep their full proportions, including on phones. */
.nw-case-media.has-image .nw-case-media__viewport { aspect-ratio: auto; }
.nw-case-media__viewport a { display: block; }
.nw-case-media.has-image img { height: auto; object-fit: contain; }
.nw-case-gallery__grid { align-items: start; }
.nw-case-contact { max-width: var(--nw-content); margin: 0 auto; padding: 0 var(--nw-side) clamp(76px, 8vw, 120px); }
.nw-case-contact h2 { font-size: clamp(30px, 4vw, 58px); font-weight: 500; line-height: 1.1; letter-spacing: -.04em; max-width: 780px; }
.nw-case-contact .nw-case-editorial { margin: 24px 0 32px; padding: 0; color: var(--nw-muted); }
.nw-case-media a:focus-visible, .nw-case-contact a:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
/* WordPress can insert line breaks around shortcode block boundaries. */
.nw-case-solution__list > li > br,
.nw-case-features__grid > li > br,
.nw-case-solution__list > li > p:empty,
.nw-case-features__grid > li > p:empty,
.nw-case-section__heading > p:empty { display: none; }
