/* =============================================================
   Alture - Stili pagine (v1.0 - allineato al template Alture)
   Layout di riferimento (desktop 1440):
   - margine pagina 12px → card full-bleed = calc(100vw - 24px)
   - radius card grandi: 24px
   - contenuto sezioni: padding 36px dentro la card/sezione
   - offset colonna contenuti: ~30% (label sinistra, contenuto destra)
   ============================================================= */

:root {
	--al-page-margin: 12px;
	--al-bleed-w: calc(100vw - (var(--al-page-margin) * 2));
	--al-card-radius: 24px;
	--al-content-pad: clamp(1.25rem, 2.5vw, 2.25rem);
}

/* helper full-bleed (rispetto al contenitore WPBakery centrato) */
.al-bleed {
	width: var(--al-bleed-w);
	margin-left: calc(50% - 50vw + var(--al-page-margin));
	margin-right: calc(50% - 50vw + var(--al-page-margin));
	box-sizing: border-box;
}

/* -------------------------------------------------------------
   HERO
   ------------------------------------------------------------- */
.al-hero {
	position: relative;
	display: block;
	padding-top: clamp(.5rem, 1.5vw, 1.25rem);
	background: var(--al-paper);
	color: var(--al-grey-900);
}
.al-hero__top { padding: 0; margin-bottom: clamp(1rem, 2vw, 1.75rem); }

.al-hero__headings {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: baseline;
	gap: 2rem;
	width: var(--al-bleed-w);
	margin-left: calc(50% - 50vw + var(--al-page-margin));
	padding-inline: clamp(.75rem, 1.5vw, 1.5rem);
}
.al-hero__display {
	font-family: var(--al-ff-display);
	font-size: clamp(3.5rem, 14.5vw, 13rem);
	font-weight: 700;
	line-height: .95;
	letter-spacing: -0.05em;
	color: var(--al-grey-900);
	margin: 0;
	white-space: nowrap;
}
.al-hero__mark,
.al-hero__display sup {
	font-size: .32em;
	font-family: var(--al-ff-display);
	font-weight: 700;
	color: var(--al-grey-900);
	vertical-align: super;
	letter-spacing: 0;
	position: relative;
	top: -.35em;
}

/* Card video full-bleed con overlay (labels, subhead, contact, marquee) */
.al-hero__component { position: relative; }
.al-hero__video-wrap {
	position: relative;
	width: var(--al-bleed-w);
	margin-left: calc(50% - 50vw + var(--al-page-margin));
	height: min(78vh, 46rem);
	border-radius: var(--al-card-radius);
	overflow: hidden;
	background: #0c0c14;
}
.al-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* RevSlider dentro la card hero: riempie tutta la card, sotto gli overlay */
.al-hero__video-wrap--rev rs-module-wrap,
.al-hero__video-wrap--rev .rs-module-wrap {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	visibility: visible;
	z-index: 1;
}
.al-hero__video-wrap--rev rs-module,
.al-hero__video-wrap--rev rs-slides,
.al-hero__video-wrap--rev rs-slide {
	width: 100% !important;
	height: 100% !important;
}
.al-hero__video-wrap--rev rs-bgvideo video {
	object-fit: cover !important;
	width: 100% !important;
	height: 100% !important;
}
.al-hero__video-wrap--rev .rs-p-wp-fix { display: none; }

/* Service labels dentro la card, in alto */
.al-hero__services {
	position: absolute;
	top: 0; left: 0; right: 0;
	z-index: 3;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(1rem, 2.5vw, 2.5rem);
	padding: 1.5rem clamp(1.5rem, 3vw, 2.5rem) 0;
}
.al-hero__service {
	display: flex;
	flex-direction: column;
	gap: .8rem;
	text-align: center;
}
.al-hero__service-text {
	font-family: var(--al-ff-primary);
	font-size: 1rem;
	font-weight: 500;
	color: var(--al-white);
}
.al-hero__service-line {
	display: block;
	width: 100%;
	border-bottom: 1px dotted rgba(255,255,255,.4);
}
@media (max-width: 767px) {
	.al-hero__services { grid-template-columns: repeat(2, 1fr); }
}

/* Subhead in basso a sinistra dentro la card */
.al-hero__footer {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	z-index: 3;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 2rem;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	pointer-events: none;
}
.al-hero__footer a,
.al-hero__contact-card { pointer-events: auto; }

.al-hero__subhead-wrap {
	display: flex;
	flex-direction: column;
	gap: .5rem;
	max-width: 21rem;
}
.al-hero__we {
	font-family: var(--al-ff-mono);
	font-size: .75rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--al-white) !important;
}
.al-hero__we sup { color: var(--al-white); font-size: .8em; }
.al-hero__subhead {
	font-family: var(--al-ff-primary);
	font-size: clamp(1.5rem, 2.9vw, 2.6rem);
	line-height: 1.12;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--al-white);
	margin: 0;
}
.al-hero__subhead--cycle {
	overflow: hidden;
	height: 1.15em;
	color: var(--al-white);
}
.al-hero__subhead--cycle .al-word-cycle,
.al-hero__subhead--cycle .al-word-cycle__list { display: block; line-height: 1.12; }
.al-hero__subhead--cycle .al-word-cycle__item {
	display: block;
	line-height: 1.15;
	font-size: inherit;
	font-family: var(--al-ff-primary);
	font-weight: 600;
	color: var(--al-white);
	letter-spacing: -0.02em;
	white-space: nowrap;
}

/* Marquee "scroll to reveal" al centro in basso */
.al-hero__marquee {
	position: absolute;
	left: 50%; bottom: clamp(1.5rem, 3vw, 2.5rem);
	transform: translateX(-50%);
	width: min(34rem, 60vw);
	overflow: hidden;
	pointer-events: none;
	color: rgba(255,255,255,.85);
	font-family: var(--al-ff-mono);
	font-size: .78rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	z-index: 2;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 20%, #000 80%, transparent);
	        mask-image: linear-gradient(90deg, transparent, #000 20%, #000 80%, transparent);
}
.al-hero__marquee-track {
	display: inline-flex;
	gap: 3rem;
	white-space: nowrap;
	animation: al-marquee 16s linear infinite;
	will-change: transform;
}
@keyframes al-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

/* Contact card in basso a destra dentro la card (glass scuro) */
.al-hero__contact-card {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: 1.1rem;
	background: rgba(20,20,20,.4);
	-webkit-backdrop-filter: blur(18px);
	backdrop-filter: blur(18px);
	border: 1px solid rgba(255,255,255,.1);
	border-radius: 1.1rem;
	min-width: 17rem;
	max-width: 20rem;
	color: var(--al-white);
}
.al-hero__contact-head {
	display: flex;
	align-items: center;
	gap: .9rem;
}
.al-hero__contact-avatar {
	width: 3.4rem;
	height: 3.4rem;
	border-radius: .9rem;
	background:
		radial-gradient(circle at 50% 38%, #d9a583 0 34%, transparent 35%),
		radial-gradient(circle at 50% 92%, #23262e 0 55%, transparent 56%),
		linear-gradient(180deg, #585d6b 0%, #23262e 100%);
	flex-shrink: 0;
	position: relative;
	overflow: hidden;
}
.al-hero__contact-card::after {
	content: "";
	position: absolute;
	top: .8rem; right: .8rem;
	width: 7px; height: 7px;
	border-radius: 50%;
	background: var(--al-accent);
}
.al-hero__contact-card { position: relative; }
.al-hero__contact-title { display: flex; flex-direction: column; gap: .2rem; }
.al-hero__contact-title strong {
	font-weight: 600;
	font-size: 1.05rem;
	color: var(--al-white);
}
.al-hero__contact-title span {
	font-size: .78rem;
	color: rgba(255,255,255,.65);
}
.al-hero__contact-title sup { color: rgba(255,255,255,.65); }

.al-hero__contact-list {
	display: flex;
	flex-direction: column;
	gap: .55rem;
	margin: 0;
	padding: .9rem 0 0;
	border-top: 1px solid rgba(255,255,255,.12);
}
.al-hero__contact-list > div {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
}
.al-hero__contact-list dt {
	font-family: var(--al-ff-mono);
	font-size: .62rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: rgba(255,255,255,.5) !important;
	margin: 0;
}
.al-hero__contact-list dd { margin: 0; font-weight: 500; font-size: .9rem; color: var(--al-white); }
.al-hero__contact-list dd a { color: var(--al-white) !important; border-bottom: 1px solid rgba(255,255,255,.35); }
.al-hero__contact-list dd a:hover { border-bottom-color: var(--al-white); }

@media (max-width: 991px) {
	.al-hero__video-wrap { height: min(70vh, 40rem); }
	.al-hero__contact-card { display: none; }
}
@media (max-width: 767px) {
	.al-hero__display { font-size: clamp(3rem, 13vw, 6rem); }
	.al-hero__footer { position: absolute; }
	.al-hero__subhead-wrap { max-width: none; padding-bottom: 2.25rem; }
	.al-hero__marquee { width: 80vw; bottom: .9rem; }
}

/* -------------------------------------------------------------
   Intro griglie (label sx - contenuto dx, offset Alture ~30%)
   ------------------------------------------------------------- */
.al-section-intro {
	display: grid;
	grid-template-columns: minmax(0, 27%) 1fr;
	gap: 2rem;
	margin-bottom: clamp(2.5rem, 5vw, 4rem);
	align-items: start;
}
@media (max-width: 991px) { .al-section-intro { grid-template-columns: 1fr; } }
.al-section-intro__title,
.al-section-intro .al-h3,
.al-section-intro .al-h2 {
	font-family: var(--al-ff-primary);
	font-size: clamp(1.9rem, 3.3vw, 3rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.15;
	max-width: 24ch;
}
.al-section-intro em { color: inherit; font-style: italic; }

/* -------------------------------------------------------------
   BRANDS (partners)
   ------------------------------------------------------------- */
.al-brands__head {
	display: grid;
	grid-template-columns: minmax(0, 27%) 1fr;
	gap: 2rem;
	margin-bottom: clamp(2.5rem, 5vw, 4rem);
	align-items: start;
}
@media (max-width: 991px) { .al-brands__head { grid-template-columns: 1fr; } }
.al-brands__title {
	font-family: var(--al-ff-primary);
	color: var(--al-grey-900);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
	font-size: clamp(1.6rem, 2.6vw, 2.4rem);
	margin: 0;
	max-width: 34ch;
}
.al-brands__list-wrap {
	overflow: hidden;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	padding-inline: 0;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 10%, #000 90%, transparent 100%);
	        mask-image: linear-gradient(90deg, transparent 0, #000 10%, #000 90%, transparent 100%);
}
.al-brands__list {
	display: inline-flex;
	gap: 1.25rem;
	animation: al-brands-scroll 42s linear infinite;
	will-change: transform;
}
@keyframes al-brands-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}
.al-brands__item {
	flex: 0 0 auto;
	width: 16rem;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	text-align: center;
}
.al-brands__logo-wrap {
	background: var(--al-white);
	border-radius: 1rem;
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.al-brands__logo { width: 100%; height: 100%; }
.al-brands__texts { display: flex; flex-direction: column; gap: .3rem; align-items: center; }
.al-brands__name {
	font-family: var(--al-ff-primary);
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--al-grey-900);
	margin: 0;
	letter-spacing: -0.01em;
}
.al-brands__desc {
	font-family: var(--al-ff-primary);
	font-size: .85rem;
	color: var(--al-grey-500);
	line-height: 1.4;
	margin: 0;
}
@media (max-width: 767px) { .al-brands__item { width: 13rem; } }

/* -------------------------------------------------------------
   SELECTED WORK (card immagine grandi centrate + pill)
   ------------------------------------------------------------- */
.al-worklist-head {
	display: grid;
	grid-template-columns: minmax(0, 44%) 1fr minmax(0, 18%);
	gap: clamp(2rem, 4vw, 4rem);
	align-items: start;
	margin-bottom: clamp(3rem, 6vw, 5rem);
}
@media (max-width: 991px) { .al-worklist-head { grid-template-columns: 1fr; } }
.al-worklist-title {
	font-family: var(--al-ff-display);
	font-size: clamp(3.5rem, 9vw, 8rem);
	font-weight: 700;
	letter-spacing: -0.045em;
	line-height: .92;
	color: var(--al-grey-900);
	margin: 0;
}
.al-worklist-mid { display: flex; flex-direction: column; gap: 2.5rem; padding-top: 1rem; }
.al-worklist-sub {
	font-size: .95rem;
	color: var(--al-grey-500);
	max-width: 40ch;
	margin: 0;
	line-height: 1.55;
}
.al-worklist-copy {
	font-family: var(--al-ff-display);
	font-size: clamp(3.5rem, 9vw, 8rem);
	font-weight: 700;
	letter-spacing: -0.045em;
	line-height: .92;
	color: var(--al-grey-900);
	justify-self: end;
	white-space: nowrap;
}

.al-work-list {
	list-style: none;
	margin: 0; padding: 0;
	display: flex;
	flex-direction: column;
	gap: clamp(3rem, 8vw, 7rem);
}
.al-work-list__item { display: flex; justify-content: center; }
.al-work-list__link {
	position: relative;
	display: block;
	width: min(50rem, 92%);
	aspect-ratio: 16 / 8.6;
	border-radius: var(--al-card-radius);
	overflow: hidden;
	background: var(--al-grey-100);
	transition: transform .5s var(--al-ease-out);
}
.al-work-list__link:hover { transform: scale(.985); }
.al-work-list__media {
	position: absolute; inset: 0;
	background-size: cover;
	background-position: center;
	transition: transform .8s var(--al-ease-out);
}
.al-work-list__link:hover .al-work-list__media { transform: scale(1.05); }
.al-work-list__pill {
	position: absolute;
	left: 1.5rem; bottom: 1.5rem;
	z-index: 2;
}
.al-work-more { text-align: center; margin-top: clamp(3rem, 6vw, 5rem); }

/* -------------------------------------------------------------
   ABOUT (media card con quote glass dentro)
   ------------------------------------------------------------- */
.al-home-about {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
}
@media (max-width: 991px) { .al-home-about { grid-template-columns: 1fr; } }
.al-home-about__media {
	position: relative;
	aspect-ratio: 1 / 1.18;
	overflow: hidden;
	border-radius: var(--al-card-radius);
	background:
		radial-gradient(ellipse 60% 45% at 78% 18%, #ff5a2e 0%, transparent 62%),
		radial-gradient(ellipse 55% 45% at 15% 32%, #cfe94a 0%, transparent 60%),
		radial-gradient(ellipse 60% 45% at 12% 68%, #3fb3ff 0%, transparent 62%),
		linear-gradient(160deg, #f0d13d 0%, #a34517 34%, #131327 78%, #05050c 100%);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: clamp(1.5rem, 3vw, 2.5rem);
}
.al-home-about__media video,
.al-home-about__media img {
	position: absolute; inset: 0;
	width: 100%; height: 100%; object-fit: cover;
}
.al-home-about__quote {
	position: relative;
	z-index: 2;
	align-self: center;
	margin-top: clamp(1rem, 3vw, 2rem);
	max-width: 30rem;
	background: rgba(30,30,30,.32);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	border: 1px solid rgba(255,255,255,.12);
	border-radius: 1.25rem;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	color: var(--al-white);
	font-family: var(--al-ff-primary);
	font-size: clamp(1.1rem, 1.7vw, 1.4rem);
	line-height: 1.4;
	font-weight: 600;
	letter-spacing: -0.01em;
	text-align: center;
	border-left: 0;
}
.al-home-about__quote-author {
	margin-top: 1.25rem;
	font-size: .9rem;
	font-weight: 600;
	color: var(--al-white);
}
.al-home-about__quote-role {
	font-size: .8rem;
	font-weight: 400;
	color: rgba(255,255,255,.65);
}
.al-home-about__watermark {
	position: relative;
	z-index: 2;
	align-self: center;
	font-family: var(--al-ff-display);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	color: var(--al-white);
}
.al-home-about__watermark sup { font-size: .4em; }

.al-home-about__text { display: flex; flex-direction: column; gap: 1.75rem; padding-top: .5rem; }
.al-home-about__text .al-h4 {
	font-family: var(--al-ff-primary);
	font-size: clamp(1.9rem, 3.2vw, 2.9rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--al-grey-900);
	max-width: 22ch;
}
.al-home-about__desc {
	color: var(--al-grey-500);
	font-size: 1rem;
	line-height: 1.6;
	max-width: 46ch;
	margin: 0;
}

/* -------------------------------------------------------------
   SERVICES - sezione dark full-bleed con heading dentro
   ------------------------------------------------------------- */
.al-services-wrap {
	background: var(--al-black);
	color: var(--al-white);
	border-radius: var(--al-card-radius);
	width: var(--al-bleed-w);
	margin-left: calc(50% - 50vw + var(--al-page-margin));
	margin-right: calc(50% - 50vw + var(--al-page-margin));
	box-sizing: border-box;
	padding: clamp(2.5rem, 5vw, 4.5rem) clamp(1.5rem, 3.5vw, 3.5rem) clamp(3rem, 6vw, 5rem);
	overflow: hidden;
}
.al-services-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 2rem;
	margin-bottom: clamp(3rem, 7vw, 6rem);
}
.al-services-title {
	font-family: var(--al-ff-display);
	font-size: clamp(3.5rem, 8vw, 7rem);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: .9;
	color: var(--al-white);
	margin: 0;
	display: flex;
	align-items: baseline;
	gap: 2.5rem;
}
.al-services-title .xmarks {
	display: inline-flex;
	gap: clamp(2rem, 6vw, 5rem);
	font-size: .28em;
	color: rgba(255,255,255,.8);
	letter-spacing: 0;
	transform: translateY(-.4em);
}
.al-services-count {
	font-family: var(--al-ff-display);
	font-size: clamp(3.5rem, 8vw, 7rem);
	font-weight: 600;
	letter-spacing: -0.03em;
	color: var(--al-white);
}

.al-services { list-style: none; margin: 0; padding: 0; border: 0; background: transparent; width: auto; }
.al-service {
	display: grid;
	grid-template-columns: minmax(0, 28%) minmax(0, 1fr) minmax(0, 32%);
	gap: clamp(1.5rem, 3.5vw, 3.5rem);
	padding: clamp(2.5rem, 5vw, 4rem) 0;
	border: 0;
	/* Nel template la riga sta SOPRA ogni servizio ed e' punteggiata, quindi ce
	   n'e' una anche fra la testa della sezione e il primo servizio. Da noi era
	   sotto e mancava sul primo: la sezione partiva attaccata al titolo. */
	border-top: 1px dotted rgba(255,255,255,.22);
	align-items: start;
	background: transparent;
}
@media (max-width: 991px) {
	.al-service { grid-template-columns: 1fr; gap: 1.5rem; }
	.al-service > .al-service__spacer { display: none; }
}
.al-service__spacer { min-height: 1px; }
.al-service__body { display: flex; flex-direction: column; gap: 1.75rem; }
.al-service__head {
	display: inline-flex;
	align-items: center;
	gap: 1.25rem;
}
.al-service__num {
	width: 1.6rem;
	height: 1.6rem;
	border-radius: 50%;
	background: var(--al-accent);
	color: var(--al-white) !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--al-ff-primary);
	font-size: .78rem;
	font-weight: 600;
	flex-shrink: 0;
}
.al-service__name {
	font-family: var(--al-ff-primary);
	font-size: clamp(1.75rem, 2.6vw, 2.4rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1;
	color: var(--al-white) !important;
	margin: 0;
}
.al-service__tags { display: flex; flex-wrap: wrap; gap: .6rem; max-width: 24rem; }
.al-service__tag {
	display: inline-flex;
	align-items: center;
	padding: .6rem 1.1rem;
	border-radius: 999px;
	background: rgba(255,255,255,.08) !important;
	color: rgba(255,255,255,.75) !important;
	border: 0 !important;
	font-family: var(--al-ff-primary);
	font-size: .92rem;
	letter-spacing: 0;
	transition: background .3s var(--al-ease-out), color .3s var(--al-ease-out);
}
.al-service:hover .al-service__tag { background: rgba(255,255,255,.14) !important; color: var(--al-white) !important; }
.al-service__cta { margin-top: 1.5rem; }
.al-services__cta { margin-top: clamp(2rem, 4vw, 3rem); display: flex; justify-content: flex-start; }

.al-service__media { display: flex; flex-direction: column; gap: 1.5rem; align-items: flex-start; }
.al-service__thumb {
	width: min(14rem, 100%);
	aspect-ratio: 16 / 9;
	border-radius: .6rem;
	overflow: hidden;
	background: var(--al-grey-800);
	position: relative;
}
.al-service__thumb::after { display: none; }
.al-service__desc {
	color: rgba(255,255,255,.6) !important;
	font-size: .98rem;
	line-height: 1.55;
	max-width: 40ch;
	margin: 0;
}

/* keep scrolling (fuori dalla card dark, su paper) */
.al-keep-scrolling {
	text-align: center;
	padding: clamp(3rem, 6vw, 5rem) 0 0;
	font-family: var(--al-ff-mono);
	font-size: .85rem;
	letter-spacing: .25em;
	text-transform: uppercase;
	color: var(--al-grey-400);
}

/* -------------------------------------------------------------
   SHOWREEL - ©2025 [video] Showreel, video si espande in scroll
   ------------------------------------------------------------- */
.al-showreel {
	position: relative;
	background: var(--al-paper);
	min-height: auto;
	display: block;
	overflow: visible;
}
.al-showreel__sticky {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(1.5rem, 3vw, 3rem);
	min-height: 100vh;
	position: relative;
}
.al-showreel__side {
	font-family: var(--al-ff-display);
	font-size: clamp(3rem, 6.5vw, 6rem);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1;
	color: var(--al-grey-900) !important;
	white-space: nowrap;
}
.al-showreel__video-card {
	position: relative;
	width: clamp(16rem, 22vw, 20rem);
	aspect-ratio: 16 / 9;
	border-radius: 1rem;
	overflow: hidden;
	background: #05060c;
	will-change: transform;
}
.al-showreel__video-card video,
.al-showreel__video-bg {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
}
.al-showreel__video-bg {
	background:
		radial-gradient(ellipse 60% 45% at 50% 68%, rgba(255,120,40,.5), transparent 65%),
		radial-gradient(ellipse 80% 55% at 30% 60%, rgba(60,120,255,.25), transparent 70%),
		radial-gradient(ellipse 55% 40% at 72% 55%, rgba(140,220,255,.3), transparent 70%),
		#05060c;
}
.al-showreel__play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	color: var(--al-white) !important;
	font-family: var(--al-ff-primary);
	font-size: clamp(1.5rem, 3.4vw, 3.25rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	opacity: 0;
	transition: opacity .4s var(--al-ease-out);
	background: transparent;
	width: auto; height: auto;
	border-radius: 0;
	margin: 0;
	white-space: nowrap;
}
.al-showreel__play .icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.8em; height: 1.8em;
	border-radius: 50%;
	background: rgba(0,0,0,.55);
	flex-shrink: 0;
}
.al-showreel__play .icon::after {
	content: "";
	border-style: solid;
	border-width: .32em 0 .32em .52em;
	border-color: transparent transparent transparent var(--al-white);
	margin-left: .1em;
}
.al-showreel.is-expanded .al-showreel__play { opacity: 1; }

/* -------------------------------------------------------------
   TESTIMONIALS
   ------------------------------------------------------------- */
.al-testimonials-grid {
	display: grid;
	grid-template-columns: minmax(0, 28%) 1fr;
	gap: clamp(2rem, 4vw, 4rem);
}
@media (max-width: 991px) { .al-testimonials-grid { grid-template-columns: 1fr; } }
.al-testimonials-left { display: flex; flex-direction: column; gap: 3rem; }
.al-testimonials-left .al-h3 {
	font-family: var(--al-ff-primary);
	font-size: clamp(2rem, 3.4vw, 3.1rem);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--al-grey-900);
	margin: 1rem 0 0;
}
.al-testimonials-data { display: flex; flex-direction: column; gap: 1.75rem; margin-top: auto; }
.al-testimonials-data > .al-label { margin-bottom: .5rem; }

.al-testimonials-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.1rem;
	align-items: start;
}
@media (max-width: 767px) { .al-testimonials-list { grid-template-columns: 1fr; } }
.al-testimonials-list .al-testimonial--photo { grid-row: span 2; }

/* -------------------------------------------------------------
   PRICING (wrapper dark full-bleed)
   ------------------------------------------------------------- */
.al-pricing-dark {
	background: var(--al-black);
	color: var(--al-white);
	border-radius: var(--al-card-radius);
	width: var(--al-bleed-w);
	margin-left: calc(50% - 50vw + var(--al-page-margin));
	margin-right: calc(50% - 50vw + var(--al-page-margin));
	box-sizing: border-box;
	padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 3.5vw, 3.5rem);
	overflow: hidden;
}

/* -------------------------------------------------------------
   FAQ
   ------------------------------------------------------------- */
.al-faq-head {
	display: grid;
	grid-template-columns: 1fr minmax(0, 30%);
	gap: 2rem;
	align-items: end;
	margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
@media (max-width: 991px) { .al-faq-head { grid-template-columns: 1fr; } }
.al-faq-title {
	font-family: var(--al-ff-display);
	font-size: clamp(3rem, 7vw, 6rem);
	font-weight: 700;
	letter-spacing: -0.04em;
	line-height: .95;
	color: var(--al-grey-900);
	margin: 1rem 0 0;
}
.al-faq-sub { color: var(--al-grey-500); font-size: .95rem; margin: 0; }

.al-faq-grid {
	display: grid;
	grid-template-columns: 1fr minmax(0, 46%);
	gap: 2rem;
	align-items: stretch;
}
@media (max-width: 991px) { .al-faq-grid { grid-template-columns: 1fr; } }
.al-faq-photo {
	border-radius: var(--al-card-radius);
	overflow: hidden;
	background:
		linear-gradient(180deg, rgba(255,255,255,0) 40%, rgba(160,140,120,.25) 100%),
		linear-gradient(150deg, #e8e4dc 0%, #b7a897 55%, #6b5a48 100%);
	min-height: 26rem;
}
.al-faq-photo img { width: 100%; height: 100%; object-fit: cover; }

/* -------------------------------------------------------------
   BLOG
   ------------------------------------------------------------- */
.al-blog-head {
	display: grid;
	grid-template-columns: minmax(0, 12%) 1fr auto;
	gap: 2rem;
	align-items: center;
	margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
@media (max-width: 767px) { .al-blog-head { grid-template-columns: 1fr; } }
.al-blog-title {
	font-family: var(--al-ff-primary);
	font-size: clamp(2.25rem, 4.4vw, 4rem);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1;
	color: var(--al-grey-900);
	margin: 0;
}
.al-blog-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}
@media (max-width: 991px) { .al-blog-grid { grid-template-columns: 1fr; } }
.al-blog-card { display: flex; flex-direction: column; gap: 1rem; color: var(--al-grey-900) !important; }
.al-blog-card__thumb {
	aspect-ratio: 4/3.4;
	background: var(--al-grey-800);
	border-radius: 1.1rem;
	overflow: hidden;
	position: relative;
	transition: transform .5s var(--al-ease-out);
}
.al-blog-card:hover .al-blog-card__thumb { transform: scale(.98); }
.al-blog-card__thumb::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(160deg, rgba(90,40,20,.9), rgba(10,8,8,.95));
}
.al-blog-card__thumb--2::after { background: linear-gradient(160deg, rgba(140,40,15,.92), rgba(40,10,5,.95)); }
.al-blog-card__thumb--3::after { background: linear-gradient(160deg, rgba(60,60,50,.92), rgba(15,18,12,.96)); }
.al-blog-card__date {
	font-family: var(--al-ff-mono);
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--al-grey-500) !important;
}
.al-blog-card__title {
	font-family: var(--al-ff-primary);
	font-size: clamp(1.15rem, 1.7vw, 1.4rem);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.25;
	color: var(--al-grey-900) !important;
}

/* -------------------------------------------------------------
   CTA finale (card dark, dot grid, mouse trail)
   ------------------------------------------------------------- */
.al-cta {
	position: relative;
	background: var(--al-black) !important;
	color: var(--al-white) !important;
	border-radius: var(--al-card-radius);
	text-align: center;
	width: var(--al-bleed-w);
	margin-left: calc(50% - 50vw + var(--al-page-margin));
	margin-right: calc(50% - 50vw + var(--al-page-margin));
	box-sizing: border-box;
	padding: clamp(4rem, 9vw, 8rem) clamp(1.5rem, 4vw, 4rem);
	overflow: hidden;
}
.al-cta::before {
	content: "";
	position: absolute;
	inset: 8% 10%;
	background-image: radial-gradient(rgba(255,255,255,.22) 1px, transparent 1.5px);
	background-size: 33px 37px;
	pointer-events: none;
}
.al-cta__marquee-top {
	position: absolute;
	top: 1.5rem; left: 50%;
	transform: translateX(-50%);
	width: min(30rem, 70vw);
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 25%, #000 75%, transparent);
	        mask-image: linear-gradient(90deg, transparent, #000 25%, #000 75%, transparent);
}
.al-cta__title {
	position: relative;
	z-index: 2;
	font-family: var(--al-ff-primary);
	font-size: clamp(3rem, 7.5vw, 6.5rem);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.02;
	margin: clamp(2rem, 5vw, 4rem) auto clamp(2rem, 4vw, 3rem);
	max-width: 16ch;
	color: var(--al-white) !important;
}
.al-cta__title sup { font-size: .3em; color: var(--al-white) !important; }
.al-cta .al-btn { position: relative; z-index: 2; }
.al-cta__visual-wrap {
	position: absolute; inset: 0;
	overflow: hidden;
	pointer-events: none;
	z-index: 1;
}
.al-cta__trail-img {
	position: absolute;
	width: 12rem;
	aspect-ratio: 4/3;
	border-radius: .75rem;
	background-size: cover;
	background-position: center;
	transform: translate(-50%, -50%);
	will-change: transform, opacity;
}

/* -------------------------------------------------------------
   STUDIO / WORK single / CONTACT - invariati (v0.9)
   ------------------------------------------------------------- */
.al-studio-hero {
	min-height: 80vh;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 10rem 0 4rem;
}
.al-studio-hero__meta {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
	margin-top: 3rem;
	font-family: var(--al-ff-mono);
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--al-grey-500);
}
@media (max-width: 767px) { .al-studio-hero__meta { grid-template-columns: 1fr 1fr; } }

.al-quote {
	max-width: 60rem;
	margin-inline: auto;
	text-align: center;
	font-family: var(--al-ff-display);
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	line-height: 1.3;
	font-weight: 500;
	letter-spacing: -0.02em;
	padding-block: 6rem;
}

.al-team-numbers {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 3rem;
	margin-top: 3rem;
}
@media (max-width: 991px) { .al-team-numbers { grid-template-columns: 1fr; } }
.al-team-numbers__item h6 {
	font-family: var(--al-ff-display);
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	line-height: 1.2;
	font-weight: 500;
	letter-spacing: -0.02em;
	margin: 1rem 0 0;
}
.al-team-numbers__item .al-mono { color: var(--al-accent); }

.al-members {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
	margin-top: 3rem;
}
@media (max-width: 991px) { .al-members { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .al-members { grid-template-columns: 1fr; } }
.al-member {
	background: var(--al-white);
	border: 1px solid rgba(0,0,0,.08);
	border-radius: 1.25rem;
	padding: 2rem;
	aspect-ratio: 1/1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	position: relative;
	overflow: hidden;
}
.al-member__avatar {
	width: 4rem; height: 4rem;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--al-accent), #ff8b62);
}
.al-member__name {
	font-family: var(--al-ff-display);
	font-size: 1.5rem;
	font-weight: 500;
	letter-spacing: -0.01em;
	margin: 0;
}
.al-member__role {
	font-family: var(--al-ff-mono);
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--al-grey-400);
}
.al-member__link {
	position: absolute;
	top: 1.5rem; right: 1.5rem;
	width: 2rem; height: 2rem;
	border-radius: 50%;
	background: rgba(0,0,0,.06);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: .8rem;
}

.al-approach {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin-top: 3rem;
}
@media (max-width: 991px) { .al-approach { grid-template-columns: 1fr; } }
.al-approach__step {
	padding-top: 1.5rem;
	border-top: 1px solid rgba(0,0,0,.12);
}
.al-approach__step h5 {
	font-family: var(--al-ff-display);
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 500;
	margin-bottom: 1rem;
	letter-spacing: -0.01em;
}
.al-approach__step p { color: var(--al-grey-500); font-size: .95rem; }

.al-awards { width: 100%; border-collapse: collapse; margin-top: 3rem; }
.al-awards th, .al-awards td {
	text-align: left;
	padding: 1rem 0;
	border-bottom: 1px solid rgba(0,0,0,.12);
	font-family: var(--al-ff-mono);
	font-size: .95rem;
}
.al-awards th {
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--al-grey-400);
	font-weight: 400;
}
@media (max-width: 767px) {
	.al-awards { display: block; overflow-x: auto; }
	.al-awards th, .al-awards td { white-space: nowrap; padding-right: 2rem; }
}

.al-work-hero { padding: 6rem 0 4rem; }
.al-work-hero__meta {
	display: flex;
	gap: 2rem;
	margin-bottom: 2rem;
	font-family: var(--al-ff-mono);
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--al-grey-500);
}
.al-work-hero__title {
	font-family: var(--al-ff-display);
	font-size: clamp(2.5rem, 5vw, 4.5rem);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.02em;
	max-width: 30ch;
}
.al-work-media {
	width: 100%;
	aspect-ratio: 16/9;
	background: var(--al-grey-800);
	border-radius: 1.5rem;
	overflow: hidden;
	margin-block: 3rem;
}
.al-work-media img, .al-work-media video { width: 100%; height: 100%; object-fit: cover; }
.al-work-content {
	max-width: 50rem;
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
.al-work-content h2 {
	font-family: var(--al-ff-display);
	font-size: clamp(2rem, 3.5vw, 3rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.05;
}
.al-work-content p { color: var(--al-grey-500); font-size: 1.05rem; line-height: 1.6; max-width: 60ch; }

.al-work-next {
	padding-block: clamp(6rem, 12vw, 10rem);
	border-top: 1px solid rgba(0,0,0,.12);
	text-align: center;
}
.al-work-next__label {
	font-family: var(--al-ff-mono);
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--al-grey-500);
	margin-bottom: 1rem;
	display: inline-block;
}
.al-work-next__title {
	font-family: var(--al-ff-display);
	font-size: clamp(4rem, 12vw, 10rem);
	font-weight: 600;
	letter-spacing: -0.04em;
	transition: color .3s var(--al-ease-out);
}
.al-work-next__title:hover { color: var(--al-accent); }

.al-contact-hero { padding: 6rem 0; overflow: hidden; }
.al-contact-hero__marquee { padding-block: 1rem; }
.al-contact-hero__marquee .al-marquee__item {
	font-family: var(--al-ff-display);
	font-size: clamp(4rem, 14vw, 12rem);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1;
	color: var(--al-grey-900);
	white-space: nowrap;
}
.al-contact-form {
	max-width: 42rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	padding-block: 4rem 8rem;
}
.al-contact-form label {
	font-family: var(--al-ff-mono);
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--al-grey-400);
	display: block;
	margin-bottom: .35rem;
}
.al-contact-form input,
.al-contact-form textarea {
	width: 100%;
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(0,0,0,.25);
	padding: .75rem 0;
	color: var(--al-grey-900);
	font-family: var(--al-ff-primary);
	font-size: 1rem;
	outline: none;
	transition: border-color .3s var(--al-ease-out);
}
.al-contact-form input:focus,
.al-contact-form textarea:focus { border-bottom-color: var(--al-accent); }
.al-contact-form input::placeholder,
.al-contact-form textarea::placeholder { color: var(--al-grey-400); }
.al-contact-form textarea { min-height: 8rem; resize: vertical; }
.al-contact-form .al-checkbox {
	display: flex; align-items: center; gap: .75rem;
	font-size: .9rem;
	color: var(--al-grey-500);
}
.al-contact-form .al-checkbox input { width: 1rem; height: 1rem; accent-color: var(--al-accent); }
.al-contact-form button[type=submit] { align-self: flex-start; margin-top: 1rem; }

.wpcf7 form.sent .wpcf7-response-output { color: var(--al-accent); border-color: var(--al-accent); }
.wpcf7 .wpcf7-response-output {
	border: 1px solid rgba(0,0,0,.25);
	padding: 1rem;
	margin-top: 1rem;
	font-family: var(--al-ff-mono);
	font-size: .85rem;
	text-transform: uppercase;
	letter-spacing: .06em;
}

/* =============================================================
   FULL-BLEED OVERRIDES (WPBakery/WoodMart)
   ============================================================= */
.al-hero-row,
.al-section {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.al-hero-row > .wpb_column,
.al-section > .wpb_column,
.al-hero-row > .wpb_column > .vc_column-inner,
.al-section > .wpb_column > .vc_column-inner {
	padding: 0 !important;
	max-width: none !important;
}
.al-hero, .al-hero__top { width: 100%; max-width: none; }

/* Contenuto sezioni: centrato, gutter 36px (48 assoluti come Alture) */
.al-section > .wpb_column > .vc_column-inner > .wpb_wrapper > * {
	max-width: var(--al-container, 1440px);
	margin-left: auto;
	margin-right: auto;
	padding-left: clamp(1.5rem, 2.5vw, 2.25rem);
	padding-right: clamp(1.5rem, 2.5vw, 2.25rem);
	box-sizing: border-box;
}
.al-section > .wpb_column > .vc_column-inner > .wpb_wrapper > .vc_raw_html,
.al-section > .wpb_column > .vc_column-inner > .wpb_wrapper > .wpb_raw_html {
	max-width: none;
	padding: 0;
	width: 100%;
}
.al-section > .wpb_column > .vc_column-inner > .wpb_wrapper > .vc_raw_html > *,
.al-section > .wpb_column > .vc_column-inner > .wpb_wrapper > .wpb_raw_html > * {
	max-width: var(--al-container, 1440px);
	margin-left: auto;
	margin-right: auto;
	padding-left: clamp(1.5rem, 2.5vw, 2.25rem);
	padding-right: clamp(1.5rem, 2.5vw, 2.25rem);
	box-sizing: border-box;
	display: block;
}
/* elementi full-bleed non devono ricevere gutter */
.al-section .wpb_wrapper > .vc_raw_html > .al-services-wrap,
.al-section .wpb_wrapper > .vc_raw_html > .al-pricing-dark,
.al-section .wpb_wrapper > .vc_raw_html > .al-cta,
.al-section .wpb_wrapper > .vc_raw_html > .al-showreel {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}
.al-section .wpb_wrapper > .vc_raw_html > .al-services-wrap { padding: clamp(2.5rem, 5vw, 4.5rem) clamp(1.5rem, 3.5vw, 3.5rem) clamp(3rem, 6vw, 5rem); }
.al-section .wpb_wrapper > .vc_raw_html > .al-pricing-dark { padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 3.5vw, 3.5rem); }
.al-section .wpb_wrapper > .vc_raw_html > .al-cta { padding: clamp(4rem, 9vw, 8rem) clamp(1.5rem, 4vw, 4rem); }

/* Padding verticale sezioni */
.al-section {
	padding-top: clamp(4rem, 9vw, 9rem) !important;
	padding-bottom: clamp(4rem, 9vw, 9rem) !important;
}
.al-section--flush-top { padding-top: 0 !important; }
.al-section--flush-bottom { padding-bottom: 0 !important; }
.al-hero-row { padding-top: 0 !important; padding-bottom: 0 !important; }

/* Tipografia intro coerente */
.al-section-intro__title,
.al-section-intro,
.al-section-intro h3,
.al-section-intro h2 { color: var(--al-grey-900) !important; }
.al-label { color: var(--al-grey-500) !important; }
.al-h1, .al-h2, .al-h3, .al-h4, .al-h5, .al-h6 { color: var(--al-grey-900); }
