/**
 * Norio theme ? Phase 1 foundation.
 * Token custom properties live in tokens.css (generated).
 * Section SCSS from HTML master lands in later phases.
 */

/* -------------------------------------------------------------------------
   Reset (light touch ? block theme + theme.json handle most globals)
   ------------------------------------------------------------------------- */

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

img,
svg,
video {
	max-width: 100%;
	height: auto;
	display: block;
}

/* -------------------------------------------------------------------------
   Container ? matches HTML .container (max 1500px)
   ------------------------------------------------------------------------- */

.container,
.norio-container {
	width: 100%;
	max-width: var(--layout-container-max, 1500px);
	margin-inline: auto;
	padding-inline: 16px;
}

/* Archive sits under the overlay header, and titles are longer than the homepage cards. */
.norio-projects-archive.project-1 {
	padding-top: var(--layout-projectDetailsHero-padding-top, 180px);
}

.norio-projects-archive .project-card-1__header {
	max-width: none;
}

.norio-blog-pagination {
	display: flex;
	justify-content: center;
	margin-top: var(--space-8, 64px);
}

.norio-blog-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--space-1, 8px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.norio-blog-pagination ul.page-numbers > li {
	display: flex;
	margin: 0;
}

.norio-blog-pagination a.page-numbers,
.norio-blog-pagination span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
	padding: 0 12px;
	border: 0;
	border-radius: var(--radius-xs, 4px);
	font-family: inherit;
	font-size: var(--font-size-compact, 14px);
	font-weight: var(--font-weight-medium, 500);
	line-height: 1;
	letter-spacing: var(--font-tracking-tight, -0.02em);
	color: var(--color-text-tertiary, #000);
	text-decoration: none;
	background-color: transparent;
	transition:
		background-color var(--motion-duration-instant, 400ms) var(--motion-easing-standard, ease),
		color var(--motion-duration-instant, 400ms) var(--motion-easing-standard, ease);
}

.norio-blog-pagination a.page-numbers:hover {
	background-color: var(--color-neutral-100, #e8e8e8);
	color: var(--color-text-tertiary, #000);
}

.norio-blog-pagination a.page-numbers:focus-visible {
	background-color: var(--color-neutral-100, #e8e8e8);
	color: var(--color-text-tertiary, #000);
	outline: 2px solid var(--color-text-tertiary, #000);
	outline-offset: 2px;
}

.norio-blog-pagination span.page-numbers.current {
	background-color: var(--color-neutral-950, #000);
	color: var(--color-text-on-inverse, #fff);
}

.norio-blog-pagination span.page-numbers.dots {
	min-width: 24px;
	padding: 0;
	color: var(--color-text-secondary, #696969);
	background-color: transparent;
}

.norio-blog-pagination a.prev.page-numbers,
.norio-blog-pagination a.next.page-numbers {
	min-width: 0;
	padding-inline: var(--space-2, 16px);
	color: var(--color-text-secondary, #696969);
}

.norio-blog-pagination a.prev.page-numbers:hover,
.norio-blog-pagination a.next.page-numbers:hover,
.norio-blog-pagination a.prev.page-numbers:focus-visible,
.norio-blog-pagination a.next.page-numbers:focus-visible {
	color: var(--color-text-tertiary, #000);
	background-color: var(--color-neutral-100, #e8e8e8);
}

@media (min-width: 992px) {
	.container,
	.norio-container {
		padding-inline: 30px;
	}
}

@media (min-width: 1500px) {
	.container,
	.norio-container {
		padding-inline: 0;
	}
}

/* Align constrained / wide layouts with Norio container */
.wp-site-blocks > .alignwide,
.wp-block-group.alignwide,
.is-layout-constrained > .alignwide {
	max-width: var(--layout-container-max, 1500px);
}

/* -------------------------------------------------------------------------
   Typography helpers (HTML parity class names)
   ------------------------------------------------------------------------- */

.eyebrow {
	display: inline-block;
	margin-bottom: var(--space-1, 8px);
	font-size: var(--font-size-xs, 12px);
	font-weight: var(--font-weight-semibold, 400);
	line-height: var(--font-leading-xs, 1);
	letter-spacing: var(--font-tracking-wide, 0.08em);
	text-transform: uppercase;
	color: var(--color-text-secondary, #696969);
}

.section-title {
	font-size: var(--font-size-3xl, 72px);
	line-height: var(--font-leading-3xl, 1);
	letter-spacing: var(--font-tracking-tight, -0.02em);
	text-wrap: balance;
}

/* HTML section headings must follow data-color-scheme tokens, not WP global styles
   (Site Editor dark palette can leave --wp--preset--color--text-tertiary white on light pages). */
.hero-1__title,
.hero-1 h1 {
	color: var(--color-text-tertiary, #000000);
	-webkit-text-fill-color: currentColor;
}

.wp-block-post-content .hero-1,
.wp-block-post-content .about-1,
.wp-block-post-content .project-1,
.wp-block-post-content .services-1,
.wp-block-post-content .team-1,
.wp-block-post-content .cta-1,
.wp-block-post-content .footer-1 {
	color: var(--color-text-tertiary, #000000);
}

.wp-block-post-content .hero-1 :is(h1, h2, h3, h4, h5, h6),
.wp-block-post-content .about-1 :is(h1, h2, h3, h4, h5, h6) {
	color: inherit;
}

/* Keep WP shell in sync with HTML data-color-scheme toggles */
html[data-color-scheme="dark"] body,
html[data-color-scheme="dark"] .wp-site-blocks {
	background-color: var(--color-surface-base, #000);
	color: var(--color-text-tertiary, #fff);
}

html[data-color-scheme="light"] body,
html[data-color-scheme="light"] .wp-site-blocks {
	background-color: var(--color-surface-base, #fff);
	color: var(--color-text-tertiary, #000);
}

/*
 * Kill WP root global padding ? HTML master already pads via .container / section CSS.
 * .has-global-padding was leaving white gutters on mobile.
 */
:root {
	--wp--style--root--padding-left: 0px;
	--wp--style--root--padding-right: 0px;
	--wp--style--root--padding-top: 0px;
	--wp--style--root--padding-bottom: 0px;
}

.wp-site-blocks,
.has-global-padding {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.wp-site-blocks .has-global-padding,
.wp-block-post-content.has-global-padding,
.is-layout-constrained.has-global-padding {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/*
 * Kill WP blockGap between sections ? HTML master sections are flush
 * (no 24px margin-block-start from .is-layout-constrained > *).
 */
:root {
	--wp--style--block-gap: 0px;
}

.wp-site-blocks > * + *,
:root :where(.is-layout-constrained) > * + *,
:root :where(.is-layout-flow) > * + *,
.wp-block-post-content.is-layout-constrained > *,
.wp-block-post-content.is-layout-flow > *,
.wp-block-group.is-layout-constrained > *,
.wp-block-group.is-layout-flow > * {
	margin-block-start: 0 !important;
}

.wp-block-post-content > .wp-block-html,
.wp-block-post-content > .wp-block-group {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

/*
 * Home 02 ? full-bleed sections (HTML master uses ~1840px hero frame).
 * Default page.html constrained layout squeezes absolute % positions.
 */
.page-home-2 .wp-block-post-title,
body.page-home-2 .entry-header,
body.page-home-2 main > .wp-block-post-title {
	display: none !important;
}

.page-home-2 main.wp-block-group {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.page-home-2 .wp-block-post-content.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.page-home-2 .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: none !important;
	width: 100%;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.wp-block-post-content .hero-2,
.wp-block-post-content .about-2,
.wp-block-post-content .image-slider-2,
.wp-block-post-content .image-slider-3,
.wp-block-post-content .project-2,
.wp-block-post-content .services-2,
.wp-block-post-content .features-1,
.wp-block-post-content .why-us-1,
.wp-block-post-content .pricing-2,
.wp-block-post-content .text-slider-1,
.wp-block-post-content .testimonials-2,
.wp-block-post-content .feed-2,
.wp-block-post-content .cta-1,
.wp-block-post-content .footer-2,
.wp-block-post-content .about-3,
.wp-block-post-content .hero-3,
.wp-block-post-content .services-3,
.wp-block-post-content .testimonials-3,
.wp-block-post-content .project-3,
.wp-block-post-content .why-us-2,
.wp-block-post-content .cta-2,
.wp-block-post-content .pricing-3,
.wp-block-post-content .faqs-hero,
.wp-block-post-content .faqs-4,
.wp-block-post-content .faqs-5,
.wp-block-post-content .faqs-2,
.wp-block-post-content .contact-1,
.wp-block-post-content .approach-1,
.wp-block-post-content .team-1,
.wp-block-post-content .process-2,
.wp-block-post-content .timeline-1,
.wp-block-post-content .proof-1,
.wp-block-post-content .awards-2,
.wp-block-post-content .cta-4,
.wp-block-post-content .hero-contact,
.wp-block-post-content .brief-2,
.wp-block-post-content .cta-6,
.wp-block-post-content .cta-8,
.wp-block-post-content .help-hero-1,
.wp-block-post-content .topics-1,
.wp-block-post-content .guides-1,
.wp-block-post-content .reach-1,
.wp-block-post-content .error-hero,
.wp-block-post-content .error-paths,
.wp-block-post-content .hero-jobs,
.wp-block-post-content .img-1,
.wp-block-post-content .img-2,
.wp-block-post-content .job-overview,
.wp-block-post-content .brief-1,
.wp-block-post-content .apply-1,
.wp-block-post-content .job-roles,
.wp-block-post-content .process-5,
.wp-block-post-content .process-6,
.wp-block-post-content .faqs-3,
.wp-block-post-content .cta-5 {
	max-width: none;
	width: 100%;
}

/* Default body text for light sections ? skip inverse bands (text-slider-1). */
.wp-block-post-content .hero-2,
.wp-block-post-content .about-2,
.wp-block-post-content .image-slider-2,
.wp-block-post-content .image-slider-3,
.wp-block-post-content .project-2,
.wp-block-post-content .services-2,
.wp-block-post-content .features-1,
.wp-block-post-content .why-us-1,
.wp-block-post-content .pricing-2,
.wp-block-post-content .testimonials-2,
.wp-block-post-content .feed-2,
.wp-block-post-content .cta-1,
.wp-block-post-content .footer-2,
.wp-block-post-content .about-3,
.wp-block-post-content .contact-1,
.wp-block-post-content .approach-1,
.wp-block-post-content .team-1,
.wp-block-post-content .process-2,
.wp-block-post-content .proof-1,
.wp-block-post-content .awards-2,
.wp-block-post-content .cta-4,
.wp-block-post-content .hero-contact,
.wp-block-post-content .faqs-hero,
.wp-block-post-content .faqs-4,
.wp-block-post-content .faqs-5,
.wp-block-post-content .cta-6,
.wp-block-post-content .cta-8,
.wp-block-post-content .help-hero-1,
.wp-block-post-content .topics-1,
.wp-block-post-content .guides-1,
.wp-block-post-content .reach-1,
.wp-block-post-content .hero-jobs,
.wp-block-post-content .job-overview,
.wp-block-post-content .brief-1,
.wp-block-post-content .apply-1,
.wp-block-post-content .process-5,
.wp-block-post-content .faqs-3,
.wp-block-post-content .cta-5 {
	color: var(--color-text-tertiary, #000000);
}

.wp-block-post-content .job-roles,
.wp-block-post-content .process-6,
.wp-block-post-content .img-1 {
	color: var(--color-text-on-inverse, #ffffff);
}

.wp-block-post-content .brief-2 {
	color: var(--color-text-tertiary, #ffffff);
}

.wp-block-post-content .text-slider-1,
.wp-block-post-content .timeline-1 {
	color: var(--color-text-on-inverse, #ffffff);
}

/*
 * GSAP ScrollSmoother shell (HTML parity). Native CSS smooth scroll fights
 * ScrollSmoother ? keep auto. Shell rules also live in sections.css.
 */
html {
	scroll-behavior: auto;
}

#smooth-wrapper {
	overflow: hidden;
}

#smooth-content {
	position: relative;
	overflow: visible;
	width: 100%;
	will-change: transform;
}


/* -------------------------------------------------------------------------
   Core blocks ? ThemeForest Part 6 baseline
   ------------------------------------------------------------------------- */

.wp-block-button__link {
	border-radius: 0;
}

.wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-norio-outline .wp-block-button__link {
	background: transparent;
	border: 1px solid currentColor;
	color: inherit;
}

.wp-block-quote.is-style-norio-minimal {
	border: 0;
	padding-left: 0;
}

.wp-block-group.is-style-norio-container {
	width: 100%;
	max-width: var(--layout-container-max, 1500px);
	margin-inline: auto;
	padding-inline: 16px;
}

@media (min-width: 992px) {
	.wp-block-group.is-style-norio-container {
		padding-inline: 30px;
	}
}

@media (min-width: 1500px) {
	.wp-block-group.is-style-norio-container {
		padding-inline: 0;
	}
}

.wp-block-quote {
	margin-inline: 0;
}

.wp-block-image img {
	border-radius: 0;
}

.wp-block-separator {
	border: none;
	border-top: 1px solid var(--color-border-base, #d1d1d1);
	opacity: 1;
}

.wp-block-post-title a,
.wp-block-query .wp-block-post-title a {
	text-decoration: none;
	color: inherit;
}

.wp-block-post-excerpt {
	color: var(--color-text-secondary, #696969);
}

.wp-block-code {
	border-radius: var(--radius-xs, 4px);
	padding: var(--space-2, 16px);
}

.wp-block-table thead {
	border-bottom: 1px solid var(--color-border-strong, #b3b3b3);
}

.wp-block-table td,
.wp-block-table th {
	border-color: var(--color-border-base, #d1d1d1);
	padding: 0.75rem 1rem;
}

.wp-block-list {
	padding-left: 1.25em;
}

/* Process 1 ? Media Library icon images (SVG as <img>) */
.process-step__icon img.process-step__svg {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

html[data-color-scheme="dark"] .process-step__icon img.process-step__svg,
.color-scheme-dark .process-step__icon img.process-step__svg {
	filter: invert(1);
}

/* Hero 3 — optional link around .hero-3__logo-img */
.hero-3__logo-link {
	display: block;
	max-width: 100%;
	color: inherit;
	text-decoration: none;
	line-height: 0;
}

/* WP admin bar — Header 1 / 2 / 3 sit below #wpadminbar when logged in */
.admin-bar .header-1-shell {
	top: 32px;
}

.admin-bar .header-1__toggle--float {
	top: calc(var(--layout-header1-padding-block, 24px) + 32px);
}

.admin-bar .header-2 {
	margin-top: 32px;
}

.admin-bar .header-3 {
	margin-top: 32px;
}

.admin-bar.page-home-3 .header-3 {
	margin-top: 0;
	top: 32px;
}

.page-projects-2 .header-4 {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 20;
	background-color: transparent;
	mix-blend-mode: difference;
}

.admin-bar.page-projects-1 .header-4,
.admin-bar.page-projects-2 .header-4 {
	top: 32px;
}

@media screen and (max-width: 782px) {
	.admin-bar .header-1-shell {
		top: 46px;
	}

	.admin-bar .header-1__toggle--float {
		top: calc(var(--layout-header1-padding-block, 24px) + 46px);
	}

	.admin-bar .header-2 {
		margin-top: 46px;
	}

	.admin-bar .header-3 {
		margin-top: 46px;
	}

	.admin-bar.page-home-3 .header-3 {
		margin-top: 0;
		top: 46px;
	}

	.admin-bar.page-projects-1 .header-4,
	.admin-bar.page-projects-2 .header-4 {
		top: 46px;
	}
}

/* WP admin bar — Hero 1 top padding = base pad + admin-bar height */
.admin-bar .hero-1 {
	padding-top: calc(
		var(--layout-header1-padding-block, 24px) + var(--space-7, 56px) + 6.5rem + 32px
	);
}

.admin-bar .hero-1__tagline {
	top: calc(var(--layout-header1-padding-block, 24px) + var(--space-7, 56px) + 32px);
}

@media screen and (max-width: 782px) {
	.admin-bar .hero-1 {
		padding-top: calc(
			var(--layout-header1-padding-block, 24px) + var(--space-7, 56px) + 6.5rem + 46px
		);
	}

	.admin-bar .hero-1__tagline {
		top: calc(var(--layout-header1-padding-block, 24px) + var(--space-7, 56px) + 46px);
	}
}

/* WP admin bar — menu overlay logo */
.admin-bar .menu-overlay-1__logo {
	top: calc(var(--layout-header1-padding-block, 24px) + 32px);
}

@media screen and (max-width: 782px) {
	.admin-bar .menu-overlay-1__logo {
		top: calc(var(--layout-header1-padding-block, 24px) + 46px);
	}
}

/* WP admin bar — Hero 3 logo (absolute top: 0 on lg) */
.admin-bar .hero-3__logo {
	top: 32px;
}

@media screen and (max-width: 782px) {
	.admin-bar .hero-3__logo {
		top: 46px;
	}
}

/* Single post figures: a static cover image, without split-wipe or parallax. */
.single-content__figure > .single-content__photo {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

/* WP admin bar — Hero 3 tagline (absolute top on lg) */
.admin-bar .hero-3__tagline {
	top: calc(var(--layout-hero3-tagline-top, 265px) + 32px);
}

@media screen and (max-width: 782px) {
	.admin-bar .hero-3__tagline {
		top: calc(var(--layout-hero3-tagline-top, 265px) + 46px);
	}
}

/* WP admin bar — About 3 top padding = base pad + admin-bar height */
.admin-bar .about-3 {
	padding-top: calc(var(--space-10, 80px) + 32px);
}

@media (min-width: 1024px) {
	.admin-bar .about-3 {
		padding-top: calc(var(--layout-about3-padding-top, 210px) + 32px);
	}
}

@media screen and (max-width: 782px) {
	.admin-bar .about-3 {
		padding-top: calc(var(--space-10, 80px) + 46px);
	}
}

/*
 * Service details gallery. The photo is position:absolute (.scroll-parallax),
 * so the zoom link must fill the gray frame or the image width collapses to 0.
 */
.details-sec-3__link {
	display: block;
	width: 100%;
	height: 100%;
	color: inherit;
	text-decoration: none;
	cursor: zoom-in;
}

/*
 * Default page — editorial column for core content (sample page, new pages).
 * Header 1 is position:absolute, and global CSS zeroes block margins so plain
 * paragraphs currently sit under the logo with no rhythm.
 * Pages built from Norio sections stay full-bleed: the title is hidden and
 * this column is not applied when post content contains a <section>.
 */
.norio-page:has(.norio-page__content section) > .norio-page__title {
	display: none;
}

/*
 * Core Group sections (the style guide) are not full-bleed Norio sections.
 * Those sections have no hero offset, so Header 1 — position:absolute —
 * would sit on top of the first lines. Reuse the plain-page clearance.
 * A real Norio <section class="hero-1"> (no .wp-block-group) keeps full-bleed.
 */
.norio-page:has(.norio-page__content > section.wp-block-group):not(:has(.norio-page__content > section:not(.wp-block-group))) {
	box-sizing: border-box;
	padding-top: var(--layout-singleContent-padding-top, 180px);
	padding-bottom: var(--layout-singleContent-padding-bottom, 80px);
	padding-inline: var(--layout-container-gutter, 24px);
}

.admin-bar .norio-page:has(.norio-page__content > section.wp-block-group):not(:has(.norio-page__content > section:not(.wp-block-group))) {
	padding-top: calc(var(--layout-singleContent-padding-top, 180px) + 32px);
}

@media screen and (max-width: 782px) {
	.admin-bar .norio-page:has(.norio-page__content > section.wp-block-group):not(:has(.norio-page__content > section:not(.wp-block-group))) {
		padding-top: calc(var(--layout-singleContent-padding-top, 180px) + 46px);
	}
}

@media (min-width: 1024px) {
	.norio-page:has(.norio-page__content > section.wp-block-group):not(:has(.norio-page__content > section:not(.wp-block-group))) {
		padding-inline: var(--layout-container-gutter-lg, 40px);
	}
}

/*
 * Core blocks on a default page (Style Guide). Norio sections are not
 * section.wp-block-group, so Home stays full-bleed and flush.
 * The :has() guard is repeated so these rules never match a Norio page.
 */
.norio-page:has(.norio-page__content > section.wp-block-group):not(:has(.norio-page__content > section:not(.wp-block-group))) > .norio-page__content {
	width: 100%;
	max-width: 1100px;
	margin-inline: auto;
}

.norio-page:has(.norio-page__content > section.wp-block-group):not(:has(.norio-page__content > section:not(.wp-block-group))) .norio-page__content > * + * {
	margin-block-start: var(--space-6, 48px) !important;
}

.norio-page .norio-page__content > section.wp-block-group.is-layout-constrained > * + * {
	margin-block-start: var(--space-4, 32px) !important;
}

.norio-page .norio-page__content > section.wp-block-group :is(p, li) {
	margin: 0;
	max-width: 720px;
	font-size: var(--font-size-sm, 16px);
	line-height: 1.5;
	font-weight: var(--font-weight-medium, 500);
	letter-spacing: var(--font-tracking-tight, -0.02em);
	text-wrap: pretty;
}

.norio-page .norio-page__content > section.wp-block-group :is(h1, h2, h3, h4, h5, h6) {
	margin: 0;
	max-width: 1100px;
	font-weight: var(--font-weight-medium, 500);
	letter-spacing: var(--font-tracking-tight, -0.02em);
	line-height: 1.1;
	text-wrap: pretty;
}

.norio-page .norio-page__content > section.wp-block-group h1 {
	font-size: var(--font-size-2xl, 48px);
}

.norio-page .norio-page__content > section.wp-block-group h2 {
	font-size: var(--font-size-xl, 40px);
}

.norio-page .norio-page__content > section.wp-block-group h3 {
	font-size: var(--font-size-lg, 24px);
}

.norio-page .norio-page__content > section.wp-block-group h4 {
	font-size: var(--font-size-md, 20px);
}

.norio-page .norio-page__content > section.wp-block-group :is(h5, h6) {
	font-size: var(--font-size-sm, 16px);
}

.norio-page .norio-page__content > section.wp-block-group :is(ul, ol) {
	display: flex;
	flex-direction: column;
	gap: 0.65em;
	max-width: 720px;
	margin: 0;
	padding-left: 1.15em;
}

.norio-page .norio-page__content > section.wp-block-group :is(
	.wp-block-quote,
	.wp-block-pullquote,
	.wp-block-code,
	.wp-block-preformatted,
	.wp-block-verse,
	.wp-block-details,
	.wp-block-table,
	.wp-block-math,
	.wp-block-list,
	.wp-block-buttons,
	.wp-block-columns,
	.wp-block-separator,
	.wp-block-search,
	.wp-block-archives,
	.wp-block-categories,
	.wp-block-latest-posts,
	.wp-block-rss,
	.wp-block-calendar,
	.wp-block-social-links,
	.wp-block-tag-cloud
) {
	max-width: 720px;
}

.norio-page .norio-page__content > section.wp-block-group :is(
	.wp-block-image,
	.wp-block-gallery,
	.wp-block-cover,
	.wp-block-video,
	.wp-block-audio,
	.wp-block-file,
	.wp-block-media-text,
	.wp-block-embed,
	.wp-block-playlist
) {
	width: 100%;
	max-width: 1100px;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-group.is-layout-flex,
.norio-page .norio-page__content > section.wp-block-group .wp-block-group.is-layout-grid,
.norio-page .norio-page__content > section.wp-block-group .wp-block-columns,
.norio-page .norio-page__content > section.wp-block-group .wp-block-buttons {
	gap: var(--space-3, 24px);
}

/* Media — keep each block in normal flow. Cover's image is absolute and
   was painting over File and the next image. */
.norio-page .norio-page__content > section.wp-block-group .wp-block-image {
	margin: 0;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-image img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-gallery {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-gallery.has-nested-images > .wp-block-image {
	flex: 1 1 calc((100% - 16px) / 3);
	width: calc((100% - 16px) / 3);
	margin: 0;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-gallery.has-nested-images > .wp-block-image img {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-cover {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	box-sizing: border-box;
	min-height: 280px;
	margin: 0;
	padding: var(--space-4, 32px);
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-cover__image-background,
.norio-page .norio-page__content > section.wp-block-group .wp-block-cover__background {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-cover__image-background {
	object-position: center bottom;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-cover__inner-container {
	position: relative;
	z-index: 1;
	width: 100%;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-cover :is(p, h1, h2, h3, h4, h5, h6) {
	max-width: none;
	color: var(--color-text-on-inverse, #fff);
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-file {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-2, 16px);
	box-sizing: border-box;
	margin: 0;
	background-color: var(--color-surface-base, #fff);
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-file__button {
	position: static;
	display: inline-flex;
	flex-shrink: 0;
	margin: 0;
	border-radius: 0;
}

.norio-page .norio-page__content > section.wp-block-group :is(.wp-block-audio, .wp-block-video, .wp-block-audio audio, .wp-block-video video, .wp-block-embed) {
	display: block;
	width: 100%;
	margin: 0;
}

.norio-page .norio-page__content > section.wp-block-group audio {
	width: 100%;
	height: 40px;
	border-radius: 0;
	accent-color: var(--color-text-tertiary, #000);
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-media-text {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--space-4, 32px);
	align-items: center;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-media-text__media,
.norio-page .norio-page__content > section.wp-block-group .wp-block-media-text__media img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
}

@media (max-width: 781px) {
	.norio-page .norio-page__content > section.wp-block-group .wp-block-media-text.is-stacked-on-mobile {
		grid-template-columns: 1fr;
	}

	.norio-page .norio-page__content > section.wp-block-group .wp-block-gallery.has-nested-images > .wp-block-image {
		flex-basis: 100%;
		width: 100%;
	}
}

/* Text */
.norio-page .norio-page__content > section.wp-block-group .wp-block-quote {
	margin: 0;
	padding: 0 0 0 var(--space-3, 24px);
	border-width: 0;
	border-inline-start: 1px solid var(--color-border-base, #d1d1d1);
	box-shadow: none;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-quote p,
.norio-page .norio-page__content > section.wp-block-group .wp-block-pullquote {
	color: var(--color-text-secondary, #696969);
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-pullquote {
	margin: 0;
	padding-block: var(--space-3, 24px);
	border-width: 1px 0;
	border-style: solid;
	border-color: var(--color-border-base, #d1d1d1);
	box-shadow: none;
	text-align: left;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-pullquote p {
	font-size: var(--font-size-xl, 40px);
	line-height: 1.15;
}

.norio-page .norio-page__content > section.wp-block-group :is(.wp-block-code, .wp-block-preformatted, .wp-block-verse) {
	margin: 0;
	box-shadow: none;
}

.norio-page .norio-page__content > section.wp-block-group :is(.wp-block-preformatted, .wp-block-verse) {
	white-space: pre-wrap;
	font-size: var(--font-size-sm, 16px);
	line-height: 1.5;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-details {
	margin: 0;
	border-block: 1px solid var(--color-border-base, #d1d1d1);
	padding-block: var(--space-2, 16px);
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-details summary {
	cursor: pointer;
	font-weight: var(--font-weight-medium, 500);
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-table {
	margin: 0;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-table table {
	width: 100%;
	border-collapse: collapse;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-table :is(th, td) {
	padding: 0.75em 1em;
	border: 1px solid var(--color-border-base, #d1d1d1);
	text-align: left;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-table th {
	background-color: var(--color-surface-subtle, #f4f4f4);
	font-weight: var(--font-weight-medium, 500);
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-math {
	margin: 0;
	overflow-x: auto;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-button.is-style-norio-minimal .wp-block-button__link {
	background: transparent;
	color: inherit;
	padding-inline: 0;
	text-decoration: underline;
	text-underline-offset: 0.14em;
}

/* Design */
.norio-page .norio-page__content > section.wp-block-group .wp-block-separator {
	margin-block: 0;
	border: 0;
	border-top: 1px solid var(--color-border-base, #d1d1d1);
	opacity: 1;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-accordion {
	border-block-start: 1px solid var(--color-border-base, #d1d1d1);
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-accordion-item {
	border-block-end: 1px solid var(--color-border-base, #d1d1d1);
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-accordion-heading__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-2, 16px);
	width: 100%;
	padding-block: var(--space-2, 16px);
	background: transparent;
	border: 0;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-accordion-panel {
	padding-bottom: var(--space-2, 16px);
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-tab-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3, 24px);
	border-block-end: 1px solid var(--color-border-base, #d1d1d1);
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-tab-list button {
	padding: 0 0 var(--space-1, 8px);
	background: transparent;
	border: 0;
	border-block-end: 1px solid transparent;
	color: var(--color-text-secondary, #696969);
	font: inherit;
	cursor: pointer;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-tab-list button[aria-selected="true"] {
	color: var(--color-text-tertiary, #000);
	border-block-end-color: currentColor;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-tab-panel {
	padding-top: var(--space-3, 24px);
}

/* Widgets */
.norio-page .norio-page__content > section.wp-block-group :is(
	.wp-block-archives,
	.wp-block-categories,
	.wp-block-latest-posts,
	.wp-block-rss,
	.wp-block-page-list
) {
	margin: 0;
	padding: 0;
	list-style: none;
}

.norio-page .norio-page__content > section.wp-block-group :is(
	.wp-block-archives,
	.wp-block-categories,
	.wp-block-latest-posts,
	.wp-block-rss
) li + li {
	margin-top: 0.65em;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-search {
	margin: 0;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-search__inside-wrapper {
	display: flex;
	gap: 0;
	border: 1px solid var(--color-border-base, #d1d1d1);
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-search__input {
	flex: 1;
	min-width: 0;
	padding: 0.75rem 1rem;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: inherit;
	font: inherit;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-search__button {
	border: 0;
	border-radius: 0;
	background: var(--color-text-tertiary, #000);
	color: var(--color-text-on-inverse, #fff);
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-calendar {
	margin: 0;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-calendar table {
	width: 100%;
	border-collapse: collapse;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-calendar :is(th, td) {
	padding: 0.4em;
	border: 1px solid var(--color-border-base, #d1d1d1);
	text-align: center;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-social-links {
	margin: 0;
	gap: var(--space-2, 16px);
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-query {
	margin: 0;
}

.norio-page .norio-page__content > section.wp-block-group .wp-block-post-template {
	display: flex;
	flex-direction: column;
	gap: var(--space-4, 32px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.norio-page:not(:has(.norio-page__content section)) {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--layout-singleContent-stack-gap, 32px);
	box-sizing: border-box;
	width: 100%;
	padding-top: var(--layout-singleContent-padding-top, 180px);
	padding-bottom: var(--layout-singleContent-padding-bottom, 80px);
	padding-inline: var(--layout-container-gutter, 24px);
	background-color: var(--color-surface-base, #fff);
	color: var(--color-text-tertiary, #000);
}

@media (min-width: 1024px) {
	.norio-page:not(:has(.norio-page__content section)) {
		padding-inline: var(--layout-container-gutter-lg, 40px);
	}
}

.norio-page:not(:has(.norio-page__content section)) > .norio-page__title,
.norio-page:not(:has(.norio-page__content section)) > .norio-page__content {
	width: 100%;
	max-width: var(--layout-singleContent-content-max, 700px);
	margin-inline: auto;
}

.norio-page:not(:has(.norio-page__content section)) > .norio-page__title {
	margin-block: 0;
	font-size: var(--font-size-2xl, 48px);
	line-height: var(--font-leading-2xl, 1);
	font-weight: var(--font-weight-medium, 500);
	letter-spacing: var(--font-tracking-display, -0.05em);
	text-wrap: pretty;
}

.norio-page:not(:has(.norio-page__content section)) > .norio-page__content {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--space-4, 32px);
}

.norio-page:not(:has(.norio-page__content section)) > .norio-page__content > * {
	align-self: stretch;
	width: 100%;
	max-width: none;
	margin-inline: 0 !important;
}

.norio-page:not(:has(.norio-page__content section)) .norio-page__content :is(p, li) {
	margin: 0;
	font-size: var(--font-size-sm, 16px);
	line-height: var(--font-leading-sm, 1.5);
	font-weight: var(--font-weight-medium, 500);
	letter-spacing: var(--font-tracking-tight, -0.02em);
	text-wrap: pretty;
}

.norio-page:not(:has(.norio-page__content section)) .norio-page__content :is(h2, h3, h4, h5, h6) {
	margin: 0;
	font-weight: var(--font-weight-medium, 500);
	letter-spacing: var(--font-tracking-tight, -0.02em);
	line-height: 1.1;
	text-wrap: pretty;
}

.norio-page:not(:has(.norio-page__content section)) .norio-page__content h2 {
	font-size: var(--font-size-lg, 24px);
}

.norio-page:not(:has(.norio-page__content section)) .norio-page__content h3 {
	font-size: var(--font-size-md, 20px);
}

.norio-page:not(:has(.norio-page__content section)) .norio-page__content :is(h4, h5, h6) {
	font-size: var(--font-size-sm, 16px);
}

.norio-page:not(:has(.norio-page__content section)) .norio-page__content :is(ul, ol) {
	display: flex;
	flex-direction: column;
	gap: 0.65em;
	margin: 0;
	padding-left: 1.15em;
}

.norio-page:not(:has(.norio-page__content section)) .norio-page__content .wp-block-quote {
	margin: 0;
	padding: 0 0 0 var(--space-3, 24px);
	border-width: 0;
	border-inline-start: 1px solid var(--color-border-base, #d1d1d1);
}

.norio-page:not(:has(.norio-page__content section)) .norio-page__content .wp-block-quote p {
	color: var(--color-text-secondary, #696969);
}

.norio-page:not(:has(.norio-page__content section)) .norio-page__content a {
	text-underline-offset: 0.14em;
}

.norio-page:not(:has(.norio-page__content section)) .norio-page__content :is(img, video) {
	display: block;
	max-width: 100%;
	height: auto;
}

.norio-page:not(:has(.norio-page__content section)) .norio-page__content :is(pre, .wp-block-table, .wp-block-code) {
	max-width: 100%;
	overflow-x: auto;
}

.norio-page:not(:has(.norio-page__content section)) .norio-page__content .wp-block-separator {
	margin-block: 0;
	border: 0;
	border-top: 1px solid var(--color-border-base, #d1d1d1);
}

/*
 * Single post comments. Same 700px column as the article, underline fields
 * like Contact 1, and a full-width Button 1 for the submit control.
 */
.wp-block-comments {
	box-sizing: border-box;
	width: min(100% - (2 * var(--layout-container-gutter, 24px)), var(--layout-singleContent-content-max, 700px));
	margin-inline: auto;
	padding-block: var(--space-8, 64px) var(--layout-singleContent-padding-bottom, 80px);
	color: var(--color-text-tertiary, #000);
}

@media (min-width: 1024px) {
	.wp-block-comments {
		width: min(100% - (2 * var(--layout-container-gutter-lg, 40px)), var(--layout-singleContent-content-max, 700px));
	}
}

.wp-block-comments .wp-block-comments-title,
.wp-block-comments .comment-reply-title {
	margin: 0;
	font-size: var(--font-size-lg, 24px);
	line-height: 1;
	font-weight: var(--font-weight-semibold, 600);
	letter-spacing: var(--font-tracking-tight, -0.02em);
	text-wrap: pretty;
}

.wp-block-comments .comment-reply-title small {
	display: inline;
	margin-inline-start: var(--space-2, 16px);
	font-size: var(--font-size-compact, 14px);
	font-weight: var(--font-weight-medium, 500);
	letter-spacing: 0;
	line-height: 1.2;
}

.wp-block-comments #cancel-comment-reply-link {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.14em;
}

.wp-block-comments .comment-list,
.wp-block-comments .wp-block-comment-template {
	display: flex;
	flex-direction: column;
	gap: var(--space-4, 32px);
	margin: var(--space-5, 40px) 0 0;
	padding: 0;
	list-style: none;
}

.wp-block-comments .comment-list .children,
.wp-block-comments .wp-block-comment-template .children {
	display: flex;
	flex-direction: column;
	gap: var(--space-4, 32px);
	margin: var(--space-4, 32px) 0 0;
	padding: 0 0 0 var(--space-4, 32px);
	list-style: none;
	border-inline-start: 1px solid var(--color-border-base, #d1d1d1);
}

.wp-block-comments .comment-body,
.wp-block-comments .wp-block-comment {
	display: flex;
	flex-direction: column;
	gap: var(--space-2, 16px);
	min-width: 0;
}

.wp-block-comments .comment-meta,
.wp-block-comments .comment-author {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2, 16px);
}

.wp-block-comments .comment-author {
	gap: 0.75rem;
}

.wp-block-comments .avatar {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	object-fit: cover;
}

.wp-block-comments .comment-author .fn,
.wp-block-comments .wp-block-comment-author-name {
	font-size: var(--font-size-sm, 16px);
	font-weight: var(--font-weight-semibold, 600);
	letter-spacing: var(--font-tracking-tight, -0.02em);
}

.wp-block-comments .comment-metadata,
.wp-block-comments .comment-metadata a,
.wp-block-comments .wp-block-comment-date,
.wp-block-comments .wp-block-comment-date a {
	font-size: var(--font-size-compact, 14px);
	font-weight: var(--font-weight-medium, 500);
	color: var(--color-text-secondary, #696969);
	text-decoration: none;
}

.wp-block-comments .comment-content,
.wp-block-comments .wp-block-comment-content {
	font-size: var(--font-size-sm, 16px);
	line-height: var(--font-leading-sm, 1.5);
	font-weight: var(--font-weight-medium, 500);
	letter-spacing: var(--font-tracking-tight, -0.02em);
}

.wp-block-comments .comment-content p,
.wp-block-comments .wp-block-comment-content p {
	margin: 0;
}

.wp-block-comments .comment-reply-link,
.wp-block-comments .comment-edit-link,
.wp-block-comments .wp-block-comment-reply-link a,
.wp-block-comments .wp-block-comment-edit-link a {
	font-size: var(--font-size-compact, 14px);
	font-weight: var(--font-weight-medium, 500);
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.14em;
}

.wp-block-comments .wp-block-comments-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2, 16px);
	margin-top: var(--space-4, 32px);
	font-size: var(--font-size-compact, 14px);
}

.wp-block-comments .comment-respond {
	margin-top: 0;
}

.wp-block-comments .comment-list + .comment-respond,
.wp-block-comments .wp-block-comment-template + .comment-respond {
	margin-top: var(--space-8, 64px);
}

.wp-block-comments .comment-form {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-4, 32px);
	margin-top: var(--space-4, 32px);
}

@media (min-width: 640px) {
	.wp-block-comments .comment-form {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wp-block-comments .comment-notes,
	.wp-block-comments .logged-in-as,
	.wp-block-comments .comment-form-comment,
	.wp-block-comments .comment-form-url,
	.wp-block-comments .comment-form-cookies-consent,
	.wp-block-comments .form-submit {
		grid-column: 1 / -1;
	}
}

.wp-block-comments .comment-form > p {
	margin: 0;
	min-width: 0;
}

.wp-block-comments .comment-notes,
.wp-block-comments .logged-in-as {
	font-size: var(--font-size-compact, 14px);
	line-height: 1.4;
	font-weight: var(--font-weight-medium, 500);
	color: var(--color-text-secondary, #696969);
}

.wp-block-comments .logged-in-as a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.14em;
}

.wp-block-comments .comment-form-comment,
.wp-block-comments .comment-form-author,
.wp-block-comments .comment-form-email,
.wp-block-comments .comment-form-url {
	display: flex;
	flex-direction: column;
	gap: var(--layout-contact1-field-gap, 16px);
	padding-bottom: var(--layout-contact1-field-pad, 8px);
}

.wp-block-comments .comment-form label {
	font-size: var(--font-size-compact, 14px);
	line-height: var(--font-leading-compact, 1.2);
	font-weight: var(--font-weight-medium, 500);
	color: var(--color-text-secondary, #696969);
}

.wp-block-comments .comment-form .required {
	color: inherit;
}

.wp-block-comments .comment-form input[type="text"],
.wp-block-comments .comment-form input[type="email"],
.wp-block-comments .comment-form input[type="url"],
.wp-block-comments .comment-form textarea {
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0 0 0.5rem;
	border: 0;
	border-bottom: 1px solid var(--color-neutral-200, #d1d1d1);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	font-family: inherit;
	font-size: var(--font-size-compact, 14px);
	line-height: var(--font-leading-compact, 1.2);
	font-weight: var(--font-weight-medium, 500);
	color: inherit;
	appearance: none;
}

.wp-block-comments .comment-form textarea {
	height: 8rem;
	min-height: 8rem;
	resize: vertical;
}

.wp-block-comments .comment-form input[type="text"]:focus,
.wp-block-comments .comment-form input[type="email"]:focus,
.wp-block-comments .comment-form input[type="url"]:focus,
.wp-block-comments .comment-form textarea:focus {
	outline: none;
	border-bottom-color: var(--color-text-tertiary, #000);
}

.wp-block-comments .comment-form-cookies-consent {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
}

.wp-block-comments .comment-form-cookies-consent input {
	flex: 0 0 auto;
	width: 1rem;
	height: 1rem;
	margin: 0.15em 0 0;
	accent-color: var(--color-neutral-950, #000);
}

.wp-block-comments .comment-form-cookies-consent label {
	color: var(--color-text-secondary, #696969);
}

.wp-block-comments .form-submit .wp-block-button__link,
.wp-block-comments .comment-form #submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 0;
	margin: 0;
	padding: var(--layout-btn1-padding-block, 20px) var(--layout-btn1-padding-inline, 45px);
	border: 0;
	border-radius: var(--radius-xs, 4px);
	background-color: var(--color-neutral-950, #000);
	box-shadow: none;
	color: var(--color-text-on-inverse, #fff);
	font-family: inherit;
	font-size: var(--font-size-compact, 14px);
	line-height: var(--font-leading-compact, 1.2);
	font-weight: var(--font-weight-medium, 500);
	letter-spacing: 0;
	text-decoration: none;
	cursor: pointer;
}

.wp-block-comments .form-submit .wp-block-button__link:hover,
.wp-block-comments .form-submit .wp-block-button__link:focus-visible,
.wp-block-comments .comment-form #submit:hover,
.wp-block-comments .comment-form #submit:focus-visible {
	background-color: var(--color-neutral-800, #1a1a1a);
	color: var(--color-text-on-inverse, #fff);
}

/* Keyboard skip link. Markup is in the theme; keep it off-screen when Norio Core is inactive. */
.norio-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	padding: 0.75rem 1rem;
	background: #111;
	color: #fff;
	text-decoration: none;
}

.norio-skip-link:focus {
	left: 1rem;
	top: 1rem;
}

.admin-bar .norio-skip-link:focus {
	top: calc(32px + 1rem);
}

@media screen and (max-width: 782px) {
	.admin-bar .norio-skip-link:focus {
		top: calc(46px + 1rem);
	}
}

/* Chrome without GSAP: plugin inactive, or Reduced motion / Motion off (body.norio-reduced-motion). */
.norio-chrome-logo-text {
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1;
}

.header-4__logo .norio-chrome-logo-text,
.menu-overlay-1__logo .norio-chrome-logo-text {
	color: #fff;
}

.footer-1__wordmark-text {
	display: block;
	color: var(--color-text, #111);
	font-size: clamp(4rem, 14vw, 9rem);
	font-weight: 500;
	letter-spacing: -0.06em;
	line-height: 0.85;
}

body:not(.norio-core-active) .menu-overlay-1.is-open,
body.norio-reduced-motion .menu-overlay-1.is-open {
	clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}

body:not(.norio-core-active) .menu-overlay-1.is-open .menu-overlay-1__content,
body.norio-reduced-motion .menu-overlay-1.is-open .menu-overlay-1__content {
	transform: none;
	opacity: 1;
}

body:not(.norio-core-active) .menu-overlay-1.is-open .menu-overlay-1__link-a,
body:not(.norio-core-active) .menu-overlay-1.is-open .menu-overlay-1__social-a,
body:not(.norio-core-active) .menu-overlay-1.is-open .menu-overlay-1__sub-a,
body.norio-reduced-motion .menu-overlay-1.is-open .menu-overlay-1__link-a,
body.norio-reduced-motion .menu-overlay-1.is-open .menu-overlay-1__social-a,
body.norio-reduced-motion .menu-overlay-1.is-open .menu-overlay-1__sub-a {
	transform: none;
	opacity: 1;
}

body:not(.norio-core-active) .menu-overlay-1.is-open .menu-overlay-1__sub-a:hover,
body.norio-reduced-motion .menu-overlay-1.is-open .menu-overlay-1__sub-a:hover {
	transform: translateX(10px);
}

body:not(.norio-core-active) .menu-overlay-1__link.is-open .menu-overlay-1__sub,
body.norio-reduced-motion .menu-overlay-1__link.is-open .menu-overlay-1__sub {
	height: auto;
	visibility: visible;
}

.norio-core-missing {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: 200;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
	padding: 0.65rem 1.25rem;
	background: #111;
	color: #fff;
	font-size: 0.875rem;
	line-height: 1.4;
}

.norio-core-missing__text {
	margin: 0;
}

.norio-core-missing__link {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.norio-core-missing__dismiss {
	flex: 0 0 auto;
	margin: 0;
	padding: 0.2rem 0.7rem;
	border: 1px solid currentColor;
	border-radius: 4px;
	background: transparent;
	color: inherit;
	font: inherit;
	line-height: 1.4;
	cursor: pointer;
}

.norio-core-missing__dismiss:hover,
.norio-core-missing__dismiss:focus-visible {
	background: #fff;
	color: #111;
}

html.norio-core-notice-dismissed .norio-core-missing {
	display: none;
}

html:not(.norio-core-notice-dismissed) body:has(.norio-core-missing) .header-1-shell,
html:not(.norio-core-notice-dismissed) body:has(.norio-core-missing) .header-5-shell,
html:not(.norio-core-notice-dismissed) body.page-projects-1:has(.norio-core-missing) .header-4,
html:not(.norio-core-notice-dismissed) body.page-projects-2:has(.norio-core-missing) .header-4,
html:not(.norio-core-notice-dismissed) body.page-home-3:has(.norio-core-missing) .header-3 {
	top: var(--norio-core-notice-h, 44px);
}

html:not(.norio-core-notice-dismissed) body:has(.norio-core-missing) .header-1__toggle--float {
	top: calc(var(--layout-header1-padding-block, 24px) + var(--norio-core-notice-h, 44px));
}

html:not(.norio-core-notice-dismissed) body:has(.norio-core-missing) .header-2,
html:not(.norio-core-notice-dismissed) body:not(.page-home-3):has(.norio-core-missing) .header-3 {
	margin-top: var(--norio-core-notice-h, 44px);
}

.admin-bar .norio-core-missing {
	top: 32px;
}

html:not(.norio-core-notice-dismissed) body.admin-bar:has(.norio-core-missing) .header-1-shell,
html:not(.norio-core-notice-dismissed) body.admin-bar:has(.norio-core-missing) .header-5-shell,
html:not(.norio-core-notice-dismissed) body.admin-bar.page-projects-1:has(.norio-core-missing) .header-4,
html:not(.norio-core-notice-dismissed) body.admin-bar.page-projects-2:has(.norio-core-missing) .header-4,
html:not(.norio-core-notice-dismissed) body.admin-bar.page-home-3:has(.norio-core-missing) .header-3 {
	top: calc(32px + var(--norio-core-notice-h, 44px));
}

html:not(.norio-core-notice-dismissed) body.admin-bar:has(.norio-core-missing) .header-1__toggle--float {
	top: calc(var(--layout-header1-padding-block, 24px) + 32px + var(--norio-core-notice-h, 44px));
}

html:not(.norio-core-notice-dismissed) body.admin-bar:has(.norio-core-missing) .header-2,
html:not(.norio-core-notice-dismissed) body.admin-bar:not(.page-home-3):has(.norio-core-missing) .header-3 {
	margin-top: calc(32px + var(--norio-core-notice-h, 44px));
}

html:not(.norio-core-notice-dismissed) body.admin-bar.page-home-3:has(.norio-core-missing) .header-3 {
	margin-top: 0;
}

@media screen and (max-width: 782px) {
	.admin-bar .norio-core-missing {
		top: 46px;
	}

	html:not(.norio-core-notice-dismissed) body.admin-bar:has(.norio-core-missing) .header-1-shell,
	html:not(.norio-core-notice-dismissed) body.admin-bar:has(.norio-core-missing) .header-5-shell,
	html:not(.norio-core-notice-dismissed) body.admin-bar.page-projects-1:has(.norio-core-missing) .header-4,
	html:not(.norio-core-notice-dismissed) body.admin-bar.page-projects-2:has(.norio-core-missing) .header-4,
	html:not(.norio-core-notice-dismissed) body.admin-bar.page-home-3:has(.norio-core-missing) .header-3 {
		top: calc(46px + var(--norio-core-notice-h, 44px));
	}

	html:not(.norio-core-notice-dismissed) body.admin-bar:has(.norio-core-missing) .header-1__toggle--float {
		top: calc(var(--layout-header1-padding-block, 24px) + 46px + var(--norio-core-notice-h, 44px));
	}

	html:not(.norio-core-notice-dismissed) body.admin-bar:has(.norio-core-missing) .header-2,
	html:not(.norio-core-notice-dismissed) body.admin-bar:not(.page-home-3):has(.norio-core-missing) .header-3 {
		margin-top: calc(46px + var(--norio-core-notice-h, 44px));
	}

	html:not(.norio-core-notice-dismissed) body.admin-bar.page-home-3:has(.norio-core-missing) .header-3 {
		margin-top: 0;
	}
}

/* -------------------------------------------------------------------------
   Category, project-tag, and service-category archives — title clears the header.
   Posts use a four-up blog grid; project tags use two-up project cards;
   service categories use the stacked service-card-2 list.
   ------------------------------------------------------------------------- */

.norio-category {
	/* Header is 15px + 56px toggle + 15px, plus a gap before the title. */
	padding-top: calc(var(--layout-header1-padding-block, 15px) * 2 + var(--space-7, 56px) + var(--space-3, 24px));
	padding-bottom: var(--space-16, 128px);
	background-color: var(--color-surface-base, #fff);
	color: var(--color-text-tertiary, #000);
}

.admin-bar .norio-category {
	padding-top: calc(32px + var(--layout-header1-padding-block, 15px) * 2 + var(--space-7, 56px) + var(--space-3, 24px));
}

@media screen and (max-width: 782px) {
	.admin-bar .norio-category {
		padding-top: calc(46px + var(--layout-header1-padding-block, 15px) * 2 + var(--space-7, 56px) + var(--space-3, 24px));
	}
}

.norio-category__inner {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--space-4, 32px);
	min-width: 0;
}

.norio-category .wp-block-query-title {
	margin: 0;
	font-size: 64px;
	line-height: 0.86;
	font-weight: var(--font-weight-medium, 500);
	letter-spacing: -0.055em;
	color: var(--color-text-tertiary, #000);
}

.norio-category .wp-block-query {
	margin: 0;
}

.norio-category .wp-block-post-template.blog-categories__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--layout-blogCategories-grid-gap, 24px);
	align-items: start;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 576px) {
	.norio-category .wp-block-post-template.blog-categories__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.norio-category .wp-block-post-template.blog-categories__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.norio-category .wp-block-post-template.project-1__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--layout-project1-grid-row-gap, 50px) var(--layout-project1-grid-column-gap, 30px);
	align-items: start;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 1024px) {
	.norio-category .wp-block-post-template.project-1__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.norio-category .project-1__grid .project-card-1 {
	max-width: none;
}

.norio-category .wp-block-post {
	min-width: 0;
	margin: 0;
}

.norio-category .wp-block-query-pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2, 16px);
	margin-top: var(--space-6, 48px);
	font-size: var(--font-size-sm, 16px);
	font-weight: var(--font-weight-medium, 500);
	letter-spacing: var(--font-tracking-tight, -0.02em);
}

.norio-category .wp-block-query-pagination a,
.norio-category .wp-block-query-pagination span {
	color: var(--color-text-tertiary, #000);
	text-decoration: none;
}

.norio-category .wp-block-query-pagination a:hover,
.norio-category .wp-block-query-pagination a:focus-visible {
	color: var(--color-text-secondary, #696969);
}

.norio-category__empty {
	margin: 0;
	font-size: var(--font-size-md, 20px);
	line-height: 1.3;
	font-weight: var(--font-weight-medium, 500);
	letter-spacing: var(--font-tracking-tight, -0.02em);
	color: var(--color-text-secondary, #696969);
}


