/*
Theme Name: Maglificio Giordano’s
Theme URI: https://maglificiogiordanos.com/
Author: Daniele Masin
Author URI: https://danielemasin.it/
Description: Wordpress theme for Maglificio Giordano’s
Version: 100.0
*/

	:root {
		--dna-font-family-sans-serif: 'Alaska', 'Helvetica Neue', Helvetica, Arial, sans-serif;
		--dna-font-family-mono: 'HAL Timezone Mono', 'Courier New', Courier, monospace;
		--dna-color-black: #000; /* Accorciato */
		--dna-color-white: #FFF; /* Accorciato */
		--dna-color-blue: #1F2F5C;
		--dna-color-cream: #FCF8F2;
		--dna-color-grey: #E6E4E3;
		--dna-color-grey-hover: #8C8C8C;
		--dna-transition-easing: ease-out;
		--dna-transition-timing: 0.2s;
		--dna-transition-timing-x2: 0.4s;
		--dna-transition-timing-x4: 0.8s;
		--dna-transition-timing-x6: 1.2s;
		--dna-transition-timing-x8: 1.6s;
		--dna-transition-timing-x16: 3.2s;
		--dna-border-width: 0.05rem;
		--dna-spacer-20: 2rem;
		--dna-spacer-30: 3rem;
		--dna-max-width: 143.9rem;
		--dna-col-unit-m: 12.5%;
		--dna-col-unit: 8.33333%;
	}
	
	html {
		font-size: 62.5%;
		overflow-x: hidden;
	}
	
	body {
		font-size: 1.3rem;
		line-height: 1.8rem;
		font-family: var(--dna-font-family-mono);
		font-weight: 400;
		color: var(--dna-color-black);
		background: var(--dna-color-cream);
	}
	
	a {
		color: var(--dna-color-black);
		text-decoration: none;
		display: inline-block;
		position: relative;
		transition: var(--dna-transition-timing) var(--dna-transition-easing);
	}
	
	a:hover,
	a.actual,
	.current-menu-item a,
	.current_page_parent a,
	.wpml-ls-current-language a {
		color: var(--dna-color-grey-hover);
	}
	
	img,
	video,
	picture {
		display: block;
		width: 100%;
		height: auto;
	}
	
	h1,
	h2,
	h3,
	h4,
	h5,
	h6,
	h7 {
		font-size: 1.3rem;
		line-height: 1.8rem;
		font-family: var(--dna-font-family-mono);
		font-weight: 400;
	}
	
	u {
		text-decoration: underline 0.1rem;
	}
	
	p b,
	.content p strong { /* Unione di selettori per la grassettatura */
		font-weight: 700; /* Uso del valore numerico */
	}
	
	#header,
	#footer,
	section:not(.animation-sticky),
	.spacer-30 {
		will-change: transform;
		transform: translateZ(0);
	}
	
	.animation-1,
	.animation-2,
	.animation-3,
	.animation-4 {
		opacity: 0;
		transition: opacity var(--dna-transition-timing-x6) var(--dna-transition-easing);
	}
	
	.animation-1b,
	.animation-2b,
	.animation-3b,
	.animation-4b {
		opacity: 0;
		transition: opacity var(--dna-transition-timing-x8) var(--dna-transition-easing) !important;
	}
	
	.animation-background-blue {
		background-color: var(--dna-color-cream);
		transition: var(--dna-transition-timing-x4) var(--dna-transition-easing) !important;
	}
	
	.animation {
		opacity: 0;
		/* transform: translateY(2rem); */
		transition: var(--dna-transition-timing-x6) var(--dna-transition-easing);
	}
	
	.animation-fade {
		opacity: 0;
		transition: var(--dna-transition-timing-x6) var(--dna-transition-easing);
	}
	
	.animation-sticky {
		position: sticky;
		top: 0;
		transition: var(--dna-transition-timing);
	}
	
	.opacity-0 {
		opacity: 0;
	}
	
	/* GRID COL-M (Mobile) */
	.col-m-1 {
		width: var(--dna-col-unit-m);
	}
	
	.col-m-2 {
		width: calc(var(--dna-col-unit-m) * 2);
	}
	
	.col-m-3 {
		width: calc(var(--dna-col-unit-m) * 3);
	}
	
	.col-m-4 {
		width: calc(var(--dna-col-unit-m) * 4);
	}
	
	.col-m-5 {
		width: calc(var(--dna-col-unit-m) * 5);
	}
	
	.col-m-6 {
		width: calc(var(--dna-col-unit-m) * 6);
	}
	
	.col-m-7 {
		width: calc(var(--dna-col-unit-m) * 7);
	}
	
	.col-m-8 {
		width: 100%;
	}
	
	/* SPACERS */
	.spacer-20 {
		width: 100%;
		height: var(--dna-spacer-20);
		position: relative;
	}
	
	.spacer-30 {
		width: 100%;
		height: var(--dna-spacer-30);
		position: relative;
	}
	
	.line {
		width: 100%;
		height: var(--dna-border-width);
		background: var(--dna-color-black);
	}
	
	/* TYPOGRAPHY SIZES */
	.size-h1 {
		font-size: 2.1rem;
		line-height: 2.5rem;
		font-family: var(--dna-font-family-sans-serif);
		font-weight: 800;
	}
	
	.size-h2 {
		font-size: 1.8rem;
		line-height: 1.95rem;
		font-family: var(--dna-font-family-sans-serif);
		font-weight: 800;
	}
	
	.size-h3 {
		font-size: 1.2rem;
		line-height: 1.46rem;
		font-family: var(--dna-font-family-sans-serif);
		font-weight: 800;
	}
	/*
	.size-p1, .size-p2, .size-p3 comments removed for clarity
	*/
	.size-p1 {
		font-size: 1.3rem;
		line-height: 1.8rem;
	}
	
	.size-p2 {
		font-size: 1.1rem;
		line-height: 1.4rem;
	}
	
	.size-p3 {
		font-size: 0.9rem;
		line-height: 1.2rem;
	}
	
	.transform-uppercase {
		text-transform: uppercase;
	}
	
	.lateral-padding {
		padding: 0 var(--dna-spacer-20);
	}
	
	.btn {
		font-size: 1.1rem;
		line-height: 1.6rem;
		font-family: var(--dna-font-family-mono);
		font-weight: 400;
		padding: 0.5rem 1.5rem;
		color: var(--dna-color-black);
		border: var(--dna-border-width) solid var(--dna-color-black);
		text-transform: uppercase;
		width: fit-content;
		border-radius: 999rem;
		transition: var(--dna-transition-timing) var(--dna-transition-easing);
		margin-bottom: 0.1rem;
	}
	
	.btn:hover,
	.btn.actual {
		color: var(--dna-color-white);
		background: var(--dna-color-black);
	}
	
	.btn-white {
		color: var(--dna-color-white);
		border: var(--dna-border-width) solid var(--dna-color-white);
	}
	
	.btn-white:hover,
	.btn-white.actual {
		color: var(--dna-color-black);
		background: var(--dna-color-white);
	}
	
	.position-relative {
		position: relative;
	}
	
	.flex-column-row {
		display: flex;
		flex-direction: column;
	}
	
	.flex-center {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 1.5rem;
	}
	
	.filter-multiply {
		mix-blend-mode: multiply;
	}
	
	/* COLOR UTILITIES */
	.color-cream {
		color: var(--dna-color-cream);
	}
	
	.color-white {
		color: var(--dna-color-white);
	}
	
	/* BACKGROUND UTILITIES */
	.background-cream {
		background-color: var(--dna-color-cream);
		margin-top: -0.02rem;
	}
	
	.background-blue {
		background-color: var(--dna-color-blue);
	}
	
	.background-grey {
		background-color: var(--dna-color-grey);
	}
	
	/* TEXT ALIGNMENT */
	.text-align-center {
		text-align: center;
	}
	
	.text-align-justify {
		text-align: justify;
		hyphens: auto;
		-webkit-hyphens: auto;
		-moz-hyphens: auto;
		-ms-hyphens: auto;
	}
	
	.noline-break {
		hyphens: none;
		-webkit-hyphens: none;
		-moz-hyphens: none;
		-ms-hyphens: none;
		white-space: nowrap;
	}
	
	.col-text.text-align-center,
	.col-text-2.text-align-center {
		align-items: center;
	}
	
	/* WP Forms & General Forms */
	::placeholder {
		opacity: 1;
		color: var(--dna-color-black);
	}
	
	.wpcf7 form.wpcf7-form span {
		margin: 0;
	}
	
	.wpcf7-spinner {
		display: none;
	}
	
	/* FOOTER */
	#footer .flex-column-row {
		gap: 4rem;
	}
	
	#footer .footer-info {
		margin-top: 4rem;
		display: flex;
		align-items: baseline;
		flex-wrap: wrap;
		/* Per coerenza, uso i selettori uniti */
		line-height: 1.8; 
	}
	
	#footer .footer-info p,
	#footer .footer-info a { /* Aggiunto 'a' per coerenza con noline-break */
		hyphens: none;
		-webkit-hyphens: none;
		-moz-hyphens: none;
		-ms-hyphens: none;
		white-space: nowrap;
	}
	
	#footer .email-row {
		border-bottom: var(--dna-border-width) solid var(--dna-color-black);
		padding-bottom: 1.5rem;
	}
	
	#footer input[type=email] {
		font-size: 1.6rem;
	}
	
	#footer input[type=email]::placeholder {
		font-size: 1.1rem;
	}
	
	#footer .checkbox-row {
		margin-top: 1.5rem;
		display: flex;
		align-items: baseline;
		gap: 3rem;
	}
	
	#footer .wpcf7-checkbox {
		display: flex;
		align-items: baseline;
		gap: 3rem;
	}
	
	#footer .wpcf7-list-item-label:before,
	#footer .wpcf7-list-item-label:after {
		display: none;
	}
	
	#footer .wpcf7-checkbox label,
	.privacy-row label {
		display: flex;
		align-items: baseline;
		gap: 1rem;
	}
	
	#footer .wpcf7-checkbox label span,
	.privacy-row label span {
		width: calc(100% - 2rem);
	}
	
	#footer input[type=checkbox] {
		width: 1rem;
		height: 1rem;
		border: 0.1rem solid var(--dna-color-black);
	}
	
	#footer input[type=checkbox]:checked {
		background: var(--dna-color-black);
	}
	
	#footer .privacy-row {
		margin-top: 1.5rem;
	}
	
	#footer .submit-row {
		margin-top: 1.5rem;
	}
	
	#footer #languages-menu {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 1.5rem;
	}
	
	/* HEADER */
	#header {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 1rem;
		background: var(--dna-color-cream);
		z-index: 99999;
		transition: var(--dna-transition-timing-x2) var(--dna-transition-easing);
	}
	
	.scrolled.scroll-down #header {
		top: -15rem;
		opacity: 0;
	}
	
	.opened-nav.scrolled.scroll-down #header,
	.opened-bio.scrolled.scroll-down #header {
		top: 0;
		opacity: 1;
	}
	
	#header .logo {
		display: block;
		padding: 0 var(--dna-spacer-20);
		position: relative;
		z-index: 99999;
	}
	
	#header .logo svg {
		height: 1.3rem;
		width: 100%;
	}
	
	#header #open-header-menu {
		height: 5rem;
		padding: 0 var(--dna-spacer-20);
		display: flex;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		position: relative;
		z-index: 99999;
	}
	
	#header #open-header-menu div {
		height: 0.2rem;
		width: 2.5rem;
		background: var(--dna-color-black);
		border-radius: 999rem;
		transition: var(--dna-transition-timing) var(--dna-transition-easing);
	}
	
	#header #open-header-menu div:before,
	#header #open-header-menu div:after {
		content: '';
		display: block;
		height: 100%;
		width: 100%;
		background: var(--dna-color-black);
		border-radius: 999rem;
		position: absolute;
		transition: var(--dna-transition-timing) var(--dna-transition-easing);
	}
	
	#header #open-header-menu div:before {
		top: 50%;
		margin-top: -0.8rem;
	}
	
	#header #open-header-menu div:after {
		bottom: 50%;
		margin-bottom: -0.8rem;
	}
	
	.opened-nav #header #open-header-menu div {
		transform: rotate(45deg);
	}
	
	.opened-nav #header #open-header-menu div:before {
		top: 50%;
		margin-top: 0;
		opacity: 0;
	}
	
	.opened-nav #header #open-header-menu div:after {
		bottom: 0;
		margin-bottom: 0;
		transform: rotate(90deg);
	}
	
	#header #main-menu-container {
		display: none;
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
		height: 100svh;
		background: var(--dna-color-cream);
		padding: 10rem var(--dna-spacer-20);
	}
	
	#header #main-menu {
		display: flex;
		flex-direction: column;
		gap: 2rem;
		opacity: 0;
		transition: var(--dna-transition-timing) var(--dna-transition-easing);
	}
	
	/* MAIN CONTENT */
	main {
		padding-top: 5rem;
		min-height: calc(100svh - 5rem);
	}
	
	main.no-padding-top {
		padding-top: 0;
		min-height: 100svh;
	}
	
	.opened-nav #header #main-menu {
		opacity: 1;
	}
	
	/* BANNERS / BACKGROUNDS */
	.full-screen-banner {
		width: 100%;
		height: 100svh;
	}
	
	.first-full-screen-banner {
		height: calc(100svh - 5rem);
		min-height: 50rem;
	}
	
	.background {
		width: 100%;
		height: 100%;
	}
	
	.background picture {
		width: 100%;
		height: 100%;
	}
	
	.background img,
	.background video {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center center;
	}
	
	.content-hover-center-bottom {
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: var(--dna-spacer-20);
	}
	
	.content-hover-center-bottom > div {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		text-align: center;
		gap: var(--dna-spacer-30);
		padding: var(--dna-spacer-30) var(--dna-spacer-20);
	}
	
	.flex-column-row-4-5 {
		padding: 0 var(--dna-spacer-20);
		display: flex;
		flex-direction: column;
		gap: 6rem;
	}
	
	.col-text {
		display: flex;
		flex-direction: column;
		gap: 2rem;
	}
	
	.col-text-2 {
		display: flex;
		flex-direction: column;
		gap: 1rem;
	}
	
	/* ANIMATED IMAGES */
	.two-image-animated {
		position: relative;
	}
	
	.two-image-animated div:first-child {
		position: relative;
		width: 40%;
		z-index: 9;
		opacity: 0;
		transition: var(--dna-transition-timing-x6) var(--dna-transition-easing);
	}
	
	.two-image-animated div:last-child {
		position: absolute;
		width: 40%;
		top: 50%;
		left: 35%;
		transform: translateY(-50%);
		opacity: 0;
		transition: var(--dna-transition-timing-x6) var(--dna-transition-easing);
		transition-delay: var(--dna-transition-timing);
	}
	
	.content-hover-center-center {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: var(--dna-spacer-20);
	}
	
	/* HOME SECTIONS */
	.home-knitwear-archive {
		padding: 0 var(--dna-spacer-20);
	}
	
	.gallery-knitwear-archive .swiper-wrapper {
		transition-timing-function: linear !important
	}
	
	.project-preview > div {
		display: flex;
		padding-bottom: 1rem;
	}
	
	.project-preview > div span {
		width: 50%;
	}
	
	.project-preview picture img {
		aspect-ratio: 41 / 52;
		width: 100%;
		object-fit: cover;
		object-position: center center;
	}
	
	.home-talent-garden .flex-center {
		padding: var(--dna-spacer-30) var(--dna-spacer-20) 0;
	}
	
	.home-contacts {
		padding: 0 var(--dna-spacer-20);
	}
	
	/* FORM STYLING (WPCF7) */
	.form-container ::placeholder {
		font-size: 1.3rem;
	}
	
	.form-container .form-row br {
		display: none;
	}
	
	.form-container .form-row span {
		width: 100%;
	}
	
	.form-container input[type=text],
	.form-container input[type=email],
	.form-container input[type=tel] {
		font-size: 1.6rem;
		line-height: 1;
		border-bottom: var(--dna-border-width) solid var(--dna-color-black);
		padding: 0 0 1rem;
		margin: 0 0 2rem;
		width: 100%;
	}
	
	.form-container textarea {
		font-size: 1.6rem;
		line-height: 1.2;
		border-bottom: var(--dna-border-width) solid var(--dna-color-black);
		padding: 0 0 1rem;
		margin: 0 0 1rem;
		width: 100%;
	}
	
	.form-container.checkbox-row {
		margin-top: 1.5rem;
		display: flex;
		align-items: baseline;
		gap: 3rem;
	}
	
	.form-container .wpcf7-checkbox {
		display: flex;
		align-items: baseline;
		gap: 3rem;
	}
	
	.form-container .wpcf7-list-item-label:before,
	.form-container .wpcf7-list-item-label:after {
		display: none;
	}
	
	.form-container .wpcf7-checkbox label,
	.privacy-row label { /* Selettore condiviso per la label */
		display: flex;
		align-items: baseline;
		gap: 1rem;
	}
	
	.form-container .wpcf7-checkbox label span,
	.privacy-row label span { /* Selettore condiviso per lo span interno */
		width: calc(100% - 2rem);
	}
	
	.form-container input[type=checkbox] {
		width: 1rem;
		height: 1rem;
		border: 0.1rem solid var(--dna-color-black);
	}
	
	.form-container input[type=checkbox]:checked {
		background: var(--dna-color-black);
	}
	
	.form-container .privacy-row {
		text-align: left;
		margin-top: 1.5rem;
	}
	
	.form-container .submit-row {
		margin-top: 2rem;
		text-align: left;
		padding-bottom: .1rem;
	}
	
	.form-container .form-date {
		font-size: 1.3rem;
		line-height: 1;
		border-bottom: var(--dna-border-width) solid var(--dna-color-black);
		padding: 0 0 1rem;
		margin: 0 0 2rem;
		width: 100%;
		display: flex;
		gap: 1rem;
		align-items: baseline;
		justify-content: space-between;
	}
	
	.form-container .form-date input {
		font-size: 1.3rem;
	}
	
	.form-container #file-upload {
		display: none;
	}
	
	.form-container .form-row-file {
		border-bottom: var(--dna-border-width) solid var(--dna-color-black);
		padding: 2rem 0 3rem;
		margin: 0 0 2rem;
		width: 100%;
		display: flex;
		gap: 1rem;
		align-items: baseline;
		justify-content: space-between;
	}
	
	/* IMAGE UTILITIES */
	.home-contacts .max-width-60-m {
		margin: 0 auto;
	}
	
	img.min-height,
	video.min-height {
		min-height: 47rem;
		object-fit: cover;
		object-position: center center;
	}
	
	img.max-height,
	video.max-height {
		max-height: 80svh;
		object-fit: cover;
		object-position: center center;
	}
	
	/* GALLERIES */
	.gallery-about-us {
		padding-left: var(--dna-spacer-20);
	}
	
	.gallery-about-us img,
	.gallery-about-us video {
		aspect-ratio: 4 / 5;
		object-fit: cover;
		object-position: center center;
	}
	
	/* TEXT BLOCKS / ANIMATIONS */
	.text-blocks {
		padding: 0 var(--dna-spacer-20);
		display: flex;
		flex-direction: column;
		gap: var(--dna-spacer-30);
	}
	
	.text-blocks.numbers {
		gap: calc(var(--dna-spacer-30) * 2);
	}
	
	.text-blocks > div {
		position: relative;
		width: 100%;
		max-width: 29rem;
		display: flex;
		flex-direction: column;
		gap: var(--dna-spacer-20);
		padding-bottom: var(--dna-spacer-30);
		/* border-bottom: var(--dna-border-width) solid var(--dna-color-white); */
		border-bottom: var(--dna-border-width) solid transparent;
		margin: 0 auto;
	}
	
	.text-blocks.numbers > div {
		padding-bottom: calc(var(--dna-spacer-30) * 2);
	}
	
	.text-blocks > div:last-child {
		padding-bottom: 0;
		border-bottom: none;
	}
	
	.text-blocks > div:after {
		content: '';
		width: 0;
		height: var(--dna-border-width);
		display: block;
		background: var(--dna-color-white);
		position: absolute;
		left: 0;
		bottom: 0;
		transition: var(--dna-transition-timing-x2) var(--dna-transition-easing);
	}
	
	.text-blocks > div.animation-after:after {
		width: 100%;
	}
	
	.text-blocks > div:last-child:after {
		display: none;
	}
	
	.max-width-70 {
		max-width: 70rem;
	}
	
	.animation-number {
		display: inline-block;
	}
	
	/* MILESTONES */
	.milestone .hide {
		display: none;
	}
	
	.milestone > div:first-child {
		padding: calc(var(--dna-spacer-30) * 2) 0 var(--dna-spacer-30);
	}
	
	.milestone > div:last-child {
		padding: var(--dna-spacer-30) var(--dna-spacer-20);
		position: relative;
	}
	
	.milestone > div:last-child:before {
		content: '';
		display: block;
		width: 100%;
		height: calc(var(--dna-border-width) * 2);
		position: absolute;
		left: 0;
		top: 0;
		background: var(--dna-color-black);
	}
	
	.milestone > div:last-child:after {
		content: '';
		display: block;
		width: calc(var(--dna-border-width) * 2);
		height: 100%;
		position: absolute;
		left: 0;
		top: 0;
		background: var(--dna-color-black);
	}
	
	.color-white .milestone > div:last-child:before,
	.color-white .milestone > div:last-child:after {
		background: var(--dna-color-white);
	}
	
	.margin-0-auto {
		margin: 0 auto;
	}
	
	/* ACCORDION */
	.accordion {
		padding-bottom: var(--dna-spacer-30);
	}
	
	.accordion-btn {
		display: flex;
		justify-content: space-between;
		gap: 3rem;
		padding-top: var(--dna-spacer-30);
		border-top: var(--dna-border-width) solid var(--dna-color-black);
		cursor: pointer;
		transition: var(--dna-transition-timing) var(--dna-transition-easing);
	}
	
	.accordion-btn:hover {
		color: var(--dna-color-grey-hover);
	}
	
	.accordion-content {
		padding-top: var(--dna-spacer-30);
		display: none;
	}
	
	.accordion-content p {
		max-width: 25rem;
	}
	
	.page-template-dna-responsability .accordion-content p {
		max-width: none;
	}
	
	.active .accordion-content {
		display: block;
	}
	
	.accordion-links {
		display: flex;
		flex-direction: column;
		gap: calc(var(--dna-spacer-20) / 2);
		align-items: flex-start;
		justify-content: flex-start;
	}
	
	/* PROJECTS */
	.hide-mobile {
		display: none;
	}
	
	.projects-list .project-preview {
		width: calc(50% - 0.5rem);
	}
	
	.first-projects-row,
	.projects-block,
	.last-projects-row {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: var(--dna-spacer-30) 0;
	}
	
	.projects-row .image {
		margin: var(--dna-spacer-30) 0;
		max-height: 90svh;
		overflow: hidden;
	}
	
	.projects-row .image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center center;
	}
	
	.last-projects-row {
		padding-top: var(--dna-spacer-30);
	}
	
	/* CONTACTS */
	.contacts-section {
		padding: 0 var(--dna-spacer-20);
		display: flex;
		flex-direction: column;
		gap: 9rem;
	}
	
	.contacts-section > div:first-child {
		height: 55svh;
		min-height: 35rem;
		overflow: hidden;
	}
	
	.contacts-section > div:first-child iframe {
		height: calc(100% + 2rem);
	}
	
	.contacts-section-column {
		display: flex;
		flex-direction: column;
		gap: 1rem;
	}
	
	/* STORIES */
	.stories-list {
		padding: 0 var(--dna-spacer-20);
		display: flex;
		flex-wrap: wrap;
		gap: calc(var(--dna-spacer-20) * 2) var(--dna-spacer-20);
		max-width: var(--dna-max-width);
		margin: 0 auto;
	}
	
	.story-preview {
		display: flex;
		flex-direction: column;
		gap: 1.5rem;
		line-height: inherit;
	}
	
	.story-preview picture {
		aspect-ratio: 4 / 5;
		overflow: hidden;
	}
	
	.story-preview img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center center;
		transition: var(--dna-transition-timing-x4) var(--dna-transition-easing);
	}
	
	.story-preview:hover {
		color: inherit;
	}
	
	.story-preview:hover img {
		scale: 1.02;
	}
	
	.story-preview:hover .btn {
		color: var(--dna-color-white);
		background: var(--dna-color-black);
	}
	
	/* POST CONTENT */
	.post-container,
	.post-intro {
		max-width: var(--dna-max-width);
		margin: 0 auto;
		padding: 0 var(--dna-spacer-20);
	}
	
	.content {
		margin: 0 auto;
	}
	
	.content p {
		text-align: justify;
		padding-bottom: var(--dna-spacer-30);
	}
	
	.content p:last-child {
		padding-bottom: 0;
	}
	
	.content p strong {
		font-weight: 700; /* Uso del valore numerico */
	}
	
	.content p a {
		text-decoration: underline 0.1rem;
	}
	
	#footer .flex-column-row > div:nth-child(2) ul,
	#footer .flex-column-row > div:nth-child(3) ul,
	#footer .footer-info {
		line-height: 1.8;
	}
	
	/* TIMELINE GALLERY */
	.timeline-gallery .swiper-wrapper {
		align-items: stretch;
	}
	
	.timeline-gallery .swiper-wrapper .swiper-slide {
		height: auto;
	}
	
	.gallery-arrows {
		width: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 1.5rem;
	}
	
	.gallery-arrow {
		height: 2rem;
		cursor: pointer;
	}
	
	.gallery-arrow svg {
		display: block;
		height: 100%;
		width: auto;
		fill: var(--dna-color-black);
		transition: var(--dna-transition-timing) var(--dna-transition-easing);
	}
	
	.gallery-arrow:hover svg {
		fill: var(--dna-color-grey-hover);
	}
	
	.gallery-arrow-prev {
		transform: rotate(180deg);
	}
	
	.form-container .form-row {
		position: relative;
	}
	
	.wpcf7-not-valid-tip {
		white-space: nowrap;
		font-size: 1rem;
		position: absolute;
		bottom: -1.4rem;
		pointer-events: none;
	}
	
	.main-banner-hide-mobile {
		display: none !important;
	}
	
	.no-postcards-animation img {
		max-height: 70vh;
		width: auto;
		max-width: 100%;
		margin: 0 auto;
	}
	
	.single-post main iframe {
		aspect-ratio: 16 / 9;
	}
	
	.single-post main img {
		object-fit: contain;
		max-height: 70vh;
	}
	
	.media-credits {
		font-size: 10px;
		padding-top: 2px;
	}
	
	
	
	
	
	
	
	
	
	#custom-lang-menu {
		margin-top: 2rem;
	}
	.custom-lang-switcher {
		position: relative;
		display: inline-block;
		font-family: inherit;
	}
	.custom-lang-switcher__toggle {
		display: flex;
		align-items: center;
		gap: 0.5rem;
		background: transparent;
		border: none;
		padding: 0;
		cursor: pointer;
		font-size: 1.5rem;
		border-radius: 0;
		color: var(--dna-color-black);
		transition: var(--dna-transition-timing) var(--dna-transition-easing);
	}
	.custom-lang-switcher__toggle:hover,
	.custom-lang-switcher__toggle:focus {
		color: var(--dna-color-grey-hover);
	}
	.custom-lang-switcher__icon {
		transition: var(--dna-transition-timing) var(--dna-transition-easing);
	}
	.custom-lang-switcher__icon svg {
		transform: rotate(90deg);
		width: 0.4em;
		margin-top: 0.05em;
		transition: var(--dna-transition-timing) var(--dna-transition-easing);
	}
	.custom-lang-switcher__toggle:hover .custom-lang-switcher__icon svg,
	.custom-lang-switcher__toggle:focus .custom-lang-switcher__icon svg {
		fill: var(--dna-color-grey-hover);
	}
	.custom-lang-switcher__toggle[aria-expanded="true"] .custom-lang-switcher__icon {
		transform: rotate(180deg);
	}
	.custom-lang-switcher__list {
		position: absolute;
		top: 100%;
		left: 0;
		margin: 2rem 0 0 0;
		padding: 0;
		list-style: none;
		display: flex;
		flex-direction: column;
		min-width: 100%;
		gap: 2rem;
		line-height: 1;
		font-size: 1.5rem;
	}
	.custom-lang-switcher__list[hidden] {
		display: none;
	}
	.custom-lang-switcher__link {
		display: block;
	}
	
	
	.page-template-dna-time #s8 img {
		object-position: center top;
	}


/*--------------------------------------------------- Min-width: 600px */
@media only screen and (min-width: 600px) {
	
	/* TYPOGRAPHY (già impostato sul body/h1-h7) */
	/* body, h1, h2, h3, h4, h5, h6, h7 sono ridondanti qui.
	Li rimuovo per pulizia, il risultato non cambia.
	*/
	
	#header .logo svg {
		height: 1.4rem;
	}
	
	.size-h1 {
		font-size: 2.8rem;
		line-height: 3.82rem;
	}
	
	.size-h2 {
		font-size: 1.8rem;
		line-height: 2.19rem;
	}
	
	.size-h3 {
		font-size: 1.2rem;
		line-height: 1.64rem;
	}
	
	.projects-list .project-preview {
		width: calc(50% - 1rem);
	}
	
	.contacts-section-column {
		flex-direction: row;
		gap: 0;
		justify-content: space-between;
	}
	
	.contacts-section-column p {
		width: calc(50% - 1rem);
	}
	
	.story-preview {
		width: calc(50% - var(--dna-spacer-20) / 2);
	}
	
}



/*--------------------------------------------------- Min-width: 768px */
@media only screen and (min-width: 768px) {
	
	.projects-list .project-preview {
		width: calc(33.33333% - 2rem);
	}
	
	.first-projects-row,
	.projects-block,
	.last-projects-row {
		gap: calc(var(--dna-spacer-30) * 2) 0;
	}
	
	.projects-row .image {
		margin: calc(var(--dna-spacer-30) * 2) 0;
	}
	
	.last-projects-row {
		padding-top: calc(var(--dna-spacer-30) * 2);
	}
	
	.story-preview {
		width: calc(33.33333% - var(--dna-spacer-20) * 2 / 3);
	}
	
	.main-banner-hide-mobile {
		display: block !important;
	}
	
	.main-banner-hide-desktop {
		display: none !important;
	}
	
}



/*--------------------------------------------------- Min-width: 1000px */
@media only screen and (min-width: 1000px) {
	
	/* GRID COLUMNS (Desktop) */
	.col-1 {
		width: var(--dna-col-unit);
	}
	
	.col-2 {
		width: calc(var(--dna-col-unit) * 2);
	}
	
	.col-3 {
		width: calc(var(--dna-col-unit) * 3);
	}
	
	.col-4 {
		width: calc(var(--dna-col-unit) * 4);
	}
	
	.col-5 {
		width: calc(var(--dna-col-unit) * 5);
	}
	
	.col-6 {
		width: calc(var(--dna-col-unit) * 6);
	}
	
	.col-7 {
		width: calc(var(--dna-col-unit) * 7);
	}
	
	.col-8 {
		width: calc(var(--dna-col-unit) * 8);
	}
	
	.col-9 {
		width: calc(var(--dna-col-unit) * 9);
	}
	
	.col-10 {
		width: calc(var(--dna-col-unit) * 10);
	}
	
	.col-11 {
		width: calc(var(--dna-col-unit) * 11);
	}
	
	.col-12 {
		width: 100%;
	}
	
	.margin-left-col-1 {
		margin-left: var(--dna-col-unit);
	}
	
	/* LAYOUT */
	.lateral-padding {
		padding: 0 var(--dna-spacer-30);
		transform: none; /* Rimuovo l'accelerazione GPU qui se è stata aggiunta per il mobile */
	}
	
	.flex-column-row {
		flex-direction: row;
	}
	
	main.no-padding-top-desktop {
		padding-top: 0;
		min-height: 100svh;
	}
	
	#footer .footer-info {
		position: absolute;
		left: 0;
		bottom: 0;
		margin: 0;
		line-height: 1.4; /* Sovrascritto dal valore più specifico in questa media query */
	}
	
	/* HEADER */
	#header {
		height: 5rem;
	}
	
	#header .logo {
		padding: 0 var(--dna-spacer-30);
	}
	
	#header #open-header-menu {
		display: none;
	}
	
	#header #main-menu-container {
		display: flex !important;
		position: static;
		height: auto;
		width: fit-content;
		background: transparent;
		padding: 0 var(--dna-spacer-30);
		gap: 1.7rem;
	}
	
	#header #main-menu {
		opacity: 1;
		flex-direction: row;
		gap: 1.7rem;
	}
	
	#custom-lang-menu {
		margin: 0;
	}
	
	.custom-lang-switcher__toggle {
		font-size: 1.1rem;
	}
	
	.custom-lang-switcher__list {
		top: 100%;
		left: -5px;
		padding: 0 5px 5px;
		margin: 1rem 0 0 0;
		font-size: 1.1rem;
		background: var(--dna-color-cream);
		gap: 1rem;
	}
	
	.custom-lang-switcher__toggle[aria-expanded="true"] .custom-lang-switcher__icon {
		transform: rotate(180deg);
	}
	
	/* CONTENT */
	.content-hover-center-bottom > div {
		padding: calc(var(--dna-spacer-30) * 2) var(--dna-spacer-20);
	}
	
	.page-template-dna-home #s1 .content-hover-center-bottom > div {
		text-shadow: 0 0 15px #fff;
	}
	
	.flex-column-row-4-5 {
		flex-direction: row;
		justify-content: flex-start;
		align-items: center;
		gap: 0;
	}
	
	.flex-column-row-4-5.inverse {
		flex-direction: row-reverse;
	}
	
	.flex-column-row-4-5 > div:first-child {
		margin: 0 var(--dna-col-unit);
	}
	
	.col-text {
		gap: 3rem;
	}
	
	.col-text-2 {
		gap: 1.5rem;
	}
	
	.home-talent-garden .flex-center {
		position: absolute;
		color: var(--dna-color-white);
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		padding: 0 var(--dna-spacer-20);
	}
	
	.form-container .form-row,
	.form-container .form-row p {
		display: flex;
		gap: 2rem;
	}
	
	.gallery-about-us {
		padding: 0 var(--dna-spacer-30);
		margin: 0 auto;
	}
	
	/* MILESTONES / TIMELINE */
	.timeline {
		display: flex;
	}
	
	.milestone .hide {
		display: block;
	}
	
	.milestone > div:first-child {
		padding-bottom: var(--dna-spacer-30);
	}
	
	.milestone > div:last-child {
		height: 100%;
		padding: var(--dna-spacer-30);
		position: static;
	}
	
	.milestone > div:last-child:before {
		top: 11.2rem;
	}
	
	.milestone > div:last-child:after {
		height: calc(100% - 11.2rem);
		top: 11.2rem;
	}
	
	.hide-mobile {
		display: block;
	}
	
	.hide-desktop {
		display: none;
	}
	
	.contacts-section {
		flex-direction: row;
		gap: 0;
		justify-content: space-between;
		padding: 0 var(--dna-spacer-30);
	}
	
	.contacts-section > div {
		width: calc(50% - 1.5rem);
	}
	
	.contacts-section > div:first-child {
		height: auto;
		min-height: 0;
	}
	
	.stories-list {
		padding: 0 var(--dna-spacer-30);
		gap: calc(var(--dna-spacer-30) * 2) var(--dna-spacer-30);
	}
	
	.story-preview {
		width: calc(33.33333% - var(--dna-spacer-30) * 2 / 3);
	}
	
	.post-container,
	.post-intro {
		padding: 0 var(--dna-spacer-30);
	}
	
	.align-items-start {
		align-items: flex-start;
	}
	
	.align-items-start .col-text {
		position: sticky;
		top: var(--dna-spacer-30);
	}
	
	#footer .flex-column-row > div:first-child p,
	#footer .flex-column-row > div:nth-child(2) ul,
	#footer .flex-column-row > div:nth-child(3) ul {
		line-height: 1.6;
	}
	
	.timeline {
		padding-left: var(--dna-spacer-30);
	}
	
	.home-contacts .max-width-60-m {
		min-width: 63rem;
	}
	
	.wpcf7-not-valid-tip {
		bottom: 1.8rem;
	}
	
	.page-template-dna-about-us .no-postcards-animation img {
		max-height: 500px;
		margin: 0 auto 0 0;
	}
	
	.btn-white-desktop {
		color: var(--dna-color-white);
		border: var(--dna-border-width) solid var(--dna-color-white);
	}
	
	.btn-white-desktop:hover,
	.btn-white-desktop.actual {
		color: var(--dna-color-black);
		background: var(--dna-color-white);
	}
	
}


/*--------------------------------------------------- Min-width: 1280px */
@media only screen and (min-width: 1280px) {
	
	.animation-sticky-desktop {
		position: sticky;
		top: 0;
	}

	.text-blocks {
		padding: 0 var(--dna-spacer-30);
		flex-direction: row;
		gap: 0;
		justify-content: center;
	}
	
	.text-blocks.numbers {
		gap: 0;
	}
	
	.text-blocks > div {
		max-width: 33rem;
		gap: var(--dna-spacer-30);
		padding-bottom: 0;
		border-bottom: none;
		margin: 0;
		padding: 0 1rem;
		width: 25%;
		border-left: calc(var(--dna-border-width) / 2) solid transparent;
		border-right: calc(var(--dna-border-width) / 2) solid transparent;
	}
	
	.text-blocks.numbers > div {
		padding: calc(var(--dna-spacer-30) * 2) 1rem;
	}
	
	.text-blocks > div:first-child {
		border-left-color: transparent;
	}
	
	.text-blocks > div:last-child {
		border-right-color: transparent;
	}
	
	.text-blocks > div:after {
		width: var(--dna-border-width);
		height: 0;
		left: auto;
		bottom: auto;
		right: 0;
		top: 0;
	}
	
	.text-blocks > div.animation-after:after {
		width: var(--dna-border-width);
		height: 100%;
	}
	
	.text-blocks .size-h1 {
		height: 7.641rem;
	}
	
	.text-blocks.numbers .size-h1 {
		height: 11.4615rem;
	}
	
	.projects-list .project-preview {
		width: calc(16.66666% - 2.5rem);
	}
	
	.projects-row {
		display: flex;
		justify-content: space-between;
		padding-top: calc(var(--dna-spacer-30) * 2);
	}
	
	.projects-row .image {
		width: calc(50% - 1.5rem);
		margin: 0;
		max-height: none;
		position: relative;
	}
	
	.projects-row .image img {
		position: absolute;
		left: 0;
		top: 0;
	}
	
	.projects-block {
		width: calc(50% - 1.5rem);
	}
	
	.projects-list .projects-block .project-preview {
		width: calc(33.33333% - 2rem);
	}
	
	#header #main-menu-container {
		gap: 3rem;
	}
	
	#header #main-menu {
		gap: 3rem;
	}

}

/*--------------------------------------------------- Max-width: 999px */
@media only screen and (max-width: 999px) {
	
	.max-width-60-m {
		max-width: 60rem;
		margin: 0 auto;
	}
	
	#header #main-menu {
		font-size: 1.5rem
	}
	
	.align-left-mobile {
		text-align: left !important;
		width: 100% !important;
	}
	
}

@media ((min-aspect-ratio: 2/1) and (max-aspect-ratio: 5/2)) and (max-height: 800px) {
	.page-template-dna-home #s1 .content-hover-center-bottom > div {
		padding-bottom: clamp(0.1rem, calc(0.1rem +0.3vh), calc(var(--dna-spacer-30) * 2));
		gap: clamp(2rem, calc(2rem + 0.3vh), 3rem);
	}
}


/*--------------------------------------------------- Touch */
@media (hover: none) and (pointer: coarse) {
	
	:root {
		--dna-border-width: 0.1rem;
	}

}