/*
Theme Name: 	HTML5 Blank
Theme URI: 	http://html5blank.com
Description: 	HTML5 Blank WordPress Theme
Version: 	1.2.6
Author: 	Todd Motto (@toddmotto)
Author URI: 	http://www.toddmotto.com
Tags: 		Blank, HTML5, CSS3

License:	MIT
License URI:	http://opensource.org/licenses/mit-license.php
*/

/* =============================================================================
   HTML5 Reset
   ========================================================================== */

	article, aside, details, figcaption, figure, footer, header, hgroup, nav, section {display:block;}
	audio, canvas, video {display:inline-block;*display:inline;*zoom:1;}
	audio:not([controls]) {display:none;}
	[hidden] {display:none;}

	html {font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;overflow-x:hidden;}
	body {margin:0;font-size:1em;line-height:1;}
	p {margin:0;padding:0;}

	h1,h2,h3,h4,h5,h6 {text-decoration:none;padding:0;margin:0;}

	a {text-decoration:none;color:inherit;}
	a:focus {outline:0;}
	a:hover, a:active {outline:0;}

	abbr[title] {border-bottom:1px dotted;}
	b, strong {font-weight:bold;}
	.clear {clear:both;}
	dfn {font-style:italic;}
	hr {display:block;height:1px;border:0;border-top:1px solid #333;margin:1em 0;padding:0;}
	ins {background:#FF9;color:#000;text-decoration:none;}
	mark {background:#FF0;color:#000;font-style:italic;font-weight:bold;}
	pre, code, kbd, samp {font-family:monospace,serif;font-size:1em;}
	pre {white-space:pre;white-space:pre-wrap;word-wrap:break-word;}
	q {quotes:none;}
	q:before, q:after {content:"";content:none;}
	small {font-size:90%;}
	blockquote {background-color:#111;border:1px solid #333;margin:10px 0;padding:10px 30px;border-radius:3px;}

	sub, sup {font-size:75%;line-height:0;position:relative;vertical-align:baseline;}
	sup {top:-0.5em;}
	sub {bottom:-0.25em;}

	ul {margin:0;padding:0;list-style:none;}
	ol {margin:15px;}

	dd {margin:0 0 0 40px;}
	nav ul, nav ol {list-style:none;list-style-image:none;margin:0;padding:0;}

	img {border:0;vertical-align:middle;max-width:100%;display:block;}

	svg:not(:root) {overflow:hidden;}

	figure {margin:0;}
	form {margin:0;}
	fieldset {border:0;margin:0;padding:0;}
	label {cursor:pointer;}
	button, input, select, textarea {font-size:100%;margin:0;vertical-align:baseline;}
	button, input {line-height:normal;}
	button, input[type="button"], input[type="reset"], input[type="submit"] {cursor:pointer;-webkit-appearance:none;}
	textarea {overflow:auto;vertical-align:top;resize:vertical;}

	table {border-collapse:collapse;border-spacing:0;}
	td {vertical-align:top;}

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

/* =============================================================================
   Variables
   ========================================================================== */

	:root {
		--color-bg:            #0a0a0a;
		--color-bg-dark:       #050505;
		--color-white:         #ffffff;
		--color-gray:          #aaaaaa;
		--color-gray-dark:     #1a1a1a;
		--color-gray-mid:      #2a2a2a;
		--color-accent-blue:   #3a3aff;
		--color-accent-purple: #7b2fff;
		--color-accent-magenta:#e91e7a;
		--color-accent-red:    #ff1744;
		--color-accent-pink:   #ff3877;
		--font-display:        'Avenir Next', 'Avenir', 'Nunito', sans-serif;
		--font-heading:        'Avenir Next', 'Avenir', 'Nunito', sans-serif;
		--font-body:           'Avenir Next', 'Avenir', 'Nunito', sans-serif;
		--max-width:           1200px;
		--header-height:       60px;
	}

/* =============================================================================
   Base
   ========================================================================== */

	html {
		scroll-behavior: smooth;
	}

	body {
		font-family: var(--font-body);
		font-size: 1.1rem;
		font-weight: 500;
		line-height: 1.6;
		background: var(--color-bg);
		color: var(--color-white);
		overflow-x: hidden;
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
	}
	h2 {
		font-size: 2rem;
		line-height: 1.2;
		margin-bottom: 20px;
		margin-top: 20px;
	}
	.h2-centre, .single-title {
		text-align: center;
		text-transform: uppercase;
		letter-spacing: 15px;
	}
/* =============================================================================
   Layout
   ========================================================================== */

	.container {
		max-width: var(--max-width);
		margin: 0 auto;
	}

	/* Offset for fixed header — outer page shell */
	.page-body {
		padding-top: 0;
	}

	/* Reusable content wrapper — max-width + vertical breathing room */
	.wrapper {
		max-width: var(--max-width);
		margin: 0 auto;
	}
	.content-padding {
		padding-top: 100px;
		padding-bottom: 100px;
	}
	.content-padding-s {
		padding-top: 50px;
		padding: 50px;
	}
	.rounded, .rounded img {
		border-radius: 10px;
	}
	
/* =============================================================================
   Header
   ========================================================================== */

	.header {
		position: fixed;
		top: 10px;
		left: 0;
		width: 100%;
		z-index: 999999;
	}
	.header .wrapper {
		background: rgba(0, 0, 0, 0.85);
		backdrop-filter: blur(20px);
		-webkit-backdrop-filter: blur(20px);
		height: var(--header-height);
		transition: background 0.3s;
		border: 1px solid rgba(170, 170, 170, 0.1);
		border-radius: 10px;
	}
	.header .container {
		display: flex;
		align-items: center;
		justify-content: space-between;
		height: 100%;
	}

	/* Logo */
	.logo {
		max-width: 106px;
		border-radius: 10px;
	}
	.logo img {
		border-radius: 10px;
	}

	/* Nav — desktop */
	.nav {
		display: flex;
		align-items: center;
	}

	.nav ul {
		display: flex;
		align-items: center;
		gap: 28px;
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.nav ul li { position: relative; }

	.nav ul li a {
		font-size: 0.79rem;
		font-weight: 500;
		letter-spacing: 1.5px;
		text-transform: uppercase;
		color: var(--color-gray);
		transition: color 0.3s;
		position: relative;
	}

	.nav ul li a:hover,
	.nav ul li.current-menu-item > a {
		color: var(--color-white);
	}

	.nav ul li.current-menu-item > a {
		background: linear-gradient(90deg, var(--color-accent-blue), var(--color-accent-magenta));
		padding: 4px 16px;
		border-radius: 20px;
		display: inline-block;
		font-weight: 700;
	}

	.nav ul li.current-menu-item > a::after {
		content: '';
		display: none;
	}

	/* Dropdown indicator */
	.nav ul li.menu-item-has-children > a::after {
		content: '';
		display: inline-block;
		width: 5px;
		height: 5px;
		border-right: 1px solid currentColor;
		border-bottom: 1px solid currentColor;
		transform: rotate(45deg) translateY(-2px);
		margin-left: 6px;
		vertical-align: middle;
		transition: transform 0.25s;
	}

	.nav ul li.menu-item-has-children:hover > a::after {
		transform: rotate(-135deg) translateY(-2px);
	}

	/* Sub-menu — desktop dropdown */
	.nav .sub-menu {
		display: flex;
		flex-direction: column;
		gap: 0;
		position: absolute;
		top: calc(100% + 14px);
		left: 50%;
		transform: translateX(-50%);
		min-width: 180px;
		background: rgba(10, 10, 10, 0.96);
		backdrop-filter: blur(20px);
		-webkit-backdrop-filter: blur(20px);
		border: 1px solid rgba(255, 255, 255, 0.08);
		border-radius: 4px;
		padding: 8px 0;
		opacity: 0;
		pointer-events: none;
		transform: translateX(-50%) translateY(6px);
		transition: opacity 0.25s, transform 0.25s;
	}

	.nav ul li:hover > .sub-menu {
		opacity: 1;
		pointer-events: all;
		transform: translateX(-50%) translateY(0);
	}

	.nav .sub-menu li {
		width: 100%;
		text-align: center;
	}

	.nav .sub-menu li a {
		display: block;
		padding: 10px 20px;
		font-size: 0.71rem;
		letter-spacing: 1.2px;
		color: var(--color-gray);
		white-space: nowrap;
		transition: color 0.2s, background 0.2s;
	}

	.nav .sub-menu li a:hover {
		color: var(--color-white);
		background: rgba(255, 255, 255, 0.04);
	}

	/* Connettore invisibile per non perdere il hover tra link e dropdown */
	.nav ul li.menu-item-has-children::after {
		content: '';
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		height: 14px;
	}

	/* Mobile sub-menu — stacked sotto il parent */
	.nav-mobile .sub-menu {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 0;
		margin-top: 4px;
		margin-bottom: 8px;
	}

	.nav-mobile .sub-menu li a {
		font-size: 1.14rem;
		letter-spacing: 2px;
		color: rgba(170, 170, 170, 0.7);
		padding: 6px 0;
	}

	.nav-mobile .sub-menu li a:hover {
		color: var(--color-white);
	}

	/* Hamburger button */
	.nav-toggle {
		display: none;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
		width: 32px;
		height: 32px;
		background: none;
		border: none;
		cursor: pointer;
		padding: 0;
		z-index: 1100;
	}

	.nav-toggle span {
		display: block;
		width: 22px;
		height: 1.5px;
		background: var(--color-white);
		border-radius: 2px;
		transition: transform 0.3s, opacity 0.3s, width 0.3s;
		transform-origin: center;
	}

	.nav-toggle.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
	.nav-toggle.open span:nth-child(2) { opacity: 0; width: 0; }
	.nav-toggle.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

	/* Mobile nav overlay */
	.nav-mobile {
		display: none;
		position: fixed;
		inset: 0;
		z-index: 1050;
		background: rgba(5, 5, 5, 0.97);
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 8px;
		opacity: 0;
		transition: opacity 0.3s;
		pointer-events: none;
	}

	.nav-mobile.open {
		display: flex;
		opacity: 1;
		pointer-events: all;
	}

	.nav-mobile ul {
		list-style: none;
		margin: 0;
		padding: 0;
		text-align: center;
	}

	.nav-mobile ul li { overflow: hidden; }

	.nav-mobile ul li a {
		display: block;
		font-size: 2.29rem;
		font-weight: 600;
		letter-spacing: 4px;
		text-transform: uppercase;
		color: var(--color-gray);
		padding: 12px 0;
		transition: color 0.3s;
		transform: translateY(100%);
		opacity: 0;
		transition: color 0.3s, transform 0.4s cubic-bezier(0.23, 1, 0.32, 1), opacity 0.4s;
	}

	.nav-mobile.open ul li a {
		transform: translateY(0);
		opacity: 1;
	}

	/* stagger */
	.nav-mobile.open ul li:nth-child(1) a { transition-delay: 0.05s; }
	.nav-mobile.open ul li:nth-child(2) a { transition-delay: 0.10s; }
	.nav-mobile.open ul li:nth-child(3) a { transition-delay: 0.15s; }
	.nav-mobile.open ul li:nth-child(4) a { transition-delay: 0.20s; }
	.nav-mobile.open ul li:nth-child(5) a { transition-delay: 0.25s; }
	.nav-mobile.open ul li:nth-child(6) a { transition-delay: 0.30s; }

	.nav-mobile ul li a:hover,
	.nav-mobile ul li.current-menu-item > a {
		color: var(--color-white);
	}

	.nav-mobile-social {
		display: flex;
		gap: 14px;
		margin-top: 32px;
	}

	.nav-mobile-social a {
		width: 34px;
		height: 34px;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 50%;
		border: 1px solid rgba(255, 255, 255, 0.2);
		color: var(--color-gray);
		transition: all 0.3s;
	}

	.nav-mobile-social a:hover {
		border-color: var(--color-accent-magenta);
		color: var(--color-white);
	}

	.nav-mobile-social a svg {
		width: 14px;
		height: 14px;
		fill: currentColor;
	}

	/* Header right */
	.header-right {
		display: flex;
		align-items: center;
		gap: 16px;
	}

	/* Social icons */
	.social-icons {
		display: flex;
		gap: 12px;
		align-items: center;
	}

	.social-icons a {
		width: 36px;
		height: 36px;
		display: flex;
		align-items: center;
		justify-content: center;
		border: none;
		color: #fff;
		transition: all 0.3s;
	}

	.social-icons a:hover {
		border-color: var(--color-accent-magenta);
		color: var(--color-white);
	}

	.social-icons a svg, .footer a svg {
		width: 18px;
		height: 18px;
		stroke: currentColor;
		fill: none;
		stroke-width: 2;
	}

/* =============================================================================
   Footer
   ========================================================================== */

	.footer {
		background: #000;
		padding: 60px 0 40px;
		border-top: 1px solid rgba(255, 255, 255, 0.05);
	}
	.footer ul li {
		margin-bottom: 7px;
		font-size: .8rem;
	}
	.footer p {
		font-size: .8rem;
	}
	.whatsapp-footer {
		display: flex;
		align-items: center;
		justify-content: center;
		background-color: #fff;
		padding: 6px 16px;
		border-radius: 30px;
		color: #000;
		max-width: 160px;
		margin: 0 auto;
		cursor: pointer;
	}
	.whatsapp-footer svg {
		margin-left: 15px;
	}
	.footer .social-icons {
		justify-content: center;
		margin-bottom: 30px;
	}
	.footer-grid {
		display: grid;
		grid-template-columns: 1.5fr 1fr 1fr 1fr;
		gap: 40px;
		margin-bottom: 40px;
	}

	.footer-brand img {
		max-width: 160px;
	}

	.footer-brand-info {
		font-size: 0.7rem;
		line-height: 1.8;
		letter-spacing: 5px;
		text-align: center;
		color: var(--color-gray);
	}

	.footer-col h4 {
		font-family: var(--font-heading);
		font-size: 0.93rem;
		font-weight: 700;
		letter-spacing: 2px;
		margin-bottom: 16px;
		color: var(--color-white);
	}

	.footer-col a {
		display: block;
		font-size: 0.9rem;
		color: var(--color-gray);
		margin-bottom: 8px;
		transition: color 0.3s;
	}

	.footer-col a:hover {
		color: var(--color-white);
	}

	.footer-social {
		display: flex;
		align-items: center;
		gap: 10px;
		margin-bottom: 16px;
	}

	.footer-social a {
		width: 32px;
		height: 32px;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 50%;
		border: 1px solid rgba(255, 255, 255, 0.15);
		color: var(--color-gray);
		transition: all 0.3s;
	}

	.footer-social a:hover {
		border-color: var(--color-accent-magenta);
		color: var(--color-white);
	}

	.footer-social a svg {
		width: 14px;
		height: 14px;
		fill: currentColor;
	}

	.footer-badge {
		display: inline-flex;
		align-items: center;
		gap: 6px;
		padding: 6px 14px;
		border: 1px solid rgba(255, 255, 255, 0.15);
		border-radius: 20px;
		font-size: 0.71rem;
		letter-spacing: 1px;
		color: var(--color-gray);
		transition: all 0.3s;
	}

	.footer-badge:hover {
		border-color: var(--color-accent-magenta);
		color: var(--color-white);
	}

	.footer-badge svg {
		width: 12px;
		height: 12px;
		fill: currentColor;
	}

/* =============================================================================
   Template: Home — Scroll Hero
   ========================================================================== */

	.hero-scroll-section {
		height: 150vh;
		background: var(--color-bg);
	}

	.hero-scroll-sticky {
		position: sticky;
		top: 0;
		height: 100vh;
		display: flex;
		align-items: center;
		justify-content: center;
		overflow: hidden;
	}

	.hero-video-clip {
		overflow: hidden;
		will-change: width, height, border-radius;
		position: relative;
		flex-shrink: 0;
	}

	.hero-video-clip video {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

/* =============================================================================
   Wordpress
   ========================================================================== */
.wp-block-buttons .wp-block-button__link {
	font-size: 1rem;
	font-weight: 700;
	text-transform: uppercase;
}
/* =============================================================================
   Animations
   ========================================================================== */

	@keyframes fadeSlideUp {
		from { opacity: 0; transform: translateY(30px); }
		to   { opacity: 1; transform: translateY(0); }
	}

	@keyframes fadeSlideDown {
		from { opacity: 0; transform: translateY(-30px); }
		to   { opacity: 1; transform: translateY(0); }
	}

	.reveal {
		opacity: 0;
		transform: translateY(40px);
		transition: opacity 0.8s cubic-bezier(0.23, 1, 0.32, 1),
		            transform 0.8s cubic-bezier(0.23, 1, 0.32, 1);
	}

	.reveal.visible {
		opacity: 1;
		transform: translateY(0);
	}

	.fade-slide-down {
		opacity: 0;
		transform: translateY(-30px);
		animation: fadeSlideDown 1s ease-out forwards;
	}

/* =============================================================================
   Portfolio Grid
   ========================================================================== */

	.portfolio-grid {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 40px;
		margin-top: 40px;
	}

	.portfolio-item {
		display: flex;
		flex-direction: column;
	}

	.portfolio-media {
		position: relative;
		overflow: hidden;
		border-radius: 8px;
		aspect-ratio: 16 / 9;
		background: var(--color-gray-dark);
		cursor: pointer;
	}

	.portfolio-poster {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
	}

	.portfolio-poster img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

	.portfolio-video-container {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		opacity: 0;
		transition: opacity 0.3s ease-out;
	}

	.portfolio-video {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

	.portfolio-media:hover .portfolio-video-container {
		opacity: 1;
	}

	.portfolio-play-icon {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		opacity: 0;
		transition: opacity 0.3s ease-out;
		z-index: 10;
		pointer-events: none;
	}

	.portfolio-media:hover .portfolio-play-icon {
		opacity: 1;
	}

	.portfolio-play-svg {
		mix-blend-mode: overlay;
	}

	.portfolio-title-overlay {
		position: absolute;
		bottom: 0;
		left: 0;
		right: 0;
		padding: 30px 20px;
		background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 100%);
		display: flex;
		align-items: flex-end;
		justify-content: center;
		align-items: center;
		min-height: 100%;
		text-align: center;
	}

	.portfolio-title-overlay h2 {
		font-family: var(--font-heading);
		font-size: 1.4rem;
		font-weight: 500;
		color: var(--color-white);
		margin: 0;
		text-transform: uppercase;
		letter-spacing: 5px;
	}

	.portfolio-footer {
		padding: 20px 0;
		display: flex;
		justify-content: space-between;
		align-items: center
	}

	.portfolio-periodo {
		font-size: 0.86rem;
		color: #fff;
		font-weight: 700;
		font-size: 1rem;
		margin: 0 0 12px 0;
		text-transform: uppercase;
		letter-spacing: 1px;
		margin-top: 10px;
	}

	.portfolio-link {
		display: inline-block;
		padding: 10px 16px;
		border: 2px solid rgba(255, 255, 255, 0);
		border-radius: 30px;
		font-size: 0.86rem;
		color: var(--color-white);
		transition: all 0.3s;
	}

	.portfolio-link:hover {
		border-color: var(--color-accent-magenta);
		color: var(--color-accent-magenta);
	}

	.portfolio-link span {
		margin-left: 6px;
	}

.hero-text {
	position: absolute;
    top: 0;
    left: 0;
    z-index: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
.hero-text h1 {
	font-family: var(--font-heading);
	font-weight: normal;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--color-white);
	text-align: center;
	padding: 0 20px;
	line-height: 1;
	font-size: 8rem;
	letter-spacing: 40px;
	margin: 0;
	animation: fadeSlideDown 1s ease-out 3s both;
}
.hero-text h1 .gradient {
	background: linear-gradient(90deg, var(--color-accent-blue), var(--color-accent-magenta));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	display: block;
	mix-blend-mode: overlay;
	opacity: 0.8;
	font-weight: 700;
}
.intro {
	background: #000070;
	background: linear-gradient(0deg,rgba(0, 0, 112, 1) 53%, rgba(126, 7, 166, 0.76) 100%);
	margin-top: -20vh;	
	position: relative;
	z-index: 900;
	border-radius: 10px;
	padding: 60px 40px;
}
.home {
	background: linear-gradient(180deg,#0a0a0a 0%, rgb(40, 40, 40) 57%);
}
.home-main {
	position: relative;
	background-image: url(img/triangoli.svg);
	background-repeat: no-repeat;
	background-position: top;
	background-size: 120%;
}
.no-margin-bottom {
	margin-bottom: 0;
}
.griglia-servizi {
	text-align: center;
	margin-bottom: 100px;
	margin-top: 50px;
}
.griglia-servizi h6 {
	font-weight: 500;
	font-size: 1rem;
	margin-top: 30px;
}
.date {
	text-align: center;
	margin: 40px auto;
	display: block;
	letter-spacing: 20px;
	opacity: 0.7;
	text-transform: uppercase;
	font-size: .8rem;
}
video {
	border-radius: 10px;
}
.partners {
	margin-top: 40px;
}
.partners img {
	transition: all 300ms;
	opacity: .5;
}
.partners img:hover {
	opacity: 1;
}
/* =============================================================================
   Responsive
   ========================================================================== */

	@media (max-width: 1200px) {
		.hero-text h1 { scale: 0.8; }
	}

	@media (max-width: 900px) {
		.nav                    { display: none; }
		.nav-toggle             { display: flex; }
		.container              { padding: 0 24px; }
		.header .container      { padding: 0; }
		.header .wrapper        { padding: 0 10px 0 0; }
		.header .social-icons   { display: none; }
		.wrapper                { padding-left: 24px; padding-right: 24px; }
		.footer-grid            { grid-template-columns: 1fr 1fr; gap: 30px; }
		.footer                 { text-align: center; }
		.footer .wp-block-image img { margin: 0 auto; }
		.hero-text h1           { scale: 0.6; letter-spacing: 20px; }
		.portfolio-grid         { grid-template-columns: 1fr; gap: 30px; }
	}

	@media (max-width: 600px) {
		.footer-grid  { grid-template-columns: 1fr; }
		.hero-text h1 { scale: 0.35; letter-spacing: 8px; }
	}

/* =============================================================================
   Forms — Contact Form 7
   ========================================================================== */

	.wpcf7 form,
	.wpcf7 .wpcf7-form {
		display: flex;
		flex-direction: column;
		gap: 16px;
	}

	.wpcf7 .wpcf7-form-control-wrap {
		display: block;
		width: 100%;
	}

	.wpcf7 input[type="text"],
	.wpcf7 input[type="email"],
	.wpcf7 input[type="tel"],
	.wpcf7 input[type="url"],
	.wpcf7 textarea {
		width: 100%;
		box-sizing: border-box;
		background: var(--color-gray-dark);
		color: var(--color-white);
		border: 1px solid rgba(255, 255, 255, 0.1);
		border-radius: 8px;
		padding: 14px 18px;
		font-family: var(--font-body);
		font-size: 1rem;
		line-height: 1.5;
		outline: none;
		transition: border-color 0.25s, box-shadow 0.25s;
		-webkit-appearance: none;
	}

	.wpcf7 input[type="text"]::placeholder,
	.wpcf7 input[type="email"]::placeholder,
	.wpcf7 input[type="tel"]::placeholder,
	.wpcf7 input[type="url"]::placeholder,
	.wpcf7 textarea::placeholder {
		color: var(--color-gray);
		opacity: 1;
	}

	.wpcf7 input[type="text"]:focus,
	.wpcf7 input[type="email"]:focus,
	.wpcf7 input[type="tel"]:focus,
	.wpcf7 input[type="url"]:focus,
	.wpcf7 textarea:focus {
		border-color: var(--color-accent-blue);
		box-shadow: 0 0 0 3px rgba(58, 58, 255, 0.15);
	}

	.wpcf7 textarea {
		resize: vertical;
		min-height: 140px;
	}

	.wpcf7-submit {
		display: inline-block;
		padding: 14px 40px;
		background: linear-gradient(90deg, var(--color-accent-blue), var(--color-accent-magenta));
		color: var(--color-white);
		font-family: var(--font-body);
		font-size: 0.9rem;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 2px;
		border: none;
		border-radius: 30px;
		cursor: pointer;
		transition: opacity 0.25s, transform 0.25s;
		align-self: flex-start;
		-webkit-appearance: none;
	}

	.wpcf7-submit:hover {
		opacity: 0.85;
		transform: translateY(-1px);
	}

	.wpcf7-submit:active {
		transform: translateY(0);
		opacity: 1;
	}

	/* Messaggi di risposta CF7 */
	.wpcf7-response-output {
		margin-top: 8px;
		padding: 12px 18px;
		border-radius: 8px;
		font-size: 0.9rem;
		border: none !important;
	}

	.wpcf7-response-output.wpcf7-mail-sent-ok {
		background: rgba(58, 58, 255, 0.15);
		color: #7b9fff;
	}

	.wpcf7-response-output.wpcf7-validation-errors,
	.wpcf7-response-output.wpcf7-mail-sent-ng {
		background: rgba(233, 30, 122, 0.15);
		color: var(--color-accent-magenta);
	}

	.wpcf7-not-valid-tip {
		color: var(--color-accent-magenta);
		font-size: 0.8rem;
		margin-top: 4px;
		display: block;
	}

/* =============================================================================
   WordPress Core CSS Styles
   ========================================================================== */

	.alignnone {margin:5px 20px 20px 0;}
	.aligncenter,div.aligncenter {display:block;margin:5px auto 5px auto;}
	.alignright {float:right;margin:5px 0 20px 20px;}
	.alignleft {float:left;margin:5px 20px 20px 0;}
	a img.alignright {float:right;margin:5px 0 20px 20px;}
	a img.alignnone {margin:5px 20px 20px 0;}
	a img.alignleft {float:left;margin:5px 20px 20px 0;}
	a img.aligncenter {display:block;margin-left:auto;margin-right:auto;}
	.wp-caption {background:#111;border:1px solid #222;max-width:96%;padding:5px 3px 10px;text-align:center;}
	.wp-caption.alignnone {margin:5px 20px 20px 0;}
	.wp-caption.alignleft {margin:5px 20px 20px 0;}
	.wp-caption.alignright {margin:5px 0 20px 20px;}
	.wp-caption img {border:0 none;height:auto;margin:0;max-width:98.5%;padding:0;width:auto;}
	.wp-caption p.wp-caption-text,.gallery-caption {font-size:0.79rem;line-height:17px;margin:0;padding:0 4px 5px;}
	.sticky {}
	.bypostauthor {}

/* =============================================================================
   Print
   ========================================================================== */

	@media print {
		* {background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important;}
		a,a:visited {text-decoration:underline;}
		a[href]:after {content:" (" attr(href) ")";}
		abbr[title]:after {content:" (" attr(title) ")";}
		.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after {content:"";}
		pre,blockquote {border:1px solid #999;page-break-inside:avoid;}
		thead {display:table-header-group;}
		tr,img {page-break-inside:avoid;}
		img {max-width:100% !important;}
		@page {margin:0.5cm;}
		p,h2,h3 {orphans:3;widows:3;}
		h2,h3 {page-break-after:avoid;}
	}
