/**
 * Cinematic layer: hero, 3D stage, media, service pages.
 * Caricato dopo assembly.css.
 */

:root {
	--asm-night: #080a0d;
	--asm-night-2: #0f1319;
	--asm-night-3: #151b23;
	--asm-paper: #f4f3ee;
	--asm-paper-2: #eae8e0;
	--asm-accent-2: #ff7a3d;
	--asm-muted-light: rgba(244, 243, 238, 0.72);
	--asm-line-dark: rgba(255, 255, 255, 0.13);
	--asm-glass: rgba(255, 255, 255, 0.06);
	--asm-radius: 24px;
	--asm-header-h: 76px;
}

html {
	overflow-x: clip;
	scroll-behavior: smooth;
}

body {
	background: var(--asm-paper);
	color: var(--asm-ink);
	overflow-x: clip;
}

::selection {
	background: var(--asm-accent);
	color: #fff;
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

.asm-header {
	background: rgba(8, 10, 13, 0.62);
	border-bottom: 1px solid var(--asm-line-dark);
	color: var(--asm-paper);
	backdrop-filter: blur(18px) saturate(150%);
	transition: background 240ms var(--asm-ease-snap), transform 240ms var(--asm-ease-snap);
}

.asm-header.is-scrolled {
	background: rgba(8, 10, 13, 0.94);
}

.asm-header.is-hidden {
	transform: translateY(-110%);
}

.asm-header__inner {
	min-height: var(--asm-header-h);
	gap: 18px;
}

.asm-header__brand {
	position: relative;
	z-index: 2;
	padding: 7px 10px;
	border-radius: 8px;
	background: var(--asm-paper);
}

.asm-header__brand img {
	height: 30px;
}

.asm-nav .wp-block-navigation-item__content {
	color: var(--asm-paper);
	font-size: 9px;
	letter-spacing: 0.12em;
}

.asm-nav .wp-block-navigation-item__content:hover,
.asm-nav .wp-block-navigation-item__content:focus-visible {
	color: var(--asm-accent);
}

.asm-nav .wp-block-navigation__responsive-container-open,
.asm-nav .wp-block-navigation__responsive-container-close {
	color: var(--asm-paper);
}

.asm-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--asm-night);
	color: var(--asm-paper);
}

.asm-nav .wp-block-navigation__submenu-container {
	min-width: 240px;
	padding: 8px;
	border: 1px solid var(--asm-line-dark);
	border-radius: 14px;
	background: var(--asm-night-2);
	box-shadow: 0 24px 50px rgba(0, 0, 0, 0.42);
}

.asm-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: var(--asm-paper);
}

.asm-header__cta {
	position: relative;
	z-index: 2;
	display: none;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 10px 18px;
	border: 1px solid transparent;
	border-radius: 999px;
	background: var(--asm-accent);
	color: #fff;
	font-family: var(--asm-mono);
	font-size: 9px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow: 0 10px 24px rgba(255, 74, 28, 0.24);
}

.asm-header__cta:hover,
.asm-header__cta:focus-visible {
	background: var(--asm-paper);
	color: var(--asm-ink);
	text-decoration: none;
}

.asm-nav {
	margin-left: auto;
}

.asm-menu {
	display: flex;
	align-items: center;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.asm-menu__item {
	position: relative;
}

.asm-menu__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 42px;
	padding: 8px 10px;
	border: 0;
	background: transparent;
	color: var(--asm-paper);
	font-family: var(--asm-mono);
	font-size: 9px;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
}

.asm-menu__link:hover,
.asm-menu__link:focus-visible {
	color: var(--asm-accent);
	text-decoration: none;
}

.asm-menu__link span {
	color: var(--asm-accent);
}

.asm-menu__sub {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 6;
	min-width: 250px;
	margin: 0;
	padding: 8px;
	list-style: none;
	border: 1px solid var(--asm-line-dark);
	border-radius: 14px;
	background: var(--asm-night-2);
	box-shadow: 0 24px 50px rgba(0, 0, 0, 0.42);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 180ms var(--asm-ease-snap), transform 180ms var(--asm-ease-snap), visibility 180ms;
}

.asm-menu__sub a {
	display: block;
	padding: 10px 12px;
	border-radius: 8px;
	color: var(--asm-paper);
	font-family: var(--asm-mono);
	font-size: 9px;
	letter-spacing: 0.1em;
	line-height: 1.3;
	text-transform: uppercase;
	text-decoration: none;
}

.asm-menu__sub a:hover,
.asm-menu__sub a:focus-visible {
	background: rgba(255, 255, 255, 0.07);
	color: var(--asm-accent);
	text-decoration: none;
}

.asm-menu__item--has-sub:hover .asm-menu__sub,
.asm-menu__item--has-sub:focus-within .asm-menu__sub,
.asm-menu__item--has-sub.is-open .asm-menu__sub {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.asm-nav__toggle {
	position: relative;
	z-index: 2;
	display: none;
	place-items: center;
	gap: 5px;
	width: 46px;
	height: 46px;
	margin-left: auto;
	padding: 12px;
	border: 1px solid var(--asm-line-dark);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.04);
	cursor: pointer;
}

.asm-nav__toggle span {
	display: block;
	width: 18px;
	height: 1px;
	background: var(--asm-paper);
	transition: transform 180ms var(--asm-ease-snap), opacity 180ms var(--asm-ease-snap);
}

.asm-nav.is-open .asm-nav__toggle span:nth-child(1) {
	transform: translateY(6px) rotate(45deg);
}

.asm-nav.is-open .asm-nav__toggle span:nth-child(2) {
	opacity: 0;
}

.asm-nav.is-open .asm-nav__toggle span:nth-child(3) {
	transform: translateY(-6px) rotate(-45deg);
}

body.asm-nav-open {
	overflow: hidden;
}

body.asm-nav-open .asm-proposal-banner {
	display: none;
}

/* --------------------------------------------------------------------------
   Tipografia e bottoni
   -------------------------------------------------------------------------- */

.asm-kicker {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	font-family: var(--asm-mono);
	font-size: 10px;
	letter-spacing: 0.16em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--asm-accent);
}

.asm-kicker::before {
	content: "";
	width: 28px;
	height: 1px;
	background: currentColor;
}

.asm-display {
	margin: 0 0 22px;
	font-size: clamp(2.3rem, 5vw, 5rem);
	line-height: 0.94;
	letter-spacing: -0.06em;
	text-wrap: balance;
}

.asm-display em {
	font-style: italic;
	color: var(--asm-accent);
	font-weight: 500;
}

.asm-lead {
	max-width: 64ch;
	margin: 0;
	font-size: clamp(1rem, 1.1vw, 1.13rem);
	line-height: 1.65;
	color: var(--asm-ink-2);
}

a.asm-btn,
.wp-block-button.asm-btn .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	padding: 14px 22px;
	border: 1px solid transparent;
	border-radius: 999px;
	background: var(--asm-paper);
	color: var(--asm-night);
	font-family: var(--asm-mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.11em;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	transition: transform 180ms var(--asm-ease-snap), background 180ms var(--asm-ease-snap), color 180ms var(--asm-ease-snap), border-color 180ms var(--asm-ease-snap);
}

a.asm-btn:hover,
a.asm-btn:focus-visible,
.wp-block-button.asm-btn .wp-block-button__link:hover,
.wp-block-button.asm-btn .wp-block-button__link:focus-visible {
	transform: translateY(-2px);
	text-decoration: none;
}

a.asm-btn--accent,
.wp-block-button.asm-btn--accent .wp-block-button__link {
	background: linear-gradient(135deg, var(--asm-accent), var(--asm-accent-2));
	color: #fff;
	box-shadow: 0 14px 34px rgba(255, 74, 28, 0.28);
}

a.asm-btn--accent:hover,
a.asm-btn--accent:focus-visible {
	background: var(--asm-paper);
	color: var(--asm-night);
	box-shadow: 0 18px 34px rgba(255, 255, 255, 0.12);
}

a.asm-btn--ghost,
.wp-block-button.asm-btn--ghost .wp-block-button__link {
	border-color: rgba(255, 255, 255, 0.24);
	background: rgba(255, 255, 255, 0.05);
	color: var(--asm-paper);
	backdrop-filter: blur(10px);
}

a.asm-btn--ghost:hover,
a.asm-btn--ghost:focus-visible {
	border-color: var(--asm-paper);
	background: var(--asm-paper);
	color: var(--asm-night);
}

/* --------------------------------------------------------------------------
   Reveal / parallax / tilt
   -------------------------------------------------------------------------- */

html.has-motion [data-reveal] {
	opacity: 0;
	transform: translate3d(0, 30px, 0);
	transition: opacity 800ms cubic-bezier(0.2, 0.7, 0.2, 1) var(--reveal-delay, 0ms), transform 800ms cubic-bezier(0.2, 0.7, 0.2, 1) var(--reveal-delay, 0ms);
}

html.has-motion [data-reveal].is-visible {
	opacity: 1;
	transform: none;
}

[data-parallax] {
	will-change: transform;
	transform: translate3d(0, var(--parallax-y, 0), 0) scale(1.08);
}

[data-tilt] {
	transform: perspective(950px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
	transition: transform 300ms var(--asm-ease-snap), border-color 300ms var(--asm-ease-snap);
}

.asm-scroll-progress {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	width: 100%;
	height: 2px;
	background: linear-gradient(90deg, var(--asm-accent), var(--asm-accent-2));
	transform: scaleX(0);
	transform-origin: 0 50%;
	pointer-events: none;
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */

.asm-cine-hero {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: center;
	min-height: calc(100svh - var(--asm-header-h));
	padding: clamp(54px, 7vw, 96px) var(--asm-gutter) 86px;
	overflow: hidden;
	background: var(--asm-night);
	color: var(--asm-paper);
}

.asm-cine-hero__bg {
	position: absolute;
	inset: -8% 0;
	z-index: -3;
}

.asm-cine-hero__bg img {
	width: 100%;
	height: 118%;
	object-fit: cover;
	object-position: center 56%;
	opacity: 0.55;
	filter: saturate(0.72) contrast(1.08);
}

.asm-cine-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -2;
	background:
		linear-gradient(90deg, rgba(8, 10, 13, 0.98) 0%, rgba(8, 10, 13, 0.9) 36%, rgba(8, 10, 13, 0.38) 68%, rgba(8, 10, 13, 0.86) 100%),
		linear-gradient(180deg, rgba(8, 10, 13, 0.52), transparent 30%, rgba(8, 10, 13, 0.96) 100%);
}

.asm-cine-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
	background-size: 76px 76px;
	mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.8), transparent 78%);
	opacity: 0.55;
	pointer-events: none;
}

.asm-cine-hero__inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
	gap: clamp(22px, 4vw, 64px);
	align-items: center;
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
}

.asm-cine-hero__copy {
	max-width: 760px;
}

.asm-cine-hero h1 {
	max-width: 12ch;
	margin: 0 0 26px;
	font-size: clamp(3.2rem, 7.6vw, 8.2rem);
	line-height: 0.85;
	letter-spacing: -0.065em;
	text-wrap: balance;
}

.asm-cine-hero h1 em {
	display: block;
	font-style: italic;
	font-weight: 500;
	color: var(--asm-accent);
}

.asm-cine-hero__lead {
	max-width: 56ch;
	margin: 0 0 30px;
	font-size: clamp(1.02rem, 1.3vw, 1.22rem);
	line-height: 1.6;
	color: var(--asm-muted-light);
}

.asm-cine-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 38px;
}

.asm-cine-hero__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	padding-top: 22px;
	border-top: 1px solid var(--asm-line-dark);
}

.asm-cine-hero__stats div {
	display: grid;
	gap: 2px;
}

.asm-cine-hero__stats strong {
	font-size: clamp(1.5rem, 2.4vw, 2.2rem);
	line-height: 1;
	letter-spacing: -0.05em;
	color: var(--asm-paper);
}

.asm-cine-hero__stats span {
	font-family: var(--asm-mono);
	font-size: 8px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(244, 243, 238, 0.48);
}

.asm-cine-hero__visual {
	position: relative;
	min-width: 0;
}

.asm-cine-hero__visual::before {
	content: "";
	position: absolute;
	inset: 8% -4%;
	z-index: -1;
	background: radial-gradient(circle at 55% 45%, rgba(255, 74, 28, 0.26), transparent 62%);
	filter: blur(42px);
}

.asm-cine-hero__badge {
	position: absolute;
	right: 10px;
	bottom: 30px;
	z-index: 4;
	padding: 12px 14px;
	border: 1px solid var(--asm-line-dark);
	border-radius: 12px;
	background: rgba(8, 10, 13, 0.72);
	backdrop-filter: blur(14px);
	font-family: var(--asm-mono);
	font-size: 8px;
	line-height: 1.7;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	color: rgba(244, 243, 238, 0.64);
}

.asm-cine-hero__badge strong {
	display: block;
	font-size: 12px;
	color: var(--asm-accent);
}

/* Marquee */

.asm-cine-marquee {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 5;
	overflow: hidden;
	border-top: 1px solid var(--asm-line-dark);
	background: rgba(8, 10, 13, 0.72);
	backdrop-filter: blur(14px);
}

.asm-cine-marquee__track {
	display: flex;
	width: max-content;
	animation: asm-marquee 34s linear infinite;
}

.asm-cine-marquee span {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	padding: 12px 0 12px 26px;
	font-family: var(--asm-mono);
	font-size: 9px;
	letter-spacing: 0.14em;
	white-space: nowrap;
	text-transform: uppercase;
	color: rgba(244, 243, 238, 0.64);
}

.asm-cine-marquee span::after {
	content: "✦";
	margin-left: 18px;
	color: var(--asm-accent);
}

@keyframes asm-marquee {
	to {
		transform: translateX(-50%);
	}
}

/* --------------------------------------------------------------------------
   3D stage
   -------------------------------------------------------------------------- */

.asm-3d {
	position: relative;
	isolation: isolate;
	height: 560px;
	overflow: hidden;
	border: 1px solid var(--asm-line-dark);
	border-radius: var(--asm-radius);
	background:
		radial-gradient(circle at 50% 42%, rgba(255, 74, 28, 0.14), transparent 58%),
		#0d1116;
}

.asm-3d__poster {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.42;
	filter: grayscale(0.35) contrast(1.08);
	transition: opacity 700ms var(--asm-ease-snap);
}

.asm-3d.is-ready .asm-3d__poster {
	opacity: 0.06;
}

.asm-3d.is-fallback .asm-3d__poster {
	opacity: 0.68;
}

.asm-3d__canvas {
	position: absolute;
	inset: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
}

.asm-3d__hud {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 3;
	display: grid;
	gap: 4px;
	padding: 12px 14px;
	border: 1px solid var(--asm-line-dark);
	border-radius: 12px;
	background: rgba(8, 10, 13, 0.58);
	backdrop-filter: blur(12px);
}

.asm-3d__hud strong {
	font-size: 1.05rem;
	letter-spacing: -0.03em;
	color: var(--asm-paper);
}

.asm-3d__legend {
	position: absolute;
	right: 16px;
	bottom: 16px;
	left: 16px;
	z-index: 3;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	max-width: 72%;
}

.asm-3d__legend span {
	padding: 5px 8px;
	border: 1px solid var(--asm-line-dark);
	border-radius: 999px;
	background: rgba(8, 10, 13, 0.58);
	font-family: var(--asm-mono);
	font-size: 8px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(244, 243, 238, 0.64);
	backdrop-filter: blur(10px);
}

.asm-3d__caption {
	position: absolute;
	right: 16px;
	bottom: 52px;
	z-index: 3;
	max-width: 250px;
	margin: 0;
	font-size: 10px;
	line-height: 1.5;
	text-align: right;
	color: rgba(244, 243, 238, 0.48);
}

.asm-3d--hero {
	height: clamp(440px, 52vw, 650px);
	overflow: visible;
	border: 0;
	background: transparent;
	transform: translateY(var(--hero-3d-y, 0)) scale(var(--hero-3d-scale, 1));
	transition: transform 120ms linear;
	will-change: transform;
}

.asm-3d--hero .asm-3d__poster {
	opacity: 0.08;
}

.asm-3d--hero .asm-3d__legend,
.asm-3d--hero .asm-3d__hud,
.asm-3d--hero .asm-3d__caption {
	display: none;
}

.asm-3d--page {
	height: clamp(380px, 46vw, 560px);
}

.asm-3d--stage {
	width: 100%;
	max-width: 1040px;
	height: clamp(430px, 52vw, 650px);
	margin: 0 auto;
}

/* --------------------------------------------------------------------------
   Sezioni
   -------------------------------------------------------------------------- */

.asm-cine-section {
	position: relative;
	padding: clamp(66px, 8.5vw, 128px) var(--asm-gutter);
}

.asm-cine-section__inner {
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
}

.asm-cine-section--light {
	background: var(--asm-paper);
	color: var(--asm-ink);
}

.asm-cine-section--soft {
	background: var(--asm-paper-2);
	color: var(--asm-ink);
}

.asm-cine-section--dark {
	background: var(--asm-night);
	color: var(--asm-paper);
}

.asm-cine-section--dark .asm-lead,
.asm-services .asm-lead,
.asm-clip-section .asm-lead,
.asm-process-section .asm-lead,
.asm-cine-calc .asm-lead,
.asm-cine-contact .asm-lead,
.asm-svc-cta .asm-lead,
.asm-page-hero .asm-lead {
	color: var(--asm-muted-light);
}

.asm-section-head {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: 24px;
	align-items: end;
	margin-bottom: 38px;
}

.asm-section-head .asm-lead {
	margin: 0;
}

/* --------------------------------------------------------------------------
   Servizi
   -------------------------------------------------------------------------- */

.asm-services {
	background: var(--asm-night);
	color: var(--asm-paper);
}

.asm-services .asm-lead {
	color: var(--asm-muted-light);
}

.asm-services .asm-kicker {
	color: var(--asm-accent);
}

.asm-service-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
}

.asm-service-card {
	position: relative;
	display: block;
	min-height: 390px;
	overflow: hidden;
	border: 1px solid var(--asm-line-dark);
	border-radius: var(--asm-radius);
	background: var(--asm-night-2);
	color: var(--asm-paper);
	text-decoration: none;
	transform-style: preserve-3d;
}

.asm-service-card:hover,
.asm-service-card:focus-visible {
	border-color: rgba(255, 74, 28, 0.55);
	color: var(--asm-paper);
	text-decoration: none;
}

.asm-service-card__media {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.asm-service-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.72;
	filter: saturate(0.7) contrast(1.05);
	transition: transform 700ms var(--asm-ease-snap), opacity 400ms var(--asm-ease-snap), filter 400ms var(--asm-ease-snap);
}

.asm-service-card:hover .asm-service-card__media img,
.asm-service-card:focus-visible .asm-service-card__media img {
	opacity: 0.9;
	filter: saturate(1) contrast(1.05);
	transform: scale(1.08);
}

.asm-service-card__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(8, 10, 13, 0.02) 18%, rgba(8, 10, 13, 0.36) 54%, rgba(8, 10, 13, 0.94) 100%);
}

.asm-service-card__num {
	position: absolute;
	top: 18px;
	left: 18px;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid var(--asm-line-dark);
	border-radius: 50%;
	background: rgba(8, 10, 13, 0.55);
	font-family: var(--asm-mono);
	font-size: 9px;
	color: var(--asm-accent);
	backdrop-filter: blur(10px);
}

.asm-service-card__body {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 2;
	padding: 24px;
	padding-right: 72px;
}

.asm-service-card h3 {
	margin: 0 0 8px;
	font-size: clamp(1.35rem, 2vw, 1.9rem);
	line-height: 1;
	letter-spacing: -0.04em;
}

.asm-service-card p {
	max-width: 34ch;
	margin: 0;
	font-size: 0.88rem;
	line-height: 1.5;
	color: rgba(244, 243, 238, 0.72);
}

.asm-service-card__arrow {
	position: absolute;
	right: 20px;
	bottom: 22px;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--asm-accent);
	color: #fff;
	font-size: 18px;
	transition: transform 250ms var(--asm-ease-snap), background 250ms var(--asm-ease-snap);
}

.asm-service-card:hover .asm-service-card__arrow,
.asm-service-card:focus-visible .asm-service-card__arrow {
	transform: rotate(45deg);
	background: var(--asm-paper);
	color: var(--asm-night);
}

.asm-services__more {
	max-width: var(--asm-container);
	margin: 28px auto 0;
	text-align: right;
}

/* --------------------------------------------------------------------------
   Lab / inspector
   -------------------------------------------------------------------------- */

.asm-cine-lab {
	padding: clamp(66px, 8.5vw, 128px) var(--asm-gutter);
	background: var(--asm-paper-2);
	color: var(--asm-ink);
}

.asm-cine-lab__inner {
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
}

.asm-cine-lab .asm-inspector {
	margin-top: 34px;
}

.asm-cine-lab .asm-inspector__bar {
	padding-bottom: 10px;
}

.asm-cine-lab .asm-seg {
	border-radius: 999px;
	background: transparent;
}

.asm-cine-lab .asm-panel {
	padding: 26px 0 8px;
}

.asm-cine-lab .asm-panel h3 {
	font-size: clamp(1.5rem, 2.6vw, 2.5rem);
}

.asm-cine-lab .asm-spec {
	margin-top: 28px;
	overflow: hidden;
	border-radius: 20px;
	border-color: rgba(18, 19, 15, 0.14);
	box-shadow: 0 26px 60px rgba(18, 19, 15, 0.07);
}

/* --------------------------------------------------------------------------
   Clip verticale
   -------------------------------------------------------------------------- */

.asm-clip-section {
	padding: clamp(66px, 8.5vw, 128px) var(--asm-gutter);
	background: var(--asm-night);
	color: var(--asm-paper);
}

.asm-clip-section__inner {
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
}

.asm-clip-section__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.35fr);
	gap: clamp(28px, 5vw, 70px);
	align-items: center;
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
}

.asm-clip-section__copy .asm-btn {
	margin-top: 22px;
}

.asm-clip-rail {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.asm-clip-card {
	position: relative;
	aspect-ratio: 9 / 16;
	max-height: 520px;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 22px;
	background: #111;
	box-shadow: 0 34px 70px rgba(0, 0, 0, 0.42), 0 0 0 1px rgba(255, 74, 28, 0.1);
}

.asm-clip-card video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.asm-clip-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.08), transparent 42%, rgba(0, 0, 0, 0.72));
	pointer-events: none;
}

.asm-clip-card__overlay {
	position: absolute;
	right: 16px;
	bottom: 16px;
	left: 16px;
	z-index: 2;
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-family: var(--asm-mono);
	font-size: 8px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.72);
}

.asm-clip-section__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
	margin-top: 34px;
	padding-top: 22px;
	border-top: 1px solid var(--asm-line-dark);
}

.asm-clip-section__stats strong {
	display: block;
	font-size: clamp(1.5rem, 2.4vw, 2.1rem);
	line-height: 1;
	letter-spacing: -0.05em;
	color: var(--asm-paper);
}

.asm-clip-section__stats span {
	font-family: var(--asm-mono);
	font-size: 8px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(244, 243, 238, 0.48);
}

/* --------------------------------------------------------------------------
   Story sticky (v1-style scroll scene)
   -------------------------------------------------------------------------- */

.asm-story-section {
	padding: clamp(66px, 8.5vw, 128px) var(--asm-gutter);
	background: var(--asm-paper-2);
	color: var(--asm-ink);
}

.asm-story {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: clamp(28px, 5vw, 80px);
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
}

.asm-story__media {
	position: sticky;
	top: calc(var(--asm-header-h) + 18px);
	align-self: start;
	height: min(70svh, 680px);
	overflow: hidden;
	border: 1px solid var(--asm-line);
	border-radius: 26px;
	background: var(--asm-night);
	box-shadow: 0 30px 70px rgba(18, 19, 15, 0.16);
}

.asm-story__panel {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	transform: scale(1.04);
	transition: opacity 700ms var(--asm-ease-snap), transform 900ms var(--asm-ease-snap);
	pointer-events: none;
}

.asm-story__panel.is-active {
	z-index: 1;
	opacity: 1;
	transform: none;
}

.asm-story__panel video,
.asm-story__panel img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.asm-story__panel::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(8, 10, 13, 0.06), transparent 46%, rgba(8, 10, 13, 0.76));
	pointer-events: none;
}

.asm-story__panel figcaption {
	position: absolute;
	right: 18px;
	bottom: 18px;
	left: 18px;
	z-index: 2;
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-family: var(--asm-mono);
	font-size: 8px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.82);
}

.asm-story__progress {
	position: absolute;
	top: 18px;
	left: 18px;
	z-index: 2;
	display: flex;
	align-items: baseline;
	gap: 6px;
	padding: 8px 10px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 999px;
	background: rgba(8, 10, 13, 0.58);
	font-family: var(--asm-mono);
	font-size: 9px;
	color: rgba(255, 255, 255, 0.66);
	backdrop-filter: blur(10px);
}

.asm-story__progress span:first-child {
	font-size: 16px;
	color: var(--asm-accent);
}

.asm-story__steps {
	min-width: 0;
}

.asm-story__head {
	padding: clamp(40px, 10vh, 120px) 0 clamp(20px, 5vh, 60px);
}

.asm-story__step {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 62svh;
	padding: 32px 0 32px 26px;
	border-left: 2px solid transparent;
	opacity: 0.34;
	transition: opacity 400ms var(--asm-ease-snap), border-color 400ms var(--asm-ease-snap);
}

.asm-story__step.is-active {
	border-left-color: var(--asm-accent);
	opacity: 1;
}

.asm-story__step h3 {
	max-width: 14ch;
	margin: 0 0 14px;
	font-size: clamp(2rem, 3.8vw, 3.7rem);
	line-height: 0.94;
	letter-spacing: -0.055em;
}

.asm-story__step p:last-child {
	max-width: 42ch;
	margin: 0;
	font-size: clamp(0.98rem, 1.1vw, 1.1rem);
	line-height: 1.6;
	color: var(--asm-ink-2);
}

/* --------------------------------------------------------------------------
   Gallery
   -------------------------------------------------------------------------- */

.asm-gallery-section {
	padding: clamp(66px, 8.5vw, 128px) var(--asm-gutter);
	background: var(--asm-paper);
	color: var(--asm-ink);
}

.asm-gallery {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-auto-rows: 190px;
	gap: 12px;
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
}

.asm-gallery__item {
	position: relative;
	grid-column: span 4;
	margin: 0;
	overflow: hidden;
	border-radius: 18px;
	background: var(--asm-paper-2);
}

.asm-gallery__item--wide {
	grid-column: span 8;
}

.asm-gallery__item--tall {
	grid-row: span 2;
}

.asm-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms var(--asm-ease-snap);
}

.asm-gallery__item:hover img {
	transform: scale(1.06);
}

.asm-gallery__item::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 48%, rgba(8, 10, 13, 0.76));
	pointer-events: none;
}

.asm-gallery__item figcaption {
	position: absolute;
	right: 16px;
	bottom: 14px;
	left: 16px;
	z-index: 2;
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-family: var(--asm-mono);
	font-size: 8px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.8);
}

/* --------------------------------------------------------------------------
   Processo
   -------------------------------------------------------------------------- */

.asm-process-section {
	padding: clamp(66px, 8.5vw, 128px) var(--asm-gutter);
	background: var(--asm-night);
	color: var(--asm-paper);
}

.asm-process-list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	overflow: hidden;
	width: 100%;
	max-width: var(--asm-container);
	margin: 40px auto 0;
	border: 1px solid var(--asm-line-dark);
	border-radius: 22px;
	background: var(--asm-line-dark);
}

.asm-process-item {
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-height: 270px;
	padding: 28px 22px;
	background: var(--asm-night-2);
}

.asm-process-item strong {
	font-family: var(--asm-mono);
	font-size: 10px;
	letter-spacing: 0.14em;
	color: var(--asm-accent);
}

.asm-process-item h3 {
	margin: 0;
	font-size: clamp(1.3rem, 1.8vw, 1.8rem);
	line-height: 1;
	letter-spacing: -0.04em;
}

.asm-process-item p {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.55;
	color: var(--asm-muted-light);
}

/* --------------------------------------------------------------------------
   Calcolatore
   -------------------------------------------------------------------------- */

.asm-cine-calc {
	overflow: hidden;
	padding: clamp(66px, 8.5vw, 128px) var(--asm-gutter);
	background: var(--asm-night);
	color: var(--asm-paper);
}

.asm-cine-calc__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(28px, 5vw, 76px);
	align-items: center;
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
}

.asm-cine-calc .asm-calc {
	padding: 28px;
	border: 1px solid var(--asm-line-dark);
	border-radius: 24px;
	background: rgba(255, 255, 255, 0.05);
	backdrop-filter: blur(16px);
	box-shadow: 0 34px 70px rgba(0, 0, 0, 0.28);
}

.asm-cine-calc .asm-calc__form {
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.asm-cine-calc .asm-calc label {
	font-family: var(--asm-mono);
	font-size: 8px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(244, 243, 238, 0.54);
}

.asm-cine-calc .asm-calc input {
	padding: 12px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 10px;
	background: rgba(0, 0, 0, 0.26);
	color: var(--asm-paper);
}

.asm-cine-calc .asm-calc__out strong {
	font-size: clamp(2.2rem, 3.6vw, 3.8rem);
	white-space: nowrap;
	color: var(--asm-paper);
}

.asm-cine-calc .asm-calc__note {
	color: rgba(244, 243, 238, 0.42);
}

/* CSS 3D stack (fallback visivo) */

.asm-css-stack {
	position: relative;
	width: min(100%, 390px);
	height: 300px;
	margin: 20px auto 0;
	transform: rotateX(58deg) rotateZ(-28deg);
	transform-style: preserve-3d;
}

.asm-css-stack span {
	position: absolute;
	inset: 0;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 16px;
	background: linear-gradient(135deg, rgba(255, 74, 28, 0.26), rgba(255, 255, 255, 0.04));
	transform: translateZ(calc(var(--i) * 26px));
	box-shadow: 0 16px 30px rgba(0, 0, 0, 0.22);
}

.asm-css-stack span:nth-child(2) {
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.02));
}

.asm-css-stack span:nth-child(3) {
	background: linear-gradient(135deg, rgba(63, 140, 255, 0.2), rgba(255, 255, 255, 0.03));
}

.asm-css-stack span:nth-child(4) {
	background: linear-gradient(135deg, rgba(255, 74, 28, 0.34), rgba(255, 255, 255, 0.03));
}

.asm-css-stack span:nth-child(5) {
	background: linear-gradient(135deg, rgba(10, 25, 48, 0.9), rgba(63, 140, 255, 0.1));
}

/* --------------------------------------------------------------------------
   Confronto
   -------------------------------------------------------------------------- */

.asm-cine-compare {
	padding: clamp(66px, 8.5vw, 128px) var(--asm-gutter);
	background: var(--asm-paper);
	color: var(--asm-ink);
}

.asm-cine-compare__inner {
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
}

.asm-cine-compare .asm-compare {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	margin-top: 28px;
	overflow: hidden;
	background: var(--asm-night);
	user-select: none;
	touch-action: pan-y;
}

.asm-cine-compare .asm-compare__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.asm-cine-compare .asm-compare__after {
	position: absolute;
	inset: 0;
	clip-path: inset(0 0 0 var(--asm-compare, 50%));
}

.asm-cine-compare .asm-compare__badge {
	position: absolute;
	top: 18px;
	z-index: 2;
	padding: 7px 10px;
	background: rgba(8, 10, 13, 0.7);
	font-family: var(--asm-mono);
	font-size: 9px;
	letter-spacing: 0.14em;
	line-height: 1;
	text-transform: uppercase;
	color: #fff;
	backdrop-filter: blur(8px);
}

.asm-cine-compare .asm-compare__badge--prima {
	left: 18px;
}

.asm-cine-compare .asm-compare__badge--dopo {
	right: 18px;
	background: var(--asm-accent);
}

.asm-cine-compare .asm-compare__handle {
	position: absolute;
	top: 0;
	bottom: 0;
	left: var(--asm-compare, 50%);
	z-index: 2;
	width: 2px;
	background: #fff;
	transform: translateX(-1px);
	pointer-events: none;
}

.asm-cine-compare .asm-compare__handle::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 44px;
	height: 44px;
	transform: translate(-50%, -50%);
	border: 2px solid #fff;
	border-radius: 50%;
	background: var(--asm-accent);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
}

.asm-cine-compare .asm-compare__range {
	position: absolute;
	inset: 0;
	z-index: 3;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: col-resize;
}

.asm-cine-compare .asm-compare:has(.asm-compare__range:focus-visible) {
	outline: 2px solid var(--asm-accent);
	outline-offset: 4px;
}

/* --------------------------------------------------------------------------
   Contatti
   -------------------------------------------------------------------------- */

.asm-cine-contact {
	background: var(--asm-night);
	color: var(--asm-paper);
}

.asm-cine-contact__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	min-height: 760px;
}

.asm-cine-contact__media {
	position: relative;
	min-height: 420px;
	overflow: hidden;
}

.asm-cine-contact__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.72;
	filter: saturate(0.7) contrast(1.05);
}

.asm-cine-contact__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, transparent 30%, rgba(8, 10, 13, 0.9) 100%), linear-gradient(180deg, rgba(8, 10, 13, 0.2), rgba(8, 10, 13, 0.62));
}

.asm-cine-contact__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 100%;
	max-width: 780px;
	padding: clamp(48px, 7vw, 100px) var(--asm-gutter);
}

.asm-cine-contact .asm-form {
	margin-top: 26px;
}

.asm-cine-contact .asm-field input,
.asm-cine-contact .asm-field textarea,
.asm-cine-contact .asm-field select {
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.1);
	color: var(--asm-paper);
}

.asm-cine-contact .asm-field input:focus,
.asm-cine-contact .asm-field textarea:focus,
.asm-cine-contact .asm-field select:focus {
	border-color: var(--asm-accent);
	outline: none;
	box-shadow: 0 0 0 3px rgba(255, 74, 28, 0.16);
}

.asm-cine-contact .asm-field label,
.asm-cine-contact .asm-consent label {
	color: rgba(244, 243, 238, 0.78);
}

.asm-cine-contact .asm-consent input {
	accent-color: var(--asm-accent);
}

.asm-cine-contact .asm-form button[type="submit"] {
	width: 100%;
	min-height: 52px;
}

.asm-cine-contact .asm-form button[type="submit"] {
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--asm-accent), var(--asm-accent-2));
	color: #fff;
	font-family: var(--asm-mono);
	font-size: 10px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.asm-cine-contact .asm-form__status {
	border-radius: 10px;
}

.asm-cine-contact__data {
	display: grid;
	gap: 14px;
	margin: 26px 0 0;
	padding-top: 22px;
	border-top: 1px solid var(--asm-line-dark);
}

.asm-cine-contact__data div {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	font-size: 0.92rem;
}

.asm-cine-contact__data dt {
	font-family: var(--asm-mono);
	font-size: 8px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(244, 243, 238, 0.46);
}

.asm-cine-contact__data dd {
	margin: 0;
	color: var(--asm-paper);
	text-align: right;
}

.asm-cine-contact__data a {
	color: var(--asm-paper);
}

/* --------------------------------------------------------------------------
   Page hero / pagine servizio
   -------------------------------------------------------------------------- */

.asm-page-hero {
	position: relative;
	display: flex;
	align-items: end;
	min-height: 78svh;
	overflow: hidden;
	padding: clamp(140px, 17vw, 230px) var(--asm-gutter) clamp(54px, 8vw, 94px);
	background: var(--asm-night);
	color: var(--asm-paper);
	isolation: isolate;
}

.asm-page-hero__bg {
	position: absolute;
	inset: -8% 0;
	z-index: -3;
}

.asm-page-hero__bg img {
	width: 100%;
	height: 118%;
	object-fit: cover;
	opacity: 0.46;
	filter: saturate(0.7) contrast(1.08);
}

.asm-page-hero__shade {
	position: absolute;
	inset: 0;
	z-index: -2;
	background:
		linear-gradient(90deg, rgba(8, 10, 13, 0.98) 0%, rgba(8, 10, 13, 0.88) 38%, rgba(8, 10, 13, 0.38) 72%, rgba(8, 10, 13, 0.84) 100%),
		linear-gradient(180deg, rgba(8, 10, 13, 0.5), transparent 30%, rgba(8, 10, 13, 0.96) 100%);
}

.asm-page-hero__inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: clamp(24px, 4vw, 70px);
	align-items: center;
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
}

.asm-page-hero h1 {
	max-width: 12ch;
	margin: 0 0 22px;
	font-size: clamp(3rem, 7vw, 7.2rem);
	line-height: 0.87;
	letter-spacing: -0.065em;
	text-wrap: balance;
}

.asm-page-hero__lead {
	max-width: 58ch;
	margin: 0 0 28px;
	font-size: clamp(1rem, 1.2vw, 1.16rem);
	line-height: 1.6;
	color: var(--asm-muted-light);
}

.asm-svc-body {
	padding: clamp(66px, 8.5vw, 128px) var(--asm-gutter);
	background: var(--asm-paper);
	color: var(--asm-ink);
}

.asm-svc-body__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
	gap: clamp(28px, 5vw, 76px);
	align-items: center;
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
}

.asm-svc-body__media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border-radius: 24px;
	box-shadow: 0 30px 70px rgba(18, 19, 15, 0.14);
}

.asm-svc-body__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.asm-svc-body__tag {
	position: absolute;
	right: 16px;
	bottom: 16px;
	padding: 8px 10px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 999px;
	background: rgba(8, 10, 13, 0.62);
	font-family: var(--asm-mono);
	font-size: 8px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.8);
	backdrop-filter: blur(10px);
}

.asm-check {
	display: grid;
	gap: 10px;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}

.asm-check li {
	position: relative;
	padding-left: 22px;
	font-size: 0.96rem;
	line-height: 1.5;
	color: var(--asm-ink-2);
}

.asm-check li::before {
	content: "↗";
	position: absolute;
	left: 0;
	top: 0;
	font-family: var(--asm-mono);
	font-size: 12px;
	color: var(--asm-accent);
}

.asm-svc-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	overflow: hidden;
	width: 100%;
	max-width: var(--asm-container);
	margin: 52px auto 0;
	border: 1px solid var(--asm-line);
	border-radius: 20px;
	background: var(--asm-line);
}

.asm-svc-step {
	padding: 24px;
	background: var(--asm-paper);
}

.asm-svc-step strong {
	font-family: var(--asm-mono);
	font-size: 9px;
	letter-spacing: 0.14em;
	color: var(--asm-accent);
}

.asm-svc-step h3 {
	margin: 10px 0 8px;
	font-size: 1.22rem;
	letter-spacing: -0.03em;
}

.asm-svc-step p {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--asm-ink-2);
}

.asm-svc-gallery {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
	gap: 14px;
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
	padding: 0 var(--asm-gutter) clamp(66px, 8.5vw, 128px);
}

.asm-svc-gallery img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 20px;
}

.asm-svc-gallery img:first-child {
	aspect-ratio: 16 / 10;
}

.asm-svc-cta {
	padding: clamp(66px, 8.5vw, 128px) var(--asm-gutter);
	background: var(--asm-night);
	color: var(--asm-paper);
}

.asm-svc-cta__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 380px);
	gap: clamp(28px, 5vw, 76px);
	align-items: center;
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
}

.asm-svc-cta video {
	display: block;
	width: 100%;
	aspect-ratio: 9 / 16;
	object-fit: cover;
	border: 1px solid var(--asm-line-dark);
	border-radius: 24px;
	box-shadow: 0 34px 70px rgba(0, 0, 0, 0.4);
}

.asm-service-index {
	padding: clamp(66px, 8.5vw, 128px) var(--asm-gutter);
	background: var(--asm-paper);
	color: var(--asm-ink);
}

.asm-service-index__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.asm-footer-cta {
	position: relative;
	overflow: hidden;
	padding: clamp(56px, 8vw, 110px) var(--asm-gutter);
	background: linear-gradient(135deg, var(--asm-accent), var(--asm-accent-2));
	color: var(--asm-night);
}

.asm-footer-cta__inner {
	width: 100%;
	max-width: var(--asm-container);
	margin: 0 auto;
}

.asm-footer-cta .asm-kicker {
	color: var(--asm-night);
}

.asm-footer-cta h2 {
	max-width: 14ch;
	margin: 0 0 26px;
	font-size: clamp(2.8rem, 6.2vw, 6.4rem);
	line-height: 0.86;
	letter-spacing: -0.065em;
}

.asm-footer-cta .asm-btn {
	background: var(--asm-night);
	color: var(--asm-paper);
}

.asm-footer {
	background: var(--asm-night);
	border-top: 1px solid var(--asm-line-dark);
	color: var(--asm-paper);
}

.asm-footer__brand img {
	padding: 6px;
	border-radius: 6px;
	background: var(--asm-paper);
}

.asm-footer__col .asm-mono {
	color: var(--asm-accent);
}

.asm-footer__col p,
.asm-footer__col address {
	color: rgba(244, 243, 238, 0.64);
}

.asm-footer__col a {
	color: rgba(244, 243, 238, 0.72);
}

.asm-footer__col a:hover,
.asm-footer__col a:focus-visible {
	color: var(--asm-accent);
}

.asm-footer__legal {
	border-top: 1px solid var(--asm-line-dark);
	color: rgba(244, 243, 238, 0.42);
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (min-width: 960px) {
	.asm-header__cta {
		display: inline-flex;
	}
}

@media (max-width: 960px) {
	.asm-header {
		background: #080a0d;
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
	}

	.asm-nav__toggle {
		display: grid;
	}

	.asm-menu {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 1;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 0 var(--asm-gutter) 64px;
		padding-top: calc(var(--asm-header-h) + 44px);
		overflow-y: auto;
		background: var(--asm-night);
		transform: translateX(100%);
		transition: transform 300ms var(--asm-ease-snap);
	}

	.asm-nav.is-open .asm-menu {
		transform: none;
	}

	.asm-menu__item {
		width: 100%;
		border-bottom: 1px solid var(--asm-line-dark);
	}

	.asm-menu__link {
		width: 100%;
		justify-content: space-between;
		min-height: 52px;
		padding: 14px 0;
		font-size: 12px;
	}

	.asm-menu__sub {
		position: static;
		display: none;
		min-width: 0;
		padding: 0 0 12px 12px;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.asm-menu__item--has-sub.is-open .asm-menu__sub {
		display: block;
	}

	.asm-menu__sub a {
		padding: 9px 0;
		color: rgba(244, 243, 238, 0.66);
	}
}

@media (max-width: 1024px) {
	.asm-cine-hero__inner,
	.asm-page-hero__inner,
	.asm-svc-body__inner,
	.asm-cine-calc__grid,
	.asm-svc-cta__inner {
		grid-template-columns: 1fr;
	}

	.asm-cine-hero {
		min-height: auto;
		padding-top: 64px;
	}

	.asm-cine-hero__visual {
		margin-top: 10px;
	}

	.asm-page-hero {
		min-height: auto;
		padding-top: 150px;
	}

	.asm-page-hero__visual {
		margin-top: 10px;
	}

	.asm-section-head,
	.asm-clip-section__grid,
	.asm-story {
		grid-template-columns: 1fr;
	}

	.asm-story__media {
		top: calc(var(--asm-header-h) + 8px);
		height: 42svh;
	}

	.asm-story__head {
		padding: 36px 0 10px;
	}

	.asm-story__step {
		min-height: 46svh;
		padding: 24px 0 24px 18px;
	}

	.asm-service-grid,
	.asm-service-index__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.asm-process-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.asm-cine-contact__grid {
		grid-template-columns: 1fr;
	}

	.asm-cine-contact__media {
		min-height: 380px;
	}

	.asm-svc-gallery {
		grid-template-columns: 1fr;
	}

	.asm-svc-steps {
		grid-template-columns: 1fr;
	}

	.asm-gallery {
		grid-auto-rows: 220px;
	}

	.asm-gallery__item,
	.asm-gallery__item--wide {
		grid-column: span 6;
	}

	.asm-gallery__item--tall {
		grid-row: span 1;
	}
}

@media (max-width: 700px) {
	:root {
		--asm-header-h: 66px;
	}

	.asm-header__brand {
		padding: 5px 7px;
	}

	.asm-header__brand img {
		height: 25px;
	}

	.asm-cine-hero {
		padding-bottom: 78px;
	}

	.asm-cine-hero h1 {
		font-size: clamp(3rem, 15vw, 5.2rem);
	}

	.asm-cine-hero__actions .asm-btn,
	.asm-page-hero .asm-btn {
		width: 100%;
	}

	.asm-cine-hero__stats {
		gap: 18px;
	}

	.asm-cine-hero__stats div {
		min-width: 88px;
	}

	.asm-cine-hero__badge {
		right: 8px;
		bottom: 24px;
	}

	.asm-3d--hero {
		height: 390px;
	}

	.asm-3d--page {
		height: 340px;
	}

	.asm-3d__legend {
		max-width: 100%;
	}

	.asm-3d__caption {
		display: none;
	}

	.asm-service-grid,
	.asm-service-index__grid,
	.asm-process-list {
		grid-template-columns: 1fr;
	}

	.asm-services__more {
		text-align: left;
	}

	.asm-service-card {
		min-height: 340px;
	}

	.asm-service-card__body {
		padding: 20px;
		padding-right: 68px;
	}

	.asm-gallery {
		grid-auto-rows: 250px;
	}

	.asm-gallery__item,
	.asm-gallery__item--wide {
		grid-column: span 12;
	}

	.asm-clip-rail {
		display: flex;
		gap: 12px;
		overflow-x: auto;
		padding-bottom: 12px;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
	}

	.asm-clip-rail .asm-clip-card {
		flex: 0 0 72%;
		max-width: none;
		margin: 0;
		scroll-snap-align: start;
	}

	.asm-story__media {
		height: 36svh;
	}

	.asm-story__step {
		min-height: 40svh;
	}

	.asm-story__step h3 {
		font-size: clamp(1.9rem, 9vw, 2.8rem);
	}

	.asm-cine-calc .asm-calc__form {
		grid-template-columns: 1fr;
	}

	.asm-page-hero {
		padding-top: 130px;
	}

	.asm-page-hero h1 {
		font-size: clamp(2.8rem, 13vw, 5rem);
	}

	.asm-svc-gallery {
		padding-right: var(--asm-gutter);
		padding-left: var(--asm-gutter);
	}

	.asm-svc-cta__inner {
		grid-template-columns: 1fr;
	}

	.asm-svc-cta video {
		max-width: 360px;
		margin: 0 auto;
	}

	.asm-cine-contact__body {
		padding-right: var(--asm-gutter);
		padding-left: var(--asm-gutter);
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.asm-cine-marquee__track {
		animation: none;
	}

	[data-parallax] {
		transform: none;
	}

	.asm-scroll-progress {
		display: none;
	}

	.asm-story__step {
		opacity: 1;
	}

	.asm-story__panel {
		transition: none;
	}

	.asm-3d--hero {
		transform: none;
	}
}
