/*
Theme Name: Assem Furniture Working Theme
Theme URI: https://assem7333.mycafe24.com/
Template: astra
Author: Assem Furniture
Description: Editorial product catalogue theme for ASSEM no-weld furniture systems.
Tags: custom-logo, featured-images, responsive-layout
Version: 1.7.12
Updated: 2026-08-22
*/

:root {
	--assem-ink: #11110f;
	--assem-muted: #696862;
	--assem-paper: #ffffff;
	--assem-soft: #f2f1ed;
	--assem-warm: #d8d2c7;
	--assem-line: #d8d7d2;
	--assem-accent: #8f7355;
	--assem-max: 1680px;
	--assem-gutter: clamp(20px, 2.1vw, 40px);
	--assem-header: 64px;
	--assem-ease: cubic-bezier(.22, 1, .36, 1);
}

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

html {
	scroll-behavior: smooth;
}

body.assem-site {
	margin: 0;
	background: var(--assem-paper);
	color: var(--assem-ink);
	font-family: "Manrope", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.assem-site button,
body.assem-site input,
body.assem-site textarea,
body.assem-site select {
	font: inherit;
}

body.assem-site img {
	display: block;
	max-width: 100%;
	height: auto;
}

body.assem-site a {
	color: inherit;
	text-decoration: none;
}

body.assem-site h1,
body.assem-site h2,
body.assem-site h3,
body.assem-site h4,
body.assem-site p,
body.assem-site ul,
body.assem-site ol,
body.assem-site dl,
body.assem-site figure {
	margin-top: 0;
}

.screen-reader-text,
.assem-skip-link {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.assem-skip-link:focus {
	position: fixed;
	top: 10px;
	left: 10px;
	z-index: 99999;
	width: auto;
	height: auto;
	padding: 10px 14px;
	clip: auto;
	background: #fff;
	color: #111;
}

.assem-shell {
	width: min(100%, var(--assem-max));
	margin-inline: auto;
	padding-inline: var(--assem-gutter);
}

.assem-site-main {
	min-height: 70vh;
	padding-top: var(--assem-header);
}

.js .assem-site-main {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .7s var(--assem-ease), transform .85s var(--assem-ease);
}

.js body.is-page-ready .assem-site-main {
	opacity: 1;
	transform: none;
}

.js body.is-page-leaving .assem-site-main {
	opacity: 0;
	transform: translateY(-10px);
}

.js body.assem-site::after {
	position: fixed;
	inset: 0;
	z-index: 2000;
	background: var(--assem-paper);
	content: "";
	opacity: 0;
	pointer-events: none;
	transition: opacity .28s ease;
}

.js body.assem-site.is-page-leaving::after {
	opacity: 1;
}

.assem-header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1000;
	width: 100%;
	height: var(--assem-header);
	background: rgba(255, 255, 255, .9);
	border-bottom: 1px solid transparent;
	backdrop-filter: blur(14px);
	transition: background .3s ease, border-color .3s ease;
}

.js .assem-header {
	opacity: 0;
	transform: translateY(-12px);
	transition: background .3s ease, border-color .3s ease, opacity .55s ease, transform .7s var(--assem-ease);
}

.js body.is-page-ready .assem-header {
	opacity: 1;
	transform: none;
}

.assem-header.is-scrolled {
	background: rgba(255, 255, 255, .96);
	border-color: rgba(17, 17, 15, .1);
}

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

.assem-header__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	height: 100%;
	padding-inline: var(--assem-gutter);
}

.assem-scroll-progress {
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;
	height: 2px;
	background: var(--assem-ink);
	transform: scaleX(0);
	transform-origin: left center;
	will-change: transform;
}

.assem-nav {
	display: flex;
	align-items: center;
	gap: clamp(20px, 2.1vw, 42px);
	font-size: clamp(14px, .82vw, 16px);
	font-weight: 500;
	letter-spacing: .045em;
}

.assem-nav--right {
	justify-content: flex-end;
}

.assem-nav a,
.assem-mobile-nav a {
	position: relative;
}

.assem-nav a::after {
	position: absolute;
	right: 0;
	bottom: -6px;
	left: 0;
	height: 1px;
	background: currentColor;
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .35s var(--assem-ease);
}

.assem-nav a:hover::after,
.assem-nav a:focus-visible::after {
	transform: scaleX(1);
	transform-origin: left;
}

.assem-logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.assem-logo__image {
	display: block;
	width: clamp(112px, 8.5vw, 132px);
	height: auto;
}

.assem-menu-toggle {
	display: none;
	width: 38px;
	height: 38px;
	padding: 0;
	background: transparent;
	border: 0;
	cursor: pointer;
}

.assem-menu-toggle:hover,
.assem-menu-toggle:focus,
.assem-menu-toggle:active {
	background: transparent !important;
	box-shadow: none;
	color: var(--assem-ink);
}

#ast-scroll-top {
	display: none !important;
}

.assem-menu-toggle span:not(.screen-reader-text) {
	display: block;
	width: 22px;
	height: 1px;
	margin: 6px auto;
	background: var(--assem-ink);
	transition: transform .25s ease, opacity .25s ease;
}

.menu-open .assem-menu-toggle span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.menu-open .assem-menu-toggle span:nth-child(2) {
	opacity: 0;
}

.menu-open .assem-menu-toggle span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

.assem-mobile-nav {
	position: fixed;
	top: var(--assem-header);
	right: 0;
	left: 0;
	display: none;
	padding: 26px var(--assem-gutter) 32px;
	background: rgba(255, 255, 255, .98);
	border-top: 1px solid var(--assem-line);
	border-bottom: 1px solid var(--assem-line);
}

.assem-mobile-nav a {
	display: block;
	padding: 13px 0;
	border-bottom: 1px solid var(--assem-line);
	font-size: 15px;
	letter-spacing: .03em;
}

body.assem-home .assem-header,
body.assem-home .assem-header.is-scrolled {
	--assem-home-header-bg: rgba(12, 12, 12, .97);
	--assem-home-header-ink: rgb(247, 247, 245);
	--assem-home-header-line: rgba(255, 255, 255, .14);
	--assem-home-logo-invert: 1;
	background: var(--assem-home-header-bg);
	border-color: var(--assem-home-header-line);
	color: var(--assem-home-header-ink);
}

body.assem-home .assem-logo__image {
	filter: invert(var(--assem-home-logo-invert));
	transition: filter .16s linear;
}

body.assem-home .assem-scroll-progress,
body.assem-home .assem-menu-toggle span:not(.screen-reader-text) {
	background: var(--assem-home-header-ink);
}

body.assem-home .assem-menu-toggle:hover,
body.assem-home .assem-menu-toggle:focus,
body.assem-home .assem-menu-toggle:active {
	color: var(--assem-home-header-ink);
}

body.assem-home .assem-mobile-nav {
	background: var(--assem-home-header-bg);
	border-color: var(--assem-home-header-line);
	color: var(--assem-home-header-ink);
}

body.assem-home .assem-mobile-nav a {
	border-color: var(--assem-home-header-line);
}

.menu-open .assem-mobile-nav {
	display: block;
}

.assem-eyebrow {
	display: block;
	margin-bottom: 22px;
	font-size: clamp(12px, .72vw, 14px);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .15em;
	text-transform: uppercase;
}

.assem-display {
	font-size: clamp(44px, 6.8vw, 112px);
	font-weight: 300;
	line-height: .98;
	letter-spacing: -.055em;
}

.assem-heading {
	font-size: clamp(32px, 4.3vw, 70px);
	font-weight: 300;
	line-height: 1.04;
	letter-spacing: -.045em;
}

.assem-heading--medium {
	font-size: clamp(28px, 3.3vw, 54px);
}

.assem-lead {
	max-width: 700px;
	color: var(--assem-muted);
	font-size: clamp(16px, 1.35vw, 22px);
	font-weight: 300;
	line-height: 1.75;
}

.assem-copy {
	max-width: 620px;
	color: var(--assem-muted);
	font-size: clamp(15px, .95vw, 17px);
	line-height: 1.85;
}

.assem-button {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 34px;
	min-width: 210px;
	padding: 14px 0;
	border-bottom: 1px solid var(--assem-ink);
	font-size: clamp(12px, .72vw, 13px);
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.assem-button::after {
	content: "↗";
	font-size: 15px;
	transition: transform .3s var(--assem-ease);
}

.assem-button:hover::after {
	transform: translate(3px, -3px);
}

.assem-button--light {
	border-color: rgba(255, 255, 255, .7);
	color: #fff;
}

.assem-section {
	padding-block: clamp(90px, 11vw, 190px);
}

.assem-section--soft {
	background: var(--assem-soft);
}

.assem-section-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: clamp(48px, 6vw, 100px);
}

.assem-section-head > * {
	margin-bottom: 0;
}

.assem-hero {
	position: relative;
	display: grid;
	min-height: calc(100vh - var(--assem-header));
	background: #070707;
	overflow: hidden;
}

.assem-hero__media {
	position: absolute;
	inset: -4% 0;
	transform: translate3d(0, var(--assem-hero-shift, 0), 0) scale(1.015);
	will-change: transform;
}

.assem-hero__poster,
.assem-hero__video {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.assem-hero__poster {
	z-index: 0;
	opacity: 1;
}

.assem-hero__video {
	z-index: 1;
	opacity: 1;
}

.assem-hero__media::after {
	position: absolute;
	inset: 0;
	z-index: 2;
	background: linear-gradient(90deg, rgba(0, 0, 0, .72) 0%, rgba(0, 0, 0, .4) 46%, rgba(0, 0, 0, .08) 78%);
	content: "";
}

.assem-hero__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	width: min(760px, 68vw);
	padding: 8vw var(--assem-gutter) clamp(58px, 7vw, 110px);
	color: #f7f5ef;
}

.assem-hero .assem-hero__content h1 {
	margin-bottom: 30px;
	color: #f7f5ef;
	text-shadow: 0 2px 30px rgba(0, 0, 0, .24);
}

.assem-hero__content p {
	max-width: 520px;
	margin-bottom: 42px;
	font-size: clamp(15px, 1.1vw, 18px);
	font-weight: 300;
	line-height: 1.8;
	color: rgba(255, 255, 255, .82);
}

.assem-hero .assem-eyebrow {
	margin-bottom: 24px;
	font-size: clamp(12px, .78vw, 14px);
	line-height: 1.35;
	color: rgba(255, 255, 255, .82);
}

.assem-hero__index {
	color: rgba(255, 255, 255, .78);
}

.assem-hero .assem-button {
	border-color: rgba(255, 255, 255, .72);
	color: #fff;
}

.assem-hero__index {
	position: absolute;
	right: var(--assem-gutter);
	bottom: 26px;
	z-index: 2;
	font-size: 10px;
	letter-spacing: .1em;
}

.assem-series-grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: clamp(30px, 5vw, 90px) 24px;
}

.assem-series-card {
	grid-column: span 4;
}

.assem-series-card:nth-child(2) {
	padding-top: clamp(60px, 8vw, 130px);
}

.assem-series-card__media {
	position: relative;
	--assem-image-edge-top: var(--assem-soft);
	--assem-image-edge-bottom: var(--assem-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 30px;
	background: linear-gradient(
		to bottom,
		var(--assem-image-edge-top) 0 50%,
		var(--assem-image-edge-bottom) 50% 100%
	);
	aspect-ratio: 4 / 5;
	overflow: hidden;
}

body.assem-site .assem-series-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: 50% 50%;
	transition: transform 1s var(--assem-ease);
}

.assem-series-card:hover .assem-series-card__media img {
	transform: scale(1.025);
}

.assem-series-card__meta {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
}

.assem-series-card h3 {
	margin-bottom: 12px;
	font-size: 20px;
	font-weight: 400;
	letter-spacing: -.025em;
}

.assem-series-card p {
	max-width: 360px;
	margin-bottom: 0;
	color: var(--assem-muted);
	font-size: 12px;
	line-height: 1.8;
}

.assem-series-card__arrow {
	font-size: 18px;
}

.assem-products-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(60px, 7vw, 120px) clamp(14px, 2vw, 30px);
}

.assem-product-card__image {
	position: relative;
	--assem-image-edge-top: var(--assem-soft);
	--assem-image-edge-bottom: var(--assem-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
	background: linear-gradient(
		to bottom,
		var(--assem-image-edge-top) 0 50%,
		var(--assem-image-edge-bottom) 50% 100%
	);
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

body.assem-site .assem-product-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: 50% 50%;
	transition: transform .8s var(--assem-ease);
}

.assem-product-card:hover .assem-product-card__image img {
	transform: scale(1.02);
}

.assem-product-card__body {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: start;
	gap: 20px;
}

.assem-product-card h3 {
	margin-bottom: 8px;
	font-size: clamp(17px, .95vw, 19px);
	font-weight: 500;
	letter-spacing: -.01em;
}

.assem-product-card p,
.assem-product-card__series {
	margin-bottom: 0;
	color: var(--assem-muted);
	font-size: clamp(12px, .68vw, 13px);
	line-height: 1.55;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.assem-product-card__code {
	font-size: clamp(12px, .68vw, 13px);
	font-weight: 500;
	line-height: 1.55;
	letter-spacing: .08em;
}

.assem-tech-panel {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr);
	min-height: min(820px, 76vw);
	background: var(--assem-accent);
	color: #fff;
}

.assem-tech-panel__media {
	min-height: 560px;
}

.assem-tech-panel__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: grayscale(1);
}

.assem-tech-panel__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding: clamp(50px, 6vw, 110px);
}

.assem-tech-panel__content h2 {
	max-width: 650px;
	margin-bottom: 36px;
	color: #fff;
}

.assem-tech-panel__content p {
	max-width: 540px;
	margin-bottom: 52px;
	color: rgba(255, 255, 255, .7);
	font-size: clamp(16px, 1.05vw, 19px);
	font-weight: 300;
	line-height: 1.85;
}

.assem-statement {
	padding-block: clamp(140px, 17vw, 300px);
	text-align: center;
}

.assem-statement p {
	max-width: 1480px;
	margin: 0 auto;
	font-size: clamp(30px, 3.4vw, 58px);
	font-weight: 300;
	line-height: 1.3;
	letter-spacing: -.04em;
}

.assem-statement em {
	color: var(--assem-accent);
	font-style: normal;
}

.assem-applications {
	display: grid;
	grid-template-columns: 38% 62%;
	align-items: center;
	min-height: 780px;
}

.assem-applications__copy {
	padding: clamp(50px, 7vw, 120px);
}

.assem-applications__copy h2 {
	margin-bottom: 30px;
}

.assem-applications__copy p {
	margin-bottom: 44px;
}

.assem-applications__media {
	height: 100%;
	min-height: 680px;
	background: var(--assem-soft);
}

.assem-applications__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.assem-cta {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	padding-block: clamp(100px, 12vw, 190px);
	border-top: 1px solid var(--assem-line);
}

.assem-cta h2 {
	max-width: 980px;
	margin-bottom: 0;
}

.assem-footer {
	padding: 50px var(--assem-gutter) 26px;
	background: var(--assem-ink);
	color: #fff;
}

.assem-footer__top {
	display: grid;
	grid-template-columns: 1.3fr repeat(3, 1fr);
	gap: 60px 36px;
	padding-bottom: 82px;
}

.assem-footer__logo {
	display: inline-flex;
	margin-bottom: 20px;
}

.assem-footer__logo img {
	display: block;
	width: clamp(140px, 11vw, 168px);
	height: auto;
	filter: brightness(0) invert(1);
}

.assem-footer__brand p,
.assem-footer dd,
.assem-footer a {
	color: rgba(255, 255, 255, .68);
}

.assem-footer dl {
	margin: 0;
}

.assem-footer dt {
	margin-bottom: 18px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.assem-footer dd {
	margin: 0;
	font-size: 13px;
	line-height: 1.8;
}

.assem-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding-top: 22px;
	border-top: 1px solid rgba(255, 255, 255, .2);
	color: rgba(255, 255, 255, .52);
	font-size: 10px;
	letter-spacing: .04em;
}

.assem-page-hero {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: min(780px, 75vh);
	border-bottom: 1px solid var(--assem-line);
}

.assem-page-hero__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	padding: clamp(70px, 8vw, 140px) var(--assem-gutter);
}

.assem-page-hero__copy h1 {
	margin-bottom: 34px;
}

.assem-page-hero__media {
	background: var(--assem-soft);
}

.assem-page-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.assem-two-column {
	display: grid;
	grid-template-columns: .85fr 1.15fr;
	gap: clamp(60px, 9vw, 160px);
	padding-block: clamp(100px, 13vw, 220px);
}

.assem-two-column h2 {
	position: sticky;
	top: calc(var(--assem-header) + 30px);
	margin-bottom: 0;
}

.assem-prose {
	font-size: clamp(16px, 1.3vw, 21px);
	font-weight: 300;
	line-height: 1.95;
}

.assem-prose p {
	margin-bottom: 34px;
}

.assem-values {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--assem-line);
	border-left: 1px solid var(--assem-line);
}

.assem-value {
	min-height: 310px;
	padding: 38px;
	border-right: 1px solid var(--assem-line);
	border-bottom: 1px solid var(--assem-line);
}

.assem-value span {
	display: block;
	margin-bottom: 86px;
	font-size: 10px;
	letter-spacing: .1em;
}

.assem-value h3 {
	margin-bottom: 16px;
	font-size: 20px;
	font-weight: 400;
}

.assem-value p {
	margin-bottom: 0;
	color: var(--assem-muted);
	font-size: 12px;
}

.assem-process {
	counter-reset: assem-step;
	border-top: 1px solid var(--assem-line);
}

.assem-process__item {
	display: grid;
	grid-template-columns: 100px 1fr 1fr;
	gap: 30px;
	padding-block: 34px;
	border-bottom: 1px solid var(--assem-line);
	counter-increment: assem-step;
}

.assem-process__item::before {
	content: "0" counter(assem-step);
	font-size: 11px;
	letter-spacing: .1em;
}

.assem-process__item h3 {
	margin-bottom: 0;
	font-size: 18px;
	font-weight: 400;
}

.assem-process__item p {
	max-width: 540px;
	margin-bottom: 0;
	color: var(--assem-muted);
}

.assem-application-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.assem-application-card {
	padding-top: 24px;
	border-top: 1px solid var(--assem-ink);
}

.assem-application-card span {
	font-size: 10px;
	letter-spacing: .1em;
}

.assem-application-card h3 {
	margin: 60px 0 20px;
	font-size: 26px;
	font-weight: 300;
}

.assem-application-card p {
	color: var(--assem-muted);
	font-size: 13px;
}

.assem-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 340px;
	padding: 50px;
	background: var(--assem-soft);
	text-align: center;
}

.assem-placeholder p {
	max-width: 620px;
	margin-bottom: 0;
	color: var(--assem-muted);
}

.assem-page-hero--technology .assem-page-hero__media img {
	object-position: center;
}

.assem-page-hero--technology .assem-eyebrow,
.assem-page-hero--technology .assem-display {
	text-transform: none;
}

.assem-tech-intro .assem-lead {
	margin-bottom: 34px;
	color: var(--assem-ink);
}

.assem-tech-pillars {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	padding-bottom: clamp(100px, 12vw, 210px);
	border-top: 1px solid var(--assem-line);
}

.assem-tech-pillar {
	min-height: 330px;
	padding: 34px clamp(24px, 3vw, 52px) 42px 0;
	border-right: 1px solid var(--assem-line);
}

.assem-tech-pillar + .assem-tech-pillar {
	padding-left: clamp(24px, 3vw, 52px);
}

.assem-tech-pillar:last-child {
	padding-right: 0;
	border-right: 0;
}

.assem-tech-pillar > span {
	display: block;
	margin-bottom: clamp(80px, 9vw, 150px);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .12em;
}

.assem-tech-pillar h2 {
	margin-bottom: 18px;
	font-size: clamp(22px, 2vw, 32px);
	font-weight: 300;
	letter-spacing: -.035em;
}

.assem-tech-pillar p {
	max-width: 380px;
	margin-bottom: 0;
	color: var(--assem-muted);
	font-size: 13px;
	line-height: 1.85;
}

.assem-tech-rnd {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(380px, .65fr);
	min-height: min(760px, 65vw);
	background: var(--assem-ink);
	color: #fff;
}

.assem-tech-rnd__media {
	min-height: 560px;
	overflow: hidden;
}

.assem-tech-rnd__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.assem-tech-rnd__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding: clamp(50px, 6vw, 110px);
}

.assem-tech-rnd__copy h2 {
	margin-bottom: 42px;
	color: #fff;
}

.assem-tech-rnd__copy .assem-lead {
	margin-bottom: 24px;
	color: #fff;
}

.assem-tech-rnd__copy > p:last-child {
	max-width: 560px;
	margin-bottom: 0;
	color: rgba(255, 255, 255, .68);
	line-height: 1.9;
}

.assem-tech-gallery__grid {
	display: grid;
	grid-template-columns: 1.1fr .9fr;
	align-items: start;
	gap: clamp(20px, 4vw, 74px);
}

.assem-tech-gallery figure {
	margin: 0;
}

.assem-tech-gallery figure:last-child {
	padding-top: clamp(70px, 9vw, 150px);
}

.assem-tech-gallery img {
	width: 100%;
	aspect-ratio: 1.5 / 1;
	object-fit: cover;
}

.assem-tech-gallery figcaption,
.assem-tech-transfer figcaption {
	margin-top: 16px;
	font-size: 9px;
	font-weight: 600;
	letter-spacing: .12em;
}

.assem-tech-transfer {
	display: grid;
	grid-template-columns: minmax(360px, .78fr) minmax(0, 1.22fr);
	background: var(--assem-soft);
}

.assem-tech-transfer__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding: clamp(80px, 8vw, 150px) clamp(36px, 6vw, 110px);
}

.assem-tech-transfer__copy h2 {
	margin-bottom: 40px;
}

.assem-tech-transfer__copy .assem-lead {
	margin-bottom: 24px;
	color: var(--assem-ink);
}

.assem-tech-transfer__copy > p:not(.assem-lead) {
	max-width: 620px;
	margin-bottom: 46px;
	color: var(--assem-muted);
	line-height: 1.9;
}

.assem-tech-transfer__meta {
	width: 100%;
	margin: 0;
	border-top: 1px solid var(--assem-line);
}

.assem-tech-transfer__meta > div {
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: 24px;
	padding: 16px 0;
	border-bottom: 1px solid var(--assem-line);
}

.assem-tech-transfer__meta dt {
	font-size: 9px;
	font-weight: 600;
	letter-spacing: .12em;
}

.assem-tech-transfer__meta dd {
	margin: 0;
	font-size: 12px;
}

.assem-tech-transfer__document {
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin: 0;
	padding: clamp(70px, 8vw, 140px);
	background: #323332;
	color: #fff;
}

.assem-tech-transfer__document img {
	width: min(100%, 520px);
	margin-inline: auto;
	background: #fff;
	box-shadow: 0 28px 70px rgba(0, 0, 0, .28);
}

.assem-contact-grid {
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	gap: clamp(60px, 10vw, 170px);
	padding-block: clamp(90px, 12vw, 180px);
}

.assem-contact-info h2 {
	margin-bottom: 50px;
}

.assem-contact-info dl {
	margin: 0;
	border-top: 1px solid var(--assem-line);
}

.assem-contact-info dl > div {
	display: grid;
	grid-template-columns: 100px 1fr;
	gap: 20px;
	padding: 20px 0;
	border-bottom: 1px solid var(--assem-line);
}

.assem-contact-info dt {
	font-size: 11px;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.assem-contact-info dd {
	margin: 0;
	font-size: 14px;
}

.assem-contact-note {
	margin-bottom: 30px;
	padding: 15px 18px;
	background: var(--assem-soft);
	font-size: 12px;
}

.assem-order-section {
	border-block: 1px solid var(--assem-line);
}

.assem-order-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
	align-items: start;
	gap: clamp(60px, 9vw, 150px);
}

.assem-order-steps {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--assem-line);
	list-style: none;
}

.assem-order-step {
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 26px;
	padding: 27px 0;
	border-bottom: 1px solid var(--assem-line);
}

.assem-order-step > span {
	padding-top: 4px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .12em;
}

.assem-order-step h3 {
	margin-bottom: 8px;
	font-size: 18px;
	font-weight: 400;
}

.assem-order-step p {
	margin-bottom: 0;
	color: var(--assem-muted);
	font-size: 13px;
}

.assem-lead-times {
	position: sticky;
	top: calc(var(--assem-header) + 34px);
	padding: clamp(30px, 4vw, 54px);
	background: var(--assem-ink);
	color: #fff;
}

.assem-lead-times .assem-eyebrow {
	color: rgba(255, 255, 255, .58);
}

.assem-lead-times > h3 {
	margin: 20px 0 38px;
	color: #fff;
	font-size: clamp(27px, 2.5vw, 40px);
	font-weight: 300;
	letter-spacing: -.035em;
}

.assem-lead-time-table {
	border-top: 1px solid rgba(255, 255, 255, .24);
}

.assem-lead-time-table > div {
	display: grid;
	grid-template-columns: minmax(120px, .8fr) minmax(150px, 1.2fr);
	gap: 22px;
	padding: 19px 0;
	border-bottom: 1px solid rgba(255, 255, 255, .24);
}

.assem-lead-time-table strong {
	font-size: 12px;
	font-weight: 500;
}

.assem-lead-time-table span {
	color: rgba(255, 255, 255, .82);
	font-size: 13px;
}

.assem-lead-time-table small {
	color: rgba(255, 255, 255, .5);
	font-size: 11px;
}

.assem-contact-alert {
	margin-bottom: 26px;
	padding: 16px 18px;
	border: 1px solid var(--assem-line);
	font-size: 12px;
}

.assem-contact-alert--success {
	background: #edf3eb;
	border-color: #c5d4c1;
}

.assem-contact-alert--error {
	background: #f8eeee;
	border-color: #dfc7c7;
}

.assem-native-contact-form {
	position: relative;
}

.assem-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
}

.assem-form-field {
	display: block;
	margin-bottom: 34px;
}

.assem-form-field > span {
	display: block;
	margin-bottom: 12px;
	font-size: clamp(14px, .82vw, 16px);
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: .06em;
}

.assem-form-field b {
	color: var(--assem-accent);
	font-weight: 600;
}

.assem-contact-form .assem-form-field input,
.assem-contact-form .assem-form-field textarea {
	width: 100%;
	padding: 14px 0;
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--assem-line);
	border-radius: 0;
	font-size: clamp(15px, .9vw, 17px);
	line-height: 1.6;
	outline: none;
	transition: border-color .25s ease;
}

.assem-contact-form .assem-form-field textarea {
	min-height: 170px;
	resize: vertical;
}

.assem-contact-form .assem-form-field input:focus,
.assem-contact-form .assem-form-field textarea:focus {
	border-color: var(--assem-ink);
}

.assem-contact-submit {
	cursor: pointer;
}

.assem-form-honeypot {
	position: absolute;
	top: auto;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.assem-contact-form .wpforms-container {
	margin: 0;
}

.assem-contact-form .wpforms-field {
	padding: 0 0 26px !important;
}

.assem-contact-form .wpforms-field-label {
	margin-bottom: 10px !important;
	font-size: clamp(14px, .82vw, 16px) !important;
	font-weight: 500 !important;
	line-height: 1.45 !important;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.assem-contact-form input[type="text"],
.assem-contact-form input[type="email"],
.assem-contact-form textarea {
	width: 100% !important;
	max-width: none !important;
	padding: 12px 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--assem-line) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.assem-contact-form textarea {
	min-height: 150px;
}

.assem-contact-form button[type="submit"] {
	min-width: 240px !important;
	min-height: 60px;
	padding: 16px 34px !important;
	background: var(--assem-ink) !important;
	border: 1px solid var(--assem-ink) !important;
	border-radius: 0 !important;
	color: #fff !important;
	font-size: clamp(14px, .85vw, 16px) !important;
	font-weight: 500 !important;
	letter-spacing: .06em;
}

.assem-archive-header {
	padding: clamp(100px, 11vw, 180px) var(--assem-gutter) clamp(60px, 7vw, 110px);
}

.assem-archive-header h1 {
	margin-bottom: 0;
}

.assem-archive-header--contact .assem-display {
	text-transform: none;
}

.assem-archive-header .assem-eyebrow {
	margin-bottom: 26px;
	font-size: clamp(14px, .85vw, 17px);
}

.assem-series-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 34px;
	margin-bottom: 44px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--assem-line);
	font-size: clamp(13px, .78vw, 15px);
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: .065em;
	text-transform: uppercase;
}

.assem-series-filter a {
	color: var(--assem-muted);
}

.assem-series-filter a:hover,
.assem-series-filter a.is-active {
	color: var(--assem-ink);
}

.assem-archive-products {
	padding-bottom: clamp(100px, 12vw, 190px);
}

.assem-empty {
	padding: 100px 0;
	border-top: 1px solid var(--assem-line);
	color: var(--assem-muted);
}

.assem-product-detail {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(380px, .75fr);
	min-height: calc(100vh - var(--assem-header));
}

.assem-product-gallery {
	padding: var(--assem-gutter);
	background: var(--assem-soft);
}

.assem-product-gallery__main {
	--assem-image-edge-top: var(--assem-soft);
	--assem-image-edge-bottom: var(--assem-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(
		to bottom,
		var(--assem-image-edge-top) 0 50%,
		var(--assem-image-edge-bottom) 50% 100%
	);
	min-height: calc(100vh - var(--assem-header) - (var(--assem-gutter) * 2));
}

.assem-product-gallery__main img {
	display: block;
	width: 100%;
	max-height: calc(100vh - var(--assem-header) - (var(--assem-gutter) * 2));
	object-fit: contain;
	object-position: 50% 50%;
}

.assem-product-gallery__thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
}

.assem-product-gallery__thumb {
	width: 72px;
	height: 58px;
	padding: 0;
	background: #fff;
	border: 1px solid transparent;
	cursor: pointer;
}

.assem-product-gallery__thumb.is-active {
	border-color: var(--assem-ink);
}

.assem-product-gallery__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.assem-product-info {
	position: sticky;
	top: var(--assem-header);
	align-self: start;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: calc(100vh - var(--assem-header));
	padding: clamp(50px, 6vw, 110px);
}

.assem-product-info h1 {
	margin-bottom: 14px;
	font-size: clamp(32px, 3.2vw, 54px);
	font-weight: 300;
	line-height: 1.12;
	letter-spacing: -.04em;
}

.assem-product-info__code {
	margin-bottom: 50px;
	font-size: 10px;
	letter-spacing: .1em;
}

.assem-product-info__description {
	margin-bottom: 46px;
	color: var(--assem-muted);
	font-size: 14px;
	line-height: 1.9;
}

.assem-specs {
	margin: 0 0 48px;
	border-top: 1px solid var(--assem-line);
}

.assem-specs > div {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 20px;
	padding: 14px 0;
	border-bottom: 1px solid var(--assem-line);
}

.assem-specs dt {
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.assem-specs dd {
	margin: 0;
	font-size: 13px;
}

.assem-series-card__content p,
.assem-application-card p,
.assem-tech-pillar p,
.assem-tech-transfer__copy > p:not(.assem-lead),
.assem-order-step p,
.assem-product-info__description {
	font-size: clamp(15px, .95vw, 17px);
}

.assem-related {
	padding-block: clamp(100px, 12vw, 190px);
}

.assem-related h2 {
	margin-bottom: 60px;
}

.assem-reveal,
.assem-motion {
	opacity: 1;
	transform: none;
}

.js .assem-reveal,
.js .assem-motion {
	opacity: 0;
	filter: blur(2px);
	transform: translateY(30px);
	transition: opacity .936s var(--assem-ease), filter .936s var(--assem-ease), transform 1.104s var(--assem-ease);
	transition-delay: var(--assem-delay, 0ms);
	will-change: opacity, filter, transform;
}

.js .assem-motion--left {
	transform: translateX(-38px);
}

.js .assem-motion--right {
	transform: translateX(38px);
}

.js .assem-motion--scale {
	transform: translateY(20px) scale(.975);
}

.js .assem-reveal.is-visible,
.js .assem-motion.is-visible {
	opacity: 1;
	filter: none;
	transform: none;
}

.js .assem-motion--media {
	overflow: hidden;
	transform: translateY(36px) scale(.982);
}

.js .assem-motion--media.is-visible {
	transform: none;
}

.js .assem-motion--media > img {
	transform: scale(1.055);
	transition: transform 1.62s var(--assem-ease);
	transition-delay: var(--assem-delay, 0ms);
}

.js .assem-motion--media.is-visible > img {
	transform: scale(1);
}

.js.assem-motion-preparing .assem-reveal,
.js.assem-motion-preparing .assem-motion,
.js.assem-motion-preparing .assem-motion--media > img {
	transition: none !important;
}

.assem-generic-content {
	max-width: 900px;
	padding-block: 100px;
}

.assem-generic-content h1 {
	margin-bottom: 50px;
}

@media (max-width: 1100px) {
	:root {
		--assem-header: 58px;
	}

	.assem-nav {
		display: none;
	}

	.assem-header__inner {
		grid-template-columns: 1fr auto 1fr;
	}

	.assem-logo {
		grid-column: 2;
	}

	.assem-logo__image {
		width: 112px;
	}

	.assem-menu-toggle {
		grid-column: 3;
		display: block;
		justify-self: end;
	}

	.assem-series-card {
		grid-column: span 6;
	}

	.assem-series-card:last-child {
		grid-column: 4 / span 6;
	}

	.assem-tech-panel,
	.assem-page-hero,
	.assem-tech-rnd,
	.assem-tech-transfer,
	.assem-product-detail {
		grid-template-columns: 1fr;
	}

	.assem-tech-panel__media {
		min-height: 66vw;
	}

	.assem-applications {
		grid-template-columns: 1fr;
	}

	.assem-applications__media {
		min-height: 70vw;
	}

	.assem-page-hero__copy {
		min-height: 440px;
	}

	.assem-page-hero__media {
		min-height: 70vw;
	}

	.assem-tech-rnd__media {
		min-height: 62vw;
	}

	.assem-tech-rnd__copy,
	.assem-tech-transfer__copy {
		min-height: 560px;
	}

	.assem-tech-transfer__document {
		padding: clamp(56px, 10vw, 100px);
	}

	.assem-product-gallery__main {
		min-height: auto;
	}

	.assem-product-gallery__main img {
		max-height: none;
	}

	.assem-product-info {
		position: static;
		min-height: auto;
	}
}

@media (max-width: 760px) {
	.admin-bar .assem-header {
		top: 46px;
	}

	.assem-section-head,
	.assem-cta,
	.assem-footer__bottom {
		align-items: flex-start;
		flex-direction: column;
	}

	.assem-hero {
		min-height: 760px;
	}

	.assem-hero__poster,
	.assem-hero__video {
		object-position: 62% center;
	}

	.assem-hero__media::after {
		background: linear-gradient(180deg, rgba(0, 0, 0, .08) 0%, rgba(0, 0, 0, .28) 50%, rgba(0, 0, 0, .82) 100%);
	}

	.assem-hero__content {
		width: 100%;
		padding-bottom: 62px;
	}

	.assem-hero .assem-eyebrow {
		margin-bottom: 18px;
		font-size: 12px;
	}

	.assem-hero__content p {
		max-width: 90%;
	}

	.assem-series-card,
	.assem-series-card:last-child {
		grid-column: 1 / -1;
	}

	.assem-series-card:nth-child(2) {
		padding-top: 0;
	}

	.assem-series-card__media {
		aspect-ratio: 4 / 4.5;
	}

	.assem-products-grid {
		grid-template-columns: 1fr;
		row-gap: 60px;
	}

	.assem-tech-panel__content {
		padding-inline: var(--assem-gutter);
	}

	.assem-statement p {
		font-size: clamp(26px, 7vw, 32px);
		text-align: left;
	}

	.assem-footer__top {
		grid-template-columns: 1fr 1fr;
	}

	.assem-footer__brand {
		grid-column: 1 / -1;
	}

	.assem-two-column,
	.assem-contact-grid,
	.assem-order-grid {
		grid-template-columns: 1fr;
	}

	.assem-two-column h2 {
		position: static;
	}

	.assem-values,
	.assem-application-grid,
	.assem-tech-pillars,
	.assem-tech-gallery__grid {
		grid-template-columns: 1fr;
	}

	.assem-tech-pillar,
	.assem-tech-pillar + .assem-tech-pillar,
	.assem-tech-pillar:last-child {
		min-height: 0;
		padding: 30px 0 46px;
		border-right: 0;
		border-bottom: 1px solid var(--assem-line);
	}

	.assem-tech-pillar > span {
		margin-bottom: 64px;
	}

	.assem-tech-rnd__copy,
	.assem-tech-transfer__copy {
		min-height: 0;
		padding: 80px var(--assem-gutter);
	}

	.assem-tech-gallery figure:last-child {
		padding-top: 40px;
	}

	.assem-tech-transfer__document {
		padding: 54px 20px;
	}

	.assem-process__item {
		grid-template-columns: 52px 1fr;
	}

	.assem-process__item p {
		grid-column: 2;
	}

	.assem-product-gallery {
		padding: 12px;
	}

	.assem-product-info {
		padding-inline: var(--assem-gutter);
	}

	.assem-specs > div,
	.assem-contact-info dl > div {
		grid-template-columns: 88px 1fr;
	}

	.assem-lead-times {
		position: static;
	}

	.assem-form-row {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.assem-lead-time-table > div {
		grid-template-columns: 1fr;
		gap: 6px;
	}
}

@media (min-width: 761px) {
	.assem-hero .assem-eyebrow {
		margin-left: 6px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto !important;
	}

	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}

	.js .assem-header,
	.js .assem-site-main {
		transition-duration: .01ms !important;
	}

	.js .assem-reveal,
	.js .assem-motion {
		filter: none !important;
		transform: translateY(12px);
		transition: opacity .48s var(--assem-ease), transform .576s var(--assem-ease) !important;
		transition-delay: var(--assem-delay, 0ms) !important;
	}

	.js .assem-motion--left {
		transform: translateX(-12px);
	}

	.js .assem-motion--right {
		transform: translateX(12px);
	}

	.js .assem-motion--scale,
	.js .assem-motion--media {
		transform: translateY(10px) scale(.995);
	}

	.js .assem-reveal.is-visible,
	.js .assem-motion.is-visible,
	.js .assem-motion--media.is-visible {
		opacity: 1;
		transform: none;
	}

	.js .assem-motion--media > img {
		transform: scale(1.018);
		transition-duration: .672s !important;
	}

	.js .assem-motion--media.is-visible > img {
		transform: scale(1);
	}

	.js body.assem-site::after {
		display: none;
	}
}
