/* Custom component CSS only. Global migrated CSS belongs in Additional CSS. */

.cookie-banner {
	position: fixed;
	right: clamp(16px, 3vw, 34px);
	bottom: clamp(16px, 3vw, 34px);
	left: clamp(16px, 3vw, 34px);
	z-index: 9999;
	display: flex;
	justify-content: center;
	pointer-events: none;
}

body.home .elementor .why-section .why-intro {
	margin-top: 20px !important;
	color: #fff !important;
}

body.home .elementor .service-band .service-intro {
	margin-top: 20px !important;
	color: #fff !important;
}

body.home .elementor .service-band .service-copy p:not(.eyebrow) {
	margin-top: 20px !important;
	color: #fff !important;
}

.cookie-banner[hidden],
.cookie-settings-button[hidden] {
	display: none !important;
}

.cookie-banner__panel {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 22px;
	width: min(1040px, 100%);
	padding: 24px;
	color: #fff;
	background:
		radial-gradient(circle at 8% 12%, rgba(211, 24, 34, .22), transparent 34%),
		linear-gradient(135deg, rgba(5, 5, 5, .98), rgba(18, 18, 18, .98));
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 8px;
	box-shadow: 0 24px 80px rgba(0, 0, 0, .38);
	pointer-events: auto;
}

.cookie-banner__content {
	max-width: 660px;
}

.cookie-banner__eyebrow {
	margin: 0 0 8px;
	color: #e30613;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.cookie-banner h2 {
	margin: 0 0 10px;
	color: #fff;
	font-family: Arial, Helvetica, sans-serif;
	font-size: clamp(24px, 2.6vw, 36px);
	font-weight: 700;
	line-height: 1.04;
}

.cookie-banner p {
	margin: 0;
	color: rgba(255, 255, 255, .72);
	font-size: 15px;
	line-height: 1.55;
}

.cookie-banner__links {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 14px;
}

.cookie-banner__links a {
	color: #fff;
	font-size: 13px;
	font-weight: 800;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.cookie-banner__preferences {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	padding-top: 4px;
}

.cookie-banner__preferences[hidden] {
	display: none !important;
}

.cookie-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 86px;
	padding: 16px;
	background: rgba(255, 255, 255, .07);
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 8px;
}

.cookie-toggle strong,
.cookie-toggle small {
	display: block;
}

.cookie-toggle strong {
	margin-bottom: 5px;
	color: #fff;
	font-size: 14px;
	font-weight: 900;
}

.cookie-toggle small {
	color: rgba(255, 255, 255, .66);
	font-size: 12px;
	line-height: 1.35;
}

.cookie-toggle input {
	width: 20px;
	height: 20px;
	accent-color: #e30613;
	flex: 0 0 auto;
}

.cookie-banner__actions {
	display: flex;
	flex-wrap: wrap;
	align-content: center;
	justify-content: flex-end;
	gap: 10px;
	min-width: 310px;
}

.cookie-banner__button,
.cookie-settings-button {
	appearance: none;
	border: 0;
	border-radius: 6px;
	cursor: pointer;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 13px;
	font-weight: 900;
	letter-spacing: .02em;
	transition: transform .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
}

.cookie-banner__button {
	min-height: 44px;
	padding: 0 18px;
}

.cookie-banner__button:hover,
.cookie-banner__button:focus,
.cookie-settings-button:hover,
.cookie-settings-button:focus {
	transform: translateY(-2px);
}

.cookie-banner__button--primary {
	color: #fff;
	background: #e30613;
}

.cookie-banner__button--dark {
	color: #fff;
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .16);
}

.cookie-banner__button--ghost {
	color: #fff;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, .22);
}

.cookie-settings-button {
	position: fixed;
	left: 18px;
	bottom: 18px;
	z-index: 9998;
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	min-height: 0;
	padding: 0;
	color: #050505;
	background: #fff;
	border: 1px solid rgba(227, 6, 19, .5);
	border-radius: 999px;
	box-shadow: 0 10px 26px rgba(0, 0, 0, .18), 0 0 0 4px rgba(227, 6, 19, .08);
}

.cookie-settings-button:hover,
.cookie-settings-button:focus {
	color: #000;
	background: #fff;
	border-color: #e30613;
	box-shadow: 0 14px 30px rgba(0, 0, 0, .22), 0 0 0 5px rgba(227, 6, 19, .14);
}

.cookie-settings-button svg {
	width: 25px;
	height: 25px;
	stroke: currentColor;
	stroke-width: 2.2;
}

.cookie-settings-button svg circle {
	fill: currentColor;
}

.floating-contact {
	position: fixed;
	right: 18px;
	bottom: 18px;
	z-index: 9997;
	display: grid;
	justify-items: end;
	gap: 12px;
	font-family: Arial, Helvetica, sans-serif;
}

.about-page-container,
.contacts-page-container,
.frames-page-container,
.pergolas-page-container,
.awnings-page-container,
.screens-page-container,
.doors-page-container,
.velux-page-container,
.interior-doors-page-container,
.fabrizio-page-container {
	--content-width: 100% !important;
	--width: 100% !important;
	width: 100% !important;
	max-width: 100% !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
}

.about-page-container > .e-con-inner,
.contacts-page-container > .e-con-inner,
.frames-page-container > .e-con-inner,
.pergolas-page-container > .e-con-inner,
.awnings-page-container > .e-con-inner,
.screens-page-container > .e-con-inner,
.doors-page-container > .e-con-inner,
.velux-page-container > .e-con-inner,
.interior-doors-page-container > .e-con-inner,
.fabrizio-page-container > .e-con-inner {
	width: 100% !important;
	max-width: 100% !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
}

.about-page-container .elementor-widget-html,
.contacts-page-container .elementor-widget-html,
.frames-page-container .elementor-widget-html,
.pergolas-page-container .elementor-widget-html,
.awnings-page-container .elementor-widget-html,
.screens-page-container .elementor-widget-html,
.doors-page-container .elementor-widget-html,
.velux-page-container .elementor-widget-html,
.interior-doors-page-container .elementor-widget-html,
.fabrizio-page-container .elementor-widget-html {
	width: 100% !important;
	max-width: 100% !important;
}

.about-page {
	--about-black: #080808;
	--about-red: #d31822;
	--about-muted: #606060;
	--about-soft: #f6f6f6;
	color: #111;
	background: #fff;
	font-family: Arial, Helvetica, sans-serif;
	overflow: hidden;
}

.about-page h1,
.about-page h2,
.about-page h3,
.about-page p {
	margin-top: 0;
}

.about-page .eyebrow {
	margin: 0 0 14px;
	color: var(--about-red);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.about-hero {
	position: relative;
	min-height: min(82vh, 960px);
	padding: clamp(128px, 11vw, 158px) var(--sf-edge, clamp(20px, 5vw, 72px)) clamp(86px, 9vw, 126px);
	display: grid;
	align-items: center;
	color: #fff;
	background: #fff;
	overflow: hidden;
}

.about-hero__bg {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.about-hero__bg img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: translateZ(0) scale3d(1, 1, 1);
	transform-origin: center center;
	animation: aboutHeroImageZoom 5s cubic-bezier(.37, 0, .63, 1) infinite alternate;
	backface-visibility: hidden;
	contain: paint;
	will-change: transform;
}

@keyframes aboutHeroImageZoom {
	from {
		transform: translateZ(0) scale3d(1, 1, 1);
	}

	to {
		transform: translateZ(0) scale3d(1.022, 1.022, 1);
	}
}

@media (prefers-reduced-motion: reduce) {
	.about-hero__bg img {
		animation: none;
	}
}

.about-hero:after {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 18% 48%, rgba(211, 24, 34, .28), transparent 34%),
		linear-gradient(90deg, rgba(0,0,0,.86) 0%, rgba(0,0,0,.64) 44%, rgba(0,0,0,.32) 72%, rgba(0,0,0,.68) 100%),
		linear-gradient(180deg, rgba(0,0,0,.56) 0%, rgba(0,0,0,.18) 44%, rgba(0,0,0,.66) 100%);
	content: "";
}

.about-hero__content {
	position: relative;
	z-index: 1;
	max-width: 820px;
	padding: clamp(26px, 3.2vw, 42px) clamp(28px, 4vw, 52px);
	border-left: 4px solid var(--about-red);
}

.about-hero h1 {
	max-width: 760px;
	margin-bottom: 22px;
	color: #fff;
	font-size: clamp(46px, 6vw, 86px);
	font-weight: 800;
	line-height: .98;
	letter-spacing: 0;
	text-shadow: 0 20px 54px rgba(0,0,0,.62);
}

.about-hero__text {
	max-width: 760px;
	color: #fff;
	font-size: clamp(19px, 2vw, 28px);
	font-weight: 800;
	line-height: 1.45;
	text-shadow: 0 12px 34px rgba(0,0,0,.88), 0 2px 5px rgba(0,0,0,.74);
}

.about-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}

.about-hero__note {
	width: min(520px, 100%);
	margin-top: 24px;
	padding: 18px 20px;
	color: rgba(255,255,255,.86);
	background: rgba(255,255,255,.1);
	border: 1px solid rgba(255,255,255,.18);
	border-left: 4px solid var(--about-red);
	border-radius: 6px;
	box-shadow: 0 18px 44px rgba(0,0,0,.18);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.45;
}

.about-section {
	padding: clamp(78px, 9vw, 132px) var(--sf-edge, clamp(20px, 5vw, 72px));
}

.about-split,
.about-story__grid,
.about-method__grid,
.about-cta,
.about-values__grid,
.about-promise__grid,
.about-section-head {
	width: 100%;
	max-width: var(--sf-site-width, 1460px);
	margin-right: auto;
	margin-left: auto;
}

.about-split {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
	gap: clamp(42px, 7vw, 98px);
	align-items: center;
}

.about-media-stack {
	position: relative;
	min-height: 620px;
}

.about-media-stack img {
	width: 78%;
	height: 560px;
	object-fit: cover;
	border-radius: 8px;
	box-shadow: 0 30px 80px rgba(0,0,0,.16);
}

.about-media-stack img:nth-child(2) {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 48%;
	height: 310px;
	border: 8px solid #fff;
}

.about-copy h2,
.about-section-head h2,
.about-story__intro h2,
.about-method h2,
.about-cta h2 {
	margin-bottom: 28px;
	color: var(--about-black);
	font-size: clamp(34px, 4.6vw, 72px);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: 0;
}

.about-page .lead,
.about-copy p,
.about-story__intro p,
.about-values__grid p,
.about-promise__grid p,
.about-steps p,
.about-cta p {
	color: var(--about-muted);
	font-size: clamp(17px, 1.45vw, 21px);
	font-weight: 400;
	line-height: 1.7;
}

.about-family-note {
	margin-top: 34px;
	padding: 28px 30px;
	color: #202024;
	background: #fff;
	border-left: 5px solid var(--about-red);
	box-shadow: 0 16px 50px rgba(0,0,0,.07);
	font-size: clamp(18px, 1.55vw, 22px);
	font-weight: 500;
	line-height: 1.58;
}

#famiglia .about-split {
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	gap: clamp(60px, 8vw, 132px);
	align-items: center;
}

#famiglia .about-media-stack {
	min-height: clamp(660px, 48vw, 760px);
}

#famiglia .about-media-stack img:first-child {
	width: 78%;
	height: clamp(620px, 47vw, 760px);
	border-radius: 0;
	box-shadow: none;
}

#famiglia .about-media-stack img:nth-child(2) {
	right: -34px;
	bottom: 10px;
	width: 46%;
	height: clamp(260px, 19vw, 310px);
	border: 8px solid #fff;
	border-radius: 0;
	box-shadow: none;
}

#famiglia .about-copy {
	max-width: 760px;
}

#famiglia .about-copy .eyebrow {
	margin-bottom: 22px;
	color: var(--about-red) !important;
}

#famiglia .about-copy h2 {
	margin-bottom: 32px;
	color: #050505 !important;
	font-size: clamp(46px, 4.2vw, 64px);
	font-weight: 800;
	line-height: 1.02;
}

#famiglia .about-copy .lead {
	margin-bottom: 24px;
	color: rgba(0,0,0,.62) !important;
	font-size: clamp(17px, 1.12vw, 20px);
	font-weight: 700;
	line-height: 1.55;
}

#famiglia .about-family-note {
	margin-top: 38px;
	padding: clamp(30px, 3vw, 42px) clamp(32px, 3.6vw, 54px);
	border-left-width: 5px;
	border-radius: 0;
	box-shadow: 0 22px 64px rgba(0,0,0,.07);
	font-size: clamp(22px, 1.8vw, 28px);
	font-weight: 500;
	line-height: 1.42;
}

.about-story {
	background: linear-gradient(180deg, #fff 0%, #f7f7f8 100%);
}

.about-story__grid {
	display: grid;
	grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
	gap: clamp(38px, 6vw, 92px);
	align-items: start;
}

.about-story__intro {
	position: sticky;
	top: 138px;
}

.about-side-note {
	margin-top: 34px;
	padding: 24px 26px;
	color: rgba(255,255,255,.86);
	background: radial-gradient(circle at 100% 0%, rgba(211,24,34,.12), transparent 34%), #111116;
	border: 1px solid rgba(255,255,255,.08);
	border-radius: 8px;
	box-shadow: 0 24px 60px rgba(0,0,0,.12);
}

.about-side-note strong {
	display: block;
	margin-bottom: 10px;
	color: #fff;
	font-size: clamp(18px, 1.6vw, 24px);
	line-height: 1.18;
}

.about-side-note span {
	display: block;
	font-size: 15px;
	line-height: 1.65;
}

.about-years {
	display: grid;
	gap: 12px;
	margin-top: 32px;
}

.about-years > div {
	position: relative;
	min-height: 98px;
	padding: 20px 20px 20px 64px;
	background: rgba(255,255,255,.78);
	border: 1px solid rgba(0,0,0,.06);
	border-radius: 8px;
	box-shadow: 0 14px 36px rgba(0,0,0,.045);
}

.about-years > div:before {
	position: absolute;
	top: 24px;
	left: 24px;
	width: 13px;
	height: 13px;
	background: var(--about-red);
	border-radius: 999px;
	box-shadow: 0 0 0 9px rgba(211,24,34,.1);
	content: "";
}

.about-years strong {
	display: block;
	margin-bottom: 8px;
	color: var(--about-red);
	font-size: 14px;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.about-years span {
	color: #202024;
	font-size: 15px;
	font-weight: 650;
	line-height: 1.45;
}

.about-logo-cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin-top: 34px;
}

.about-logo-cards > div {
	min-height: 172px;
	padding: 20px 18px 18px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 16px;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	border-radius: 8px;
	box-shadow: 0 16px 42px rgba(0,0,0,.045);
}

.about-logo-cards img {
	width: 100%;
	height: 96px;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.about-logo-cards > div:nth-child(1) img {
	height: 112px;
}

.about-logo-cards > div:nth-child(2) img {
	height: 118px;
	transform: scale(1.08);
}

.about-logo-cards strong {
	color: #111116;
	font-size: 18px;
	line-height: 1.2;
}

.about-logo-cards span {
	color: #55555b;
	font-size: 13px;
	font-weight: 850;
	letter-spacing: .12em;
	line-height: 1.25;
	text-align: center;
	text-transform: uppercase;
}

.about-story__card {
	padding: clamp(28px, 4vw, 54px);
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	border-left: 6px solid var(--about-red);
	border-radius: 8px;
	box-shadow: 0 26px 74px rgba(0,0,0,.08);
}

.about-story__card p {
	margin: 0;
	color: #55555b;
	font-size: clamp(17px, 1.45vw, 21px);
	font-weight: 430;
	line-height: 1.76;
}

.about-story__card p + p {
	margin-top: clamp(34px, 3.4vw, 52px) !important;
}

.about-story__card strong {
	color: #111116;
	font-weight: 850;
}

.about-values,
.about-cta-wrap {
	position: relative;
	background: linear-gradient(180deg, #f7f7f8 0%, #fff 100%);
	overflow: hidden;
}

.about-values:before {
	position: absolute;
	top: clamp(44px, 5vw, 70px);
	left: 50%;
	color: rgba(0,0,0,.035);
	font-size: clamp(96px, 18vw, 260px);
	font-weight: 950;
	line-height: .8;
	content: "Famiglia";
	transform: translateX(-50%);
	white-space: nowrap;
	pointer-events: none;
}

.about-section-head {
	position: relative;
	z-index: 1;
	text-align: center;
}

.about-section-head .lead {
	max-width: 760px;
	margin-right: auto;
	margin-left: auto;
}

.about-values__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 24px);
	margin-top: clamp(46px, 5vw, 72px);
}

.about-values .about-section-head {
	max-width: 1280px;
	text-align: center;
}

.about-values .about-section-head .eyebrow {
	color: var(--about-red) !important;
}

.about-values .about-section-head h2 {
	max-width: none;
	margin-right: auto;
	margin-left: auto;
	color: #050505 !important;
	font-size: clamp(42px, 4.5vw, 64px);
	font-weight: 800;
	line-height: 1.05;
}

.about-values .about-section-head .lead {
	max-width: 760px;
	color: rgba(0,0,0,.62) !important;
	font-size: clamp(16px, 1.15vw, 19px);
	font-weight: 700;
	line-height: 1.55;
}

.about-values__grid {
	gap: clamp(20px, 2vw, 28px);
	margin-top: clamp(58px, 6vw, 82px);
}

.about-values__grid article {
	min-height: 330px;
	padding: clamp(38px, 3.1vw, 52px) clamp(34px, 3vw, 46px);
	background: #fff !important;
	box-shadow: 0 24px 60px rgba(0,0,0,.07) !important;
}

.about-values__grid article > span {
	width: 58px;
	height: 58px;
	background: rgba(211,24,34,.07) !important;
}

.about-values__grid h3 {
	margin-top: 28px;
	margin-bottom: 18px;
	color: #050505 !important;
	font-size: clamp(22px, 1.5vw, 26px) !important;
	font-weight: 850 !important;
	line-height: 1.08 !important;
}

.about-values__grid p {
	margin: 0;
	color: rgba(0,0,0,.62) !important;
	font-size: clamp(20px, 1.45vw, 24px) !important;
	font-weight: 500 !important;
	line-height: 1.58 !important;
}

.about-values__grid article,
.about-promise__grid article {
	position: relative;
	min-height: 280px;
	padding: clamp(28px, 2.7vw, 38px);
	background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.92));
	border: 1px solid rgba(10,10,10,.08);
	border-radius: 8px;
	box-shadow: 0 16px 42px rgba(0,0,0,.045);
	overflow: hidden;
}

.about-values__grid article:before,
.about-promise__grid article:before {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--about-red), rgba(211,24,34,0));
	content: "";
}

.about-values__grid article > span,
.about-promise__grid article > span {
	display: inline-flex;
	width: 54px;
	height: 54px;
	align-items: center;
	justify-content: center;
	color: var(--about-red);
	background: rgba(211,24,34,.08);
	border: 1px solid rgba(211,24,34,.16);
	border-radius: 999px;
	font-size: 13px;
	font-weight: 950;
}

.about-values__grid h3,
.about-promise__grid h3,
.about-steps h3 {
	margin: 34px 0 16px;
	color: var(--about-black);
	font-size: clamp(22px, 2.1vw, 30px);
	font-weight: 800;
	line-height: 1.12;
}

.about-method {
	position: relative;
	color: #fff;
	background:
		radial-gradient(circle at 8% 24%, rgba(211,24,34,.28), transparent 34%),
		radial-gradient(circle at 86% 70%, rgba(211,24,34,.12), transparent 30%),
		linear-gradient(135deg, #050505 0%, #190306 58%, #050505 100%);
	overflow: hidden;
}

.about-method:before {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(0,0,0,.1), rgba(0,0,0,.38)),
		linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0));
	content: "";
	pointer-events: none;
}

.about-method > * {
	position: relative;
	z-index: 1;
}

.about-method__grid {
	display: grid;
	grid-template-columns: minmax(420px, .88fr) minmax(0, 1.12fr);
	gap: clamp(54px, 7vw, 112px);
	align-items: start;
}

.about-method h2,
.about-method .eyebrow,
.about-method h3 {
	color: #fff !important;
}

.about-method h2 {
	max-width: 640px;
	margin-bottom: 0;
	font-size: clamp(46px, 4.7vw, 78px);
	font-weight: 800;
	line-height: 1.03;
	letter-spacing: 0;
	text-shadow: 0 22px 62px rgba(0,0,0,.42);
}

.about-method .eyebrow {
	color: var(--about-red) !important;
}

.about-steps {
	display: grid;
	border-top: 1px solid rgba(255,255,255,.18);
}

.about-steps article {
	display: grid;
	grid-template-columns: 86px minmax(0, 1fr);
	gap: 30px;
	padding: clamp(36px, 4.15vw, 58px) 0;
	border-bottom: 1px solid rgba(255,255,255,.18);
}

.about-steps article > strong {
	color: var(--about-red) !important;
	font-size: 14px;
	font-weight: 950;
	letter-spacing: .2em;
}

.about-page .about-method .about-steps h3 {
	margin: 0 0 12px;
	color: #fff !important;
	font-size: clamp(28px, 2vw, 36px) !important;
	font-weight: 850 !important;
	line-height: 1.1 !important;
}

.about-page .about-method .about-steps p {
	margin: 0;
	max-width: 900px;
	color: rgba(255,255,255,.68) !important;
	font-size: clamp(20px, 1.45vw, 26px) !important;
	font-weight: 500 !important;
	line-height: 1.48 !important;
}

.about-promise__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
	margin-top: 48px;
}

.about-section:has(.about-promise__grid) {
	background: #fff;
	text-align: center;
}

.about-section:has(.about-promise__grid) .about-section-head {
	max-width: 1180px;
}

.about-section:has(.about-promise__grid) .about-section-head .eyebrow {
	color: var(--about-red) !important;
}

.about-section:has(.about-promise__grid) .about-section-head h2 {
	margin-right: auto;
	margin-left: auto;
	color: #050505 !important;
	font-size: clamp(42px, 4.8vw, 68px);
	font-weight: 800;
	line-height: 1.02;
}

.about-section:has(.about-promise__grid) .about-section-head .lead {
	max-width: 900px;
	color: rgba(0,0,0,.62) !important;
	font-size: clamp(17px, 1.2vw, 20px);
	font-weight: 700;
	line-height: 1.55;
}

.about-promise__grid {
	gap: clamp(20px, 2vw, 28px);
	margin-top: clamp(54px, 6vw, 76px);
}

.about-promise__grid article {
	min-height: 292px;
	padding: clamp(38px, 3.2vw, 52px) clamp(34px, 3.2vw, 48px);
	text-align: left;
	background: #fff !important;
	border: 1px solid rgba(10,10,10,.08);
	border-radius: 8px;
	box-shadow: 0 24px 60px rgba(0,0,0,.075);
}

.about-promise__grid article:before {
	height: 4px;
	background: linear-gradient(90deg, var(--about-red), rgba(211,24,34,.1));
}

.about-promise__grid article > span {
	width: 56px;
	height: 56px;
	color: var(--about-red) !important;
	background: rgba(211,24,34,.07) !important;
	border-color: rgba(211,24,34,.16);
	border-radius: 999px;
	font-size: 13px;
	font-weight: 950;
}

.about-promise__grid h3 {
	margin-top: 26px;
	margin-bottom: 18px;
	color: #050505 !important;
	font-size: clamp(22px, 1.7vw, 28px);
	font-weight: 850;
	line-height: 1.08;
}

.about-promise__grid p {
	margin: 0;
	color: rgba(0,0,0,.62) !important;
	font-size: clamp(20px, 1.55vw, 25px);
	font-weight: 500;
	line-height: 1.55;
}

.about-cta {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: clamp(28px, 5vw, 72px);
	align-items: center;
	padding: clamp(42px, 6vw, 76px);
	color: #fff;
	background:
		linear-gradient(90deg, rgba(0,0,0,.88), rgba(60,0,7,.78)),
		url("../images/prodotto-serramenti-inferriate.png") center / cover no-repeat;
	border-radius: 10px;
	box-shadow: 0 30px 90px rgba(0,0,0,.18);
	overflow: hidden;
}

.about-cta:before {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 10% 24%, rgba(211,24,34,.34), transparent 36%),
		linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0));
	content: "";
	pointer-events: none;
}

.about-cta > * {
	position: relative;
	z-index: 1;
}

.about-page .about-cta h2 {
	max-width: 980px;
	margin-bottom: 16px;
	color: #fff !important;
	font-size: clamp(34px, 4vw, 66px) !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-shadow: 0 22px 62px rgba(0,0,0,.46);
}

.about-page .about-cta .eyebrow {
	color: var(--about-red) !important;
}

.about-page .about-cta p:not(.eyebrow) {
	max-width: 760px;
	margin: 0;
	color: rgba(255,255,255,.76) !important;
	font-size: clamp(18px, 1.45vw, 24px) !important;
	font-weight: 500 !important;
	line-height: 1.55 !important;
}

.about-cta .button {
	min-width: 224px;
	justify-content: center;
	box-shadow: 0 18px 44px rgba(211,24,34,.32);
}

.contacts-page {
	--contacts-black: #080808;
	--contacts-red: #d31822;
	--contacts-muted: #606060;
	--contacts-line: #e8e8e8;
	color: #111;
	background: #fff;
	font-family: Arial, Helvetica, sans-serif;
	overflow: hidden;
}

.contacts-page h1,
.contacts-page h2,
.contacts-page h3,
.contacts-page p {
	margin-top: 0;
}

.contacts-page .eyebrow {
	margin: 0 0 14px;
	color: var(--contacts-red);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.contacts-hero {
	position: relative;
	min-height: min(76vh, 850px);
	padding: clamp(124px, 10vw, 150px) var(--sf-edge, clamp(20px, 5vw, 72px)) clamp(76px, 8vw, 112px);
	display: grid;
	align-items: center;
	color: #fff;
	background: #050505;
	overflow: hidden;
}

.contacts-hero__bg {
	position: absolute;
	inset: -3%;
	background-position: center;
	background-size: cover;
	transform: scale(1.04);
}

.contacts-hero:after {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 16% 42%, rgba(211,24,34,.3), transparent 34%),
		linear-gradient(90deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.66) 48%, rgba(0,0,0,.36) 100%),
		linear-gradient(180deg, rgba(0,0,0,.48), rgba(0,0,0,.66));
	content: "";
}

.contacts-hero__content {
	position: relative;
	z-index: 1;
	max-width: 860px;
	padding: clamp(26px, 3.2vw, 42px) clamp(28px, 4vw, 52px);
	border-left: 4px solid var(--contacts-red);
}

.contacts-hero h1 {
	max-width: 820px;
	margin-bottom: 22px;
	color: #fff;
	font-size: clamp(46px, 6vw, 86px);
	font-weight: 800;
	line-height: .98;
	letter-spacing: 0;
	text-shadow: 0 20px 54px rgba(0,0,0,.62);
}

.contacts-hero__text {
	max-width: 760px;
	color: #fff;
	font-size: clamp(19px, 2vw, 28px);
	font-weight: 800;
	line-height: 1.45;
	text-shadow: 0 12px 34px rgba(0,0,0,.86);
}

.contacts-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}

.contacts-section {
	padding: clamp(78px, 9vw, 132px) var(--sf-edge, clamp(20px, 5vw, 72px));
}

.contacts-layout {
	width: 100%;
	max-width: var(--sf-site-width, 1460px);
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, .92fr) minmax(360px, .78fr);
	gap: clamp(34px, 6vw, 86px);
	align-items: start;
}

.contacts-copy h2 {
	max-width: 800px;
	margin-bottom: 28px;
	color: var(--contacts-black);
	font-size: clamp(42px, 5.4vw, 86px);
	font-weight: 700;
	line-height: .96;
	letter-spacing: 0;
}

.contacts-copy p {
	max-width: 760px;
	color: var(--contacts-muted);
	font-size: clamp(18px, 1.7vw, 24px);
	font-weight: 600;
	line-height: 1.62;
}

.contacts-details {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: 34px;
}

.contacts-details > div {
	min-height: 140px;
	padding: 22px;
	display: grid;
	align-content: space-between;
	background: #fff;
	border: 1px solid var(--contacts-line);
	border-radius: 8px;
	box-shadow: 0 16px 40px rgba(0,0,0,.05);
}

.contacts-details span {
	color: var(--contacts-red);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.contacts-details strong {
	margin-top: 18px;
	color: #111;
	font-size: 18px;
	line-height: 1.25;
}

.contacts-image-stack {
	position: relative;
	min-height: 480px;
	margin-top: 42px;
}

.contacts-image-stack img {
	width: 78%;
	height: 520px;
	object-fit: cover;
	border-radius: 8px;
	box-shadow: 0 28px 78px rgba(0,0,0,.16);
}

.contacts-image-stack img:nth-child(2) {
	position: absolute;
	right: 0;
	bottom: -34px;
	width: 48%;
	height: 275px;
	border: 8px solid #fff;
}

.contacts-form-shell {
	position: sticky;
	top: 26px;
	display: grid;
	gap: 16px;
	padding: clamp(22px, 3vw, 34px);
	background: #fff;
	border: 1px solid var(--contacts-line);
	border-radius: 8px;
	box-shadow: 0 30px 80px rgba(0,0,0,.12);
}

.contacts-form-shell h2 {
	margin-bottom: 0;
	color: var(--contacts-black);
	font-size: clamp(28px, 3vw, 42px);
	font-weight: 700;
	line-height: 1.05;
}

.contacts-form-shell > p {
	margin-bottom: 0;
	color: var(--contacts-muted);
	font-weight: 600;
	line-height: 1.55;
}

.contacts-form-shell .contact-form {
	position: static;
	padding: 0;
	border: 0 !important;
	box-shadow: none;
}

.contacts-info-band {
	padding: clamp(78px, 9vw, 112px) var(--sf-edge, clamp(20px, 5vw, 72px));
	color: #fff;
	background:
		radial-gradient(circle at 10% 0%, rgba(211,24,34,.22), transparent 32%),
		linear-gradient(135deg, #050505 0%, #121212 56%, #21080b 100%);
}

.contacts-info-grid {
	width: 100%;
	max-width: var(--sf-site-width, 1460px);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.contacts-info-grid article {
	min-height: 260px;
	padding: 30px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background: rgba(255,255,255,.05);
	border: 1px solid rgba(255,255,255,.14);
	border-radius: 8px;
}

.contacts-info-grid span {
	color: var(--contacts-red);
	font-weight: 900;
	letter-spacing: .18em;
}

.contacts-info-grid h3 {
	margin: 36px 0 14px;
	color: #fff;
	font-size: 28px;
	font-weight: 800;
	line-height: 1.1;
}

.contacts-info-grid p {
	margin: 0;
	color: rgba(255,255,255,.68);
	line-height: 1.6;
}

.frames-page {
	--frames-black: #080808;
	--frames-red: #d31822;
	--frames-muted: #606060;
	--frames-line: #e8e8e8;
	color: #111;
	background: #fff;
	font-family: Arial, Helvetica, sans-serif;
	overflow: hidden;
}

.frames-page h1,
.frames-page h2,
.frames-page h3,
.frames-page p {
	margin-top: 0;
}

.frames-page .eyebrow {
	margin: 0 0 14px;
	color: var(--frames-red);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.frames-hero {
	position: relative;
	min-height: min(82vh, 900px);
	padding: clamp(124px, 10vw, 158px) var(--sf-edge, clamp(20px, 5vw, 72px)) clamp(76px, 8vw, 118px);
	display: grid;
	align-items: center;
	color: #fff;
	background: #050505;
	overflow: hidden;
}

.frames-hero__bg {
	position: absolute;
	inset: -3%;
	background-position: center;
	background-size: cover;
	transform: translateZ(0) scale3d(1, 1, 1);
	transform-origin: center center;
	animation: framesHeroImageZoom 3s cubic-bezier(.37, 0, .63, 1) infinite alternate;
	backface-visibility: hidden;
	filter: saturate(1.04) contrast(1.04);
	will-change: transform;
}

@keyframes framesHeroImageZoom {
	from {
		transform: translateZ(0) scale3d(1, 1, 1);
	}

	to {
		transform: translateZ(0) scale3d(1.026, 1.026, 1);
	}
}

.frames-hero:after {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 16% 44%, rgba(211,24,34,.32), transparent 34%),
		linear-gradient(90deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.66) 48%, rgba(0,0,0,.34) 100%),
		linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.68));
	content: "";
}

.frames-hero__content {
	position: relative;
	z-index: 1;
	max-width: 920px;
	padding: clamp(26px, 3.2vw, 42px) clamp(28px, 4vw, 52px);
	border-left: 4px solid var(--frames-red);
}

.frames-hero h1 {
	max-width: 860px;
	margin-bottom: 22px;
	color: #fff;
	font-size: clamp(44px, 5.7vw, 82px);
	font-weight: 800;
	line-height: .98;
	letter-spacing: 0;
	text-shadow: 0 20px 54px rgba(0,0,0,.62);
}

.frames-hero__text {
	max-width: 780px;
	color: #fff;
	font-size: clamp(19px, 2vw, 28px);
	font-weight: 800;
	line-height: 1.45;
	text-shadow: 0 12px 34px rgba(0,0,0,.86);
}

.frames-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}

.frames-marquee {
	position: relative;
	min-height: clamp(280px, 26vw, 410px);
	display: grid;
	align-items: center;
	overflow: hidden;
	background: linear-gradient(180deg, #f6f7f8 0%, #fff 100%);
	border-bottom: 1px solid rgba(0,0,0,.06);
}

.frames-marquee:after {
	position: absolute;
	inset: auto 0 0;
	height: 50%;
	background: linear-gradient(180deg, rgba(255,255,255,0), #fff);
	content: "";
}

.frames-marquee__caption {
	position: absolute;
	top: clamp(76px, 12.5vw, 150px);
	left: var(--sf-edge, clamp(20px, 5vw, 72px));
	z-index: 2;
	max-width: 940px;
}

.frames-marquee__caption strong {
	display: block;
	margin-bottom: 8px;
	color: #111;
	font-size: clamp(28px, 4.2vw, 64px);
	font-weight: 800;
	line-height: .95;
}

.frames-marquee__caption p {
	max-width: 800px;
	margin: 0;
	color: rgba(17,17,17,.64);
	font-size: clamp(16px, 1.35vw, 20px);
	font-weight: 600;
	line-height: 1.55;
}

.frames-marquee__track {
	display: flex;
	width: max-content;
	align-items: center;
	gap: clamp(38px, 6vw, 90px);
	color: #e7eaee;
	font-size: clamp(78px, 13vw, 218px);
	font-weight: 950;
	line-height: .82;
	letter-spacing: -.04em;
	opacity: .78;
	white-space: nowrap;
	animation: framesTextScroll 30s linear infinite;
}

@keyframes framesTextScroll {
	from { transform: translate3d(0, -18px, 0); }
	to { transform: translate3d(-50%, -18px, 0); }
}

.frames-tags,
.frames-points {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}

.frames-tags span,
.frames-tags a {
	display: inline-flex;
	min-height: 36px;
	align-items: center;
	padding: 0 14px;
	color: #111;
	background: rgba(255,255,255,.78);
	border: 1px solid rgba(17,17,17,.08);
	border-radius: 999px;
	box-shadow: 0 12px 30px rgba(0,0,0,.05);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .04em;
	text-decoration: none;
	text-transform: uppercase;
}

.frames-tags a:hover,
.frames-tags a:focus-visible {
	color: var(--frames-red);
	border-color: rgba(211,24,34,.32);
	box-shadow: 0 16px 36px rgba(0,0,0,.08);
}

.frames-video-showcase {
	scroll-margin-top: 132px;
}

.frames-section {
	padding: clamp(78px, 9vw, 132px) var(--sf-edge, clamp(20px, 5vw, 72px));
}

.frames-intro,
.frames-material,
.frames-inferriate,
.frames-process__grid,
.frames-feature-grid,
.frames-heading {
	width: 100%;
	max-width: var(--sf-site-width, 1460px);
	margin-right: auto;
	margin-left: auto;
}

.frames-intro,
.frames-material,
.frames-inferriate {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(360px, .78fr);
	gap: clamp(34px, 6vw, 86px);
	align-items: start;
}

.frames-heading h2,
.frames-process h2,
.frames-cta h2 {
	margin-bottom: 24px;
	color: var(--frames-black);
	font-size: clamp(36px, 4.8vw, 72px);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: 0;
}

.frames-heading p,
.frames-panel p,
.frames-feature-grid p,
.frames-process p,
.frames-cta p {
	color: var(--frames-muted);
	font-size: clamp(17px, 1.35vw, 21px);
	font-weight: 500;
	line-height: 1.65;
}

.frames-points {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 680px;
	margin-top: 32px;
}

.frames-points span {
	display: grid;
	min-height: 96px;
	align-content: center;
	padding: 18px;
	color: #161616;
	background: #f6f6f6;
	border: 1px solid rgba(0,0,0,.06);
	border-radius: 6px;
	font-size: 13px;
	font-weight: 900;
	line-height: 1.25;
}

.frames-points i {
	display: block;
	width: 10px;
	height: 10px;
	margin-bottom: 12px;
	background: var(--frames-red);
	border-radius: 999px;
	box-shadow: 0 0 0 6px rgba(211,24,34,.1);
}

.frames-security-note {
	max-width: 680px;
	margin-top: 26px;
	padding: 24px;
	color: #fff;
	background: linear-gradient(135deg, rgba(211,24,34,.2), rgba(0,0,0,.04)), #111;
	border-left: 4px solid var(--frames-red);
	border-radius: 8px;
	box-shadow: 0 22px 54px rgba(0,0,0,.16);
}

.frames-security-note strong {
	display: block;
	margin-bottom: 10px;
	color: #fff;
	font-size: clamp(19px, 1.45vw, 25px);
	line-height: 1.2;
}

.frames-security-note p {
	color: rgba(255,255,255,.76);
	font-size: 15px;
	font-weight: 600;
}

.frames-security-note div {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}

.frames-security-note span {
	padding: 9px 12px;
	color: #fff;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.13);
	border-radius: 999px;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.frames-panel {
	padding: clamp(24px, 3vw, 36px);
	background: #fff;
	border: 1px solid var(--frames-line);
	border-radius: 8px;
	box-shadow: 0 24px 70px rgba(0,0,0,.08);
}

.frames-panel ul {
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 12px;
}

.frames-panel li {
	position: relative;
	padding-left: 24px;
	color: #222;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
}

.frames-panel li:before {
	position: absolute;
	top: .58em;
	left: 0;
	width: 8px;
	height: 8px;
	background: var(--frames-red);
	border-radius: 999px;
	content: "";
}

.frames-protected {
	display: grid;
	grid-template-columns: minmax(130px, 220px) minmax(0, 1fr);
	gap: 22px;
	align-items: center;
	margin-top: 26px;
	padding: 18px;
	color: #fff;
	background: #080808;
	border-radius: 8px;
	box-shadow: 0 18px 44px rgba(0,0,0,.14);
}

.frames-protected img {
	width: 100%;
	background: #fff;
	border-radius: 5px;
}

.frames-protected strong {
	display: block;
	margin-bottom: 8px;
	color: #fff;
	font-size: 20px;
}

.frames-protected p {
	margin: 0;
	color: rgba(255,255,255,.72);
	font-size: 14px;
	line-height: 1.55;
}

.frames-photo-strip {
	overflow: hidden;
	padding: clamp(22px, 3vw, 38px) 0 clamp(42px, 5vw, 70px);
	background: #fff;
}

.frames-photo-strip__track {
	display: flex;
	width: max-content;
	gap: 18px;
	padding: 0 18px;
	animation: framesPhotoScroll 34s linear infinite;
	will-change: transform;
}

.frames-photo-strip:hover .frames-photo-strip__track {
	animation-play-state: paused;
}

@keyframes framesPhotoScroll {
	from { transform: translate3d(0, 0, 0); }
	to { transform: translate3d(-50%, 0, 0); }
}

.frames-photo-strip figure {
	width: clamp(320px, 38vw, 620px);
	margin: 0;
	flex: 0 0 auto;
	overflow: hidden;
	background: #f4f4f4;
	border-radius: 8px;
	box-shadow: 0 22px 58px rgba(0,0,0,.12);
}

.frames-photo-strip img {
	display: block;
	width: 100% !important;
	height: clamp(220px, 26vw, 360px) !important;
	object-fit: cover !important;
	transition: transform .5s ease;
}

.frames-photo-strip figure:hover img {
	transform: scale(1.035);
}

.frames-material {
	background: #fff;
}

.frames-security {
	position: relative;
	color: #fff;
	background-position: center;
	background-size: cover;
	overflow: hidden;
}

.frames-security:before {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.7) 48%, rgba(0,0,0,.5)),
		radial-gradient(circle at 12% 16%, rgba(211,24,34,.34), transparent 34%);
	content: "";
}

.frames-security > * {
	position: relative;
	z-index: 1;
}

.frames-security .frames-heading h2,
.frames-security .frames-heading p,
.frames-process h2,
.frames-process h3,
.frames-process .eyebrow,
.frames-cta h2,
.frames-cta p {
	color: #fff;
}

.frames-page .frames-security .frames-heading h2,
.frames-page .frames-process h2 {
	color: #fff !important;
	font-weight: 800 !important;
	text-shadow: 0 22px 62px rgba(0,0,0,.46);
}

.frames-page .frames-security .frames-heading p:not(.eyebrow) {
	max-width: 1180px;
	color: rgba(255,255,255,.78) !important;
	font-size: clamp(18px, 1.45vw, 24px) !important;
	font-weight: 500 !important;
	line-height: 1.65 !important;
}

.frames-feature-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 44px;
}

.frames-feature-grid article {
	min-height: 240px;
	padding: 28px;
	background: rgba(255,255,255,.1);
	border: 1px solid rgba(255,255,255,.22);
	border-radius: 8px;
	box-shadow: 0 24px 70px rgba(0,0,0,.16);
	backdrop-filter: blur(10px);
}

.frames-feature-grid span,
.frames-process__steps strong {
	color: var(--frames-red);
	font-weight: 900;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.frames-feature-grid h3 {
	margin: 34px 0 12px;
	color: #fff !important;
	font-size: clamp(24px, 2.1vw, 30px) !important;
	font-weight: 800 !important;
	line-height: 1.12 !important;
}

.frames-feature-grid p {
	color: rgba(255,255,255,.74) !important;
	font-size: clamp(17px, 1.35vw, 21px) !important;
	font-weight: 500 !important;
	line-height: 1.62 !important;
}

.frames-page .frames-security {
	padding-top: clamp(100px, 8vw, 138px) !important;
	padding-bottom: clamp(82px, 7vw, 118px) !important;
	background-position: center !important;
}

.frames-page .frames-security:before {
	background:
		linear-gradient(90deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.55) 52%, rgba(0,0,0,.36) 100%),
		radial-gradient(circle at 12% 28%, rgba(0,0,0,.32), transparent 34%) !important;
}

.frames-page .frames-security .frames-heading {
	max-width: 980px;
}

.frames-page .frames-security .frames-heading .eyebrow {
	color: rgba(255,255,255,.42) !important;
	font-size: 15px !important;
	font-weight: 900 !important;
	letter-spacing: .13em !important;
}

.frames-page .frames-security .frames-heading h2 {
	max-width: 900px !important;
	margin-top: 18px !important;
	color: #fff !important;
	font-size: clamp(48px, 4.7vw, 74px) !important;
	font-weight: 850 !important;
	line-height: .98 !important;
	letter-spacing: 0 !important;
	text-shadow: 0 22px 58px rgba(0,0,0,.52) !important;
}

.frames-page .frames-security .frames-heading p:not(.eyebrow) {
	max-width: 930px !important;
	margin-top: 34px !important;
	color: rgba(255,255,255,.84) !important;
	font-size: clamp(16px, 1.12vw, 18px) !important;
	font-weight: 800 !important;
	line-height: 1.6 !important;
}

.frames-page .frames-security .frames-feature-grid {
	gap: 18px !important;
	margin-top: 26px !important;
}

.frames-page .frames-security .frames-feature-grid article {
	min-height: clamp(250px, 20vw, 286px) !important;
	padding: clamp(36px, 3vw, 48px) !important;
	background: #fff !important;
	border: 1px solid rgba(0,0,0,.06) !important;
	border-radius: 4px !important;
	box-shadow: 0 26px 68px rgba(0,0,0,.24) !important;
	backdrop-filter: none !important;
}

.frames-page .frames-security .frames-feature-grid span {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	overflow: hidden;
	color: #fff !important;
	background: linear-gradient(135deg, #e01822 0 48%, #060606 49% 100%) !important;
	border-radius: 5px;
	font-size: 12px !important;
	font-weight: 950 !important;
	letter-spacing: .02em !important;
	text-transform: uppercase;
	box-shadow: 0 10px 22px rgba(0,0,0,.18);
}

.frames-page .frames-security .frames-feature-grid h3 {
	margin: 46px 0 16px !important;
	color: #050505 !important;
	font-size: clamp(24px, 2vw, 31px) !important;
	font-weight: 850 !important;
	line-height: 1.1 !important;
}

.frames-page .frames-security .frames-feature-grid p {
	max-width: 430px;
	color: rgba(0,0,0,.62) !important;
	font-size: clamp(16px, 1.2vw, 18px) !important;
	font-weight: 500 !important;
	line-height: 1.6 !important;
}

.frames-process {
	position: relative;
	background:
		radial-gradient(circle at 10% 10%, rgba(211,24,34,.26), transparent 30%),
		radial-gradient(circle at 88% 70%, rgba(211,24,34,.12), transparent 30%),
		linear-gradient(135deg, #050505, #150306 60%, #050505);
	overflow: hidden;
}

.frames-process:before {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0,0,0,.08), rgba(0,0,0,.34));
	content: "";
	pointer-events: none;
}

.frames-process > * {
	position: relative;
	z-index: 1;
}

.frames-process__grid {
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	gap: clamp(38px, 7vw, 94px);
	align-items: start;
}

.frames-process__steps {
	display: grid;
	border-top: 1px solid rgba(255,255,255,.18);
}

.frames-process__steps > div {
	padding: 30px 0;
	border-bottom: 1px solid rgba(255,255,255,.18);
}

.frames-page .frames-process__steps strong {
	color: var(--frames-red) !important;
	font-size: 16px !important;
	font-weight: 950 !important;
	letter-spacing: .18em !important;
}

.frames-process__steps p {
	margin: 10px 0 0;
	color: rgba(255,255,255,.72) !important;
	font-size: clamp(18px, 1.45vw, 22px) !important;
	font-weight: 500 !important;
	line-height: 1.62 !important;
}

.frames-inferriate {
	align-items: center;
}

.frames-inferriate__image img {
	width: 100%;
	min-height: 520px;
	object-fit: cover;
	border-radius: 8px;
	box-shadow: 0 30px 80px rgba(0,0,0,.16);
}

.frames-cta {
	position: relative;
	padding: clamp(78px, 9vw, 128px) var(--sf-edge, clamp(20px, 5vw, 72px));
	color: #fff;
	background-position: center;
	background-size: cover;
	overflow: hidden;
}

.frames-cta:before {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0,0,0,.9), rgba(0,0,0,.56)), radial-gradient(circle at 12% 30%, rgba(211,24,34,.28), transparent 34%);
	content: "";
}

.frames-cta > * {
	position: relative;
	z-index: 1;
	max-width: 860px;
}

.frames-cta p {
	color: rgba(255,255,255,.74);
}

.pergolas-page {
	--pergolas-black: #080808;
	--pergolas-red: #d31822;
	--pergolas-muted: #606060;
	--pergolas-line: #e8e8e8;
	color: #111;
	background: #fff;
	font-family: Arial, Helvetica, sans-serif;
	overflow: hidden;
}

.pergolas-page h1,
.pergolas-page h2,
.pergolas-page h3,
.pergolas-page p {
	margin-top: 0;
}

.pergolas-page .eyebrow {
	margin: 0 0 14px;
	color: var(--pergolas-red);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.pergolas-hero {
	position: relative;
	min-height: min(82vh, 900px);
	padding: clamp(124px, 10vw, 158px) var(--sf-edge, clamp(20px, 5vw, 72px)) clamp(76px, 8vw, 118px);
	display: grid;
	align-items: center;
	color: #fff;
	background: #050505;
	overflow: hidden;
}

.pergolas-hero__bg {
	position: absolute;
	inset: -3%;
	background-position: center;
	background-size: cover;
	transform: scale(1.04);
	filter: saturate(1.05) contrast(1.04);
}

.pergolas-hero:after {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 18% 44%, rgba(211,24,34,.3), transparent 34%),
		linear-gradient(90deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.62) 48%, rgba(0,0,0,.34) 100%),
		linear-gradient(180deg, rgba(0,0,0,.44), rgba(0,0,0,.68));
	content: "";
}

.pergolas-hero__content {
	position: relative;
	z-index: 1;
	max-width: 880px;
	padding: clamp(26px, 3.2vw, 42px) clamp(28px, 4vw, 52px);
	border-left: 4px solid var(--pergolas-red);
}

.pergolas-hero h1 {
	max-width: 820px;
	margin-bottom: 22px;
	color: #fff;
	font-size: clamp(44px, 5.7vw, 82px);
	font-weight: 800;
	line-height: .98;
	letter-spacing: 0;
	text-shadow: 0 20px 54px rgba(0,0,0,.62);
}

.pergolas-hero__text {
	max-width: 760px;
	color: #fff;
	font-size: clamp(19px, 2vw, 28px);
	font-weight: 800;
	line-height: 1.45;
	text-shadow: 0 12px 34px rgba(0,0,0,.86);
}

.pergolas-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}

.pergolas-marquee {
	position: relative;
	min-height: clamp(280px, 26vw, 410px);
	display: grid;
	align-items: center;
	overflow: hidden;
	background: linear-gradient(180deg, #f6f7f8 0%, #fff 100%);
	border-bottom: 1px solid rgba(0,0,0,.06);
}

.pergolas-marquee:after {
	position: absolute;
	inset: auto 0 0;
	height: 50%;
	background: linear-gradient(180deg, rgba(255,255,255,0), #fff);
	content: "";
}

.pergolas-marquee__caption {
	position: absolute;
	top: clamp(76px, 12.5vw, 150px);
	left: var(--sf-edge, clamp(20px, 5vw, 72px));
	z-index: 2;
	max-width: 940px;
}

.pergolas-marquee__caption strong {
	display: block;
	margin-bottom: 8px;
	color: #111;
	font-size: clamp(28px, 4.2vw, 64px);
	font-weight: 800;
	line-height: .95;
}

.pergolas-marquee__caption p {
	max-width: 800px;
	margin: 0;
	color: rgba(17,17,17,.64);
	font-size: clamp(16px, 1.35vw, 20px);
	font-weight: 600;
	line-height: 1.55;
}

.pergolas-marquee__track {
	display: flex;
	width: max-content;
	align-items: center;
	gap: clamp(38px, 6vw, 90px);
	color: #e7eaee;
	font-size: clamp(78px, 13vw, 218px);
	font-weight: 950;
	line-height: .82;
	letter-spacing: -.04em;
	opacity: .78;
	white-space: nowrap;
	animation: pergolasTextScroll 30s linear infinite;
}

@keyframes pergolasTextScroll {
	from { transform: translate3d(0, -18px, 0); }
	to { transform: translate3d(-50%, -18px, 0); }
}

.pergolas-tags,
.pergolas-points {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}

.pergolas-tags span {
	display: inline-flex;
	min-height: 36px;
	align-items: center;
	padding: 0 14px;
	color: #111;
	background: rgba(255,255,255,.78);
	border: 1px solid rgba(17,17,17,.08);
	border-radius: 999px;
	box-shadow: 0 12px 30px rgba(0,0,0,.05);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.pergolas-section {
	padding: clamp(78px, 9vw, 132px) var(--sf-edge, clamp(20px, 5vw, 72px));
}

.pergolas-intro,
.pergolas-process__grid,
.pergolas-feature-grid,
.pergolas-heading {
	width: 100%;
	max-width: var(--sf-site-width, 1460px);
	margin-right: auto;
	margin-left: auto;
}

.pergolas-intro {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(360px, .78fr);
	gap: clamp(34px, 6vw, 86px);
	align-items: start;
}

.pergolas-heading h2,
.pergolas-process h2,
.pergolas-cta h2 {
	margin-bottom: 24px;
	color: var(--pergolas-black);
	font-size: clamp(36px, 4.8vw, 72px);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: 0;
}

.pergolas-heading p,
.pergolas-panel p,
.pergolas-feature-grid p,
.pergolas-process p,
.pergolas-cta p {
	color: var(--pergolas-muted);
	font-size: clamp(17px, 1.35vw, 21px);
	font-weight: 500;
	line-height: 1.65;
}

.pergolas-points {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 680px;
	margin-top: 32px;
}

.pergolas-points span {
	display: grid;
	min-height: 96px;
	align-content: center;
	padding: 18px;
	color: #161616;
	background: #f6f6f6;
	border: 1px solid rgba(0,0,0,.06);
	border-radius: 6px;
	font-size: 13px;
	font-weight: 900;
	line-height: 1.25;
}

.pergolas-points i {
	display: block;
	width: 10px;
	height: 10px;
	margin-bottom: 12px;
	background: var(--pergolas-red);
	border-radius: 999px;
	box-shadow: 0 0 0 6px rgba(211,24,34,.1);
}

.pergolas-panel {
	padding: clamp(24px, 3vw, 36px);
	background: #fff;
	border: 1px solid var(--pergolas-line);
	border-radius: 8px;
	box-shadow: 0 24px 70px rgba(0,0,0,.08);
}

.pergolas-panel ul {
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 12px;
}

.pergolas-panel li {
	position: relative;
	padding-left: 24px;
	color: #222;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
}

.pergolas-panel li:before {
	position: absolute;
	top: .58em;
	left: 0;
	width: 8px;
	height: 8px;
	background: var(--pergolas-red);
	border-radius: 999px;
	content: "";
}

.pergolas-photo-strip {
	overflow: hidden;
	padding: clamp(42px, 6vw, 72px) 0;
	background: #050505;
}

.pergolas-photo-strip__track {
	display: flex;
	gap: 18px;
	width: max-content;
	animation: pergolasPhotoScroll 34s linear infinite;
}

@keyframes pergolasPhotoScroll {
	from { transform: translateX(0); }
	to { transform: translateX(-38%); }
}

.pergolas-photo-strip figure {
	width: clamp(300px, 34vw, 560px);
	height: clamp(240px, 28vw, 420px);
	margin: 0;
	overflow: hidden;
	border-radius: 8px;
}

.pergolas-photo-strip img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pergolas-benefits {
	background: #fff;
}

.pergolas-feature-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 44px;
}

.pergolas-feature-grid article {
	min-height: 280px;
	padding: 30px;
	background: #fff;
	border: 1px solid var(--pergolas-line);
	border-radius: 8px;
	box-shadow: 0 18px 50px rgba(0,0,0,.06);
}

.pergolas-feature-grid span,
.pergolas-process__steps strong {
	color: var(--pergolas-red);
	font-weight: 900;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.pergolas-feature-grid h3 {
	margin: 34px 0 12px;
	color: var(--pergolas-black);
	font-size: 26px;
}

.pergolas-process {
	background: radial-gradient(circle at 10% 10%, rgba(211,24,34,.22), transparent 30%), linear-gradient(135deg, #050505, #150306 60%, #050505);
}

.pergolas-process__grid {
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	gap: clamp(38px, 7vw, 94px);
	align-items: start;
}

.pergolas-process h2,
.pergolas-process .eyebrow,
.pergolas-cta h2,
.pergolas-cta p {
	color: #fff;
}

.pergolas-process__steps {
	display: grid;
	border-top: 1px solid rgba(255,255,255,.18);
}

.pergolas-process__steps > div {
	padding: 30px 0;
	border-bottom: 1px solid rgba(255,255,255,.18);
}

.pergolas-process__steps p {
	margin: 10px 0 0;
	color: rgba(255,255,255,.72);
}

.pergolas-cta {
	position: relative;
	padding: clamp(78px, 9vw, 128px) var(--sf-edge, clamp(20px, 5vw, 72px));
	color: #fff;
	background-position: center;
	background-size: cover;
	overflow: hidden;
}

.pergolas-cta:before {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0,0,0,.9), rgba(0,0,0,.56)), radial-gradient(circle at 12% 30%, rgba(211,24,34,.28), transparent 34%);
	content: "";
}

.pergolas-cta > * {
	position: relative;
	z-index: 1;
	max-width: 860px;
}

.pergolas-cta p {
	color: rgba(255,255,255,.74);
}

.awnings-page {
	--awnings-black: #080808;
	--awnings-red: #d31822;
	--awnings-muted: #606060;
	--awnings-line: #e8e8e8;
	color: #111;
	background: #fff;
	font-family: Arial, Helvetica, sans-serif;
	overflow: hidden;
}

.awnings-page h1,
.awnings-page h2,
.awnings-page h3,
.awnings-page p {
	margin-top: 0;
}

.awnings-page .eyebrow {
	margin: 0 0 14px;
	color: var(--awnings-red);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.awnings-hero {
	position: relative;
	min-height: min(82vh, 900px);
	padding: clamp(124px, 10vw, 158px) var(--sf-edge, clamp(20px, 5vw, 72px)) clamp(76px, 8vw, 118px);
	display: grid;
	align-items: center;
	color: #fff;
	background: #050505;
	overflow: hidden;
}

.awnings-hero__bg {
	position: absolute;
	inset: -3%;
	background-position: center;
	background-size: cover;
	transform: translateZ(0) scale3d(1, 1, 1);
	transform-origin: center center;
	animation: awningsHeroImageZoom 5s cubic-bezier(.37, 0, .63, 1) infinite alternate;
	backface-visibility: hidden;
	filter: saturate(1.05) contrast(1.04);
	will-change: transform;
}

@keyframes awningsHeroImageZoom {
	from {
		transform: translateZ(0) scale3d(1, 1, 1);
	}

	to {
		transform: translateZ(0) scale3d(1.022, 1.022, 1);
	}
}

.awnings-hero:after {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 18% 44%, rgba(211,24,34,.3), transparent 34%), linear-gradient(90deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.62) 48%, rgba(0,0,0,.34) 100%), linear-gradient(180deg, rgba(0,0,0,.44), rgba(0,0,0,.68));
	content: "";
}

.awnings-hero__content {
	position: relative;
	z-index: 1;
	max-width: 880px;
	padding: clamp(26px, 3.2vw, 42px) clamp(28px, 4vw, 52px);
	border-left: 4px solid var(--awnings-red);
}

.awnings-hero h1 {
	max-width: 820px;
	margin-bottom: 22px;
	color: #fff;
	font-size: clamp(44px, 5.7vw, 82px);
	font-weight: 800;
	line-height: .98;
	letter-spacing: 0;
	text-shadow: 0 20px 54px rgba(0,0,0,.62);
}

.awnings-hero__text {
	max-width: 760px;
	color: #fff;
	font-size: clamp(19px, 2vw, 28px);
	font-weight: 800;
	line-height: 1.45;
	text-shadow: 0 12px 34px rgba(0,0,0,.86);
}

.awnings-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}

.awnings-marquee {
	position: relative;
	min-height: clamp(280px, 26vw, 410px);
	display: grid;
	align-items: center;
	overflow: hidden;
	background: linear-gradient(180deg, #f6f7f8 0%, #fff 100%);
	border-bottom: 1px solid rgba(0,0,0,.06);
}

.awnings-marquee:after {
	position: absolute;
	inset: auto 0 0;
	height: 50%;
	background: linear-gradient(180deg, rgba(255,255,255,0), #fff);
	content: "";
}

.awnings-marquee__caption {
	position: absolute;
	top: clamp(76px, 12.5vw, 150px);
	left: var(--sf-edge, clamp(20px, 5vw, 72px));
	z-index: 2;
	max-width: 940px;
}

.awnings-marquee__caption strong {
	display: block;
	margin-bottom: 8px;
	color: #111;
	font-size: clamp(28px, 4.2vw, 64px);
	font-weight: 800;
	line-height: .95;
}

.awnings-marquee__caption p {
	max-width: 800px;
	margin: 0;
	color: rgba(17,17,17,.64);
	font-size: clamp(16px, 1.35vw, 20px);
	font-weight: 600;
	line-height: 1.55;
}

.awnings-marquee__track {
	display: flex;
	width: max-content;
	align-items: center;
	gap: clamp(38px, 6vw, 90px);
	color: #e7eaee;
	font-size: clamp(78px, 13vw, 218px);
	font-weight: 950;
	line-height: .82;
	letter-spacing: -.04em;
	opacity: .78;
	white-space: nowrap;
	animation: awningsTextScroll 30s linear infinite;
}

@keyframes awningsTextScroll {
	from { transform: translate3d(0, -18px, 0); }
	to { transform: translate3d(-50%, -18px, 0); }
}

.awnings-tags,
.awnings-points {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}

.awnings-tags span {
	display: inline-flex;
	min-height: 36px;
	align-items: center;
	padding: 0 14px;
	color: #111;
	background: rgba(255,255,255,.78);
	border: 1px solid rgba(17,17,17,.08);
	border-radius: 999px;
	box-shadow: 0 12px 30px rgba(0,0,0,.05);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.awnings-section {
	padding: clamp(78px, 9vw, 132px) var(--sf-edge, clamp(20px, 5vw, 72px));
}

.awnings-intro,
.awnings-process__grid,
.awnings-feature-grid,
.awnings-heading {
	width: 100%;
	max-width: var(--sf-site-width, 1460px);
	margin-right: auto;
	margin-left: auto;
}

.awnings-intro {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(360px, .78fr);
	gap: clamp(34px, 6vw, 86px);
	align-items: start;
}

.awnings-heading h2,
.awnings-process h2,
.awnings-cta h2 {
	margin-bottom: 24px;
	color: var(--awnings-black);
	font-size: clamp(36px, 4.8vw, 72px);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: 0;
}

.awnings-heading p,
.awnings-panel p,
.awnings-feature-grid p,
.awnings-process p,
.awnings-cta p {
	color: var(--awnings-muted);
	font-size: clamp(17px, 1.35vw, 21px);
	font-weight: 500;
	line-height: 1.65;
}

.awnings-points {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 680px;
	margin-top: 32px;
}

.awnings-points span {
	display: grid;
	min-height: 96px;
	align-content: center;
	padding: 18px;
	color: #161616;
	background: #f6f6f6;
	border: 1px solid rgba(0,0,0,.06);
	border-radius: 6px;
	font-size: 13px;
	font-weight: 900;
	line-height: 1.25;
}

.awnings-points i {
	display: block;
	width: 10px;
	height: 10px;
	margin-bottom: 12px;
	background: var(--awnings-red);
	border-radius: 999px;
	box-shadow: 0 0 0 6px rgba(211,24,34,.1);
}

.awnings-panel {
	padding: clamp(24px, 3vw, 36px);
	background: #fff;
	border: 1px solid var(--awnings-line);
	border-radius: 8px;
	box-shadow: 0 24px 70px rgba(0,0,0,.08);
}

.awnings-panel ul {
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 12px;
}

.awnings-panel li {
	position: relative;
	padding-left: 24px;
	color: #222;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
}

.awnings-panel li:before {
	position: absolute;
	top: .58em;
	left: 0;
	width: 8px;
	height: 8px;
	background: var(--awnings-red);
	border-radius: 999px;
	content: "";
}

.awnings-photo-strip {
	overflow: hidden;
	padding: clamp(42px, 6vw, 72px) 0;
	background: #050505;
}

.awnings-photo-strip__track {
	display: flex;
	gap: 18px;
	width: max-content;
	animation: awningsPhotoScroll 34s linear infinite;
}

@keyframes awningsPhotoScroll {
	from { transform: translateX(0); }
	to { transform: translateX(-38%); }
}

.awnings-photo-strip figure {
	width: clamp(300px, 34vw, 560px);
	height: clamp(220px, 24vw, 360px);
	margin: 0;
	overflow: hidden;
	border-radius: 8px;
}

.awnings-photo-strip img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.awnings-feature-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 44px;
}

.awnings-feature-grid article {
	min-height: 260px;
	padding: 30px;
	background: #fff;
	border: 1px solid var(--awnings-line);
	border-radius: 8px;
	box-shadow: 0 18px 50px rgba(0,0,0,.06);
}

.awnings-feature-grid span,
.awnings-process__steps strong {
	color: var(--awnings-red);
	font-weight: 900;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.awnings-feature-grid h3 {
	margin: 34px 0 12px;
	color: var(--awnings-black);
	font-size: 26px;
}

.awnings-process {
	background: radial-gradient(circle at 10% 10%, rgba(211,24,34,.22), transparent 30%), linear-gradient(135deg, #050505, #150306 60%, #050505);
}

.awnings-process__grid {
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	gap: clamp(38px, 7vw, 94px);
	align-items: start;
}

.awnings-process h2,
.awnings-process .eyebrow,
.awnings-cta h2,
.awnings-cta p {
	color: #fff;
}

.awnings-process__steps {
	display: grid;
	border-top: 1px solid rgba(255,255,255,.18);
}

.awnings-process__steps > div {
	padding: 30px 0;
	border-bottom: 1px solid rgba(255,255,255,.18);
}

.awnings-process__steps p {
	margin: 10px 0 0;
	color: rgba(255,255,255,.72);
}

.awnings-cta {
	position: relative;
	padding: clamp(78px, 9vw, 128px) var(--sf-edge, clamp(20px, 5vw, 72px));
	color: #fff;
	background-position: center;
	background-size: cover;
	overflow: hidden;
}

.awnings-cta:before {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0,0,0,.9), rgba(0,0,0,.56)), radial-gradient(circle at 12% 30%, rgba(211,24,34,.28), transparent 34%);
	content: "";
}

.awnings-cta > * {
	position: relative;
	z-index: 1;
	max-width: 860px;
}

.awnings-cta p {
	color: rgba(255,255,255,.74);
}

.screens-page {
	--screens-black: #080808;
	--screens-red: #d31822;
	--screens-muted: #606060;
	--screens-line: #e8e8e8;
	color: #111;
	background: #fff;
	font-family: Arial, Helvetica, sans-serif;
	overflow: hidden;
}

.screens-page h1,
.screens-page h2,
.screens-page h3,
.screens-page p {
	margin-top: 0;
}

.screens-page .eyebrow {
	margin: 0 0 14px;
	color: var(--screens-red);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.screens-hero {
	position: relative;
	min-height: min(82vh, 900px);
	padding: clamp(124px, 10vw, 158px) var(--sf-edge, clamp(20px, 5vw, 72px)) clamp(76px, 8vw, 118px);
	display: grid;
	align-items: center;
	color: #fff;
	background: #050505;
	overflow: hidden;
}

.screens-hero__bg {
	position: absolute;
	inset: -3%;
	background-position: center;
	background-size: cover;
	transform: scale(1.04);
	filter: saturate(1.05) contrast(1.04);
}

.screens-hero:after {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 18% 44%, rgba(211,24,34,.3), transparent 34%), linear-gradient(90deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.62) 48%, rgba(0,0,0,.34) 100%), linear-gradient(180deg, rgba(0,0,0,.44), rgba(0,0,0,.68));
	content: "";
}

.screens-hero__content {
	position: relative;
	z-index: 1;
	max-width: 920px;
	padding: clamp(26px, 3.2vw, 42px) clamp(28px, 4vw, 52px);
	border-left: 4px solid var(--screens-red);
}

.screens-hero h1 {
	max-width: 860px;
	margin-bottom: 22px;
	color: #fff;
	font-size: clamp(44px, 5.7vw, 82px);
	font-weight: 800;
	line-height: .98;
	letter-spacing: 0;
	text-shadow: 0 20px 54px rgba(0,0,0,.62);
}

.screens-hero__text {
	max-width: 760px;
	color: #fff;
	font-size: clamp(19px, 2vw, 28px);
	font-weight: 800;
	line-height: 1.45;
	text-shadow: 0 12px 34px rgba(0,0,0,.86);
}

.screens-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}

.screens-marquee {
	position: relative;
	min-height: clamp(330px, 30vw, 480px);
	display: grid;
	align-items: center;
	overflow: hidden;
	background: linear-gradient(180deg, #f6f7f8 0%, #fff 100%);
	border-bottom: 1px solid rgba(0,0,0,.06);
}

.screens-marquee:after {
	position: absolute;
	inset: auto 0 0;
	height: 50%;
	background: linear-gradient(180deg, rgba(255,255,255,0), #fff);
	content: "";
}

.screens-marquee__caption {
	position: absolute;
	top: clamp(70px, 9vw, 132px);
	left: var(--sf-edge, clamp(20px, 5vw, 72px));
	z-index: 2;
	max-width: 980px;
}

.screens-marquee__caption strong {
	display: block;
	margin-bottom: 8px;
	color: #111;
	font-size: clamp(28px, 4.2vw, 64px);
	font-weight: 800;
	line-height: .95;
}

.screens-marquee__caption p {
	max-width: 800px;
	margin: 0;
	color: rgba(17,17,17,.64);
	font-size: clamp(16px, 1.35vw, 20px);
	font-weight: 600;
	line-height: 1.55;
}

.screens-detail {
	margin-top: 12px !important;
}

.screens-marquee__track {
	display: flex;
	width: max-content;
	align-items: center;
	gap: clamp(38px, 6vw, 90px);
	color: #e7eaee;
	font-size: clamp(70px, 12vw, 190px);
	font-weight: 950;
	line-height: .82;
	letter-spacing: -.04em;
	opacity: .78;
	white-space: nowrap;
	animation: screensTextScroll 30s linear infinite;
}

@keyframes screensTextScroll {
	from { transform: translate3d(0, -18px, 0); }
	to { transform: translate3d(-50%, -18px, 0); }
}

.screens-tags,
.screens-points {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}

.screens-tags span {
	display: inline-flex;
	min-height: 36px;
	align-items: center;
	padding: 0 14px;
	color: #111;
	background: rgba(255,255,255,.78);
	border: 1px solid rgba(17,17,17,.08);
	border-radius: 999px;
	box-shadow: 0 12px 30px rgba(0,0,0,.05);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.screens-section {
	padding: clamp(78px, 9vw, 132px) var(--sf-edge, clamp(20px, 5vw, 72px));
}

.screens-intro,
.screens-process__grid,
.screens-feature-grid,
.screens-heading {
	width: 100%;
	max-width: var(--sf-site-width, 1460px);
	margin-right: auto;
	margin-left: auto;
}

.screens-intro {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(360px, .78fr);
	gap: clamp(34px, 6vw, 86px);
	align-items: start;
}

.screens-heading h2,
.screens-process h2,
.screens-cta h2 {
	margin-bottom: 24px;
	color: var(--screens-black);
	font-size: clamp(36px, 4.8vw, 72px);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: 0;
}

.screens-heading p,
.screens-panel p,
.screens-feature-grid p,
.screens-process p,
.screens-cta p {
	color: var(--screens-muted);
	font-size: clamp(17px, 1.35vw, 21px);
	font-weight: 500;
	line-height: 1.65;
}

.screens-points {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 680px;
	margin-top: 32px;
}

.screens-points span {
	display: grid;
	min-height: 96px;
	align-content: center;
	padding: 18px;
	color: #161616;
	background: #f6f6f6;
	border: 1px solid rgba(0,0,0,.06);
	border-radius: 6px;
	font-size: 13px;
	font-weight: 900;
	line-height: 1.25;
}

.screens-points i {
	display: block;
	width: 10px;
	height: 10px;
	margin-bottom: 12px;
	background: var(--screens-red);
	border-radius: 999px;
	box-shadow: 0 0 0 6px rgba(211,24,34,.1);
}

.screens-panel {
	padding: clamp(24px, 3vw, 36px);
	background: #fff;
	border: 1px solid var(--screens-line);
	border-radius: 8px;
	box-shadow: 0 24px 70px rgba(0,0,0,.08);
}

.screens-panel ul {
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 12px;
}

.screens-panel li {
	position: relative;
	padding-left: 24px;
	color: #222;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
}

.screens-panel li:before {
	position: absolute;
	top: .58em;
	left: 0;
	width: 8px;
	height: 8px;
	background: var(--screens-red);
	border-radius: 999px;
	content: "";
}

.screens-photo-strip {
	overflow: hidden;
	padding: clamp(42px, 6vw, 72px) 0;
	background: #050505;
}

.screens-photo-strip__track {
	display: flex;
	gap: 18px;
	width: max-content;
	animation: screensPhotoScroll 34s linear infinite;
}

@keyframes screensPhotoScroll {
	from { transform: translateX(0); }
	to { transform: translateX(-38%); }
}

.screens-photo-strip figure {
	width: clamp(300px, 34vw, 560px);
	height: clamp(240px, 28vw, 420px);
	margin: 0;
	overflow: hidden;
	border-radius: 8px;
}

.screens-photo-strip img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.screens-feature-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	margin-top: 44px;
}

.screens-feature-grid article {
	min-height: 260px;
	padding: 30px;
	background: #fff;
	border: 1px solid var(--screens-line);
	border-radius: 8px;
	box-shadow: 0 18px 50px rgba(0,0,0,.06);
}

.screens-feature-grid span,
.screens-process__steps strong {
	display: block;
	color: var(--screens-red);
	font-weight: 900;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.screens-feature-grid span {
	margin-bottom: 20px;
}

.screens-feature-grid h3 {
	margin: 0 0 12px;
	color: var(--screens-black);
	font-size: 26px;
	font-weight: 900;
}

.screens-process {
	background: radial-gradient(circle at 10% 10%, rgba(211,24,34,.22), transparent 30%), linear-gradient(135deg, #050505, #150306 60%, #050505);
}

.screens-process__grid {
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	gap: clamp(38px, 7vw, 94px);
	align-items: start;
}

.screens-process h2,
.screens-process .eyebrow,
.screens-cta h2,
.screens-cta p {
	color: #fff;
}

.screens-process__steps {
	display: grid;
	border-top: 1px solid rgba(255,255,255,.18);
}

.screens-process__steps > div {
	padding: 30px 0;
	border-bottom: 1px solid rgba(255,255,255,.18);
}

.screens-process__steps p {
	margin: 10px 0 0;
	color: rgba(255,255,255,.72);
}

.screens-cta {
	position: relative;
	padding: clamp(78px, 9vw, 128px) var(--sf-edge, clamp(20px, 5vw, 72px));
	color: #fff;
	background-position: center;
	background-size: cover;
	overflow: hidden;
}

.screens-cta:before {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0,0,0,.9), rgba(0,0,0,.56)), radial-gradient(circle at 12% 30%, rgba(211,24,34,.28), transparent 34%);
	content: "";
}

.screens-cta > * {
	position: relative;
	z-index: 1;
	max-width: 860px;
}

.screens-cta p {
	color: rgba(255,255,255,.74);
}

.doors-page {
	--doors-black: #080808;
	--doors-red: #d31822;
	--doors-muted: #606060;
	--doors-line: #e8e8e8;
	color: #111;
	background: #fff;
	font-family: Arial, Helvetica, sans-serif;
	overflow: hidden;
}

.doors-page h1,
.doors-page h2,
.doors-page h3,
.doors-page p {
	margin-top: 0;
}

.doors-page .eyebrow {
	margin: 0 0 14px;
	color: var(--doors-red);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.doors-hero {
	position: relative;
	min-height: min(82vh, 900px);
	padding: clamp(124px, 10vw, 158px) var(--sf-edge, clamp(20px, 5vw, 72px)) clamp(76px, 8vw, 118px);
	display: grid;
	align-items: center;
	color: #fff;
	background: #050505;
	overflow: hidden;
}

.doors-hero__bg {
	position: absolute;
	inset: -3%;
	background-position: center;
	background-size: cover;
	transform: scale(1.04);
	filter: saturate(1.05) contrast(1.04);
}

.doors-hero:after {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 18% 44%, rgba(211,24,34,.3), transparent 34%), linear-gradient(90deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.62) 48%, rgba(0,0,0,.34) 100%), linear-gradient(180deg, rgba(0,0,0,.44), rgba(0,0,0,.68));
	content: "";
}

.doors-hero__content {
	position: relative;
	z-index: 1;
	max-width: 920px;
	padding: clamp(26px, 3.2vw, 42px) clamp(28px, 4vw, 52px);
	border-left: 4px solid var(--doors-red);
}

.doors-hero h1 {
	max-width: 860px;
	margin-bottom: 22px;
	color: #fff;
	font-size: clamp(44px, 5.7vw, 82px);
	font-weight: 800;
	line-height: .98;
	letter-spacing: 0;
	text-shadow: 0 20px 54px rgba(0,0,0,.62);
}

.doors-hero__text {
	max-width: 780px;
	color: #fff;
	font-size: clamp(19px, 2vw, 28px);
	font-weight: 800;
	line-height: 1.45;
	text-shadow: 0 12px 34px rgba(0,0,0,.86);
}

.doors-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}

.doors-marquee {
	position: relative;
	min-height: clamp(280px, 26vw, 410px);
	display: grid;
	align-items: center;
	overflow: hidden;
	background: linear-gradient(180deg, #f6f7f8 0%, #fff 100%);
	border-bottom: 1px solid rgba(0,0,0,.06);
}

.doors-marquee:after {
	position: absolute;
	inset: auto 0 0;
	height: 50%;
	background: linear-gradient(180deg, rgba(255,255,255,0), #fff);
	content: "";
}

.doors-marquee__caption {
	position: absolute;
	top: clamp(76px, 12.5vw, 150px);
	left: var(--sf-edge, clamp(20px, 5vw, 72px));
	z-index: 2;
	max-width: 940px;
}

.doors-marquee__caption strong {
	display: block;
	margin-bottom: 8px;
	color: #111;
	font-size: clamp(28px, 4.2vw, 64px);
	font-weight: 800;
	line-height: .95;
}

.doors-marquee__caption p {
	max-width: 800px;
	margin: 0;
	color: rgba(17,17,17,.64);
	font-size: clamp(16px, 1.35vw, 20px);
	font-weight: 600;
	line-height: 1.55;
}

.doors-marquee__track {
	display: flex;
	width: max-content;
	align-items: center;
	gap: clamp(38px, 6vw, 90px);
	color: #e7eaee;
	font-size: clamp(74px, 12.5vw, 198px);
	font-weight: 950;
	line-height: .82;
	letter-spacing: -.04em;
	opacity: .78;
	white-space: nowrap;
	animation: doorsTextScroll 30s linear infinite;
}

@keyframes doorsTextScroll {
	from { transform: translate3d(0, -18px, 0); }
	to { transform: translate3d(-50%, -18px, 0); }
}

.doors-tags,
.doors-points {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}

.doors-tags span {
	display: inline-flex;
	min-height: 36px;
	align-items: center;
	padding: 0 14px;
	color: #111;
	background: rgba(255,255,255,.78);
	border: 1px solid rgba(17,17,17,.08);
	border-radius: 999px;
	box-shadow: 0 12px 30px rgba(0,0,0,.05);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.doors-section {
	padding: clamp(78px, 9vw, 132px) var(--sf-edge, clamp(20px, 5vw, 72px));
}

.doors-intro,
.doors-comfort__grid,
.doors-process__grid,
.doors-feature-grid,
.doors-heading {
	width: 100%;
	max-width: var(--sf-site-width, 1460px);
	margin-right: auto;
	margin-left: auto;
}

.doors-intro,
.doors-comfort__grid {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(360px, .78fr);
	gap: clamp(34px, 6vw, 86px);
	align-items: start;
}

.doors-heading h2,
.doors-comfort h2,
.doors-process h2,
.doors-cta h2 {
	margin-bottom: 24px;
	color: var(--doors-black);
	font-size: clamp(36px, 4.8vw, 72px);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: 0;
}

.doors-heading p,
.doors-panel p,
.doors-comfort p,
.doors-comfort__list span,
.doors-feature-grid p,
.doors-process p,
.doors-cta p {
	color: var(--doors-muted);
	font-size: clamp(17px, 1.35vw, 21px);
	font-weight: 500;
	line-height: 1.65;
}

.doors-points {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 680px;
	margin-top: 32px;
}

.doors-points span {
	display: grid;
	min-height: 96px;
	align-content: center;
	padding: 18px;
	color: #161616;
	background: #f6f6f6;
	border: 1px solid rgba(0,0,0,.06);
	border-radius: 6px;
	font-size: 13px;
	font-weight: 900;
	line-height: 1.25;
}

.doors-points i {
	display: block;
	width: 10px;
	height: 10px;
	margin-bottom: 12px;
	background: var(--doors-red);
	border-radius: 999px;
	box-shadow: 0 0 0 6px rgba(211,24,34,.1);
}

.doors-panel {
	padding: clamp(24px, 3vw, 36px);
	background: #fff;
	border: 1px solid var(--doors-line);
	border-radius: 8px;
	box-shadow: 0 24px 70px rgba(0,0,0,.08);
}

.doors-panel ul {
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 12px;
}

.doors-panel li {
	position: relative;
	padding-left: 24px;
	color: #222;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
}

.doors-panel li:before {
	position: absolute;
	top: .58em;
	left: 0;
	width: 8px;
	height: 8px;
	background: var(--doors-red);
	border-radius: 999px;
	content: "";
}

.doors-photo-strip {
	overflow: hidden;
	padding: clamp(42px, 6vw, 72px) 0;
	background: #050505;
}

.doors-photo-strip__track {
	display: flex;
	gap: 18px;
	width: max-content;
	animation: doorsPhotoScroll 34s linear infinite;
}

@keyframes doorsPhotoScroll {
	from { transform: translateX(0); }
	to { transform: translateX(-38%); }
}

.doors-photo-strip figure {
	width: clamp(300px, 34vw, 560px);
	height: clamp(240px, 28vw, 420px);
	margin: 0;
	overflow: hidden;
	border-radius: 8px;
}

.doors-photo-strip img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.doors-comfort {
	background: linear-gradient(180deg, #f7f7f7, #fff);
}

.doors-comfort__list {
	display: grid;
	gap: 14px;
}

.doors-comfort__list span {
	display: block;
	padding: 22px;
	background: #fff;
	border-left: 4px solid var(--doors-red);
	border-radius: 8px;
	box-shadow: 0 18px 46px rgba(0,0,0,.07);
	font-weight: 700;
}

.doors-feature-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 44px;
}

.doors-feature-grid article {
	min-height: 260px;
	padding: 30px;
	background: #fff;
	border: 1px solid var(--doors-line);
	border-radius: 8px;
	box-shadow: 0 18px 50px rgba(0,0,0,.06);
}

.doors-feature-grid span,
.doors-process__steps strong {
	color: var(--doors-red);
	font-weight: 900;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.doors-feature-grid h3 {
	margin: 34px 0 12px;
	color: var(--doors-black);
	font-size: 26px;
}

.doors-process {
	background: radial-gradient(circle at 10% 10%, rgba(211,24,34,.22), transparent 30%), linear-gradient(135deg, #050505, #150306 60%, #050505);
}

.doors-process__grid {
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	gap: clamp(38px, 7vw, 94px);
	align-items: start;
}

.doors-process h2,
.doors-process .eyebrow,
.doors-cta h2,
.doors-cta p {
	color: #fff;
}

.doors-process__steps {
	display: grid;
	border-top: 1px solid rgba(255,255,255,.18);
}

.doors-process__steps > div {
	padding: 30px 0;
	border-bottom: 1px solid rgba(255,255,255,.18);
}

.doors-process__steps p {
	margin: 10px 0 0;
	color: rgba(255,255,255,.72);
}

.doors-cta {
	position: relative;
	padding: clamp(78px, 9vw, 128px) var(--sf-edge, clamp(20px, 5vw, 72px));
	color: #fff;
	background-position: center;
	background-size: cover;
	overflow: hidden;
}

.doors-cta:before {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0,0,0,.9), rgba(0,0,0,.56)), radial-gradient(circle at 12% 30%, rgba(211,24,34,.28), transparent 34%);
	content: "";
}

.doors-cta > * {
	position: relative;
	z-index: 1;
	max-width: 860px;
}

.doors-cta p {
	color: rgba(255,255,255,.74);
}

.velux-page {
	--velux-black: #07142a;
	--velux-red: #d31822;
	--velux-muted: #5f5f5f;
	--velux-line: #e6edf4;
	color: #111;
	background: #fff;
	font-family: Arial, Helvetica, sans-serif;
	overflow: hidden;
}

.velux-page h1,
.velux-page h2,
.velux-page h3,
.velux-page p {
	margin-top: 0;
}

.velux-page .eyebrow {
	margin: 0 0 14px;
	color: var(--velux-red);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.velux-hero {
	position: relative;
	min-height: min(82vh, 900px);
	padding: clamp(124px, 10vw, 158px) var(--sf-edge, clamp(20px, 5vw, 72px)) clamp(76px, 8vw, 118px);
	display: grid;
	align-items: center;
	color: #fff;
	background: #050505;
	overflow: hidden;
}

.velux-hero__bg {
	position: absolute;
	inset: -3%;
	background-position: center;
	background-size: cover;
	transform: scale(1.04);
	filter: saturate(1.05) contrast(1.04);
}

.velux-hero:after {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 18% 44%, rgba(211,24,34,.3), transparent 34%), linear-gradient(90deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.62) 48%, rgba(0,0,0,.28) 100%), linear-gradient(180deg, rgba(0,0,0,.38), rgba(0,0,0,.68));
	content: "";
}

.velux-hero__content {
	position: relative;
	z-index: 1;
	max-width: 900px;
	padding: clamp(26px, 3.2vw, 42px) clamp(28px, 4vw, 52px);
	border-left: 4px solid var(--velux-red);
}

.velux-hero h1 {
	max-width: 850px;
	margin-bottom: 22px;
	color: #fff;
	font-size: clamp(44px, 5.7vw, 82px);
	font-weight: 800;
	line-height: .98;
	letter-spacing: 0;
	text-shadow: 0 20px 54px rgba(0,0,0,.62);
}

.velux-hero__text {
	max-width: 780px;
	color: #fff;
	font-size: clamp(19px, 2vw, 28px);
	font-weight: 800;
	line-height: 1.45;
	text-shadow: 0 12px 34px rgba(0,0,0,.86);
}

.velux-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}

.velux-marquee {
	position: relative;
	min-height: clamp(280px, 26vw, 410px);
	display: grid;
	align-items: center;
	overflow: hidden;
	background: linear-gradient(180deg, #f5f8fb 0%, #fff 100%);
	border-bottom: 1px solid rgba(0,0,0,.06);
}

.velux-marquee:after {
	position: absolute;
	inset: auto 0 0;
	height: 50%;
	background: linear-gradient(180deg, rgba(255,255,255,0), #fff);
	content: "";
}

.velux-marquee__caption {
	position: absolute;
	top: clamp(76px, 12.8vw, 150px);
	left: var(--sf-edge, clamp(20px, 5vw, 72px));
	z-index: 2;
	max-width: 930px;
	color: var(--velux-black);
}

.velux-marquee__caption strong {
	display: block;
	margin-bottom: 8px;
	color: var(--velux-black);
	font-size: clamp(28px, 4.2vw, 64px);
	font-weight: 800;
	line-height: .95;
}

.velux-marquee__caption p {
	max-width: 790px;
	margin: 0;
	color: rgba(7,20,42,.68);
	font-size: clamp(16px, 1.35vw, 20px);
	font-weight: 650;
	line-height: 1.55;
}

.velux-marquee__track {
	display: flex;
	width: max-content;
	align-items: center;
	gap: clamp(38px, 6vw, 90px);
	color: #dfe8f2;
	font-size: clamp(86px, 15vw, 240px);
	font-weight: 950;
	line-height: .82;
	letter-spacing: -.04em;
	opacity: .66;
	white-space: nowrap;
	animation: veluxTextScroll 30s linear infinite;
}

@keyframes veluxTextScroll {
	from { transform: translate3d(0, -18px, 0); }
	to { transform: translate3d(-50%, -18px, 0); }
}

.velux-tags,
.velux-points {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}

.velux-tags span {
	display: inline-flex;
	min-height: 36px;
	align-items: center;
	padding: 0 14px;
	color: var(--velux-black);
	background: rgba(255,255,255,.72);
	border: 1px solid rgba(7,20,42,.08);
	border-radius: 999px;
	box-shadow: 0 12px 30px rgba(0,0,0,.05);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.velux-section {
	padding: clamp(78px, 9vw, 132px) var(--sf-edge, clamp(20px, 5vw, 72px));
}

.velux-intro,
.velux-comfort__grid,
.velux-process__grid,
.velux-feature-grid,
.velux-heading {
	width: 100%;
	max-width: var(--sf-site-width, 1460px);
	margin-right: auto;
	margin-left: auto;
}

.velux-intro,
.velux-comfort__grid {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(360px, .78fr);
	gap: clamp(34px, 6vw, 86px);
	align-items: start;
}

.velux-heading h2,
.velux-comfort h2,
.velux-process h2,
.velux-cta h2 {
	margin-bottom: 24px;
	color: var(--velux-black);
	font-size: clamp(36px, 4.8vw, 72px);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: 0;
}

.velux-heading p,
.velux-panel p,
.velux-comfort p,
.velux-comfort li,
.velux-feature-grid p,
.velux-process p,
.velux-cta p {
	color: var(--velux-muted);
	font-size: clamp(17px, 1.35vw, 21px);
	font-weight: 500;
	line-height: 1.65;
}

.velux-points {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 680px;
	margin-top: 32px;
}

.velux-points span {
	display: grid;
	min-height: 96px;
	align-content: center;
	padding: 18px;
	color: #161616;
	background: #f6f6f6;
	border: 1px solid rgba(0,0,0,.06);
	border-radius: 6px;
	font-size: 13px;
	font-weight: 900;
	line-height: 1.25;
}

.velux-points i {
	display: block;
	width: 10px;
	height: 10px;
	margin-bottom: 12px;
	background: var(--velux-red);
	border-radius: 999px;
	box-shadow: 0 0 0 6px rgba(211,24,34,.1);
}

.velux-panel,
.velux-comfort__panel {
	padding: clamp(24px, 3vw, 36px);
	background: #fff;
	border: 1px solid var(--velux-line);
	border-radius: 8px;
	box-shadow: 0 24px 70px rgba(0,0,0,.08);
}

.velux-comfort__panel {
	border-left: 6px solid var(--velux-red);
}

.velux-panel ul,
.velux-comfort__panel ul {
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 12px;
}

.velux-panel li,
.velux-comfort__panel li {
	position: relative;
	padding-left: 24px;
	color: #222;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
}

.velux-panel li:before,
.velux-comfort__panel li:before {
	position: absolute;
	top: .58em;
	left: 0;
	width: 8px;
	height: 8px;
	background: var(--velux-red);
	border-radius: 999px;
	content: "";
}

.velux-photo-strip {
	overflow: hidden;
	padding: clamp(32px, 4vw, 52px) 0 clamp(54px, 6vw, 78px);
	background: #fff;
}

.velux-photo-strip__track {
	display: flex;
	width: max-content;
	gap: 18px;
	padding: 0 18px;
	animation: veluxImageScroll 34s linear infinite;
}

@keyframes veluxImageScroll {
	from { transform: translate3d(0, 0, 0); }
	to { transform: translate3d(-50%, 0, 0); }
}

.velux-photo-strip figure {
	width: clamp(320px, 38vw, 620px);
	margin: 0;
	flex: 0 0 auto;
	overflow: hidden;
	background: #f4f4f4;
	border-radius: 8px;
	box-shadow: 0 22px 58px rgba(0,0,0,.12);
}

.velux-photo-strip img {
	width: 100%;
	height: clamp(220px, 26vw, 360px);
	object-fit: cover;
	transition: transform .5s ease;
}

.velux-photo-strip figure:hover img {
	transform: scale(1.035);
}

.velux-comfort {
	background: #f7f7f7;
}

.velux-feature-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 44px;
}

.velux-feature-grid article {
	min-height: 260px;
	padding: 30px;
	background: #fff;
	border: 1px solid var(--velux-line);
	border-radius: 8px;
	box-shadow: 0 18px 50px rgba(0,0,0,.06);
}

.velux-feature-grid span,
.velux-process__steps strong {
	color: var(--velux-red);
	font-weight: 900;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.velux-feature-grid h3 {
	margin: 34px 0 12px;
	color: var(--velux-black);
	font-size: 26px;
}

.velux-process {
	background: radial-gradient(circle at 10% 10%, rgba(211,24,34,.22), transparent 30%), linear-gradient(135deg, #050505, #150306 60%, #050505);
}

.velux-process__grid {
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	gap: clamp(38px, 7vw, 94px);
	align-items: start;
}

.velux-process h2,
.velux-process .eyebrow,
.velux-cta h2,
.velux-cta p {
	color: #fff;
}

.velux-process__steps {
	display: grid;
	border-top: 1px solid rgba(255,255,255,.18);
}

.velux-process__steps > div {
	padding: 30px 0;
	border-bottom: 1px solid rgba(255,255,255,.18);
}

.velux-process__steps p {
	margin: 10px 0 0;
	color: rgba(255,255,255,.72);
}

.velux-cta {
	position: relative;
	padding: clamp(78px, 9vw, 128px) var(--sf-edge, clamp(20px, 5vw, 72px));
	color: #fff;
	background-position: center;
	background-size: cover;
	overflow: hidden;
}

.velux-cta:before {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0,0,0,.9), rgba(0,0,0,.56)), radial-gradient(circle at 12% 30%, rgba(211,24,34,.28), transparent 34%);
	content: "";
}

.velux-cta > * {
	position: relative;
	z-index: 1;
	max-width: 860px;
}

.velux-cta p {
	color: rgba(255,255,255,.74);
}

.interior-doors-page {
	--interior-doors-black: #080808;
	--interior-doors-red: #d31822;
	--interior-doors-muted: #606060;
	--interior-doors-line: #e8e8e8;
	color: #111;
	background: #fff;
	font-family: Arial, Helvetica, sans-serif;
	overflow: hidden;
}

.interior-doors-page h1,
.interior-doors-page h2,
.interior-doors-page h3,
.interior-doors-page p {
	margin-top: 0;
}

.interior-doors-page .eyebrow {
	margin: 0 0 14px;
	color: var(--interior-doors-red);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.interior-doors-hero {
	position: relative;
	min-height: min(82vh, 900px);
	padding: clamp(124px, 10vw, 158px) var(--sf-edge, clamp(20px, 5vw, 72px)) clamp(76px, 8vw, 118px);
	display: grid;
	align-items: center;
	color: #fff;
	background: #050505;
	overflow: hidden;
}

.interior-doors-hero__bg {
	position: absolute;
	inset: -3%;
	background-position: center;
	background-size: cover;
	transform: scale(1.04);
	filter: saturate(1.05) contrast(1.04);
}

.interior-doors-hero:after {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 18% 44%, rgba(211,24,34,.3), transparent 34%), linear-gradient(90deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.62) 48%, rgba(0,0,0,.34) 100%), linear-gradient(180deg, rgba(0,0,0,.44), rgba(0,0,0,.68));
	content: "";
}

.interior-doors-hero__content {
	position: relative;
	z-index: 1;
	max-width: 920px;
	padding: clamp(26px, 3.2vw, 42px) clamp(28px, 4vw, 52px);
	border-left: 4px solid var(--interior-doors-red);
}

.interior-doors-hero h1 {
	max-width: 860px;
	margin-bottom: 22px;
	color: #fff;
	font-size: clamp(44px, 5.7vw, 82px);
	font-weight: 800;
	line-height: .98;
	letter-spacing: 0;
	text-shadow: 0 20px 54px rgba(0,0,0,.62);
}

.interior-doors-hero__text {
	max-width: 780px;
	color: #fff;
	font-size: clamp(19px, 2vw, 28px);
	font-weight: 800;
	line-height: 1.45;
	text-shadow: 0 12px 34px rgba(0,0,0,.86);
}

.interior-doors-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}

.interior-doors-marquee {
	position: relative;
	min-height: clamp(280px, 26vw, 410px);
	display: grid;
	align-items: center;
	overflow: hidden;
	background: linear-gradient(180deg, #f6f7f8 0%, #fff 100%);
	border-bottom: 1px solid rgba(0,0,0,.06);
}

.interior-doors-marquee:after {
	position: absolute;
	inset: auto 0 0;
	height: 50%;
	background: linear-gradient(180deg, rgba(255,255,255,0), #fff);
	content: "";
}

.interior-doors-marquee__caption {
	position: absolute;
	top: clamp(76px, 12.5vw, 150px);
	left: var(--sf-edge, clamp(20px, 5vw, 72px));
	z-index: 2;
	max-width: 940px;
}

.interior-doors-marquee__caption strong {
	display: block;
	margin-bottom: 8px;
	color: #111;
	font-size: clamp(28px, 4.2vw, 64px);
	font-weight: 800;
	line-height: .95;
}

.interior-doors-marquee__caption p {
	max-width: 800px;
	margin: 0;
	color: rgba(17,17,17,.64);
	font-size: clamp(16px, 1.35vw, 20px);
	font-weight: 600;
	line-height: 1.55;
}

.interior-doors-marquee__track {
	display: flex;
	width: max-content;
	align-items: center;
	gap: clamp(38px, 6vw, 90px);
	color: #e7eaee;
	font-size: clamp(74px, 12.5vw, 198px);
	font-weight: 950;
	line-height: .82;
	letter-spacing: -.04em;
	opacity: .78;
	white-space: nowrap;
	animation: interiorDoorsTextScroll 30s linear infinite;
}

@keyframes interiorDoorsTextScroll {
	from { transform: translate3d(0, -18px, 0); }
	to { transform: translate3d(-50%, -18px, 0); }
}

.interior-doors-tags,
.interior-doors-points {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}

.interior-doors-tags span {
	display: inline-flex;
	min-height: 36px;
	align-items: center;
	padding: 0 14px;
	color: #111;
	background: rgba(255,255,255,.78);
	border: 1px solid rgba(17,17,17,.08);
	border-radius: 999px;
	box-shadow: 0 12px 30px rgba(0,0,0,.05);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.interior-doors-section {
	padding: clamp(78px, 9vw, 132px) var(--sf-edge, clamp(20px, 5vw, 72px));
}

.interior-doors-intro,
.interior-doors-entry__grid,
.interior-doors-process__grid,
.interior-doors-feature-grid,
.interior-doors-heading {
	width: 100%;
	max-width: var(--sf-site-width, 1460px);
	margin-right: auto;
	margin-left: auto;
}

.interior-doors-intro,
.interior-doors-entry__grid {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(360px, .78fr);
	gap: clamp(34px, 6vw, 86px);
	align-items: start;
}

.interior-doors-heading h2,
.interior-doors-entry h2,
.interior-doors-process h2,
.interior-doors-cta h2 {
	margin-bottom: 24px;
	color: var(--interior-doors-black);
	font-size: clamp(36px, 4.8vw, 72px);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: 0;
}

.interior-doors-heading p,
.interior-doors-panel p,
.interior-doors-entry p,
.interior-doors-entry li,
.interior-doors-feature-grid p,
.interior-doors-process p,
.interior-doors-cta p {
	color: var(--interior-doors-muted);
	font-size: clamp(17px, 1.35vw, 21px);
	font-weight: 500;
	line-height: 1.65;
}

.interior-doors-points {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 680px;
	margin-top: 32px;
}

.interior-doors-points span {
	display: grid;
	min-height: 96px;
	align-content: center;
	padding: 18px;
	color: #161616;
	background: #f6f6f6;
	border: 1px solid rgba(0,0,0,.06);
	border-radius: 6px;
	font-size: 13px;
	font-weight: 900;
	line-height: 1.25;
}

.interior-doors-points i {
	display: block;
	width: 10px;
	height: 10px;
	margin-bottom: 12px;
	background: var(--interior-doors-red);
	border-radius: 999px;
	box-shadow: 0 0 0 6px rgba(211,24,34,.1);
}

.interior-doors-panel,
.interior-doors-entry__panel {
	padding: clamp(24px, 3vw, 36px);
	background: #fff;
	border: 1px solid var(--interior-doors-line);
	border-radius: 8px;
	box-shadow: 0 24px 70px rgba(0,0,0,.08);
}

.interior-doors-entry__panel {
	border-left: 6px solid var(--interior-doors-red);
}

.interior-doors-panel ul,
.interior-doors-entry__panel ul {
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 12px;
}

.interior-doors-panel li,
.interior-doors-entry__panel li {
	position: relative;
	padding-left: 24px;
	color: #222;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
}

.interior-doors-panel li:before,
.interior-doors-entry__panel li:before {
	position: absolute;
	top: .58em;
	left: 0;
	width: 8px;
	height: 8px;
	background: var(--interior-doors-red);
	border-radius: 999px;
	content: "";
}

.interior-doors-photo-strip {
	overflow: hidden;
	padding: clamp(42px, 6vw, 72px) 0;
	background: #050505;
}

.interior-doors-photo-strip__track {
	display: flex;
	gap: 18px;
	width: max-content;
	animation: interiorDoorsPhotoScroll 34s linear infinite;
}

@keyframes interiorDoorsPhotoScroll {
	from { transform: translateX(0); }
	to { transform: translateX(-38%); }
}

.interior-doors-photo-strip figure {
	width: clamp(300px, 34vw, 560px);
	height: clamp(240px, 28vw, 420px);
	margin: 0;
	overflow: hidden;
	border-radius: 8px;
}

.interior-doors-photo-strip img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.interior-doors-entry {
	background: linear-gradient(180deg, #f7f7f7, #fff);
}

.interior-doors-feature-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 44px;
}

.interior-doors-feature-grid article {
	min-height: 260px;
	padding: 30px;
	background: #fff;
	border: 1px solid var(--interior-doors-line);
	border-radius: 8px;
	box-shadow: 0 18px 50px rgba(0,0,0,.06);
}

.interior-doors-feature-grid span,
.interior-doors-process__steps strong {
	color: var(--interior-doors-red);
	font-weight: 900;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.interior-doors-feature-grid h3 {
	margin: 34px 0 12px;
	color: var(--interior-doors-black);
	font-size: 26px;
}

.interior-doors-process {
	background: radial-gradient(circle at 10% 10%, rgba(211,24,34,.22), transparent 30%), linear-gradient(135deg, #050505, #150306 60%, #050505);
}

.interior-doors-process__grid {
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	gap: clamp(38px, 7vw, 94px);
	align-items: start;
}

.interior-doors-process h2,
.interior-doors-process .eyebrow,
.interior-doors-cta h2,
.interior-doors-cta p {
	color: #fff;
}

.interior-doors-process__steps {
	display: grid;
	border-top: 1px solid rgba(255,255,255,.18);
}

.interior-doors-process__steps > div {
	padding: 30px 0;
	border-bottom: 1px solid rgba(255,255,255,.18);
}

.interior-doors-process__steps p {
	margin: 10px 0 0;
	color: rgba(255,255,255,.72);
}

.interior-doors-cta {
	position: relative;
	padding: clamp(78px, 9vw, 128px) var(--sf-edge, clamp(20px, 5vw, 72px));
	color: #fff;
	background-position: center;
	background-size: cover;
	overflow: hidden;
}

.interior-doors-cta:before {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0,0,0,.9), rgba(0,0,0,.56)), radial-gradient(circle at 12% 30%, rgba(211,24,34,.28), transparent 34%);
	content: "";
}

.interior-doors-cta > * {
	position: relative;
	z-index: 1;
	max-width: 860px;
}

.interior-doors-cta p {
	color: rgba(255,255,255,.74);
}

.fabrizio-page {
	--fabrizio-black: #080808;
	--fabrizio-red: #d31822;
	--fabrizio-muted: #606060;
	--fabrizio-line: #e8e8e8;
	color: #111;
	background: #fff;
	font-family: Arial, Helvetica, sans-serif;
	overflow: hidden;
}

.fabrizio-page h1,
.fabrizio-page h2,
.fabrizio-page h3,
.fabrizio-page p {
	margin-top: 0;
}

.fabrizio-page .eyebrow {
	margin: 0 0 14px;
	color: var(--fabrizio-red);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.fabrizio-hero {
	position: relative;
	min-height: min(88vh, 1000px);
	padding: clamp(128px, 11vw, 158px) var(--sf-edge, clamp(20px, 5vw, 72px)) clamp(86px, 9vw, 126px);
	display: grid;
	align-items: center;
	color: #fff;
	background: #050505;
	overflow: hidden;
}

.fabrizio-hero__bg {
	position: absolute;
	inset: -4%;
	background-position: center;
	background-size: cover;
	filter: saturate(1.04) contrast(1.05);
	transform: scale(1.05);
	animation: fabrizioHeroMove 14s ease-in-out infinite alternate;
}

.fabrizio-hero:after {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 14% 54%, rgba(211,24,34,.34), transparent 35%), linear-gradient(90deg, rgba(0,0,0,.9), rgba(0,0,0,.68) 44%, rgba(0,0,0,.28) 74%, rgba(0,0,0,.72)), linear-gradient(180deg, rgba(0,0,0,.52), rgba(0,0,0,.14) 48%, rgba(0,0,0,.72));
	content: "";
}

@keyframes fabrizioHeroMove {
	from { transform: scale(1.05) translate3d(0, 0, 0); }
	to { transform: scale(1.12) translate3d(-1.6%, -.8%, 0); }
}

.fabrizio-hero__inner {
	position: relative;
	z-index: 1;
	width: min(1260px, 100%);
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 470px);
	gap: clamp(26px, 5vw, 78px);
	align-items: center;
}

.fabrizio-hero__copy {
	padding-left: clamp(18px, 2.5vw, 38px);
	border-left: 4px solid var(--fabrizio-red);
}

.fabrizio-hero h1 {
	max-width: 920px;
	margin-bottom: 24px;
	color: #fff;
	font-size: clamp(48px, 6.1vw, 86px);
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0;
	text-shadow: 0 24px 70px rgba(0,0,0,.68);
}

.fabrizio-hero h1 strong {
	color: #fff;
}

.fabrizio-hero__text {
	max-width: 820px;
	color: rgba(255,255,255,.86);
	font-size: clamp(18px, 1.65vw, 24px);
	font-weight: 700;
	line-height: 1.55;
	text-shadow: 0 12px 30px rgba(0,0,0,.56);
}

.fabrizio-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}

.fabrizio-welcome {
	padding: clamp(24px, 3vw, 34px);
	color: #121212;
	background: rgba(255,255,255,.94);
	border: 1px solid rgba(255,255,255,.34);
	border-top: 5px solid var(--fabrizio-red);
	border-radius: 8px;
	box-shadow: 0 34px 90px rgba(0,0,0,.26);
}

.fabrizio-welcome h2 {
	margin-bottom: 14px;
	color: #111;
	font-size: clamp(26px, 2.6vw, 38px);
	font-weight: 700;
	line-height: 1.08;
}

.fabrizio-welcome p {
	margin-bottom: 18px;
	color: #555;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.65;
}

.fabrizio-keywords {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin-top: 22px;
}

.fabrizio-keywords span {
	display: inline-flex;
	min-height: 34px;
	align-items: center;
	padding: 0 12px;
	color: #151515;
	background: #f3f3f4;
	border: 1px solid rgba(0,0,0,.06);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.fabrizio-seo-band {
	overflow: hidden;
	background: linear-gradient(180deg, #f7f7f8, #fff);
}

.fabrizio-marquee {
	display: flex;
	width: max-content;
	gap: clamp(44px, 7vw, 104px);
	color: #eceff2;
	font-size: clamp(80px, 13vw, 210px);
	font-weight: 950;
	line-height: .85;
	white-space: nowrap;
	animation: fabrizioWords 32s linear infinite;
}

@keyframes fabrizioWords {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

.fabrizio-section {
	padding: clamp(78px, 9vw, 132px) var(--sf-edge, clamp(20px, 5vw, 72px));
}

.fabrizio-story,
.fabrizio-heading,
.fabrizio-service-grid {
	width: 100%;
	max-width: var(--sf-site-width, 1460px);
	margin-right: auto;
	margin-left: auto;
}

.fabrizio-story {
	display: grid;
	grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
	gap: clamp(28px, 5vw, 78px);
	align-items: start;
}

.fabrizio-left {
	position: sticky;
	top: 132px;
}

.fabrizio-heading h2,
.fabrizio-left h2,
.fabrizio-cta h2 {
	margin-bottom: 24px;
	color: var(--fabrizio-black);
	font-size: clamp(36px, 4.8vw, 72px);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: 0;
}

.fabrizio-heading p,
.fabrizio-lead,
.fabrizio-service-card p,
.fabrizio-cta p {
	color: var(--fabrizio-muted);
	font-size: clamp(17px, 1.35vw, 21px);
	font-weight: 500;
	line-height: 1.65;
}

.fabrizio-note {
	margin-top: 28px;
	padding: 24px;
	color: #fff;
	background: linear-gradient(135deg, rgba(8,8,8,.96), rgba(80,5,9,.92));
	border-radius: 8px;
	box-shadow: 0 24px 70px rgba(0,0,0,.12);
}

.fabrizio-note h3 {
	margin-bottom: 10px;
	color: #fff;
	font-size: clamp(22px, 2vw, 30px);
}

.fabrizio-note p {
	margin: 0;
	color: rgba(255,255,255,.78);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.62;
}

.fabrizio-logos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin-top: 30px;
}

.fabrizio-logo-card {
	display: grid;
	min-height: 190px;
	place-items: center;
	padding: 18px;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	border-radius: 8px;
	text-align: center;
}

.fabrizio-logo-card strong {
	max-width: 230px;
	color: #111;
	font-size: clamp(22px, 2vw, 30px);
	font-weight: 800;
	line-height: 1.08;
}

.fabrizio-logo-card span {
	margin-top: 12px;
	color: #5d5d62;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.fabrizio-story-panel {
	padding: clamp(28px, 4vw, 58px);
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	border-left: 6px solid var(--fabrizio-red);
	border-radius: 8px;
	box-shadow: 0 26px 82px rgba(0,0,0,.08);
}

.fabrizio-story-panel p {
	margin-bottom: 26px;
	color: #555;
	font-size: clamp(18px, 1.35vw, 22px);
	font-weight: 500;
	line-height: 1.72;
}

.fabrizio-story-panel p:last-child {
	margin-bottom: 0;
}

.fabrizio-service-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: clamp(28px, 4vw, 48px);
}

.fabrizio-service-card {
	display: flex;
	min-height: 250px;
	flex-direction: column;
	padding: 28px;
	color: inherit;
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	border-radius: 8px;
	box-shadow: 0 18px 52px rgba(0,0,0,.05);
	text-decoration: none;
	transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}

.fabrizio-service-card:hover,
.fabrizio-service-card:focus-visible {
	transform: translateY(-6px);
	border-color: rgba(211,24,34,.35);
	box-shadow: 0 24px 64px rgba(0,0,0,.11);
}

.fabrizio-service-card span {
	display: inline-grid;
	width: 44px;
	height: 44px;
	place-items: center;
	margin-bottom: 34px;
	color: #fff;
	background: linear-gradient(135deg, var(--fabrizio-red) 0 48%, var(--fabrizio-black) 49% 100%);
	border-radius: 5px;
	font-size: 12px;
	font-weight: 900;
}

.fabrizio-service-card h3 {
	margin-bottom: 12px;
	color: #111;
	font-size: 26px;
	font-weight: 700;
	line-height: 1.12;
}

.fabrizio-service-card small {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: auto;
	padding-top: 24px;
	color: var(--fabrizio-red);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.fabrizio-service-card small:after {
	width: 24px;
	height: 1px;
	background: currentColor;
	content: "";
}

.fabrizio-cta {
	position: relative;
	margin: 0 var(--sf-edge, clamp(20px, 5vw, 72px)) clamp(70px, 8vw, 104px);
	padding: clamp(44px, 7vw, 86px);
	color: #fff;
	background-position: center;
	background-size: cover;
	border-radius: 10px;
	box-shadow: 0 30px 90px rgba(0,0,0,.18);
	overflow: hidden;
}

.fabrizio-cta:before {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0,0,0,.84), rgba(60,0,6,.74));
	content: "";
}

.fabrizio-cta > * {
	position: relative;
	z-index: 1;
	max-width: 860px;
}

.fabrizio-cta h2,
.fabrizio-cta p {
	color: #fff;
}

.fabrizio-cta p {
	color: rgba(255,255,255,.8);
}

.floating-contact__panel {
	width: min(326px, calc(100vw - 36px));
	padding: 16px;
	color: #fff;
	background:
		radial-gradient(circle at 12% 8%, rgba(227, 6, 19, .34), transparent 42%),
		linear-gradient(145deg, rgba(8, 8, 8, .98), rgba(22, 22, 22, .96));
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 14px;
	box-shadow: 0 24px 70px rgba(0, 0, 0, .36), 0 0 0 1px rgba(227, 6, 19, .08);
	backdrop-filter: blur(14px);
	transform-origin: right bottom;
}

.floating-contact__panel[hidden] {
	display: none !important;
}

.floating-contact__panel p {
	margin: 0 0 12px;
	color: rgba(255, 255, 255, .7);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.floating-contact__panel a {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 48px;
	padding: 0 12px;
	color: #fff;
	background: rgba(255, 255, 255, .035);
	border: 1px solid rgba(255, 255, 255, .06);
	border-radius: 10px;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
	transition: background .2s ease, border-color .2s ease, transform .2s ease;
}

.floating-contact__panel a:hover,
.floating-contact__panel a:focus {
	background: rgba(255, 255, 255, .09);
	border-color: rgba(227, 6, 19, .34);
	transform: translateX(-3px);
}

.floating-contact__panel a span {
	display: grid;
	width: 30px;
	height: 30px;
	place-items: center;
	color: #fff;
	background: linear-gradient(135deg, #e30613, #9e050c);
	border-radius: 999px;
	font-size: 14px;
	font-weight: 900;
	box-shadow: 0 10px 24px rgba(227, 6, 19, .28);
}

.floating-contact__bubble {
	position: absolute;
	right: 0;
	bottom: calc(100% + 12px);
	width: min(302px, calc(100vw - 36px));
	padding: 18px 48px 18px 20px;
	color: #fff;
	background:
		radial-gradient(circle at 10% 10%, rgba(255,255,255,.08), transparent 36%),
		linear-gradient(145deg, rgba(18, 18, 18, .98), rgba(38, 38, 38, .96));
	border: 1px solid rgba(255,255,255,.26);
	border-radius: 10px;
	box-shadow: 0 20px 52px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.08);
	font-size: 15px;
	font-weight: 900;
	line-height: 1.18;
	text-align: left;
}

.floating-contact__bubble:after {
	position: absolute;
	right: 42px;
	bottom: -8px;
	width: 16px;
	height: 16px;
	background: rgba(26,26,26,.98);
	border-right: 1px solid rgba(255,255,255,.2);
	border-bottom: 1px solid rgba(255,255,255,.2);
	transform: rotate(45deg);
	content: "";
}

.floating-contact__bubble-close {
	position: absolute;
	top: 10px;
	right: 10px;
	display: grid;
	width: 30px;
	height: 30px;
	place-items: center;
	color: #fff;
	background: rgba(255,255,255,.14);
	border: 1px solid rgba(255,255,255,.08);
	border-radius: 999px;
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
	pointer-events: none;
}

.floating-contact__button {
	position: relative;
	display: inline-flex !important;
	align-items: center !important;
	gap: 12px;
	min-width: 178px;
	min-height: 62px !important;
	padding: 8px 20px 8px 10px !important;
	color: #fff !important;
	background:
		linear-gradient(135deg, #25d366, #128c7e) !important;
	border: 1px solid rgba(255, 255, 255, .18) !important;
	border-radius: 999px !important;
	box-shadow: 0 18px 48px rgba(37, 211, 102, .36), 0 12px 32px rgba(0, 0, 0, .26), inset 0 1px 0 rgba(255, 255, 255, .22);
	cursor: pointer;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 15px !important;
	font-weight: 950 !important;
	letter-spacing: 0 !important;
	line-height: 1 !important;
	white-space: nowrap !important;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}

.floating-contact__button:before {
	position: absolute;
	inset: -7px;
	z-index: -1;
	background: rgba(37, 211, 102, .18);
	border-radius: inherit;
	animation: floatingContactPulse 2.4s ease-out infinite;
	content: "";
}

.floating-contact__button:hover,
.floating-contact__button:focus,
.floating-contact.is-open .floating-contact__button {
	background: linear-gradient(135deg, #2ee878, #0f9f8d) !important;
	border-color: rgba(255, 255, 255, .28) !important;
	box-shadow: 0 22px 58px rgba(37, 211, 102, .46), 0 14px 34px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .26);
	transform: translateY(-3px);
}

.floating-contact__icon {
	display: grid;
	flex: 0 0 44px;
	width: 44px !important;
	height: 44px !important;
	place-items: center;
	color: #25d366 !important;
	background: #fff !important;
	border-radius: 999px !important;
	box-shadow: 0 10px 24px rgba(0, 0, 0, .18);
}

.floating-contact__icon svg {
	width: 22px;
	height: 22px;
	fill: currentColor;
}

.floating-contact__text {
	display: grid !important;
	gap: 1px;
	line-height: 1.05;
	text-align: left;
	white-space: nowrap;
}

.floating-contact__text small {
	color: rgba(255, 255, 255, .74);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .1em;
	text-transform: uppercase;
}

@keyframes floatingContactPulse {
	0% {
		opacity: .85;
		transform: scale(.96);
	}
	70% {
		opacity: 0;
		transform: scale(1.16);
	}
	100% {
		opacity: 0;
		transform: scale(1.16);
	}
}

.event-popup,
.event-popup * {
	box-sizing: border-box !important;
}

.event-popup {
	position: fixed !important;
	inset: 0 !important;
	z-index: 99995 !important;
	display: grid !important;
	place-items: center !important;
	padding: 20px !important;
	background: rgba(0, 0, 0, .54) !important;
	backdrop-filter: blur(5px) !important;
	animation: eventPopupFade .22s ease both !important;
}

.event-popup.is-closing {
	animation: eventPopupOut .18s ease both !important;
}

.event-popup__panel {
	position: relative !important;
	width: min(100%, 560px) !important;
	overflow: hidden !important;
	padding: 30px 38px 32px !important;
	color: #111 !important;
	background:
		radial-gradient(circle at 12% 12%, rgba(255, 255, 255, .42), transparent 32%),
		linear-gradient(135deg, #ffb12a 0%, #f28b16 46%, #e46d00 100%) !important;
	border: 1px solid rgba(255, 255, 255, .46) !important;
	border-radius: 18px !important;
	box-shadow: 0 32px 100px rgba(0, 0, 0, .36), 0 0 0 1px rgba(255, 255, 255, .08) inset !important;
	text-align: center !important;
	transform: translateZ(0) !important;
}

.event-popup__panel:before {
	position: absolute !important;
	inset: auto -12% -34% !important;
	height: 62% !important;
	background: rgba(0, 0, 0, .12) !important;
	border-radius: 50% 50% 0 0 !important;
	content: "" !important;
	pointer-events: none !important;
}

.event-popup__close {
	position: absolute !important;
	top: 14px !important;
	right: 14px !important;
	z-index: 2 !important;
	display: grid !important;
	width: 36px !important;
	height: 36px !important;
	place-items: center !important;
	padding: 0 !important;
	color: #111 !important;
	background: rgba(255, 255, 255, .54) !important;
	border: 1px solid rgba(0, 0, 0, .12) !important;
	border-radius: 999px !important;
	cursor: pointer !important;
	font: 900 26px/1 Arial, Helvetica, sans-serif !important;
	transition: background .18s ease, transform .18s ease !important;
}

.event-popup__close:hover,
.event-popup__close:focus {
	background: #fff !important;
	outline: 0 !important;
	transform: rotate(90deg) !important;
}

.event-popup__eyebrow,
.event-popup__place,
.event-popup__date,
.event-popup__patronage,
.event-popup__patronage-wrap,
.event-popup__logos,
.event-popup__panel h2 {
	position: relative !important;
	z-index: 1 !important;
}

.event-popup__logos {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}

.event-popup__logos--top {
	margin: 0 0 12px !important;
}

.event-popup__logo {
	display: block !important;
	width: auto !important;
	max-width: 100% !important;
	object-fit: contain !important;
}

.event-popup__logo--sbaracco {
	height: clamp(94px, 16vw, 138px) !important;
	filter: drop-shadow(0 14px 28px rgba(0, 0, 0, .18)) !important;
}

.event-popup__logo--comune {
	height: 62px !important;
	padding: 6px !important;
	background: #fff !important;
	border: 1px solid rgba(0, 0, 0, .1) !important;
	border-radius: 10px !important;
	box-shadow: 0 10px 24px rgba(0, 0, 0, .12) !important;
}

.event-popup__eyebrow {
	margin: 0 0 12px !important;
	color: rgba(0, 0, 0, .68) !important;
	font-size: 13px !important;
	font-weight: 900 !important;
	letter-spacing: .16em !important;
	line-height: 1.2 !important;
	text-transform: uppercase !important;
}

.event-popup__panel h2 {
	margin: 0 !important;
	color: #111 !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: clamp(44px, 6.4vw, 76px) !important;
	font-weight: 950 !important;
	letter-spacing: 0 !important;
	line-height: .92 !important;
	text-transform: uppercase !important;
	text-shadow: 0 1px 0 rgba(255, 255, 255, .22) !important;
}

.event-popup__place {
	margin: 12px 0 0 !important;
	color: #111 !important;
	font-size: clamp(25px, 3.2vw, 38px) !important;
	font-weight: 850 !important;
	line-height: 1.1 !important;
}

.event-popup__date {
	display: inline-flex !important;
	margin: 24px 0 0 !important;
	padding: 12px 18px !important;
	color: #fff !important;
	background: #111 !important;
	border-radius: 999px !important;
	box-shadow: 0 12px 32px rgba(0, 0, 0, .2) !important;
	font-size: clamp(18px, 2.2vw, 25px) !important;
	font-weight: 950 !important;
	letter-spacing: .06em !important;
	line-height: 1 !important;
	text-transform: uppercase !important;
}

.event-popup__patronage {
	max-width: 360px !important;
	margin: 0 !important;
	color: rgba(0, 0, 0, .78) !important;
	font-size: 16px !important;
	font-weight: 650 !important;
	line-height: 1.45 !important;
	text-align: left !important;
}

.event-popup__patronage strong {
	color: #111 !important;
	font-weight: 900 !important;
}

.event-popup__patronage-wrap {
	display: inline-grid !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	align-items: center !important;
	gap: 16px !important;
	max-width: 470px !important;
	margin: 24px auto 0 !important;
	padding: 12px 14px !important;
	background: rgba(255, 255, 255, .35) !important;
	border: 1px solid rgba(255, 255, 255, .42) !important;
	border-radius: 14px !important;
	box-shadow: 0 12px 34px rgba(0, 0, 0, .1) !important;
}

@keyframes eventPopupFade {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes eventPopupOut {
	from { opacity: 1; }
	to { opacity: 0; }
}

@media (max-width: 860px) {
	.cookie-banner__panel {
		grid-template-columns: 1fr;
		padding: 20px;
	}

	.cookie-banner__actions {
		justify-content: stretch;
		min-width: 0;
	}

	.cookie-banner__button {
		flex: 1 1 140px;
	}

	.cookie-banner__preferences {
		grid-template-columns: 1fr;
	}

	.cookie-settings-button {
		left: 18px;
		bottom: 12px;
	}

	.about-hero {
		min-height: 720px;
		padding-top: 112px;
	}

	.about-hero__content {
		max-width: 100%;
		padding-right: 24px;
		padding-left: 24px;
	}

	.about-split,
	.about-story__grid,
	.about-method__grid,
	.about-cta,
	.contacts-layout {
		grid-template-columns: 1fr;
	}

	.about-media-stack {
		min-height: 520px;
	}

	.about-media-stack img {
		height: 460px;
	}

	.about-values__grid,
	.about-promise__grid,
	.contacts-info-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.about-story__intro {
		position: static;
	}

	.contacts-hero {
		min-height: 700px;
		padding-top: 112px;
	}

	.contacts-form-shell {
		position: static;
	}

	.contacts-details {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.frames-hero {
		min-height: 720px;
		padding-top: 112px;
	}

	.frames-hero__content {
		max-width: 100%;
		padding-right: 24px;
		padding-left: 24px;
	}

	.frames-intro,
	.frames-material,
	.frames-inferriate,
	.frames-process__grid {
		grid-template-columns: 1fr;
	}

	.frames-points,
	.frames-feature-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.frames-inferriate__image img {
		min-height: 420px;
	}

	.pergolas-hero {
		min-height: 720px;
		padding-top: 112px;
	}

	.pergolas-hero__content {
		max-width: 100%;
		padding-right: 24px;
		padding-left: 24px;
	}

	.pergolas-intro,
	.pergolas-process__grid {
		grid-template-columns: 1fr;
	}

	.pergolas-points,
	.pergolas-feature-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.awnings-hero {
		min-height: 720px;
		padding-top: 112px;
	}

	.awnings-hero__content {
		max-width: 100%;
		padding-right: 24px;
		padding-left: 24px;
	}

	.awnings-intro,
	.awnings-process__grid {
		grid-template-columns: 1fr;
	}

	.awnings-points,
	.awnings-feature-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.screens-hero {
		min-height: 720px;
		padding-top: 112px;
	}

	.screens-hero__content {
		max-width: 100%;
		padding-right: 24px;
		padding-left: 24px;
	}

	.screens-intro,
	.screens-process__grid {
		grid-template-columns: 1fr;
	}

	.screens-points,
	.screens-feature-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.doors-hero {
		min-height: 720px;
		padding-top: 112px;
	}

	.doors-hero__content {
		max-width: 100%;
		padding-right: 24px;
		padding-left: 24px;
	}

	.doors-intro,
	.doors-comfort__grid,
	.doors-process__grid {
		grid-template-columns: 1fr;
	}

	.doors-points,
	.doors-feature-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.velux-hero {
		min-height: 720px;
		padding-top: 112px;
	}

	.velux-hero__content {
		max-width: 100%;
		padding-right: 24px;
		padding-left: 24px;
	}

	.velux-intro,
	.velux-comfort__grid,
	.velux-process__grid {
		grid-template-columns: 1fr;
	}

	.velux-points,
	.velux-feature-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.interior-doors-hero {
		min-height: 720px;
		padding-top: 112px;
	}

	.interior-doors-hero__content {
		max-width: 100%;
		padding-right: 24px;
		padding-left: 24px;
	}

	.interior-doors-intro,
	.interior-doors-entry__grid,
	.interior-doors-process__grid {
		grid-template-columns: 1fr;
	}

	.interior-doors-points,
	.interior-doors-feature-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fabrizio-hero__inner,
	.fabrizio-story,
	.fabrizio-service-grid {
		grid-template-columns: 1fr;
	}

	.fabrizio-left {
		position: static;
	}

	.floating-contact__button {
		min-height: 50px;
		padding-right: 16px;
	}

	.event-popup {
		padding: 14px !important;
	}

	.event-popup__panel {
		padding: 28px 22px 26px !important;
		border-radius: 14px !important;
	}

	.event-popup__date {
		white-space: normal !important;
	}

	.event-popup__patronage-wrap {
		grid-template-columns: 1fr !important;
		justify-items: center !important;
		gap: 12px !important;
	}

	.event-popup__patronage {
		text-align: center !important;
	}

	.event-popup__logo--comune {
		height: 56px !important;
	}
}

@media (max-width: 640px) {
	.about-hero {
		min-height: 680px;
		padding-top: 104px;
	}

	.about-hero__content {
		padding: 22px;
	}

	.about-actions .button {
		width: 100%;
	}

	.about-section {
		padding-top: 70px;
		padding-bottom: 70px;
	}

	.about-media-stack {
		min-height: 410px;
	}

	.about-media-stack img {
		width: 86%;
		height: 360px;
	}

	.about-media-stack img:nth-child(2) {
		width: 56%;
		height: 210px;
		border-width: 6px;
	}

	.about-values__grid,
	.about-promise__grid,
	.about-logo-cards,
	.contacts-details,
	.contacts-info-grid {
		grid-template-columns: 1fr;
	}

	.about-steps article {
		grid-template-columns: 52px minmax(0, 1fr);
		gap: 16px;
	}

	.about-cta {
		padding: 28px 22px;
	}

	.contacts-hero {
		min-height: 640px;
		padding-top: 104px;
	}

	.contacts-hero__content {
		padding: 22px;
	}

	.contacts-actions .button {
		width: 100%;
	}

	.contacts-section,
	.contacts-info-band {
		padding-top: 70px;
		padding-bottom: 70px;
	}

	.contacts-image-stack {
		min-height: 410px;
	}

	.contacts-image-stack img {
		width: 86%;
		height: 360px;
	}

	.contacts-image-stack img:nth-child(2) {
		width: 56%;
		height: 210px;
		border-width: 6px;
	}

	.contacts-info-grid article {
		min-height: 220px;
	}

	.frames-hero {
		min-height: 660px;
		padding-top: 104px;
	}

	.frames-hero__content {
		padding: 22px;
	}

	.frames-actions .button {
		width: 100%;
	}

	.frames-section,
	.frames-cta {
		padding-top: 70px;
		padding-bottom: 70px;
	}

	.frames-marquee {
		min-height: 360px;
	}

	.frames-marquee__caption {
		top: 64px;
		right: var(--sf-edge, 20px);
	}

	.frames-points,
	.frames-feature-grid {
		grid-template-columns: 1fr;
	}

	.frames-protected {
		grid-template-columns: 1fr;
	}

	.frames-photo-strip figure {
		width: 300px;
		height: 240px;
	}

	.frames-inferriate__image img {
		min-height: 340px;
	}

	.pergolas-hero {
		min-height: 660px;
		padding-top: 104px;
	}

	.pergolas-hero__content {
		padding: 22px;
	}

	.pergolas-actions .button {
		width: 100%;
	}

	.pergolas-section,
	.pergolas-cta {
		padding-top: 70px;
		padding-bottom: 70px;
	}

	.pergolas-marquee {
		min-height: 360px;
	}

	.pergolas-marquee__caption {
		top: 64px;
		right: var(--sf-edge, 20px);
	}

	.pergolas-points,
	.pergolas-feature-grid {
		grid-template-columns: 1fr;
	}

	.pergolas-photo-strip figure {
		width: 300px;
		height: 240px;
	}

	.awnings-hero {
		min-height: 660px;
		padding-top: 104px;
	}

	.awnings-hero__content {
		padding: 22px;
	}

	.awnings-actions .button {
		width: 100%;
	}

	.awnings-section,
	.awnings-cta {
		padding-top: 70px;
		padding-bottom: 70px;
	}

	.awnings-marquee {
		min-height: 360px;
	}

	.awnings-marquee__caption {
		top: 64px;
		right: var(--sf-edge, 20px);
	}

	.awnings-points,
	.awnings-feature-grid {
		grid-template-columns: 1fr;
	}

	.awnings-photo-strip figure {
		width: 300px;
		height: 220px;
	}

	.screens-hero {
		min-height: 660px;
		padding-top: 104px;
	}

	.screens-hero__content {
		padding: 22px;
	}

	.screens-actions .button {
		width: 100%;
	}

	.screens-section,
	.screens-cta {
		padding-top: 70px;
		padding-bottom: 70px;
	}

	.screens-marquee {
		min-height: 440px;
	}

	.screens-marquee__caption {
		top: 58px;
		right: var(--sf-edge, 20px);
	}

	.screens-points,
	.screens-feature-grid {
		grid-template-columns: 1fr;
	}

	.screens-photo-strip figure {
		width: 300px;
		height: 240px;
	}

	.doors-hero {
		min-height: 660px;
		padding-top: 104px;
	}

	.doors-hero__content {
		padding: 22px;
	}

	.doors-actions .button {
		width: 100%;
	}

	.doors-section,
	.doors-cta {
		padding-top: 70px;
		padding-bottom: 70px;
	}

	.doors-marquee {
		min-height: 360px;
	}

	.doors-marquee__caption {
		top: 64px;
		right: var(--sf-edge, 20px);
	}

	.doors-points,
	.doors-feature-grid {
		grid-template-columns: 1fr;
	}

	.doors-photo-strip figure {
		width: 300px;
		height: 240px;
	}

	.velux-hero {
		min-height: 660px;
		padding-top: 104px;
	}

	.velux-hero__content {
		padding: 22px;
	}

	.velux-actions .button {
		width: 100%;
	}

	.velux-section,
	.velux-cta {
		padding-top: 70px;
		padding-bottom: 70px;
	}

	.velux-marquee {
		min-height: 380px;
	}

	.velux-marquee__caption {
		top: 64px;
		right: var(--sf-edge, 20px);
	}

	.velux-points,
	.velux-feature-grid {
		grid-template-columns: 1fr;
	}

	.velux-photo-strip figure {
		width: 300px;
	}

	.interior-doors-hero {
		min-height: 660px;
		padding-top: 104px;
	}

	.interior-doors-hero__content {
		padding: 22px;
	}

	.interior-doors-actions .button {
		width: 100%;
	}

	.interior-doors-section,
	.interior-doors-cta {
		padding-top: 70px;
		padding-bottom: 70px;
	}

	.interior-doors-marquee {
		min-height: 380px;
	}

	.interior-doors-marquee__caption {
		top: 64px;
		right: var(--sf-edge, 20px);
	}

	.interior-doors-points,
	.interior-doors-feature-grid {
		grid-template-columns: 1fr;
	}

	.interior-doors-photo-strip figure {
		width: 300px;
		height: 240px;
	}

	.fabrizio-hero {
		min-height: 720px;
		padding-top: 104px;
	}

	.fabrizio-hero h1 {
		font-size: clamp(40px, 11vw, 58px);
	}

	.fabrizio-hero__text {
		font-size: 18px;
	}

	.fabrizio-actions .button {
		width: 100%;
	}

	.fabrizio-welcome {
		padding: 22px;
	}

	.fabrizio-section {
		padding-top: 70px;
		padding-bottom: 70px;
	}

	.fabrizio-logos,
	.fabrizio-service-grid {
		grid-template-columns: 1fr;
	}

	.fabrizio-cta {
		margin-right: var(--sf-edge, 20px);
		margin-left: var(--sf-edge, 20px);
		padding: 32px 22px;
	}
}

/* Unified product image strips, aligned with the online serramenti carousel. */
.frames-photo-strip,
.pergolas-photo-strip,
.awnings-photo-strip,
.screens-photo-strip,
.doors-photo-strip,
.velux-photo-strip,
.interior-doors-photo-strip {
	overflow: hidden !important;
	padding: clamp(22px, 3vw, 38px) 0 clamp(42px, 5vw, 70px) !important;
	background: #fff !important;
}

.frames-photo-strip__track,
.pergolas-photo-strip__track,
.awnings-photo-strip__track,
.screens-photo-strip__track,
.doors-photo-strip__track,
.velux-photo-strip__track,
.interior-doors-photo-strip__track {
	display: flex !important;
	width: max-content !important;
	gap: 18px !important;
	padding: 0 18px !important;
	will-change: transform;
}

.frames-photo-strip:hover .frames-photo-strip__track,
.pergolas-photo-strip:hover .pergolas-photo-strip__track,
.awnings-photo-strip:hover .awnings-photo-strip__track,
.screens-photo-strip:hover .screens-photo-strip__track,
.doors-photo-strip:hover .doors-photo-strip__track,
.velux-photo-strip:hover .velux-photo-strip__track,
.interior-doors-photo-strip:hover .interior-doors-photo-strip__track {
	animation-play-state: paused;
}

.frames-photo-strip figure,
.pergolas-photo-strip figure,
.awnings-photo-strip figure,
.screens-photo-strip figure,
.doors-photo-strip figure,
.velux-photo-strip figure,
.interior-doors-photo-strip figure {
	width: clamp(320px, 38vw, 620px) !important;
	height: auto !important;
	margin: 0 !important;
	flex: 0 0 auto !important;
	overflow: hidden !important;
	background: #f4f4f4 !important;
	border-radius: 8px !important;
	box-shadow: 0 22px 58px rgba(0,0,0,.12) !important;
}

.frames-photo-strip img,
.pergolas-photo-strip img,
.awnings-photo-strip img,
.screens-photo-strip img,
.doors-photo-strip img,
.velux-photo-strip img,
.interior-doors-photo-strip img {
	display: block !important;
	width: 100% !important;
	height: clamp(220px, 26vw, 360px) !important;
	object-fit: cover !important;
	transition: transform .5s ease;
}

.frames-photo-strip figure:hover img,
.pergolas-photo-strip figure:hover img,
.awnings-photo-strip figure:hover img,
.screens-photo-strip figure:hover img,
.doors-photo-strip figure:hover img,
.velux-photo-strip figure:hover img,
.interior-doors-photo-strip figure:hover img {
	transform: scale(1.035);
}

/* Unified product process and consultation blocks. */
.frames-process,
.pergolas-process,
.awnings-process,
.screens-process,
.doors-process,
.velux-process,
.interior-doors-process {
	position: relative !important;
	overflow: hidden !important;
	color: #fff !important;
	background:
		radial-gradient(circle at 10% 14%, rgba(211,24,34,.28), transparent 34%),
		radial-gradient(circle at 86% 72%, rgba(211,24,34,.16), transparent 30%),
		linear-gradient(115deg, #220004 0%, #0a0a0a 58%, #000 100%) !important;
}

.frames-process:before,
.pergolas-process:before,
.awnings-process:before,
.screens-process:before,
.doors-process:before,
.velux-process:before,
.interior-doors-process:before {
	position: absolute;
	inset: 0;
	z-index: 0;
	content: "";
	background:
		linear-gradient(90deg, rgba(0,0,0,.08), rgba(0,0,0,.28)),
		repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0, rgba(255,255,255,.025) 1px, transparent 1px, transparent 18px) !important;
	pointer-events: none;
}

.frames-process > *,
.pergolas-process > *,
.awnings-process > *,
.screens-process > *,
.doors-process > *,
.velux-process > *,
.interior-doors-process > * {
	position: relative !important;
	z-index: 1 !important;
}

.frames-process__grid,
.pergolas-process__grid,
.awnings-process__grid,
.screens-process__grid,
.doors-process__grid,
.velux-process__grid,
.interior-doors-process__grid {
	align-items: start !important;
	gap: clamp(64px, 8vw, 150px) !important;
}

.frames-process h2,
.pergolas-process h2,
.awnings-process h2,
.screens-process h2,
.doors-process h2,
.velux-process h2,
.interior-doors-process h2 {
	max-width: 620px !important;
	color: #fff !important;
	font-weight: 800 !important;
	line-height: .98 !important;
	text-shadow: 0 22px 48px rgba(0,0,0,.52) !important;
}

.frames-process .eyebrow,
.pergolas-process .eyebrow,
.awnings-process .eyebrow,
.screens-process .eyebrow,
.doors-process .eyebrow,
.velux-process .eyebrow,
.interior-doors-process .eyebrow {
	color: #e31b25 !important;
	font-weight: 900 !important;
	letter-spacing: .16em !important;
}

.frames-process__steps,
.pergolas-process__steps,
.awnings-process__steps,
.screens-process__steps,
.doors-process__steps,
.velux-process__steps,
.interior-doors-process__steps {
	border-top: 1px solid rgba(255,255,255,.18) !important;
}

.frames-process__steps > div,
.pergolas-process__steps > div,
.awnings-process__steps > div,
.screens-process__steps > div,
.doors-process__steps > div,
.velux-process__steps > div,
.interior-doors-process__steps > div {
	padding: clamp(28px, 3.2vw, 42px) 0 !important;
	border-bottom: 1px solid rgba(255,255,255,.18) !important;
}

.frames-process__steps strong,
.pergolas-process__steps strong,
.awnings-process__steps strong,
.screens-process__steps strong,
.doors-process__steps strong,
.velux-process__steps strong,
.interior-doors-process__steps strong {
	display: block !important;
	margin-bottom: 10px !important;
	color: #e31b25 !important;
	font-size: 16px !important;
	font-weight: 950 !important;
	letter-spacing: .18em !important;
	text-transform: uppercase !important;
}

.frames-process__steps p,
.pergolas-process__steps p,
.awnings-process__steps p,
.screens-process__steps p,
.doors-process__steps p,
.velux-process__steps p,
.interior-doors-process__steps p {
	max-width: 880px !important;
	margin: 0 !important;
	color: rgba(255,255,255,.74) !important;
	font-size: clamp(18px, 1.45vw, 22px) !important;
	font-weight: 500 !important;
	line-height: 1.62 !important;
}

.frames-cta,
.pergolas-cta,
.awnings-cta,
.screens-cta,
.doors-cta,
.velux-cta,
.interior-doors-cta {
	position: relative !important;
	overflow: hidden !important;
	color: #fff !important;
	background-position: center !important;
	background-size: cover !important;
}

.frames-cta:before,
.pergolas-cta:before,
.awnings-cta:before,
.screens-cta:before,
.doors-cta:before,
.velux-cta:before,
.interior-doors-cta:before {
	position: absolute !important;
	inset: 0 !important;
	z-index: 0 !important;
	content: "" !important;
	background:
		linear-gradient(90deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,.68) 47%, rgba(0,0,0,.42) 100%),
		radial-gradient(circle at 13% 28%, rgba(211,24,34,.30), transparent 34%) !important;
	pointer-events: none !important;
}

.frames-cta > *,
.pergolas-cta > *,
.awnings-cta > *,
.screens-cta > *,
.doors-cta > *,
.velux-cta > *,
.interior-doors-cta > * {
	position: relative !important;
	z-index: 1 !important;
}

.frames-cta h2,
.pergolas-cta h2,
.awnings-cta h2,
.screens-cta h2,
.doors-cta h2,
.velux-cta h2,
.interior-doors-cta h2 {
	max-width: 920px !important;
	color: #fff !important;
	font-weight: 800 !important;
	line-height: .98 !important;
	text-shadow: 0 22px 52px rgba(0,0,0,.58) !important;
}

.frames-cta .eyebrow,
.pergolas-cta .eyebrow,
.awnings-cta .eyebrow,
.screens-cta .eyebrow,
.doors-cta .eyebrow,
.velux-cta .eyebrow,
.interior-doors-cta .eyebrow {
	color: #e31b25 !important;
	font-weight: 900 !important;
	letter-spacing: .16em !important;
}

.frames-cta p:not(.eyebrow),
.pergolas-cta p:not(.eyebrow),
.awnings-cta p:not(.eyebrow),
.screens-cta p:not(.eyebrow),
.doors-cta p:not(.eyebrow),
.velux-cta p:not(.eyebrow),
.interior-doors-cta p:not(.eyebrow) {
	max-width: 980px !important;
	color: rgba(255,255,255,.78) !important;
	font-size: clamp(18px, 1.45vw, 22px) !important;
	font-weight: 500 !important;
	line-height: 1.65 !important;
}

@media (max-width: 900px) {
	.frames-process__grid,
	.pergolas-process__grid,
	.awnings-process__grid,
	.screens-process__grid,
	.doors-process__grid,
	.velux-process__grid,
	.interior-doors-process__grid {
		gap: 42px !important;
	}
}

/* Keep page sections compact: 30px side gutters, with media strips still full-bleed. */
.about-hero,
.about-section,
.contacts-hero,
.contacts-section,
.contacts-map,
.frames-hero,
.frames-section,
.frames-cta,
.pergolas-hero,
.pergolas-section,
.pergolas-cta,
.awnings-hero,
.awnings-section,
.awnings-cta,
.screens-hero,
.screens-section,
.screens-cta,
.doors-hero,
.doors-section,
.doors-cta,
.velux-hero,
.velux-section,
.velux-cta,
.interior-doors-hero,
.interior-doors-section,
.interior-doors-cta,
.fabrizio-hero,
.fabrizio-section {
	padding-right: 30px !important;
	padding-left: 30px !important;
}

.fabrizio-cta {
	margin-right: 30px !important;
	margin-left: 30px !important;
}

@media (max-width: 520px) {
	.about-hero,
	.about-section,
	.contacts-hero,
	.contacts-section,
	.contacts-map,
	.frames-hero,
	.frames-section,
	.frames-cta,
	.pergolas-hero,
	.pergolas-section,
	.pergolas-cta,
	.awnings-hero,
	.awnings-section,
	.awnings-cta,
	.screens-hero,
	.screens-section,
	.screens-cta,
	.doors-hero,
	.doors-section,
	.doors-cta,
	.velux-hero,
	.velux-section,
	.velux-cta,
	.interior-doors-hero,
	.interior-doors-section,
	.interior-doors-cta,
	.fabrizio-hero,
	.fabrizio-section {
		padding-right: 20px !important;
		padding-left: 20px !important;
	}

	.fabrizio-cta {
		margin-right: 20px !important;
		margin-left: 20px !important;
	}
}

/* Product final CTAs: framed card like the online reference. */
.frames-page .frames-cta,
.pergolas-page .pergolas-cta,
.awnings-page .awnings-cta,
.screens-page .screens-cta,
.doors-page .doors-cta,
.velux-page .velux-cta,
.interior-doors-page .interior-doors-cta {
	max-width: min(1440px, calc(100% - 120px)) !important;
	min-height: clamp(360px, 33vw, 460px) !important;
	margin: clamp(88px, 9vw, 140px) auto clamp(92px, 9vw, 132px) !important;
	padding: clamp(62px, 5.2vw, 86px) clamp(58px, 5vw, 82px) !important;
	border-radius: 7px !important;
	box-shadow: 0 38px 90px rgba(0,0,0,.18) !important;
	background-position: center !important;
	background-size: cover !important;
}

.frames-page .frames-cta:before,
.pergolas-page .pergolas-cta:before,
.awnings-page .awnings-cta:before,
.screens-page .screens-cta:before,
.doors-page .doors-cta:before,
.velux-page .velux-cta:before,
.interior-doors-page .interior-doors-cta:before {
	background:
		linear-gradient(90deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.64) 38%, rgba(120,10,18,.54) 71%, rgba(160,34,42,.48) 100%),
		radial-gradient(circle at 72% 44%, rgba(211,24,34,.24), transparent 36%) !important;
}

.frames-page .frames-cta .eyebrow,
.pergolas-page .pergolas-cta .eyebrow,
.awnings-page .awnings-cta .eyebrow,
.screens-page .screens-cta .eyebrow,
.doors-page .doors-cta .eyebrow,
.velux-page .velux-cta .eyebrow,
.interior-doors-page .interior-doors-cta .eyebrow {
	color: rgba(255,255,255,.86) !important;
	font-size: 14px !important;
	font-weight: 850 !important;
	letter-spacing: .08em !important;
}

.frames-page .frames-cta h2,
.pergolas-page .pergolas-cta h2,
.awnings-page .awnings-cta h2,
.screens-page .screens-cta h2,
.doors-page .doors-cta h2,
.velux-page .velux-cta h2,
.interior-doors-page .interior-doors-cta h2 {
	max-width: 720px !important;
	margin-top: 18px !important;
	color: #fff !important;
	font-size: clamp(42px, 4.2vw, 62px) !important;
	font-weight: 850 !important;
	line-height: 1.05 !important;
	text-shadow: 0 18px 48px rgba(0,0,0,.48) !important;
}

.frames-page .frames-cta p:not(.eyebrow),
.pergolas-page .pergolas-cta p:not(.eyebrow),
.awnings-page .awnings-cta p:not(.eyebrow),
.screens-page .screens-cta p:not(.eyebrow),
.doors-page .doors-cta p:not(.eyebrow),
.velux-page .velux-cta p:not(.eyebrow),
.interior-doors-page .interior-doors-cta p:not(.eyebrow) {
	max-width: 830px !important;
	margin-top: 34px !important;
	color: rgba(255,255,255,.9) !important;
	font-size: clamp(15px, 1.05vw, 17px) !important;
	font-weight: 750 !important;
	line-height: 1.18 !important;
}

.frames-page .frames-cta .frames-actions,
.pergolas-page .pergolas-cta .pergolas-actions,
.awnings-page .awnings-cta .awnings-actions,
.screens-page .screens-cta .screens-actions,
.doors-page .doors-cta .doors-actions,
.velux-page .velux-cta .velux-actions,
.interior-doors-page .interior-doors-cta .interior-doors-actions {
	margin-top: 32px !important;
}

.frames-page .frames-cta .button,
.pergolas-page .pergolas-cta .button,
.awnings-page .awnings-cta .button,
.screens-page .screens-cta .button,
.doors-page .doors-cta .button,
.velux-page .velux-cta .button,
.interior-doors-page .interior-doors-cta .button {
	min-height: 46px !important;
	padding: 14px 24px !important;
	border-radius: 4px !important;
	font-size: 14px !important;
	font-weight: 850 !important;
}

.frames-page .frames-cta .button.secondary,
.pergolas-page .pergolas-cta .button.secondary,
.awnings-page .awnings-cta .button.secondary,
.screens-page .screens-cta .button.secondary,
.doors-page .doors-cta .button.secondary,
.velux-page .velux-cta .button.secondary,
.interior-doors-page .interior-doors-cta .button.secondary {
	color: #fff !important;
	background: rgba(0,0,0,.12) !important;
	border-color: rgba(255,255,255,.58) !important;
}

@media (max-width: 900px) {
	.frames-page .frames-cta,
	.pergolas-page .pergolas-cta,
	.awnings-page .awnings-cta,
	.screens-page .screens-cta,
	.doors-page .doors-cta,
	.velux-page .velux-cta,
	.interior-doors-page .interior-doors-cta {
		max-width: calc(100% - 40px) !important;
		margin-top: 70px !important;
		margin-bottom: 76px !important;
		padding: 44px 28px !important;
	}
}

.floating-contact__panel a,
.floating-contact__panel a:visited,
.floating-contact__panel a:hover,
.floating-contact__panel a:focus,
.floating-contact__panel a:active {
	color: #fff !important;
	text-decoration: none !important;
}

.floating-contact__panel a:hover,
.floating-contact__panel a:focus {
	background: rgba(227, 6, 19, .14) !important;
	border-color: rgba(227, 6, 19, .54) !important;
	outline: 0 !important;
}

.floating-contact__panel a:hover span,
.floating-contact__panel a:focus span {
	color: #fff !important;
	background: linear-gradient(135deg, #ff111f, #b90410) !important;
}

.contacts-page .contacts-info-band {
	border-bottom: 1px solid rgba(211,24,34,.42) !important;
	background:
		radial-gradient(circle at 0% 0%, rgba(211,24,34,.24), transparent 34%),
		radial-gradient(circle at 100% 72%, rgba(211,24,34,.10), transparent 30%),
		linear-gradient(135deg, #120002 0%, #0a0a0b 56%, #170205 100%) !important;
}

.contacts-page .contacts-info-grid {
	gap: clamp(18px, 1.8vw, 22px) !important;
}

.contacts-page .contacts-info-grid article {
	min-height: clamp(230px, 16vw, 260px) !important;
	padding: clamp(28px, 2.5vw, 36px) !important;
	background: rgba(255,255,255,.045) !important;
	border-color: rgba(255,255,255,.18) !important;
}

.contacts-page .contacts-info-grid span {
	color: #e31b25 !important;
	font-size: 14px !important;
	font-weight: 900 !important;
	letter-spacing: .18em !important;
}

.contacts-page .contacts-info-grid h3 {
	margin: clamp(68px, 6vw, 86px) 0 12px !important;
	color: #fff !important;
	font-size: clamp(20px, 1.35vw, 22px) !important;
	font-weight: 850 !important;
	line-height: 1.12 !important;
}

.contacts-page .contacts-info-grid p {
	margin: 0 !important;
	color: rgba(255,255,255,.72) !important;
	font-size: clamp(15px, 1.05vw, 16px) !important;
	font-weight: 700 !important;
	line-height: 1.58 !important;
}

/* Chi siamo: typography and alignment synced with the online reference. */
.about-page #famiglia .about-copy h2 {
	font-size: clamp(42px, 5vw, 84px) !important;
	font-weight: 700 !important;
	line-height: .98 !important;
}

.about-page #famiglia .about-copy .lead {
	color: #606064 !important;
	font-size: clamp(18px, 1.8vw, 25px) !important;
	font-weight: 560 !important;
	line-height: 1.65 !important;
}

.about-page #famiglia .about-family-note {
	font-size: clamp(18px, 1.55vw, 22px) !important;
	font-weight: 500 !important;
	line-height: 1.58 !important;
}

.about-page .about-values .about-section-head,
.about-page .about-section:has(.about-promise__grid) .about-section-head {
	max-width: none !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	text-align: left !important;
}

.about-page .about-values .about-section-head .lead,
.about-page .about-section:has(.about-promise__grid) .about-section-head .lead {
	margin-right: 0 !important;
	margin-left: 0 !important;
}

.about-page .about-values .about-section-head h2 {
	font-size: clamp(34px, 4.4vw, 64px) !important;
	font-weight: 700 !important;
	line-height: 1.05 !important;
}

.about-page .about-values .about-section-head .lead {
	color: #66666c !important;
	font-size: clamp(17px, 1.5vw, 21px) !important;
	font-weight: 400 !important;
	line-height: 1.65 !important;
}

.about-page .about-values__grid article {
	min-height: 280px !important;
	padding: clamp(28px, 2.7vw, 38px) !important;
}

.about-page .about-values__grid h3 {
	margin: clamp(40px, 4.3vw, 56px) 0 16px !important;
	font-size: clamp(22px, 2.1vw, 30px) !important;
	font-weight: 800 !important;
	line-height: 1.12 !important;
}

.about-page .about-values__grid p {
	color: #626267 !important;
	font-size: 17px !important;
	font-weight: 400 !important;
	line-height: 1.68 !important;
}

.about-page .about-method__grid {
	grid-template-columns: .8fr 1.2fr !important;
	gap: clamp(38px, 7vw, 94px) !important;
}

.about-page .about-method h2 {
	max-width: 560px !important;
	font-size: clamp(42px, 5vw, 86px) !important;
	font-weight: 800 !important;
	line-height: 1 !important;
}

.about-page .about-method .about-steps article {
	grid-template-columns: 90px minmax(0, 1fr) !important;
	gap: 26px !important;
	padding: 32px 0 !important;
}

.about-page .about-method .about-steps h3 {
	margin: 0 0 8px !important;
	font-size: 27px !important;
	font-weight: 800 !important;
	line-height: 1.1 !important;
}

.about-page .about-method .about-steps p {
	color: rgba(255,255,255,.66) !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	line-height: 1.55 !important;
}

.about-page .about-section:has(.about-promise__grid) {
	text-align: left !important;
}

.about-page .about-section:has(.about-promise__grid) .about-section-head h2 {
	font-size: clamp(42px, 5vw, 84px) !important;
	font-weight: 700 !important;
	line-height: .98 !important;
}

.about-page .about-section:has(.about-promise__grid) .about-section-head .lead {
	color: #606064 !important;
	font-size: clamp(18px, 1.8vw, 25px) !important;
	font-weight: 560 !important;
	line-height: 1.65 !important;
}

.about-page .about-promise__grid {
	gap: 18px !important;
	margin: 54px 0 0 !important;
}

.about-page .about-promise__grid article {
	min-height: 250px !important;
	padding: 34px !important;
	color: #fff !important;
	background: #080808 !important;
	border: 0 !important;
	border-radius: 8px !important;
	box-shadow: none !important;
}

.about-page .about-promise__grid article:before {
	display: none !important;
}

.about-page .about-promise__grid article > span {
	display: block !important;
	width: auto !important;
	height: auto !important;
	color: #d31822 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-size: 16px !important;
	font-weight: 950 !important;
	letter-spacing: .18em !important;
}

.about-page .about-promise__grid h3 {
	margin: 38px 0 14px !important;
	color: #fff !important;
	font-size: 28px !important;
	font-weight: 800 !important;
	line-height: 1.12 !important;
}

.about-page .about-promise__grid p {
	color: rgba(255,255,255,.68) !important;
	font-size: 17px !important;
	font-weight: 400 !important;
	line-height: 1.6 !important;
}

.pergolas-page .pergolas-benefits .pergolas-heading .eyebrow,
.awnings-page .awnings-benefits .awnings-heading .eyebrow {
	color: #66666c !important;
	font-size: 14px !important;
	font-weight: 900 !important;
	letter-spacing: .08em !important;
}

.pergolas-page .pergolas-benefits .pergolas-heading h2,
.awnings-page .awnings-benefits .awnings-heading h2 {
	color: #050505 !important;
	font-size: clamp(42px, 4.4vw, 64px) !important;
	font-weight: 800 !important;
	line-height: 1.05 !important;
}

.pergolas-page .pergolas-feature-grid article,
.awnings-page .awnings-feature-grid article {
	min-height: 280px !important;
	padding: 34px !important;
	background: #fff !important;
	border: 1px solid rgba(0,0,0,.08) !important;
	border-radius: 8px !important;
	box-shadow: 0 18px 50px rgba(0,0,0,.06) !important;
}

.pergolas-page .pergolas-feature-grid span,
.awnings-page .awnings-feature-grid span {
	position: relative !important;
	display: inline-grid !important;
	width: 44px !important;
	height: 44px !important;
	place-items: center !important;
	overflow: hidden !important;
	color: #fff !important;
	background: #050505 !important;
	border-radius: 4px !important;
	font-size: 12px !important;
	font-weight: 950 !important;
	letter-spacing: 0 !important;
	line-height: 1 !important;
	text-transform: none !important;
}

.pergolas-page .pergolas-feature-grid span:before,
.awnings-page .awnings-feature-grid span:before {
	position: absolute !important;
	inset: 0 auto auto 0 !important;
	z-index: -1 !important;
	width: 100% !important;
	height: 100% !important;
	background: linear-gradient(135deg, #e31b25 0 50%, transparent 51%) !important;
	content: "" !important;
}

.pergolas-page .pergolas-feature-grid span,
.awnings-page .awnings-feature-grid span {
	isolation: isolate !important;
}

.pergolas-page .pergolas-feature-grid span::after,
.awnings-page .awnings-feature-grid span::after {
	position: absolute !important;
	inset: 0 !important;
	z-index: -1 !important;
	background: transparent !important;
	content: "" !important;
}

.pergolas-page .pergolas-feature-grid h3,
.awnings-page .awnings-feature-grid h3 {
	margin: 48px 0 16px !important;
	color: #050505 !important;
	font-size: clamp(24px, 2vw, 31px) !important;
	font-weight: 850 !important;
	line-height: 1.08 !important;
}

.pergolas-page .pergolas-feature-grid p,
.awnings-page .awnings-feature-grid p {
	margin: 0 !important;
	color: #55555b !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 1.58 !important;
}

/* Chi siamo: final sync with the online page reference. Header and footer are untouched. */
.about-page .about-section {
	padding-top: clamp(86px, 9vw, 132px) !important;
	padding-bottom: clamp(86px, 9vw, 132px) !important;
}

.about-page #famiglia .about-split {
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important;
	gap: clamp(42px, 7vw, 98px) !important;
	align-items: center !important;
}

.about-page #famiglia .about-media-stack {
	min-height: 620px !important;
}

.about-page #famiglia .about-media-stack img:first-child {
	width: 78% !important;
	height: 560px !important;
	border-radius: 8px !important;
	box-shadow: 0 30px 80px rgba(0,0,0,.16) !important;
}

.about-page #famiglia .about-media-stack img:nth-child(2) {
	right: 0 !important;
	bottom: 0 !important;
	width: 48% !important;
	height: 310px !important;
	border: 8px solid #fff !important;
	border-radius: 8px !important;
	box-shadow: 0 30px 80px rgba(0,0,0,.16) !important;
}

.about-page #famiglia .about-copy h2,
.about-page .about-section:has(.about-promise__grid) .about-section-head h2 {
	font-size: clamp(42px, 5vw, 84px) !important;
	font-weight: 700 !important;
	line-height: .98 !important;
	letter-spacing: 0 !important;
}

.about-page #famiglia .about-copy .lead,
.about-page .about-section:has(.about-promise__grid) .about-section-head .lead {
	color: #606064 !important;
	font-size: clamp(17px, 1.45vw, 21px) !important;
	font-weight: 400 !important;
	line-height: 1.72 !important;
}

.about-page #famiglia .about-family-note {
	margin-top: 34px !important;
	padding: 28px 30px !important;
	border-left: 5px solid #d31822 !important;
	border-radius: 0 !important;
	font-size: clamp(18px, 1.55vw, 22px) !important;
	font-weight: 500 !important;
	line-height: 1.58 !important;
}

.about-page .about-story__grid {
	grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr) !important;
	gap: clamp(38px, 6vw, 92px) !important;
	align-items: start !important;
}

.about-page .about-story__intro h2 {
	color: #111116 !important;
	font-size: clamp(42px, 5vw, 78px) !important;
	font-weight: 700 !important;
	line-height: .98 !important;
}

.about-page .about-story__intro > p:not(.eyebrow) {
	color: #606064 !important;
	font-size: clamp(17px, 1.4vw, 21px) !important;
	font-weight: 400 !important;
	line-height: 1.7 !important;
}

.about-page .about-story__card {
	padding: clamp(28px, 4vw, 54px) !important;
	border-left: 6px solid #d31822 !important;
	border-radius: 8px !important;
	box-shadow: 0 26px 74px rgba(0,0,0,.08) !important;
}

.about-page .about-story__card p {
	color: #55555b !important;
	font-size: clamp(17px, 1.45vw, 21px) !important;
	font-weight: 430 !important;
	line-height: 1.76 !important;
}

.about-page .about-story__card p + p {
	margin-top: clamp(34px, 3.4vw, 52px) !important;
}

.about-page .about-values:before {
	color: rgba(0,0,0,.035) !important;
	font-size: clamp(96px, 18vw, 260px) !important;
	font-weight: 950 !important;
	letter-spacing: -.05em !important;
	line-height: .8 !important;
}

.about-page .about-values .about-section-head {
	position: relative !important;
	z-index: 1 !important;
	max-width: none !important;
	margin: 0 !important;
	text-align: left !important;
}

.about-page .about-values .about-section-head h2 {
	color: #111116 !important;
	font-size: clamp(34px, 4.4vw, 64px) !important;
	font-weight: 700 !important;
	line-height: 1.05 !important;
}

.about-page .about-values .about-section-head .lead {
	max-width: 760px !important;
	margin: 0 !important;
	color: #66666c !important;
	font-size: clamp(17px, 1.5vw, 21px) !important;
	font-weight: 400 !important;
	line-height: 1.65 !important;
}

.about-page .about-values__grid {
	gap: clamp(16px, 2vw, 24px) !important;
	margin-top: clamp(46px, 5vw, 72px) !important;
}

.about-page .about-values__grid article {
	min-height: 280px !important;
	padding: clamp(28px, 2.7vw, 38px) !important;
	background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.92)) !important;
	border: 1px solid rgba(10,10,10,.08) !important;
	box-shadow: 0 16px 42px rgba(0,0,0,.045) !important;
}

.about-page .about-values__grid article > span {
	width: 54px !important;
	height: 54px !important;
	color: #d31822 !important;
	background: rgba(211,24,34,.08) !important;
	border: 1px solid rgba(211,24,34,.16) !important;
	border-radius: 999px !important;
	font-size: 13px !important;
	font-weight: 950 !important;
}

.about-page .about-values__grid h3 {
	margin: clamp(40px, 4.3vw, 56px) 0 16px !important;
	color: #101010 !important;
	font-size: clamp(22px, 2.1vw, 30px) !important;
	font-weight: 800 !important;
	line-height: 1.12 !important;
}

.about-page .about-values__grid p {
	color: #626267 !important;
	font-size: 17px !important;
	font-weight: 400 !important;
	line-height: 1.68 !important;
}

.about-page .about-method__grid {
	grid-template-columns: .8fr 1.2fr !important;
	gap: clamp(38px, 7vw, 94px) !important;
}

.about-page .about-method h2 {
	max-width: 560px !important;
	font-size: clamp(42px, 5vw, 86px) !important;
	font-weight: 800 !important;
	line-height: 1 !important;
}

.about-page .about-method .about-steps article {
	grid-template-columns: 90px minmax(0, 1fr) !important;
	gap: 26px !important;
	padding: 32px 0 !important;
}

.about-page .about-method .about-steps h3 {
	margin: 0 0 8px !important;
	font-size: 27px !important;
	font-weight: 800 !important;
	line-height: 1.1 !important;
}

.about-page .about-method .about-steps p {
	color: rgba(255,255,255,.66) !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	line-height: 1.55 !important;
}

.about-page .about-section:has(.about-promise__grid) {
	text-align: left !important;
}

.about-page .about-section:has(.about-promise__grid) .about-section-head {
	max-width: none !important;
	margin: 0 !important;
	text-align: left !important;
}

.about-page .about-section:has(.about-promise__grid) .about-section-head .lead {
	max-width: 760px !important;
	margin: 0 !important;
}

.about-page .about-promise__grid {
	gap: 18px !important;
	margin: 54px 0 0 !important;
}

.about-page .about-promise__grid article {
	min-height: 250px !important;
	padding: 34px !important;
	color: #fff !important;
	background: #080808 !important;
	border: 0 !important;
	box-shadow: none !important;
}

.about-page .about-promise__grid article:before {
	display: none !important;
}

.about-page .about-promise__grid article > span {
	display: block !important;
	width: auto !important;
	height: auto !important;
	color: #d31822 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-size: 16px !important;
	font-weight: 950 !important;
	letter-spacing: .18em !important;
}

.about-page .about-promise__grid h3 {
	margin: 38px 0 14px !important;
	color: #fff !important;
	font-size: 28px !important;
	font-weight: 800 !important;
	line-height: 1.12 !important;
}

.about-page .about-promise__grid p {
	color: rgba(255,255,255,.68) !important;
	font-size: 17px !important;
	font-weight: 400 !important;
	line-height: 1.6 !important;
}

.about-page .about-cta {
	padding: clamp(42px, 6vw, 76px) !important;
	border-radius: 10px !important;
	box-shadow: 0 30px 80px rgba(0,0,0,.16) !important;
}

.about-page .about-cta h2 {
	margin-bottom: 16px !important;
	font-size: clamp(34px, 4vw, 66px) !important;
	font-weight: 700 !important;
	line-height: 1 !important;
}

.about-page .about-cta p:not(.eyebrow) {
	max-width: 760px !important;
	margin: 0 !important;
	color: rgba(255,255,255,.74) !important;
	font-size: 19px !important;
	font-weight: 400 !important;
	line-height: 1.55 !important;
}

/* Chi siamo visual correction from supplied comparison screenshots. */
.about-page #famiglia .about-split {
	grid-template-columns: minmax(420px, .98fr) minmax(520px, 1.02fr) !important;
	gap: clamp(72px, 7vw, 112px) !important;
	max-width: 1320px !important;
}

.about-page #famiglia .about-copy {
	max-width: 610px !important;
}

.about-page #famiglia .about-copy h2 {
	max-width: 590px !important;
	font-size: clamp(40px, 3.6vw, 56px) !important;
	font-weight: 800 !important;
	line-height: 1.02 !important;
}

.about-page #famiglia .about-copy .lead {
	max-width: 610px !important;
	font-size: clamp(15px, 1.05vw, 17px) !important;
	font-weight: 500 !important;
	line-height: 1.62 !important;
}

.about-page #famiglia .about-family-note {
	max-width: 600px !important;
	padding: 26px 32px !important;
	font-size: clamp(16px, 1.15vw, 18px) !important;
	font-weight: 500 !important;
	line-height: 1.58 !important;
	box-shadow: 0 20px 54px rgba(0,0,0,.075) !important;
}

.about-page .about-story__grid {
	max-width: 1320px !important;
	grid-template-columns: minmax(360px, .78fr) minmax(560px, 1.22fr) !important;
	gap: clamp(62px, 6vw, 96px) !important;
}

.about-page .about-story__intro h2 {
	max-width: 480px !important;
	font-size: clamp(40px, 3.9vw, 58px) !important;
	font-weight: 800 !important;
	line-height: 1.02 !important;
}

.about-page .about-story__intro > p:not(.eyebrow) {
	max-width: 440px !important;
	font-size: clamp(15px, 1.05vw, 17px) !important;
	line-height: 1.72 !important;
}

.about-page .about-story__card {
	max-width: 760px !important;
	padding: clamp(38px, 4vw, 58px) !important;
	background: #fff !important;
}

.about-page .about-story__card p {
	font-size: clamp(16px, 1.2vw, 18px) !important;
	line-height: 1.8 !important;
}

.about-page .about-values {
	background: linear-gradient(180deg, #f7f7f8 0%, #fff 100%) !important;
}

.about-page .about-values .about-section-head,
.about-page .about-values__grid {
	max-width: 1320px !important;
	margin-right: auto !important;
	margin-left: auto !important;
}

.about-page .about-values .about-section-head h2 {
	max-width: 1180px !important;
	font-size: clamp(38px, 3.9vw, 58px) !important;
	font-weight: 800 !important;
	line-height: 1.05 !important;
}

.about-page .about-values .about-section-head .lead {
	font-size: clamp(14px, 1vw, 16px) !important;
	line-height: 1.65 !important;
}

.about-page .about-values__grid article {
	background: #fff !important;
	box-shadow: 0 22px 58px rgba(0,0,0,.06) !important;
}

.about-page .about-values__grid h3 {
	font-size: clamp(20px, 1.65vw, 25px) !important;
}

.about-page .about-values__grid p {
	font-size: 15px !important;
	line-height: 1.65 !important;
}

.about-page .about-section:has(.about-promise__grid) .about-section-head,
.about-page .about-promise__grid {
	max-width: 1320px !important;
	margin-right: auto !important;
	margin-left: auto !important;
}

.about-page .about-section:has(.about-promise__grid) .about-section-head h2 {
	font-size: clamp(38px, 4vw, 60px) !important;
	font-weight: 800 !important;
	line-height: 1.05 !important;
}

.about-page .about-section:has(.about-promise__grid) .about-section-head .lead {
	font-size: clamp(14px, 1vw, 16px) !important;
	line-height: 1.65 !important;
}

.about-page .about-promise__grid article {
	min-height: 178px !important;
	padding: 26px 28px !important;
}

.about-page .about-promise__grid article > span {
	font-size: 12px !important;
}

.about-page .about-promise__grid h3 {
	margin: 28px 0 12px !important;
	font-size: 19px !important;
}

.about-page .about-promise__grid p {
	font-size: 13px !important;
	line-height: 1.58 !important;
}

.about-page .about-cta {
	max-width: 1320px !important;
	margin-right: auto !important;
	margin-left: auto !important;
}

/* Contatti: proportions aligned with the supplied reference. */
.contacts-page .contacts-hero {
	min-height: min(82vh, 930px) !important;
	padding-top: clamp(128px, 9vw, 160px) !important;
	padding-bottom: clamp(92px, 8vw, 128px) !important;
}

.contacts-page .contacts-hero__bg {
	background-position: center center !important;
}

.contacts-page .contacts-hero:after {
	background:
		radial-gradient(circle at 18% 42%, rgba(211,24,34,.34), transparent 36%),
		linear-gradient(90deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.56) 50%, rgba(0,0,0,.18) 100%),
		linear-gradient(180deg, rgba(0,0,0,.4), rgba(0,0,0,.58)) !important;
}

.contacts-page .contacts-hero__content {
	max-width: 690px !important;
	padding: clamp(32px, 3.6vw, 52px) clamp(30px, 4vw, 56px) !important;
}

.contacts-page .contacts-hero h1 {
	max-width: 610px !important;
	font-size: clamp(54px, 5.2vw, 86px) !important;
	font-weight: 850 !important;
	line-height: .98 !important;
}

.contacts-page .contacts-hero__text {
	max-width: 620px !important;
	font-size: clamp(16px, 1.35vw, 22px) !important;
	line-height: 1.5 !important;
}

.contacts-page .contacts-section {
	padding-top: clamp(100px, 8vw, 132px) !important;
	padding-bottom: clamp(96px, 7vw, 120px) !important;
}

.contacts-page .contacts-layout {
	max-width: 1460px !important;
	grid-template-columns: minmax(0, .98fr) minmax(430px, .82fr) !important;
	gap: clamp(70px, 7vw, 118px) !important;
	align-items: start !important;
}

.contacts-page .contacts-copy h2 {
	max-width: 710px !important;
	margin-bottom: 26px !important;
	font-size: clamp(42px, 4vw, 62px) !important;
	font-weight: 850 !important;
	line-height: 1.02 !important;
}

.contacts-page .contacts-copy p {
	max-width: 700px !important;
	font-size: clamp(15px, 1.05vw, 17px) !important;
	font-weight: 700 !important;
	line-height: 1.62 !important;
}

.contacts-page .contacts-details {
	grid-template-columns: repeat(2, minmax(0, 250px)) !important;
	gap: 14px !important;
	margin-top: 34px !important;
}

.contacts-page .contacts-details > div {
	min-height: 126px !important;
	padding: 22px 24px !important;
	border-radius: 3px !important;
	box-shadow: 0 16px 38px rgba(0,0,0,.045) !important;
}

.contacts-page .contacts-details strong {
	font-size: 17px !important;
	font-weight: 850 !important;
}

.contacts-page .contacts-image-stack {
	min-height: clamp(500px, 42vw, 620px) !important;
	margin-top: 42px !important;
}

.contacts-page .contacts-image-stack img:first-child {
	width: min(76%, 560px) !important;
	height: clamp(470px, 39vw, 610px) !important;
	border-radius: 4px !important;
	box-shadow: 0 26px 68px rgba(0,0,0,.12) !important;
}

.contacts-page .contacts-image-stack img:nth-child(2) {
	right: clamp(4px, 3vw, 42px) !important;
	bottom: 0 !important;
	width: min(48%, 330px) !important;
	height: clamp(190px, 17vw, 260px) !important;
	border: 8px solid #fff !important;
	border-radius: 4px !important;
}

.contacts-page .contacts-form-shell {
	position: static !important;
	max-width: 560px !important;
	justify-self: end !important;
	padding: clamp(34px, 3vw, 44px) !important;
	border-radius: 2px !important;
	box-shadow: 0 28px 78px rgba(0,0,0,.08) !important;
}

.contacts-page .contacts-form-shell h2 {
	font-size: clamp(38px, 3.2vw, 54px) !important;
	font-weight: 850 !important;
}

.contacts-page .contacts-form-shell > p,
.contacts-page .contacts-form-shell .contact-form label {
	font-size: 13px !important;
	line-height: 1.45 !important;
}

.contacts-page .contacts-form-shell .contact-form :where(input, select, textarea) {
	min-height: 44px !important;
	font-size: 13px !important;
}

.contacts-page .contacts-form-shell .contact-form textarea {
	min-height: 150px !important;
}

.contacts-page .contacts-info-band {
	padding-top: clamp(116px, 9vw, 150px) !important;
	padding-bottom: clamp(112px, 8.5vw, 144px) !important;
}

.contacts-page .contacts-info-grid {
	max-width: 1460px !important;
	gap: clamp(18px, 1.8vw, 22px) !important;
}

.contacts-page .contacts-info-grid article {
	min-height: clamp(250px, 18vw, 294px) !important;
	padding: clamp(32px, 2.8vw, 42px) !important;
	border-radius: 4px !important;
}

@media (max-width: 900px) {
	.contacts-page .contacts-layout {
		grid-template-columns: 1fr !important;
	}

	.contacts-page .contacts-form-shell {
		max-width: none !important;
		justify-self: stretch !important;
	}

	.contacts-page .contacts-details {
		grid-template-columns: 1fr !important;
	}
}

@media (max-width: 900px) {
	.about-page #famiglia .about-split,
	.about-page .about-story__grid {
		grid-template-columns: 1fr !important;
	}

	.about-page #famiglia .about-copy,
	.about-page #famiglia .about-copy h2,
	.about-page #famiglia .about-copy .lead,
	.about-page #famiglia .about-family-note,
	.about-page .about-story__intro h2,
	.about-page .about-story__intro > p:not(.eyebrow),
	.about-page .about-story__card {
		max-width: none !important;
	}
}

/* Serramenti e inferriate: proportions aligned with the supplied online reference. */
.frames-page .frames-hero {
	min-height: min(75vh, 820px) !important;
	padding-top: clamp(118px, 8.8vw, 146px) !important;
	padding-bottom: clamp(66px, 6vw, 94px) !important;
}

.frames-page .frames-hero__content {
	max-width: 620px !important;
	padding: clamp(28px, 3vw, 42px) clamp(28px, 3.4vw, 48px) !important;
}

.frames-page .frames-hero h1 {
	max-width: 560px !important;
	font-size: clamp(46px, 4.9vw, 72px) !important;
	line-height: .96 !important;
}

.frames-page .frames-hero__text {
	max-width: 560px !important;
	font-size: clamp(15px, 1.2vw, 18px) !important;
	line-height: 1.45 !important;
}

.frames-page .frames-actions {
	margin-top: 26px !important;
}

.frames-page .frames-marquee {
	min-height: clamp(210px, 18vw, 290px) !important;
}

.frames-page .frames-marquee__caption {
	top: clamp(58px, 8vw, 104px) !important;
	max-width: 1180px !important;
}

.frames-page .frames-marquee__caption strong {
	font-size: clamp(36px, 4vw, 60px) !important;
	font-weight: 850 !important;
	line-height: 1 !important;
}

.frames-page .frames-marquee__caption p {
	max-width: 780px !important;
	font-size: clamp(14px, .95vw, 16px) !important;
	line-height: 1.45 !important;
}

.frames-page .frames-marquee__track {
	font-size: clamp(88px, 12vw, 188px) !important;
}

.frames-page .frames-section {
	padding-top: clamp(72px, 7vw, 104px) !important;
	padding-bottom: clamp(72px, 7vw, 104px) !important;
}

.frames-page .frames-intro,
.frames-page .frames-material,
.frames-page .frames-inferriate,
.frames-page .frames-process__grid,
.frames-page .frames-feature-grid,
.frames-page .frames-heading {
	max-width: 1320px !important;
}

.frames-page .frames-intro,
.frames-page .frames-material,
.frames-page .frames-inferriate {
	grid-template-columns: minmax(0, 1fr) minmax(430px, .86fr) !important;
	gap: clamp(54px, 6vw, 92px) !important;
	align-items: center !important;
}

.frames-page .frames-intro {
	grid-template-columns: minmax(0, .94fr) minmax(520px, 1.06fr) !important;
	gap: clamp(56px, 5.4vw, 78px) !important;
	align-items: center !important;
}

.frames-page .frames-intro .frames-heading {
	max-width: 640px !important;
	margin-left: 0 !important;
}

.frames-page .frames-intro .frames-heading h2 {
	max-width: 620px !important;
}

.frames-page .frames-intro .frames-panel {
	max-width: 660px !important;
	justify-self: end !important;
	padding: clamp(34px, 3vw, 44px) !important;
}

.frames-page .frames-intro .frames-panel ul {
	margin-top: 24px !important;
	gap: 12px !important;
}

.frames-page .frames-intro .frames-protected {
	grid-template-columns: minmax(180px, 210px) minmax(0, 1fr) !important;
	gap: clamp(20px, 2vw, 26px) !important;
	align-items: center !important;
	margin-top: 28px !important;
	padding: clamp(20px, 1.9vw, 24px) !important;
	border-radius: 5px !important;
}

.frames-page .frames-intro .frames-protected img {
	max-width: 210px !important;
}

.frames-page .frames-intro .frames-protected strong {
	font-size: clamp(20px, 1.55vw, 24px) !important;
	line-height: 1.08 !important;
}

.frames-page .frames-intro .frames-protected p {
	font-size: clamp(12px, .85vw, 14px) !important;
	line-height: 1.48 !important;
}

.frames-page .frames-heading h2,
.frames-page .frames-process h2 {
	font-size: clamp(38px, 3.65vw, 58px) !important;
	font-weight: 850 !important;
	line-height: 1.02 !important;
}

.frames-page .frames-heading p:not(.eyebrow),
.frames-page .frames-panel p {
	font-size: clamp(14px, 1vw, 16px) !important;
	font-weight: 500 !important;
	line-height: 1.68 !important;
}

.frames-page .frames-panel {
	padding: clamp(30px, 3.3vw, 48px) !important;
	border-left: 5px solid var(--frames-red) !important;
	border-radius: 4px !important;
	box-shadow: 0 26px 70px rgba(0,0,0,.09) !important;
}

.frames-page .frames-panel li {
	min-height: 42px !important;
	padding: 12px 16px 12px 32px !important;
	background: #f7f7f7 !important;
	font-size: 13px !important;
	line-height: 1.35 !important;
}

.frames-page .frames-panel li:before {
	top: 18px !important;
	left: 14px !important;
	width: 7px !important;
	height: 7px !important;
}

.frames-page .frames-security-note {
	max-width: 620px !important;
	margin-top: 22px !important;
	padding: 22px 24px !important;
	border-radius: 4px !important;
}

.frames-page .frames-security-note strong {
	font-size: clamp(18px, 1.35vw, 22px) !important;
}

.frames-page .frames-security-note p {
	font-size: 13px !important;
	line-height: 1.5 !important;
}

.frames-page .frames-photo-strip {
	padding-top: clamp(14px, 2vw, 26px) !important;
	padding-bottom: clamp(42px, 4.8vw, 66px) !important;
}

.frames-page .frames-photo-strip figure {
	width: clamp(340px, 34vw, 560px) !important;
	border-radius: 6px !important;
	box-shadow: none !important;
}

.frames-page .frames-photo-strip img {
	height: clamp(220px, 22vw, 320px) !important;
}

.frames-page .frames-material {
	background: #f6f6f6 !important;
}

.frames-page .frames-material .frames-panel {
	max-width: 650px !important;
	justify-self: start !important;
	background: #fff !important;
}

.frames-page .frames-security {
	padding-top: clamp(78px, 7vw, 110px) !important;
	padding-bottom: clamp(72px, 6.4vw, 96px) !important;
}

.frames-page .frames-security .frames-heading {
	max-width: 1320px !important;
}

.frames-page .frames-security .frames-heading h2 {
	max-width: 760px !important;
	margin-top: 12px !important;
	font-size: clamp(38px, 3.6vw, 56px) !important;
	line-height: 1.02 !important;
}

.frames-page .frames-security .frames-heading p:not(.eyebrow) {
	max-width: 920px !important;
	margin-top: 24px !important;
	font-size: clamp(14px, .95vw, 16px) !important;
	line-height: 1.55 !important;
}

.frames-page .frames-security .frames-feature-grid {
	margin-top: 34px !important;
}

.frames-page .frames-security .frames-feature-grid article {
	min-height: clamp(210px, 17vw, 246px) !important;
	padding: clamp(26px, 2.5vw, 38px) !important;
}

.frames-page .frames-security .frames-feature-grid h3 {
	margin: 34px 0 12px !important;
	font-size: clamp(21px, 1.7vw, 27px) !important;
}

.frames-page .frames-security .frames-feature-grid p {
	font-size: clamp(13px, .95vw, 15px) !important;
	line-height: 1.55 !important;
}

.frames-page .frames-process {
	padding-top: clamp(76px, 6.8vw, 104px) !important;
	padding-bottom: clamp(78px, 6.8vw, 108px) !important;
}

.frames-page .frames-process__grid {
	grid-template-columns: minmax(330px, .72fr) minmax(0, 1.28fr) !important;
	gap: clamp(62px, 7vw, 106px) !important;
}

.frames-page .frames-process h2 {
	max-width: 470px !important;
}

.frames-page .frames-process__steps > div {
	display: grid !important;
	grid-template-columns: 160px minmax(0, 1fr) !important;
	gap: 26px !important;
	align-items: start !important;
	padding: 28px 0 !important;
}

.frames-page .frames-process__steps p {
	margin: 0 !important;
	font-size: clamp(13px, .95vw, 15px) !important;
	line-height: 1.55 !important;
}

.frames-video-showcase {
	position: relative;
	padding: clamp(76px, 8vw, 118px) var(--sf-edge, clamp(20px, 5vw, 72px)) clamp(94px, 9vw, 138px);
	background:
		linear-gradient(135deg, #050505 0%, #120305 46%, #050505 100%);
	overflow: hidden;
}

.frames-video-showcase:before {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(211,24,34,.22), rgba(255,255,255,.03) 44%, rgba(0,0,0,.46)),
		radial-gradient(circle at 15% 18%, rgba(211,24,34,.32), transparent 34%),
		repeating-linear-gradient(115deg, rgba(255,255,255,.035) 0 1px, transparent 1px 38px);
	content: "";
	pointer-events: none;
}

.frames-video-showcase__inner {
	position: relative;
	width: min(1520px, 100%);
	margin: 0 auto;
}

.frames-video-showcase__heading {
	width: min(1280px, 86vw);
	margin: 0 auto clamp(26px, 3vw, 42px);
	color: #fff;
}

.frames-video-showcase__heading .eyebrow {
	margin-bottom: 14px;
	color: var(--frames-red);
}

.frames-video-showcase__heading h2 {
	max-width: 900px;
	margin: 0;
	color: #fff !important;
	font-size: clamp(38px, 4.5vw, 70px);
	font-weight: 850;
	line-height: 1.02;
	text-shadow: 0 18px 48px rgba(0,0,0,.52);
}

.frames-video-showcase__media {
	position: relative;
	width: min(1280px, 86vw);
	margin: 0 auto;
	background: #050505;
	border: 1px solid rgba(255,255,255,.16);
	box-shadow: 0 34px 90px rgba(0,0,0,.46), 0 0 0 1px rgba(211,24,34,.2);
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.frames-video-showcase__media video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.frames-video-showcase__note {
	position: absolute;
	left: clamp(-4px, 1vw, 20px);
	bottom: clamp(-54px, -3vw, -32px);
	z-index: 2;
	width: min(560px, 42vw);
	min-height: 150px;
	display: flex;
	align-items: flex-end;
	padding: clamp(28px, 3vw, 42px) clamp(30px, 3.6vw, 54px);
	color: #fff;
	background:
		radial-gradient(circle at 0% 0%, rgba(211,24,34,.24), transparent 42%),
		linear-gradient(135deg, rgba(42,13,15,.96), rgba(12,12,14,.96));
	border: 1px solid rgba(255,255,255,.12);
	border-left: 6px solid var(--frames-red);
	border-radius: 6px;
	box-shadow: 0 24px 58px rgba(0,0,0,.38);
}

.frames-video-showcase__note strong {
	display: block;
	max-width: 430px;
	font-size: clamp(24px, 2.25vw, 38px);
	font-weight: 900;
	line-height: 1.08;
	letter-spacing: 0;
}

.frames-page .frames-inferriate {
	padding-top: clamp(78px, 7vw, 108px) !important;
	padding-bottom: clamp(76px, 6vw, 98px) !important;
	grid-template-columns: minmax(420px, .95fr) minmax(420px, 1fr) !important;
}

.frames-page .frames-inferriate__image img {
	min-height: 380px !important;
	border-radius: 4px !important;
	box-shadow: 0 26px 64px rgba(0,0,0,.14) !important;
}

.frames-page .frames-points {
	margin-top: 28px !important;
}

.frames-page .frames-points span {
	min-height: 72px !important;
	padding: 14px 16px !important;
	font-size: 12px !important;
}

.frames-page .frames-cta {
	max-width: min(1320px, calc(100% - 120px)) !important;
	min-height: clamp(300px, 25vw, 370px) !important;
	margin-top: clamp(70px, 6.8vw, 96px) !important;
	margin-bottom: clamp(82px, 7vw, 112px) !important;
	padding: clamp(48px, 4.6vw, 68px) clamp(48px, 4.8vw, 72px) !important;
}

.frames-page .frames-cta h2 {
	max-width: 650px !important;
	font-size: clamp(36px, 3.45vw, 52px) !important;
}

.frames-page .frames-cta p:not(.eyebrow) {
	max-width: 800px !important;
	margin-top: 24px !important;
}

@media (max-width: 900px) {
	.frames-page .frames-intro,
	.frames-page .frames-material,
	.frames-page .frames-inferriate,
	.frames-page .frames-process__grid,
	.frames-page .frames-process__steps > div {
		grid-template-columns: 1fr !important;
	}

	.frames-page .frames-hero__content,
	.frames-page .frames-hero h1,
	.frames-page .frames-hero__text,
	.frames-page .frames-material .frames-panel,
	.frames-page .frames-process h2 {
		max-width: none !important;
	}

	.frames-video-showcase__media {
		width: 100%;
	}

	.frames-video-showcase__heading {
		width: 100%;
	}

	.frames-video-showcase__note {
		position: relative;
		left: auto;
		bottom: auto;
		width: 100%;
		min-height: 0;
		margin: -18px 0 0;
		padding: 24px 22px;
	}
}

/* Tende da sole: tighten proportions to the online reference. Header and footer are untouched. */
.awnings-page .awnings-hero {
	min-height: min(86vh, 930px) !important;
	padding-top: clamp(138px, 11vw, 172px) !important;
	padding-bottom: clamp(96px, 8.5vw, 138px) !important;
}

.awnings-page .awnings-hero__bg {
	background-position: center 42% !important;
}

.awnings-page .awnings-hero__content {
	max-width: 700px !important;
	padding: clamp(34px, 4vw, 56px) clamp(30px, 4.4vw, 62px) !important;
}

.awnings-page .awnings-hero h1 {
	max-width: 650px !important;
	font-size: clamp(46px, 5.25vw, 78px) !important;
	font-weight: 850 !important;
	line-height: .98 !important;
}

.awnings-page .awnings-hero__text {
	max-width: 660px !important;
	font-size: clamp(17px, 1.42vw, 22px) !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
}

.awnings-page .awnings-actions {
	margin-top: 28px !important;
}

.awnings-page .awnings-marquee {
	min-height: clamp(235px, 21vw, 330px) !important;
}

.awnings-page .awnings-marquee__caption {
	top: clamp(58px, 8.8vw, 112px) !important;
}

.awnings-page .awnings-marquee__caption strong {
	font-size: clamp(34px, 4.2vw, 66px) !important;
	font-weight: 850 !important;
}

.awnings-page .awnings-marquee__caption p {
	max-width: 760px !important;
	font-size: clamp(14px, 1vw, 17px) !important;
	font-weight: 700 !important;
}

.awnings-page .awnings-section {
	padding-top: clamp(74px, 6.6vw, 104px) !important;
	padding-bottom: clamp(74px, 6.6vw, 104px) !important;
}

.awnings-page .awnings-intro {
	grid-template-columns: minmax(0, .92fr) minmax(420px, .82fr) !important;
	gap: clamp(54px, 7vw, 118px) !important;
	align-items: center !important;
}

.awnings-page .awnings-heading h2,
.awnings-page .awnings-process h2,
.awnings-page .awnings-cta h2 {
	font-size: clamp(38px, 3.8vw, 58px) !important;
	font-weight: 850 !important;
	line-height: 1.02 !important;
}

.awnings-page .awnings-intro .awnings-heading h2 {
	max-width: 680px !important;
}

.awnings-page .awnings-heading p,
.awnings-page .awnings-panel p,
.awnings-page .awnings-feature-grid p,
.awnings-page .awnings-process p,
.awnings-page .awnings-cta p {
	font-size: clamp(14px, 1.02vw, 17px) !important;
	line-height: 1.6 !important;
}

.awnings-page .awnings-points {
	max-width: 620px !important;
	margin-top: 30px !important;
}

.awnings-page .awnings-points span {
	min-height: 76px !important;
	padding: 15px 16px !important;
	font-size: 12px !important;
}

.awnings-page .awnings-panel {
	padding: clamp(28px, 3vw, 42px) !important;
	border-left: 5px solid var(--awnings-red) !important;
	border-radius: 3px !important;
	box-shadow: 0 24px 68px rgba(0,0,0,.10) !important;
}

.awnings-page .awnings-panel li {
	padding: 14px 16px 14px 42px !important;
	background: #f6f6f6 !important;
	font-size: 13px !important;
	line-height: 1.35 !important;
}

.awnings-page .awnings-panel li:before {
	top: 19px !important;
	left: 16px !important;
	width: 7px !important;
	height: 7px !important;
}

.awnings-page .awnings-photo-strip {
	padding-top: clamp(18px, 2.4vw, 32px) !important;
	padding-bottom: clamp(54px, 5.4vw, 82px) !important;
}

.awnings-page .awnings-photo-strip figure {
	width: clamp(350px, 31.8vw, 590px) !important;
	border-radius: 6px !important;
	box-shadow: none !important;
}

.awnings-page .awnings-photo-strip img {
	height: clamp(230px, 21vw, 330px) !important;
}

.awnings-page .awnings-benefits {
	padding-top: clamp(74px, 6.4vw, 96px) !important;
	padding-bottom: clamp(78px, 6.8vw, 104px) !important;
}

.awnings-page .awnings-benefits .awnings-heading h2 {
	max-width: 1180px !important;
	font-size: clamp(38px, 4.05vw, 62px) !important;
}

.awnings-page .awnings-feature-grid {
	margin-top: 44px !important;
	gap: 24px !important;
}

.awnings-page .awnings-feature-grid article {
	min-height: clamp(250px, 19vw, 305px) !important;
	padding: clamp(32px, 3vw, 46px) !important;
	border-radius: 4px !important;
	box-shadow: none !important;
}

.awnings-page .awnings-feature-grid h3 {
	margin: 46px 0 16px !important;
	font-size: clamp(24px, 2vw, 31px) !important;
}

.awnings-page .awnings-process {
	padding-top: clamp(86px, 7vw, 116px) !important;
	padding-bottom: clamp(82px, 6.8vw, 112px) !important;
}

.awnings-page .awnings-process__grid {
	grid-template-columns: minmax(330px, .72fr) minmax(0, 1.28fr) !important;
	gap: clamp(64px, 8vw, 132px) !important;
}

.awnings-page .awnings-process h2 {
	max-width: 540px !important;
}

.awnings-page .awnings-process__steps > div {
	display: grid !important;
	grid-template-columns: 160px minmax(0, 1fr) !important;
	gap: 28px !important;
	align-items: start !important;
	padding: 27px 0 !important;
}

.awnings-page .awnings-process__steps strong {
	margin-bottom: 0 !important;
	font-size: 13px !important;
}

.awnings-page .awnings-process__steps p {
	font-size: clamp(13px, .95vw, 15px) !important;
	line-height: 1.55 !important;
}

.awnings-page .awnings-cta {
	max-width: min(1440px, calc(100% - 120px)) !important;
	min-height: clamp(300px, 25vw, 370px) !important;
	margin: clamp(84px, 7.4vw, 118px) auto clamp(88px, 7.6vw, 126px) !important;
	padding: clamp(50px, 4.7vw, 72px) clamp(50px, 5vw, 80px) !important;
	border-radius: 7px !important;
	box-shadow: 0 26px 70px rgba(0,0,0,.18) !important;
}

.awnings-page .awnings-cta h2 {
	max-width: 720px !important;
	font-size: clamp(36px, 3.6vw, 56px) !important;
}

.awnings-page .awnings-cta p:not(.eyebrow) {
	max-width: 850px !important;
	margin-top: 22px !important;
}

@media (max-width: 900px) {
	.awnings-page .awnings-intro,
	.awnings-page .awnings-process__grid,
	.awnings-page .awnings-process__steps > div,
	.awnings-page .awnings-feature-grid {
		grid-template-columns: 1fr !important;
	}

	.awnings-page .awnings-hero__content,
	.awnings-page .awnings-hero h1,
	.awnings-page .awnings-hero__text,
	.awnings-page .awnings-process h2 {
		max-width: none !important;
	}

	.awnings-page .awnings-cta {
		max-width: calc(100% - 40px) !important;
	}
}

/* Portoni sezionali: proportions aligned to the supplied online reference. Header and footer are untouched. */
.doors-page .doors-hero {
	min-height: min(86vh, 930px) !important;
	padding-top: clamp(138px, 10.8vw, 172px) !important;
	padding-bottom: clamp(94px, 8.4vw, 136px) !important;
}

.doors-page .doors-hero__bg {
	background-position: center 46% !important;
	transform: scale(1.055) !important;
}

.doors-page .doors-hero__content {
	max-width: 710px !important;
	padding: clamp(34px, 4vw, 56px) clamp(30px, 4.4vw, 62px) !important;
}

.doors-page .doors-hero h1 {
	max-width: 640px !important;
	font-size: clamp(46px, 5.25vw, 78px) !important;
	font-weight: 850 !important;
	line-height: .98 !important;
}

.doors-page .doors-hero__text {
	max-width: 650px !important;
	font-size: clamp(17px, 1.42vw, 22px) !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
}

.doors-page .doors-actions {
	margin-top: 28px !important;
}

.doors-page .doors-marquee {
	min-height: clamp(235px, 21vw, 330px) !important;
}

.doors-page .doors-marquee__caption {
	top: clamp(58px, 8.8vw, 112px) !important;
}

.doors-page .doors-marquee__caption strong {
	max-width: 820px !important;
	font-size: clamp(34px, 4.2vw, 66px) !important;
	font-weight: 850 !important;
	line-height: 1 !important;
}

.doors-page .doors-marquee__caption p {
	max-width: 760px !important;
	font-size: clamp(14px, 1vw, 17px) !important;
	font-weight: 700 !important;
}

.doors-page .doors-section {
	padding-top: clamp(74px, 6.6vw, 104px) !important;
	padding-bottom: clamp(74px, 6.6vw, 104px) !important;
}

.doors-page .doors-intro,
.doors-page .doors-comfort__grid {
	grid-template-columns: minmax(0, .92fr) minmax(420px, .82fr) !important;
	gap: clamp(54px, 7vw, 118px) !important;
	align-items: center !important;
}

.doors-page .doors-heading h2,
.doors-page .doors-comfort h2,
.doors-page .doors-process h2,
.doors-page .doors-cta h2 {
	font-size: clamp(38px, 3.8vw, 58px) !important;
	font-weight: 850 !important;
	line-height: 1.02 !important;
}

.doors-page .doors-intro .doors-heading h2,
.doors-page .doors-comfort h2 {
	max-width: 690px !important;
}

.doors-page .doors-heading p,
.doors-page .doors-panel p,
.doors-page .doors-comfort p,
.doors-page .doors-comfort__list span,
.doors-page .doors-feature-grid p,
.doors-page .doors-process p,
.doors-page .doors-cta p {
	font-size: clamp(14px, 1.02vw, 17px) !important;
	line-height: 1.6 !important;
}

.doors-page .doors-points {
	max-width: 620px !important;
	margin-top: 30px !important;
}

.doors-page .doors-points span {
	min-height: 76px !important;
	padding: 15px 16px !important;
	font-size: 12px !important;
}

.doors-page .doors-panel {
	padding: clamp(28px, 3vw, 42px) !important;
	border-left: 5px solid var(--doors-red) !important;
	border-radius: 3px !important;
	box-shadow: 0 24px 68px rgba(0,0,0,.10) !important;
}

.doors-page .doors-panel li {
	padding: 14px 16px 14px 42px !important;
	background: #f6f6f6 !important;
	font-size: 13px !important;
	line-height: 1.35 !important;
}

.doors-page .doors-panel li:before {
	top: 19px !important;
	left: 16px !important;
	width: 7px !important;
	height: 7px !important;
}

.doors-page .doors-photo-strip {
	padding-top: clamp(18px, 2.4vw, 32px) !important;
	padding-bottom: clamp(54px, 5.4vw, 82px) !important;
}

.doors-page .doors-photo-strip figure {
	width: clamp(350px, 31.8vw, 590px) !important;
	border-radius: 6px !important;
	box-shadow: none !important;
}

.doors-page .doors-photo-strip img {
	height: clamp(230px, 21vw, 330px) !important;
}

.doors-page .doors-comfort {
	background: linear-gradient(180deg, #f7f7f7 0%, #fff 100%) !important;
}

.doors-page .doors-comfort__list {
	display: grid !important;
	gap: 12px !important;
	padding: clamp(28px, 3vw, 42px) !important;
	background: #fff !important;
	border: 1px solid var(--doors-line) !important;
	border-left: 5px solid var(--doors-red) !important;
	border-radius: 3px !important;
	box-shadow: 0 24px 68px rgba(0,0,0,.10) !important;
}

.doors-page .doors-comfort__list span {
	padding: 14px 18px !important;
	color: #222 !important;
	background: #f6f6f6 !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	line-height: 1.35 !important;
}

.doors-page .doors-comfort__list span:before {
	display: inline-block !important;
	width: 7px !important;
	height: 7px !important;
	margin-right: 16px !important;
	background: var(--doors-red) !important;
	border-radius: 999px !important;
	content: "" !important;
	vertical-align: .08em !important;
}

.doors-page .doors-benefits {
	padding-top: clamp(74px, 6.4vw, 96px) !important;
	padding-bottom: clamp(78px, 6.8vw, 104px) !important;
}

.doors-page .doors-benefits .doors-heading h2 {
	max-width: 1180px !important;
	font-size: clamp(38px, 4.05vw, 62px) !important;
}

.doors-page .doors-feature-grid {
	margin-top: 44px !important;
	gap: 24px !important;
}

.doors-page .doors-feature-grid article {
	min-height: clamp(250px, 19vw, 305px) !important;
	padding: clamp(32px, 3vw, 46px) !important;
	border-radius: 4px !important;
	box-shadow: none !important;
}

.doors-page .doors-feature-grid span {
	position: relative !important;
	display: inline-grid !important;
	width: 44px !important;
	height: 44px !important;
	place-items: center !important;
	overflow: hidden !important;
	isolation: isolate !important;
	color: #fff !important;
	background: #050505 !important;
	border-radius: 4px !important;
	font-size: 12px !important;
	font-weight: 950 !important;
	letter-spacing: 0 !important;
	line-height: 1 !important;
	text-transform: none !important;
}

.doors-page .doors-feature-grid span:before {
	position: absolute !important;
	inset: 0 auto auto 0 !important;
	z-index: -1 !important;
	width: 100% !important;
	height: 100% !important;
	background: linear-gradient(135deg, #e31b25 0 50%, transparent 51%) !important;
	content: "" !important;
}

.doors-page .doors-feature-grid h3 {
	margin: 46px 0 16px !important;
	font-size: clamp(24px, 2vw, 31px) !important;
	font-weight: 850 !important;
	line-height: 1.08 !important;
}

.doors-page .doors-process {
	padding-top: clamp(86px, 7vw, 116px) !important;
	padding-bottom: clamp(82px, 6.8vw, 112px) !important;
}

.doors-page .doors-process__grid {
	grid-template-columns: minmax(330px, .72fr) minmax(0, 1.28fr) !important;
	gap: clamp(64px, 8vw, 132px) !important;
}

.doors-page .doors-process h2 {
	max-width: 540px !important;
}

.doors-page .doors-process__steps > div {
	display: grid !important;
	grid-template-columns: 160px minmax(0, 1fr) !important;
	gap: 28px !important;
	align-items: start !important;
	padding: 27px 0 !important;
}

.doors-page .doors-process__steps strong {
	margin-bottom: 0 !important;
	font-size: 13px !important;
}

.doors-page .doors-process__steps p {
	font-size: clamp(13px, .95vw, 15px) !important;
	line-height: 1.55 !important;
}

.doors-page .doors-cta {
	max-width: min(1440px, calc(100% - 120px)) !important;
	min-height: clamp(300px, 25vw, 370px) !important;
	margin: clamp(84px, 7.4vw, 118px) auto clamp(88px, 7.6vw, 126px) !important;
	padding: clamp(50px, 4.7vw, 72px) clamp(50px, 5vw, 80px) !important;
	border-radius: 7px !important;
	box-shadow: 0 26px 70px rgba(0,0,0,.18) !important;
}

.doors-page .doors-cta h2 {
	max-width: 720px !important;
	font-size: clamp(36px, 3.6vw, 56px) !important;
}

.doors-page .doors-cta p:not(.eyebrow) {
	max-width: 850px !important;
	margin-top: 22px !important;
}

@media (max-width: 900px) {
	.doors-page .doors-intro,
	.doors-page .doors-comfort__grid,
	.doors-page .doors-process__grid,
	.doors-page .doors-process__steps > div,
	.doors-page .doors-feature-grid {
		grid-template-columns: 1fr !important;
	}

	.doors-page .doors-hero__content,
	.doors-page .doors-hero h1,
	.doors-page .doors-hero__text,
	.doors-page .doors-process h2 {
		max-width: none !important;
	}

	.doors-page .doors-cta {
		max-width: calc(100% - 40px) !important;
	}
}

/* Porte interne e portoncini: proportions aligned to the supplied online reference. Header and footer are untouched. */
.interior-doors-page .interior-doors-hero {
	min-height: min(86vh, 930px) !important;
	padding-top: clamp(138px, 10.8vw, 172px) !important;
	padding-bottom: clamp(94px, 8.4vw, 136px) !important;
}

.interior-doors-page .interior-doors-hero__bg {
	background-position: center 48% !important;
	transform: scale(1.055) !important;
}

.interior-doors-page .interior-doors-hero__content {
	max-width: 700px !important;
	padding: clamp(34px, 4vw, 56px) clamp(30px, 4.4vw, 62px) !important;
}

.interior-doors-page .interior-doors-hero h1 {
	max-width: 620px !important;
	font-size: clamp(46px, 5.25vw, 78px) !important;
	font-weight: 850 !important;
	line-height: .98 !important;
}

.interior-doors-page .interior-doors-hero__text {
	max-width: 650px !important;
	font-size: clamp(17px, 1.42vw, 22px) !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
}

.interior-doors-page .interior-doors-actions {
	margin-top: 28px !important;
}

.interior-doors-page .interior-doors-marquee {
	min-height: clamp(235px, 21vw, 330px) !important;
}

.interior-doors-page .interior-doors-marquee__caption {
	top: clamp(58px, 8.8vw, 112px) !important;
}

.interior-doors-page .interior-doors-marquee__caption strong {
	max-width: 900px !important;
	font-size: clamp(34px, 4.2vw, 66px) !important;
	font-weight: 850 !important;
	line-height: 1 !important;
}

.interior-doors-page .interior-doors-marquee__caption p {
	max-width: 760px !important;
	font-size: clamp(14px, 1vw, 17px) !important;
	font-weight: 700 !important;
}

.interior-doors-page .interior-doors-section {
	padding-top: clamp(74px, 6.6vw, 104px) !important;
	padding-bottom: clamp(74px, 6.6vw, 104px) !important;
}

.interior-doors-page .interior-doors-intro,
.interior-doors-page .interior-doors-entry__grid {
	grid-template-columns: minmax(0, .92fr) minmax(420px, .82fr) !important;
	gap: clamp(54px, 7vw, 118px) !important;
	align-items: center !important;
}

.interior-doors-page .interior-doors-heading h2,
.interior-doors-page .interior-doors-entry h2,
.interior-doors-page .interior-doors-process h2,
.interior-doors-page .interior-doors-cta h2 {
	font-size: clamp(38px, 3.8vw, 58px) !important;
	font-weight: 850 !important;
	line-height: 1.02 !important;
}

.interior-doors-page .interior-doors-intro .interior-doors-heading h2,
.interior-doors-page .interior-doors-entry .interior-doors-heading h2 {
	max-width: 700px !important;
}

.interior-doors-page .interior-doors-heading p,
.interior-doors-page .interior-doors-panel p,
.interior-doors-page .interior-doors-entry p,
.interior-doors-page .interior-doors-entry li,
.interior-doors-page .interior-doors-feature-grid p,
.interior-doors-page .interior-doors-process p,
.interior-doors-page .interior-doors-cta p {
	font-size: clamp(14px, 1.02vw, 17px) !important;
	line-height: 1.6 !important;
}

.interior-doors-page .interior-doors-points {
	max-width: 620px !important;
	margin-top: 30px !important;
}

.interior-doors-page .interior-doors-points span {
	min-height: 76px !important;
	padding: 15px 16px !important;
	font-size: 12px !important;
}

.interior-doors-page .interior-doors-panel,
.interior-doors-page .interior-doors-entry__panel {
	padding: clamp(28px, 3vw, 42px) !important;
	border-left: 5px solid var(--interior-doors-red) !important;
	border-radius: 3px !important;
	box-shadow: 0 24px 68px rgba(0,0,0,.10) !important;
}

.interior-doors-page .interior-doors-panel li,
.interior-doors-page .interior-doors-entry__panel li {
	padding: 14px 16px 14px 42px !important;
	background: #f6f6f6 !important;
	font-size: 13px !important;
	line-height: 1.35 !important;
}

.interior-doors-page .interior-doors-panel li:before,
.interior-doors-page .interior-doors-entry__panel li:before {
	top: 19px !important;
	left: 16px !important;
	width: 7px !important;
	height: 7px !important;
}

.interior-doors-page .interior-doors-photo-strip {
	padding-top: clamp(18px, 2.4vw, 32px) !important;
	padding-bottom: clamp(54px, 5.4vw, 82px) !important;
}

.interior-doors-page .interior-doors-photo-strip figure {
	width: clamp(350px, 31.8vw, 590px) !important;
	border-radius: 6px !important;
	box-shadow: none !important;
}

.interior-doors-page .interior-doors-photo-strip img {
	height: clamp(230px, 21vw, 330px) !important;
}

.interior-doors-page .interior-doors-entry {
	background: linear-gradient(180deg, #f7f7f7 0%, #fff 100%) !important;
}

.interior-doors-page .interior-doors-benefits {
	padding-top: clamp(74px, 6.4vw, 96px) !important;
	padding-bottom: clamp(78px, 6.8vw, 104px) !important;
}

.interior-doors-page .interior-doors-benefits .interior-doors-heading h2 {
	max-width: 1180px !important;
	font-size: clamp(38px, 4.05vw, 62px) !important;
}

.interior-doors-page .interior-doors-feature-grid {
	margin-top: 44px !important;
	gap: 24px !important;
}

.interior-doors-page .interior-doors-feature-grid article {
	min-height: clamp(250px, 19vw, 305px) !important;
	padding: clamp(32px, 3vw, 46px) !important;
	border-radius: 4px !important;
	box-shadow: none !important;
}

.interior-doors-page .interior-doors-feature-grid span {
	position: relative !important;
	display: inline-grid !important;
	width: 44px !important;
	height: 44px !important;
	place-items: center !important;
	overflow: hidden !important;
	isolation: isolate !important;
	color: #fff !important;
	background: #050505 !important;
	border-radius: 4px !important;
	font-size: 12px !important;
	font-weight: 950 !important;
	letter-spacing: 0 !important;
	line-height: 1 !important;
	text-transform: none !important;
}

.interior-doors-page .interior-doors-feature-grid span:before {
	position: absolute !important;
	inset: 0 auto auto 0 !important;
	z-index: -1 !important;
	width: 100% !important;
	height: 100% !important;
	background: linear-gradient(135deg, #e31b25 0 50%, transparent 51%) !important;
	content: "" !important;
}

.interior-doors-page .interior-doors-feature-grid h3 {
	margin: 46px 0 16px !important;
	font-size: clamp(24px, 2vw, 31px) !important;
	font-weight: 850 !important;
	line-height: 1.08 !important;
}

.interior-doors-page .interior-doors-process {
	padding-top: clamp(86px, 7vw, 116px) !important;
	padding-bottom: clamp(82px, 6.8vw, 112px) !important;
}

.interior-doors-page .interior-doors-process__grid {
	grid-template-columns: minmax(330px, .72fr) minmax(0, 1.28fr) !important;
	gap: clamp(64px, 8vw, 132px) !important;
}

.interior-doors-page .interior-doors-process h2 {
	max-width: 540px !important;
}

.interior-doors-page .interior-doors-process__steps > div {
	display: grid !important;
	grid-template-columns: 160px minmax(0, 1fr) !important;
	gap: 28px !important;
	align-items: start !important;
	padding: 27px 0 !important;
}

.interior-doors-page .interior-doors-process__steps strong {
	margin-bottom: 0 !important;
	font-size: 13px !important;
}

.interior-doors-page .interior-doors-process__steps p {
	font-size: clamp(13px, .95vw, 15px) !important;
	line-height: 1.55 !important;
}

.interior-doors-page .interior-doors-cta {
	max-width: min(1440px, calc(100% - 120px)) !important;
	min-height: clamp(300px, 25vw, 370px) !important;
	margin: clamp(84px, 7.4vw, 118px) auto clamp(88px, 7.6vw, 126px) !important;
	padding: clamp(50px, 4.7vw, 72px) clamp(50px, 5vw, 80px) !important;
	border-radius: 7px !important;
	box-shadow: 0 26px 70px rgba(0,0,0,.18) !important;
}

.interior-doors-page .interior-doors-cta h2 {
	max-width: 720px !important;
	font-size: clamp(36px, 3.6vw, 56px) !important;
}

.interior-doors-page .interior-doors-cta p:not(.eyebrow) {
	max-width: 850px !important;
	margin-top: 22px !important;
}

@media (max-width: 900px) {
	.interior-doors-page .interior-doors-intro,
	.interior-doors-page .interior-doors-entry__grid,
	.interior-doors-page .interior-doors-process__grid,
	.interior-doors-page .interior-doors-process__steps > div,
	.interior-doors-page .interior-doors-feature-grid {
		grid-template-columns: 1fr !important;
	}

	.interior-doors-page .interior-doors-hero__content,
	.interior-doors-page .interior-doors-hero h1,
	.interior-doors-page .interior-doors-hero__text,
	.interior-doors-page .interior-doors-process h2 {
		max-width: none !important;
	}

	.interior-doors-page .interior-doors-cta {
		max-width: calc(100% - 40px) !important;
	}
}

/* Fabrizio legacy page: proportions aligned to the supplied online reference. Header and footer are untouched. */
.fabrizio-page .fabrizio-hero {
	min-height: min(82vh, 900px) !important;
	padding-top: clamp(132px, 10.4vw, 162px) !important;
	padding-bottom: clamp(84px, 8vw, 122px) !important;
}

.fabrizio-page .fabrizio-hero__bg {
	background-position: center 48% !important;
	transform: scale(1.055) !important;
}

.fabrizio-page .fabrizio-hero__inner {
	width: min(1340px, 100%) !important;
	grid-template-columns: minmax(0, .98fr) minmax(360px, 450px) !important;
	gap: clamp(76px, 8vw, 132px) !important;
}

.fabrizio-page .fabrizio-hero__copy {
	max-width: 730px !important;
	padding-left: clamp(24px, 3vw, 42px) !important;
}

.fabrizio-page .fabrizio-hero h1 {
	max-width: 690px !important;
	margin-bottom: 24px !important;
	font-size: clamp(50px, 5.2vw, 82px) !important;
	font-weight: 850 !important;
	line-height: .98 !important;
}

.fabrizio-page .fabrizio-hero__text {
	max-width: 680px !important;
	font-size: clamp(17px, 1.34vw, 21px) !important;
	font-weight: 800 !important;
	line-height: 1.55 !important;
}

.fabrizio-page .fabrizio-welcome {
	align-self: center !important;
	max-width: 440px !important;
	padding: clamp(26px, 2.7vw, 36px) !important;
	border-radius: 4px !important;
	box-shadow: 0 30px 82px rgba(0,0,0,.28) !important;
}

.fabrizio-page .fabrizio-welcome h2 {
	max-width: 360px !important;
	font-size: clamp(30px, 2.9vw, 42px) !important;
	font-weight: 850 !important;
	line-height: 1.02 !important;
}

.fabrizio-page .fabrizio-welcome p {
	margin-bottom: 16px !important;
	font-size: clamp(13px, 1vw, 15px) !important;
	font-weight: 700 !important;
	line-height: 1.58 !important;
}

.fabrizio-page .fabrizio-keywords span {
	min-height: 30px !important;
	border-radius: 0 !important;
	font-size: 10px !important;
}

.fabrizio-page .fabrizio-seo-band {
	min-height: clamp(190px, 17vw, 280px) !important;
	display: grid !important;
	align-items: center !important;
}

.fabrizio-page .fabrizio-marquee {
	font-size: clamp(92px, 13.6vw, 220px) !important;
	transform: translateY(-8px);
}

.fabrizio-page .fabrizio-section {
	padding-top: clamp(78px, 7vw, 110px) !important;
	padding-bottom: clamp(78px, 7vw, 110px) !important;
}

.fabrizio-page .fabrizio-story,
.fabrizio-page .fabrizio-heading,
.fabrizio-page .fabrizio-service-grid {
	max-width: 1320px !important;
}

.fabrizio-page .fabrizio-story {
	grid-template-columns: minmax(0, .9fr) minmax(500px, 1.1fr) !important;
	gap: clamp(64px, 7vw, 116px) !important;
	align-items: start !important;
}

.fabrizio-page .fabrizio-left {
	top: 120px !important;
}

.fabrizio-page .fabrizio-heading h2,
.fabrizio-page .fabrizio-left h2,
.fabrizio-page .fabrizio-cta h2 {
	font-size: clamp(38px, 3.8vw, 58px) !important;
	font-weight: 850 !important;
	line-height: 1.02 !important;
}

.fabrizio-page .fabrizio-left h2 {
	max-width: 610px !important;
}

.fabrizio-page .fabrizio-heading p,
.fabrizio-page .fabrizio-lead,
.fabrizio-page .fabrizio-service-card p,
.fabrizio-page .fabrizio-cta p {
	font-size: clamp(14px, 1.02vw, 17px) !important;
	line-height: 1.62 !important;
}

.fabrizio-page .fabrizio-note {
	max-width: 560px !important;
	margin-top: 28px !important;
	padding: 24px 28px !important;
	border-radius: 4px !important;
}

.fabrizio-page .fabrizio-note h3 {
	font-size: clamp(18px, 1.45vw, 22px) !important;
}

.fabrizio-page .fabrizio-note p {
	font-size: 13px !important;
	line-height: 1.5 !important;
}

.fabrizio-page .fabrizio-logos {
	max-width: 560px !important;
	gap: 16px !important;
	margin-top: 24px !important;
}

.fabrizio-page .fabrizio-logo-card {
	min-height: 170px !important;
	padding: 18px !important;
	border-radius: 3px !important;
	box-shadow: 0 16px 44px rgba(0,0,0,.045) !important;
}

.fabrizio-page .fabrizio-logo-card img {
	width: 170px !important;
	height: 104px !important;
	object-fit: contain !important;
}

.fabrizio-page .fabrizio-logo-card strong {
	display: none !important;
}

.fabrizio-page .fabrizio-logo-card span {
	margin-top: 12px !important;
	font-size: 11px !important;
	letter-spacing: .14em !important;
}

.fabrizio-page .fabrizio-story-panel {
	padding: clamp(38px, 4vw, 58px) !important;
	border-left-width: 5px !important;
	border-radius: 3px !important;
	box-shadow: 0 26px 78px rgba(0,0,0,.08) !important;
}

.fabrizio-page .fabrizio-story-panel p {
	margin-bottom: 28px !important;
	font-size: clamp(15px, 1.15vw, 18px) !important;
	line-height: 1.78 !important;
}

.fabrizio-page .fabrizio-heading {
	margin-bottom: clamp(34px, 4vw, 52px) !important;
}

.fabrizio-page .fabrizio-heading h2 {
	max-width: 1120px !important;
}

.fabrizio-page .fabrizio-service-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 22px !important;
	margin-top: 0 !important;
}

.fabrizio-page .fabrizio-service-grid .fabrizio-service-card:last-child:nth-child(3n + 1) {
	grid-column: 2 !important;
}

.fabrizio-page .fabrizio-service-card {
	min-height: clamp(250px, 19vw, 300px) !important;
	padding: clamp(32px, 3vw, 44px) !important;
	border-radius: 4px !important;
	box-shadow: 0 18px 50px rgba(0,0,0,.06) !important;
}

.fabrizio-page .fabrizio-service-card span {
	position: relative !important;
	display: inline-grid !important;
	width: 44px !important;
	height: 44px !important;
	place-items: center !important;
	overflow: hidden !important;
	isolation: isolate !important;
	color: #fff !important;
	background: #050505 !important;
	border-radius: 4px !important;
	font-size: 12px !important;
	font-weight: 950 !important;
	letter-spacing: 0 !important;
}

.fabrizio-page .fabrizio-service-card span:before {
	position: absolute !important;
	inset: 0 auto auto 0 !important;
	z-index: -1 !important;
	width: 100% !important;
	height: 100% !important;
	background: linear-gradient(135deg, #e31b25 0 50%, transparent 51%) !important;
	content: "" !important;
}

.fabrizio-page .fabrizio-service-card h3 {
	font-size: clamp(21px, 1.65vw, 27px) !important;
	font-weight: 850 !important;
	line-height: 1.08 !important;
}

.fabrizio-page .fabrizio-service-card p {
	font-size: clamp(13px, .95vw, 15px) !important;
	line-height: 1.58 !important;
}

.fabrizio-page .fabrizio-cta {
	max-width: min(1440px, calc(100% - 60px)) !important;
	min-height: clamp(360px, 30vw, 480px) !important;
	margin: clamp(80px, 7vw, 112px) auto clamp(84px, 7.4vw, 118px) !important;
	padding: clamp(58px, 5.4vw, 86px) clamp(58px, 6vw, 96px) !important;
	border-radius: 4px !important;
}

.fabrizio-page .fabrizio-cta h2 {
	max-width: 800px !important;
	color: #fff !important;
	font-size: clamp(38px, 3.8vw, 58px) !important;
}

.fabrizio-page .fabrizio-cta p {
	max-width: 820px !important;
	color: rgba(255,255,255,.82) !important;
}

@media (max-width: 900px) {
	.fabrizio-page .fabrizio-hero__inner,
	.fabrizio-page .fabrizio-story,
	.fabrizio-page .fabrizio-service-grid {
		grid-template-columns: 1fr !important;
	}

	.fabrizio-page .fabrizio-service-grid .fabrizio-service-card:last-child:nth-child(3n + 1) {
		grid-column: auto !important;
	}

	.fabrizio-page .fabrizio-left {
		position: static !important;
	}
}

/* Pergole: final visual sync with the online reference. Header and footer untouched. */
.pergolas-page .pergolas-hero {
	min-height: clamp(650px, 56vw, 840px) !important;
	padding-top: clamp(150px, 12vw, 190px) !important;
	padding-bottom: clamp(82px, 7vw, 118px) !important;
}

.pergolas-page .pergolas-hero__bg {
	background-position: center 46% !important;
	transform: scale(1.02) !important;
}

.pergolas-page .pergolas-hero:before {
	background:
		linear-gradient(90deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.36) 42%, rgba(0,0,0,.18) 74%, rgba(0,0,0,.44) 100%),
		radial-gradient(circle at 18% 46%, rgba(211,24,34,.32), transparent 34%) !important;
}

.pergolas-page .pergolas-hero__content {
	max-width: 690px !important;
	margin-left: clamp(14px, 2.4vw, 42px) !important;
	padding-left: clamp(24px, 2.6vw, 38px) !important;
}

.pergolas-page .pergolas-hero h1 {
	max-width: 650px !important;
	font-size: clamp(48px, 5vw, 78px) !important;
	font-weight: 900 !important;
	line-height: .96 !important;
}

.pergolas-page .pergolas-hero__text {
	max-width: 650px !important;
	font-size: clamp(15px, 1.05vw, 18px) !important;
	font-weight: 850 !important;
	line-height: 1.48 !important;
}

.pergolas-page .pergolas-marquee {
	min-height: clamp(260px, 23vw, 340px) !important;
	padding: clamp(58px, 5.8vw, 88px) 30px clamp(48px, 5vw, 74px) !important;
}

.pergolas-page .pergolas-marquee__caption {
	max-width: min(1320px, 100%) !important;
	margin-right: auto !important;
	margin-left: auto !important;
}

.pergolas-page .pergolas-marquee__caption strong {
	font-size: clamp(42px, 4.1vw, 62px) !important;
	font-weight: 900 !important;
	line-height: 1.02 !important;
}

.pergolas-page .pergolas-marquee__caption p {
	max-width: 660px !important;
	font-size: clamp(13px, .95vw, 15px) !important;
	font-weight: 700 !important;
	line-height: 1.5 !important;
}

.pergolas-page .pergolas-marquee__track {
	top: 46% !important;
	color: rgba(0,0,0,.045) !important;
	font-size: clamp(96px, 15vw, 230px) !important;
}

.pergolas-page .pergolas-tags {
	margin-top: 22px !important;
	gap: 24px !important;
}

.pergolas-page .pergolas-tags span {
	font-size: 11px !important;
	font-weight: 950 !important;
	letter-spacing: .08em !important;
}

.pergolas-page .pergolas-section {
	padding-right: 30px !important;
	padding-left: 30px !important;
}

.pergolas-page .pergolas-intro {
	grid-template-columns: minmax(360px, .82fr) minmax(460px, .78fr) !important;
	gap: clamp(70px, 9vw, 150px) !important;
	align-items: center !important;
	max-width: min(1320px, 100%) !important;
	margin-right: auto !important;
	margin-left: auto !important;
	padding-top: clamp(90px, 8vw, 130px) !important;
	padding-bottom: clamp(82px, 7vw, 112px) !important;
}

.pergolas-page .pergolas-heading h2 {
	max-width: 560px !important;
	font-size: clamp(38px, 3.8vw, 58px) !important;
	font-weight: 900 !important;
	line-height: 1.02 !important;
}

.pergolas-page .pergolas-intro-copy,
.pergolas-page .pergolas-panel p {
	max-width: 660px !important;
	font-size: clamp(13px, .98vw, 16px) !important;
	font-weight: 650 !important;
	line-height: 1.64 !important;
}

.pergolas-page .pergolas-points {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 14px !important;
	margin-top: 34px !important;
}

.pergolas-page .pergolas-points span {
	min-height: 64px !important;
	padding: 16px 18px !important;
	font-size: 12px !important;
	font-weight: 850 !important;
}

.pergolas-page .pergolas-panel {
	max-width: 610px !important;
	justify-self: end !important;
	padding: clamp(32px, 3.2vw, 44px) !important;
	border-left: 5px solid #d31822 !important;
	border-radius: 3px !important;
	box-shadow: 0 28px 78px rgba(0,0,0,.08) !important;
}

.pergolas-page .pergolas-panel ul {
	gap: 10px !important;
	margin-top: 22px !important;
}

.pergolas-page .pergolas-panel li {
	display: flex !important;
	min-height: 44px !important;
	align-items: center !important;
	padding: 11px 18px 11px 42px !important;
	background: #f5f5f5 !important;
	font-size: 13px !important;
	font-weight: 850 !important;
	line-height: 1.32 !important;
}

.pergolas-page .pergolas-panel li:before {
	top: 50% !important;
	left: 18px !important;
	width: 8px !important;
	height: 8px !important;
	transform: translateY(-50%) !important;
}

.pergolas-page .pergolas-photo-strip {
	padding-top: clamp(18px, 2vw, 28px) !important;
	padding-bottom: clamp(74px, 7vw, 112px) !important;
}

.pergolas-page .pergolas-photo-strip__track {
	gap: 20px !important;
	padding-right: 18px !important;
	padding-left: 18px !important;
}

.pergolas-page .pergolas-photo-strip figure {
	width: clamp(390px, 31vw, 610px) !important;
	border-radius: 5px !important;
	box-shadow: 0 16px 44px rgba(0,0,0,.09) !important;
}

.pergolas-page .pergolas-photo-strip img {
	height: clamp(230px, 20vw, 330px) !important;
}

.pergolas-page .pergolas-benefits {
	max-width: min(1320px, 100%) !important;
	margin-right: auto !important;
	margin-left: auto !important;
	padding-top: clamp(70px, 6.4vw, 104px) !important;
	padding-bottom: clamp(86px, 7.4vw, 118px) !important;
}

.pergolas-page .pergolas-benefits .pergolas-heading h2 {
	max-width: 1120px !important;
	font-size: clamp(40px, 4vw, 58px) !important;
}

.pergolas-page .pergolas-feature-grid {
	gap: 22px !important;
	margin-top: clamp(36px, 4vw, 52px) !important;
}

.pergolas-page .pergolas-feature-grid article {
	min-height: 250px !important;
	padding: clamp(30px, 2.8vw, 40px) !important;
	border-radius: 3px !important;
	box-shadow: 0 16px 44px rgba(0,0,0,.055) !important;
}

.pergolas-page .pergolas-feature-grid h3 {
	margin-top: clamp(44px, 4vw, 56px) !important;
	font-size: clamp(22px, 1.85vw, 29px) !important;
}

.pergolas-page .pergolas-feature-grid p {
	font-size: clamp(13px, .95vw, 15px) !important;
	line-height: 1.58 !important;
}

.pergolas-page .pergolas-process {
	padding-top: clamp(82px, 7.2vw, 112px) !important;
	padding-bottom: clamp(82px, 7.2vw, 112px) !important;
}

.pergolas-page .pergolas-process__grid {
	grid-template-columns: minmax(320px, .72fr) minmax(0, 1.28fr) !important;
	gap: clamp(76px, 8vw, 138px) !important;
	max-width: min(1320px, 100%) !important;
	margin-right: auto !important;
	margin-left: auto !important;
}

.pergolas-page .pergolas-process h2 {
	max-width: 470px !important;
	font-size: clamp(36px, 3.5vw, 56px) !important;
	font-weight: 900 !important;
	line-height: .98 !important;
}

.pergolas-page .pergolas-process__steps > div {
	display: grid !important;
	grid-template-columns: 120px minmax(0, 1fr) !important;
	gap: 28px !important;
	padding: clamp(22px, 2.4vw, 30px) 0 !important;
}

.pergolas-page .pergolas-process__steps strong {
	margin: 0 !important;
	font-size: clamp(13px, .95vw, 15px) !important;
	letter-spacing: .04em !important;
	text-transform: none !important;
}

.pergolas-page .pergolas-process__steps p {
	max-width: 840px !important;
	font-size: clamp(13px, .95vw, 15px) !important;
	font-weight: 500 !important;
	line-height: 1.58 !important;
}

.pergolas-page .pergolas-cta {
	max-width: min(1440px, calc(100% - 60px)) !important;
	min-height: clamp(320px, 26vw, 410px) !important;
	margin: clamp(74px, 6.6vw, 104px) auto clamp(78px, 6.8vw, 108px) !important;
	padding: clamp(52px, 4.6vw, 72px) clamp(48px, 5vw, 78px) !important;
	border-radius: 4px !important;
	background-position: center 46% !important;
}

.pergolas-page .pergolas-cta h2 {
	max-width: 720px !important;
	font-size: clamp(36px, 3.5vw, 54px) !important;
	font-weight: 900 !important;
	line-height: 1.02 !important;
}

.pergolas-page .pergolas-cta p:not(.eyebrow) {
	max-width: 770px !important;
	margin-top: 24px !important;
	font-size: clamp(13px, .98vw, 15px) !important;
	font-weight: 750 !important;
	line-height: 1.38 !important;
}

@media (max-width: 900px) {
	.pergolas-page .pergolas-hero__content {
		max-width: min(680px, 88vw) !important;
	}

	.pergolas-page .pergolas-intro,
	.pergolas-page .pergolas-process__grid {
		grid-template-columns: 1fr !important;
		gap: 42px !important;
	}

	.pergolas-page .pergolas-panel {
		justify-self: stretch !important;
		max-width: none !important;
	}

	.pergolas-page .pergolas-process__steps > div {
		grid-template-columns: 1fr !important;
		gap: 8px !important;
	}

	.pergolas-page .pergolas-cta {
		max-width: calc(100% - 40px) !important;
	}
}

.floating-contact .floating-contact__bubble {
	right: 4px !important;
	bottom: calc(100% + 14px) !important;
	width: min(286px, calc(100vw - 34px)) !important;
	padding: 16px 46px 16px 18px !important;
	color: #fff !important;
	background: linear-gradient(145deg, rgba(36, 38, 41, .98), rgba(24, 25, 28, .98)) !important;
	border: 1px solid rgba(132, 140, 150, .5) !important;
	border-radius: 9px !important;
	box-shadow: 0 18px 42px rgba(0, 0, 0, .32), inset 0 1px 0 rgba(255, 255, 255, .08) !important;
	font-size: 14px !important;
	font-weight: 850 !important;
	line-height: 1.15 !important;
	letter-spacing: 0 !important;
}

.floating-contact .floating-contact__bubble:after {
	right: 44px !important;
	bottom: -9px !important;
	width: 18px !important;
	height: 18px !important;
	background: linear-gradient(145deg, rgba(31, 33, 36, .98), rgba(24, 25, 28, .98)) !important;
	border-right: 1px solid rgba(132, 140, 150, .42) !important;
	border-bottom: 1px solid rgba(132, 140, 150, .42) !important;
	box-shadow: 8px 8px 18px rgba(0, 0, 0, .12) !important;
}

.floating-contact .floating-contact__bubble-close {
	top: 8px !important;
	right: 8px !important;
	width: 24px !important;
	height: 24px !important;
	min-width: 24px !important;
	min-height: 24px !important;
	padding: 0 !important;
	color: rgba(255, 255, 255, .78) !important;
	background: rgba(255, 255, 255, .12) !important;
	border: 1px solid rgba(255, 255, 255, .12) !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 18px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	text-align: center !important;
}

.about-page .about-hero:after,
.contacts-page .contacts-hero:after,
.frames-page .frames-hero:after,
.pergolas-page .pergolas-hero:after,
.awnings-page .awnings-hero:after,
.screens-page .screens-hero:after,
.doors-page .doors-hero:after,
.velux-page .velux-hero:after,
.interior-doors-page .interior-doors-hero:after,
.fabrizio-page .fabrizio-hero:after {
	background:
		radial-gradient(circle at 18% 46%, rgba(211, 24, 34, .14), transparent 34%),
		linear-gradient(90deg, rgba(0,0,0,.46) 0%, rgba(0,0,0,.26) 48%, rgba(0,0,0,.08) 78%, rgba(0,0,0,.24) 100%),
		linear-gradient(180deg, rgba(0,0,0,.16) 0%, rgba(0,0,0,.02) 45%, rgba(0,0,0,.24) 100%) !important;
}

.pergolas-page .pergolas-hero:before {
	background:
		linear-gradient(90deg, rgba(0,0,0,.28) 0%, rgba(0,0,0,.12) 42%, rgba(0,0,0,.04) 74%, rgba(0,0,0,.16) 100%),
		radial-gradient(circle at 18% 46%, rgba(211,24,34,.12), transparent 34%) !important;
}

.reveal-on-scroll {
	opacity: 0;
	transform: translate3d(0, 34px, 0);
	transition:
		opacity .78s cubic-bezier(.22, .61, .36, 1),
		transform .78s cubic-bezier(.22, .61, .36, 1),
		filter .78s cubic-bezier(.22, .61, .36, 1);
	will-change: opacity, transform;
}

.reveal-on-scroll.reveal-zoom {
	filter: saturate(.92) contrast(.98);
	transform: translate3d(0, 34px, 0) scale(.975);
}

.reveal-on-scroll.is-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.reveal-on-scroll.reveal-zoom.is-visible {
	filter: saturate(1) contrast(1);
	transform: translate3d(0, 0, 0) scale(1);
}

.reveal-delay-1 {
	transition-delay: .04s;
}

.reveal-delay-2 {
	transition-delay: .12s;
}

.reveal-delay-3 {
	transition-delay: .20s;
}

.reveal-delay-4 {
	transition-delay: .28s;
}

.reveal-delay-5 {
	transition-delay: .36s;
}

.reveal-delay-6 {
	transition-delay: .44s;
}

.about-page .about-hero__content.reveal-on-scroll {
	transform: translate3d(-18px, 22px, 0);
}

.about-page .about-hero__content.reveal-on-scroll.is-visible {
	transform: translate3d(0, 0, 0);
}

.about-page .about-steps article.reveal-on-scroll,
.about-page .about-years article.reveal-on-scroll {
	transform: translate3d(26px, 0, 0);
}

.about-page .about-steps article.reveal-on-scroll.is-visible,
.about-page .about-years article.reveal-on-scroll.is-visible {
	transform: translate3d(0, 0, 0);
}

@media (prefers-reduced-motion: reduce) {
	.reveal-on-scroll,
	.reveal-on-scroll.reveal-zoom,
	.reveal-on-scroll.is-visible,
	.reveal-on-scroll.reveal-zoom.is-visible,
	.about-page .about-hero__content.reveal-on-scroll,
	.frames-hero__bg,
	.about-page .about-steps article.reveal-on-scroll,
	.about-page .about-years article.reveal-on-scroll {
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
		transition: none !important;
	}
}

@media (max-width: 900px) {
	body.mobile-menu-open .main-nav {
		padding: 24px 28px 28px !important;
		background:
			radial-gradient(circle at 18% 0%, rgba(170, 0, 12, .35), transparent 38%),
			linear-gradient(180deg, rgba(45, 0, 5, .96), rgba(9, 7, 7, .97)) !important;
	}

	body.mobile-menu-open .main-nav > a,
	body.mobile-menu-open .main-nav > .nav-item > .nav-link {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 100% !important;
		min-height: 48px !important;
		margin: 0 !important;
		padding: 15px 0 !important;
		color: #fff !important;
		background: transparent !important;
		border-top: 1px solid rgba(255, 255, 255, .10) !important;
		border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
		font-size: 14px !important;
		font-weight: 950 !important;
		line-height: 1.15 !important;
		letter-spacing: .08em !important;
		text-align: center !important;
		text-transform: uppercase !important;
	}

	body.mobile-menu-open .main-nav > a:first-child {
		border-top: 0 !important;
	}

	body.mobile-menu-open .main-nav > .nav-item {
		width: 100% !important;
		margin: 0 !important;
	}

	body.mobile-menu-open .main-nav .submenu {
		position: static !important;
		display: grid !important;
		width: 100% !important;
		min-width: 0 !important;
		margin: 10px 0 12px !important;
		padding: 0 !important;
		gap: 8px !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}

	body.mobile-menu-open .main-nav .submenu a {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		min-height: 38px !important;
		padding: 11px 14px !important;
		color: #fff !important;
		background: rgba(255, 255, 255, .045) !important;
		border: 1px solid rgba(255, 255, 255, .16) !important;
		border-radius: 4px !important;
		font-size: 13px !important;
		font-weight: 900 !important;
		line-height: 1.2 !important;
		letter-spacing: .02em !important;
		text-align: center !important;
		text-transform: uppercase !important;
	}
}

/* Chi siamo: correzione finale del blocco metodo su mobile. */
@media (max-width: 640px) {
	.about-page .about-method {
		padding-top: 72px !important;
		padding-bottom: 78px !important;
		overflow: hidden !important;
	}

	.about-page .about-method__grid {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 34px !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.about-page .about-method .eyebrow {
		margin-bottom: 14px !important;
		font-size: 12px !important;
		letter-spacing: .08em !important;
	}

	.about-page .about-method h2 {
		max-width: 360px !important;
		font-size: 42px !important;
		line-height: 1.04 !important;
	}

	.about-page .about-steps {
		display: grid !important;
		gap: 14px !important;
		width: 100% !important;
		max-width: 100% !important;
		border-top: 0 !important;
	}

	.about-page .about-method .about-steps article {
		display: grid !important;
		grid-template-columns: 46px minmax(0, 1fr) !important;
		gap: 16px !important;
		width: 100% !important;
		padding: 20px 18px !important;
		background: rgba(255, 255, 255, .07) !important;
		border: 1px solid rgba(255, 255, 255, .13) !important;
		border-left: 3px solid #d31822 !important;
		border-radius: 6px !important;
		box-shadow: 0 18px 42px rgba(0, 0, 0, .16) !important;
	}

	.about-page .about-method .about-steps article > strong {
		color: #e31b25 !important;
		font-size: 13px !important;
		line-height: 1.2 !important;
		letter-spacing: .08em !important;
	}

	.about-page .about-method .about-steps h3 {
		margin-bottom: 8px !important;
		font-size: 23px !important;
		line-height: 1.08 !important;
	}

	.about-page .about-method .about-steps p {
		color: rgba(255, 255, 255, .78) !important;
		font-size: 16px !important;
		line-height: 1.48 !important;
	}
}

/* Serramenti: override finale mobile per la card Finestra Protetta. */
@media (max-width: 640px) {
	.frames-page .frames-intro .frames-panel {
		overflow: visible !important;
	}

	.frames-page .frames-intro .frames-protected {
		grid-template-columns: 1fr !important;
		gap: 18px !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-top: 24px !important;
		padding: 20px !important;
		background: linear-gradient(145deg, #111 0%, #080808 58%, rgba(211, 24, 34, .18) 100%) !important;
		border: 1px solid rgba(255, 255, 255, .12) !important;
		border-left: 3px solid #d31822 !important;
		border-radius: 6px !important;
		box-shadow: 0 18px 44px rgba(0, 0, 0, .22) !important;
	}

	.frames-page .frames-intro .frames-protected img {
		display: block !important;
		width: min(100%, 260px) !important;
		max-width: 260px !important;
		margin: 0 auto !important;
		padding: 12px !important;
		background: #050505 !important;
		border: 1px solid rgba(255, 255, 255, .12) !important;
		border-radius: 5px !important;
	}

	.frames-page .frames-intro .frames-protected div {
		min-width: 0 !important;
		text-align: left !important;
	}

	.frames-page .frames-intro .frames-protected strong {
		margin-bottom: 10px !important;
		color: #fff !important;
		font-size: 24px !important;
		line-height: 1.08 !important;
	}

	.frames-page .frames-intro .frames-protected p {
		color: rgba(255, 255, 255, .76) !important;
		font-size: 15px !important;
		line-height: 1.52 !important;
	}
}

/* Serramenti: override finale reale della CTA mobile. */
@media (max-width: 640px) {
	.frames-page .frames-cta {
		width: calc(100% - 24px) !important;
		max-width: calc(100% - 24px) !important;
		min-height: 0 !important;
		margin: 34px auto 56px !important;
		padding: 34px 20px !important;
		border-radius: 6px !important;
		background-position: 56% center !important;
	}

	.frames-page .frames-cta:before {
		background:
			linear-gradient(180deg, rgba(0, 0, 0, .66) 0%, rgba(0, 0, 0, .78) 52%, rgba(116, 10, 18, .64) 100%),
			radial-gradient(circle at 72% 18%, rgba(211, 24, 34, .32), transparent 34%) !important;
	}

	.frames-page .frames-cta .eyebrow {
		font-size: 12px !important;
		line-height: 1.25 !important;
		letter-spacing: .1em !important;
	}

	.frames-page .frames-cta h2 {
		max-width: 300px !important;
		margin-top: 14px !important;
		font-size: 36px !important;
		line-height: 1.02 !important;
	}

	.frames-page .frames-cta p:not(.eyebrow) {
		max-width: 300px !important;
		margin-top: 22px !important;
		font-size: 15px !important;
		line-height: 1.28 !important;
	}

	.frames-page .frames-cta .frames-actions {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 12px !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-top: 28px !important;
	}

	.frames-page .frames-cta .button {
		width: 100% !important;
		justify-content: center !important;
		min-height: 52px !important;
		padding: 15px 18px !important;
		font-size: 14px !important;
	}
}

/* Fabrizio: override finale reale della CTA mobile. */
@media (max-width: 640px) {
	.fabrizio-page .fabrizio-cta {
		width: calc(100% - 24px) !important;
		max-width: calc(100% - 24px) !important;
		min-height: 0 !important;
		margin: 36px auto 58px !important;
		padding: 34px 22px !important;
		border-radius: 6px !important;
		background-position: 58% center !important;
	}

	.fabrizio-page .fabrizio-cta:before {
		background:
			linear-gradient(180deg, rgba(0, 0, 0, .58) 0%, rgba(0, 0, 0, .76) 54%, rgba(92, 0, 8, .68) 100%),
			radial-gradient(circle at 70% 20%, rgba(211, 24, 34, .26), transparent 34%) !important;
	}

	.fabrizio-page .fabrizio-cta > * {
		max-width: 100% !important;
	}

	.fabrizio-page .fabrizio-cta .eyebrow {
		font-size: 12px !important;
		line-height: 1.3 !important;
		letter-spacing: .1em !important;
	}

	.fabrizio-page .fabrizio-cta h2 {
		max-width: 315px !important;
		margin-top: 14px !important;
		font-size: 34px !important;
		line-height: 1.04 !important;
	}

	.fabrizio-page .fabrizio-cta p {
		max-width: 315px !important;
		margin-top: 22px !important;
		font-size: 15px !important;
		line-height: 1.42 !important;
	}

	.fabrizio-page .fabrizio-actions {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 12px !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-top: 28px !important;
	}

	.fabrizio-page .fabrizio-actions .button {
		width: 100% !important;
		justify-content: center !important;
		min-height: 52px !important;
		padding: 15px 16px !important;
		font-size: 14px !important;
	}
}
