/*
Theme Name: Tank Child
Theme URL: https://themeforest.net/item/tank-creative-portfolio-wordpress-theme/34096116
Description: Child theme of Tank
Author: webRedox WordPress team
Author URI: http://webredox.net/
Template: tank
Version: 1.0
Text Domain: tank-child
*/

:root {
	--paper: #f4f5f6;
	--paper-2: #eaecee;
	--ink: #172e66;
	--blue: #103a82;
	--darkest-blue: #000021;
	--ink-2: #5c6786;
	--line: #dee3ec;
	--accent: #a0c417;
	--accent-text: #a0c417;
	--serif: 'Sora', system-ui, sans-serif;
	--sans: 'Inter', system-ui, sans-serif;
	--mono: 'Space Mono', ui-monospace, monospace, 'Courier New';
	--pad: clamp(20px, 5vw, 72px);
}

::selection {
	color: var(--ink) !important;
	text-shadow: none;
	background: var(--accent) !important;
}

.ptr-prel-image {
	opacity: 1 !important;
}

.tank-text-block .text-gray,
.text-gray * {
	color: var(--blue) !important;
}

.tt-image figure > figcaption {
	background-color: var(--blue) !important;
	color: #fff !important;
	border-radius: 100px;
	right: 1rem;
	bottom: 2rem;
}

/* Font override */
#ball .ball-view,
.ttgr-cat-list > li,
.ttgr-cat-close,
.ttgr-cat-text {
	font-family: var(--sans) !important;
	&.ttgr-cat-item {
		display: inline;
	}
	&.ttgr-cat-title {
		color: var(--accent-text);
		font-family: var(--mono) !important;
		font-size: calc(14px + 0.5vw);
		margin-top: 15px;
		text-transform: uppercase;
	}
}

.ttgr-cat-list .ttgr-cat-item::before {
	display: none;
}

.ttgr-cat-list .ttgr-cat-item:not(:nth-child(2)) {
	padding-right: 2vw;
}

body.page,
body.single {
	font-family: var(--sans);
	background: var(--paper);
	color: var(--ink);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;

	.tt-section.bg-ink {
		background-color: var(--paper);
		color: var(--ink) !important;
	}

	.tt-section.bg-blue {
		background-color: var(--blue) !important;
		color: var(--paper);
		.vc_separator .vc_sep_holder .vc_sep_line {
			border-top: 1px solid rgba(244, 245, 246, 0.16);
		}
		.tt-btn.tt-btn-link > *,
		.tt-btn.tt-btn-link > *::after {
			color: #fff;
		}
	}

	.tt-section.bg-gray {
		background-color: var(--paper-2) !important;
		border-top: 1px solid var(--line);
		border-bottom: 1px solid var(--line);
		color: var(--ink);
		border: none;
	}

	&.tt-boxed.home .tt-wrap {
		max-width: 100% !important;
		padding: clamp(100px, 10vh, 150px) var(--pad) 3.5rem !important;
	}

	&.tt-boxed:not(.home) .tt-wrap {
		max-width: 100% !important;
		padding-left: var(--pad) !important;
		padding-right: var(--pad) !important;
	}

	@media (width<=1024px) {
		&.tt-boxed .tt-wrap.page-header-inner {
			padding: 200px var(--pad) 80px;
		}
	}

	.p-0.tt-section > .tt-wrap {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.mx-auto {
		margin-left: auto !important;
		margin-right: auto !important;
		display: block !important;
		width: fit-content !important;
	}

	.tt-heading.tt-heading-stroke .tt-heading-title {
		-webkit-text-stroke-color: var(--ink);
	}

	.tt-pn-title {
		color: var(--ink);
	}
}

/* Buttons */

.wpcf7-submit > button,
.ph-cta-btn {
	background: var(--blue);
	color: var(--paper) !important;
	font-size: 14px;
	letter-spacing: 0.01em;
	padding: 14px 26px;
	border-radius: 100px;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	cursor: pointer;
	transition: 0.3s ease;
	width: min(200px, 100svw);
	text-align: center;
	justify-content: center;
	.ph-cta-arrow {
		transition: transform 0.2s ease;
	}
	&:hover,
	&:focus,
	&:active {
		background-color: var(--accent);
		transform: translateY(-2px);
		color: var(--blue);
		.ph-cta-arrow {
			transform: translateX(4px);
		}
	}
}

/* MARK: header
*/

header#tt-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.5rem var(--pad);
	/*width: calc(100% + 30px);
	margin-left: -15px;
	margin-right: -15px;*/
	transition:
		padding 0.35s ease,
		background 0.35s ease,
		border-color 0.35s ease;
	border-bottom: 1px solid transparent;
	.tt-header-inner {
		padding: 0;
	}
	.tt-logo {
		top: unset;
		position: static;
		img {
			border-radius: 100%;
			background: rgba(255, 255, 255, 0);
			transition:
				background-color 5s linear,
				transform 1s;
			max-height: 3.5rem;
		}
	}
	/* Mobile menu */

	@media (width<1200px) {
		.tt-main-menu {
			background-color: var(--ink) !important;
			.tt-main-menu-inner {
				padding-left: var(--pad) !important;
				.tt-main-menu-content {
					text-align: left !important;
				}
			}
			.tt-submenu {
				margin-left: 0.4rem;
			}
			.menu-contatti {
				border: 0;
				margin-top: 4%;
				border-radius: 100px;
				padding: 9px 18px !important;
				color: var(--ink) !important;
				background: var(--paper-2) !important;
				white-space: nowrap;
				transition:
					background 0.3s ease,
					color 0.3s ease !important;
				@media (width>600px) {
					transform: translateX(-18px);
				}
				&:hover,
				&:focus,
				&:active {
					background: #fff !important;
				}
				&:after {
					content: '↗';
					display: inline-block;
					width: 3rem;
					height: auto;
					background: none;
					vertical-align: middle;
					margin-left: min(2.5vw, 2rem);
				}
			}
		}

		.tt-m-menu-text-menu,
		.tt-m-menu-toggle-btn-text {
			font-family: var(--mono);
			font-size: 12px;
			letter-spacing: 0.1em;
			color: var(--ink);
			text-transform: uppercase;
			.tt-m-menu-text-close {
				color: var(--paper);
			}
		}
		.tt-m-menu-toggle-btn-holder {
			display: none !important;
		}

		width: 100%;
		margin-left: 0;
		margin-right: 0;
		.tt-logo img {
			max-height: 2.5rem !important;
		}
		#tt-m-menu-toggle-btn-wrap {
			padding: 2rem var(--pad);
			position: absolute;
			z-index: 10;
			top: 0;
			right: 0;
		}
		.tt-main-menu-list > li a {
			font-family: var(--serif);
			font-weight: 400;
			font-size: clamp(32px, 10vw, 52px);
			letter-spacing: -0.02em;
			color: var(--paper);
			padding: 5px 0;
			transition: color 0.3s ease;
		}
		.tt-submenu {
			.current-menu-item > a,
			a:is(:hover, :focus, :active) {
				color: var(--paper-2) !important;
				opaity: 1;
			}
			li.current_page_item a::after {
				content: '';
				position: absolute;
				left: 0;
				bottom: 2px;
				height: 2px;
				width: 100%;
				background: var(--accent-text);
				transition: width 0.3s ease;
			}

			.tt-submenu-list > li a {
				font-family: var(--sans);
				font-size: 16px;
				color: var(--paper-2);
				opacity: 0.8;
				padding: 7px 0;
				transition: color 0.3s ease;
			}
		}
		.tt-m-caret::after {
			font-family: sans-serif;
			content: '+';
			display: inline-block;
			font-size: 1em;
			font-weight: 400;
			line-height: 1;
			color: var(--ink-2);
			transition:
				transform 0.2s ease-in-out,
				color 0.2s;
		}
		.tt-m-submenu-open .tt-m-caret::after {
			transform: rotate(45deg);
			color: var(--accent-text);
		}
		.tt-submenu-trigger .tt-m-caret::after {
			font-size: 0.8em;
		}
	}
	@media (width>=1200px) {
		nav.tt-main-menu {
			border-radius: 100px;
			border: solid 1px rgba(255, 255, 255, 0);
			padding: 7px 8px 7px 26px;
			.tt-main-menu-list {
				display: flex;
				gap: 34px;
				align-items: center;
				border: 1px solid transparent;
				border-radius: 100px;
				font-family: var(--sans);
				transition:
					background 0.35s ease,
					border-color 0.35s ease,
					padding 0.35s ease;
				& > li {
					padding: 0;
					& > a,
					& > .tt-submenu-trigger > a {
						font-size: 13px;
						letter-spacing: 0.02em;
						color: var(--ink-2);
						position: relative;
						padding: 4px 0;
						transition: color 0.25s ease;
						&:before {
							content: '';
							position: absolute;
							left: 0;
							bottom: 0;
							height: 1px;
							width: 0;
							background: var(--accent-text);
							transition: width 0.3s ease;
						}
						&:is(:hover, :active, :focus):before {
							width: 100%;
						}
					}
					&:last-of-type a {
						border: 1px solid var(--ink);
						border-radius: 100px;
						padding: 9px 18px !important;
						color: var(--ink) !important;
						transition:
							background 0.3s ease,
							color 0.3s ease !important;
						&:before {
							opacity: 0;
						}
						&:is(:hover, :active, :focus) {
							background: var(--ink);
							color: var(--paper) !important;
						}
					}
				}
				.tt-submenu {
					left: -14px;
					margin-top: 14px;
					background: var(--paper);
					border: 1px solid var(--line);
					border-radius: 10px;
					padding: 8px 6px;
					min-width: 190px;
					display: flex;
					flex-direction: column;
					box-shadow: 0 20px 44px -22px rgba(12, 30, 82, 0.28);
					.tt-submenu-list {
						padding: 0;
					}
					.current-menu-item > a,
					a:is(:hover, :focus, :active) {
						color: var(--blue) !important;
					}
					li.menu-item {
						border-radius: 6px;
						&:is(:hover, :focus, :active) {
							background-color: var(--paper-2);
						}
					}
				}
			}
		}
	}

	.current-menu-parent > a,
	.current-menu-item > a {
		color: var(--ink) !important;
		font-weight: bold;
		&:before {
			width: 100% !important;
		}
	}
}

body.scrolled {
	header#tt-header {
		padding: 1rem var(--pad);
		.tt-logo img {
			background-color: #fff;
			transform: scale(0.9);
		}
	}
	nav.tt-main-menu {
		background: rgba(244, 245, 246, 0.8);
		backdrop-filter: blur(12px);
		border-color: var(--line) !important;
		padding: 7px 8px 7px 26px;
	}
}

/* Scroll hint  */

.scroll-down-circle {
	font-family: var(--mono) !important;
	color: var(--ink-2) !important;
	max-width: max(200px, 10vw) !important;
	max-height: max(200px, 10vw) !important;
	bottom: 0 !important;
	margin-bottom: calc(-25px - 2.55vw) !important;
	text {
		fill: var(--ink-2) !important;
	}
	.sdc-icon {
		color: var(--accent) !important;
	}
}

/* Scroll hint (replaces .scroll-down-circle) — reverted to theme default, commented out
.scroll-hint {
	position: absolute;
	left: 3%;
	bottom: 40px;
	z-index: 9;
	font-family: var(--mono);
	font-size: 10.5px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--ink-2);
	display: flex;
	align-items: center;
	gap: 10px;
	opacity: 1;
	transition: opacity 1s;
	.bar {
		width: 34px;
		height: 1px;
		background: var(--ink-2);
		position: relative;
		overflow: hidden;
		&::after {
			content: '';
			position: absolute;
			inset: 0;
			background: var(--accent);
			animation: sweep 2.4s ease-in-out infinite;
		}
	}
	@media (max-width: 1024px) {
		display: none;
	}
	body.scrolled & {
		opacity: 0;
	}
}

#page-header {
	.ph-bg-image .scroll-hint {
		color: #fff;
		.bar {
			background: rgba(255, 255, 255, 0.5);
		}
	}
	&:not(.ph-full) .scroll-hint {
		display: none;
	}
}
*/

/* Page header height: Small ("small-h") */
#page-header.small-h {
	min-height: 0;
	.page-header-inner.tt-wrap {
		padding-top: max(180px, 8.5vw);
		padding-bottom: max(100px, 5vw);
	}

	@media (width<=1024px) {
		.page-header-inner.tt-wrap {
			padding-top: max(120px, 8vh);
			padding-bottom: max(60px, 4vh);
		}
	}
}

/* Main menu hover override */
.tt-main-menu-list.tt-mm-hover > li > a,
.tt-main-menu-list.tt-mm-hover > li > .tt-submenu-trigger > a {
	opacity: 1 !important;
}

/* MARK: Typhography
*/

.tt-heading > .tt-heading-title {
	color: var(--ink);
	font-weight: 500 !important;
}

.tt-heading.tt-heading-sm .tt-heading-title {
	font-weight: 400 !important;
}

#page-header,
.tt-section {
	.ph-eyebrow,
	.tt-heading-subtitle {
		font-family: var(--mono) !important;
		font-size: 11px !important;
		letter-spacing: 0.22em !important;
		text-transform: uppercase;
		margin-bottom: 2rem;
	}

	.tt-heading.tt-heading-lg .tt-heading-title {
		font-family: var(--serif);
		font-weight: 300;
		font-size: clamp(38px, 7vw, 96px);
		line-height: 1;
		letter-spacing: -0.025em;
		margin: 8px /*24px*/ 0 40px;
		i {
			font-style: normal;
			color: var(--accent);
		}
	}
	&:has(.bg-gray) {
		background-color: var(--paper-2);
		border: none;
	}
}

/* Numbered title widget */
.tt-heading-title.numbered-title {
	font-family: var(--serif);
	font-weight: 400 !important;
	font-size: clamp(13px, 1.4vw, 15px) !important;
	letter-spacing: 0.04em;
	color: var(--ink-2);
	text-transform: uppercase;
	display: flex;
	align-items: center;
	.heading-number {
		font-family: var(--mono);
		font-weight: 400;
		color: var(--accent-text) !important;
		letter-spacing: 0.05em;
		margin-right: 4px;
		vertical-align: middle;
		font-size: 12px;
	}
}

.tt-section:has(.tt-heading.margin-bottom-10-p-off):not([class*='cta-']) {
	padding-bottom: 0;
}

/* CTA link button */

.tt-btn.tt-btn-link:after {
	background-color: var(--ink);
}
.tt-btn.tt-btn-link > *,
.tt-btn.tt-btn-link > *::after {
	color: var(--ink);
}

.tt-btn.tt-btn-primary {
	background-color: var(--ink);
}

.tt-btn.tt-btn-light-outline {
	box-shadow: inset 0 0 0 2px var(--ink);
	& > *,
	& > *::after {
		color: var(--ink);
	}
}

/* MARK: Home hero
*/

#page-header {
	h1.ph-caption-title {
		font-size: clamp(40px, 7vw, 92px) !important;
		color: var(--ink) !important;
		font-family: var(--serif);
		font-weight: 300;
		line-height: 1;
		letter-spacing: -0.025em;
		max-width: 16ch !important;
		text-wrap: balance;

		strong {
			font-weight: 500;

			color: var(--accent);
		}
	}

	.ph-caption-subtitle {
		font-family: var(--sans);
		margin-top: 40px;
		max-width: 44ch;
		font-size: clamp(15px, 1.5vw, 18px);
		color: var(--ink-2) !important;
		line-height: 1.6;
		animation: fade 0.9s 1.1s ease forwards;
		font-weight: 400 !important;
	}

	/* Page header eyebrow */
	.ph-eyebrow {
		color: var(--ink-2);
	}

	/* Page header CTA button */
	.ph-cta {
		margin-top: 32px;
	}
}

.home #page-header h1.ph-caption-title {
	font-size: clamp(42px, 8.2vw, 120px) !important;
}

/* Sezione contatti CTA "parliamone" */

.tt-section.cta-contatti {
	.tt-heading > .tt-heading-title {
		color: #fff;
	}
	h5 {
		font-family: var(--mono);
		font-size: 10.5px;
		letter-spacing: 0.16em;
		text-transform: uppercase;
		color: rgba(244, 245, 246, 0.5);
		margin-bottom: 0.75rem !important;
		a {
			pointer-events: none;
			cursor: default;
			color: inherit;
			text-decoration: none;
			&:is(:hover, :focus, :active) {
				text-decoration: none;
			}
		}
	}
	p {
		font-size: 1rem;
		color: var(--paper) !important;
		line-height: 1.6;
		& > a {
			font-style: normal;
			color: #fff !important;
			opacity: 1;
			border: none;
		}
	}

	.tt-btn-link {
		margin-top: 3rem;
		font-family: var(--serif);
		font-weight: 300;
		font-size: clamp(24px, 4vw, 46px);
		letter-spacing: -0.015em;
		color: var(--paper);
		display: inline-flex;
		align-items: center;
		gap: 16px;
		transition: color 0.3s ease;
		&:after {
			content: '';
			display: inline-block;
			width: 1.25em;
			height: 1.15em;
			background: none;
			background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800px' height='800px' viewBox='0 0 24 24' stroke='%23FFFFFF' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter' fill='none' color='%23FFFFFF'%3E%3Cpath d='M19 13V5h-8'/%3E%3Cpath stroke-linecap='round' d='M19 5l-1 1'/%3E%3Cpath d='M18 6L5 19'/%3E%3C/svg%3E");
			background-repeat: no-repeat;
			background-size: contain;
			vertical-align: middle;
			margin-left: 0;
		}
	}

	@media (width>=768px) {
		.vc_column-inner:has(> .wpb_wrapper > ul.list-styled) {
			padding-left: 0;
		}
	}
}

/* Sezione contatti CTA "cosa facciamo" */

.tt-section.cta-cosa-facciamo {
	.tt-heading-title {
		width: min(100%, 30ch);
		text-wrap: balance;
		font-family: var(--serif);
		font-weight: 300;
		font-size: clamp(24px, 3.4vw, 42px);
		line-height: 1.25;
		letter-spacing: -0.015em;
		color: var(--ink);
	}
}

/* Sezione contatti CTA "coem lavoriamo" */

.tt-section.cta-come-lavoriamo {
	border-top: 1px solid var(--line);
	@media (min-width: 767px) {
		.vc_row:has(> .wpb_column.vc_col-sm-3) {
			margin-left: -30px;
			margin-right: -30px;
		}
	}
	.wpb_column.vc_col-sm-3 {
		.vc_separator .vc_sep_holder .vc_sep_line {
			border: 1px solid var(--ink);
		}
		.tt-heading,
		.tt-heading-subtitle {
			margin-bottom: 1rem !important;
		}
		.tt-heading-subtitle {
			color: var(--accent) !important;
			text-transform: capitalize !important;
		}
		.tt-heading.tt-heading-xsm .tt-heading-title {
			font-family: var(--serif);
			font-weight: 400;
			font-size: clamp(20px, 2.2vw, 28px);
			margin: 14px 0 12px;
			letter-spacing: -0.01em;
		}
		.tank-text-block {
			font-size: 14px !important;
			color: var(--ink-2);
			line-height: 1.6;
		}
	}
}

/* MARK: Protfolio

*/

.ttgr-cat-trigger {
	background: var(--ink);
	border-radius: 100px;
	padding: 0 8px 0 14px;
}
.ttgr-cat-trigger-wrap.ttgr-cat-fixed {
	bottom: unset !important;
	top: 5%;
	right: var(--pad) !important;

	.ttgr-cat-text > span {
		font-family: var(--sans);
		font-size: 14px;
	}
}

.tt-section:has(#portfolio-grid) {
	padding-top: 0 !important;
	margin-top: -30px !important;
}

.portfolio-grid-item {
	.pgi-title {
		line-height: 1.2em;
		@media (max-width: 600px) {
			font-size: calc(15px + 1vw);
		}
	}
	.pgi-caption .pgi-categories-wrap {
		margin-top: 0;
	}

	/* Riabilita la visualizzazione di tutte le categorie */
	.pgi-category + .pgi-category + .pgi-category + .pgi-category::before {
		content: ', ';
		margin-left: 0;
	}
	.pgi-category ~ .pgi-category ~ .pgi-category ~ .pgi-category {
		visibility: visible;
		width: auto;
		display: inline-block;
	}
	.pgi-category ~ .pgi-category:not(:empty)::before,
	.tt-pci-category ~ .tt-pci-category:not(:empty)::before {
		padding: 0 0 0 5px;
	}
}

body.single-portfolio {
	&:not(.scrolled) {
		&:has(#page-header.ph-full .ph-image) {
			.tt-main-menu-list {
				& > li {
					& > a,
					& > .tt-submenu-trigger > a {
						color: #fff !important;
					}
					&:last-of-type a {
						border-color: #fff;
					}
				}
			}
		}
	}
	#page-header {
		.project-info-list {
			margin-top: 0.5rem !important;
		}
		.ph-caption-subtitle,
		.project-info-list .pi-list-cont {
			font-family: var(--sans);
			font-size: 1rem;
			a {
				font-size: 1rem !important;
			}
		}
		.pi-list-heading,
		.ph-category {
			font-weight: 600;
			font-family: var(--mono);
			text-transform: uppercase;
			font-size: 12px;
		}
		.ph-category {
			letter-spacing: 0.22em;
		}
		&.ph-full-off {
			.project-info-list {
				border-top: solid 1px var(--line);
			}
			.pi-list-heading,
			.ph-category {
				color: var(--ink-2);
			}
			.pi-list-cont {
				color: var(--ink);
			}
		}
		&.ph-full {
			.pi-list-heading,
			.pi-list-cont,
			.ph-caption-subtitle {
				color: #fff !important;
			}
		}
	}
	h2:has(span.w) {
		font-size: calc(20px + 1vw) !important;
		text-wrap: balance;
	}

	/* Bottom pagination */
	.tt-page-nav {
		.tt-pn-title,
		.tt-pn-hover-title,
		.tt-pn-hover-title span {
			font-family: var(--serif);
			font-size: clamp(24px, 4vw, 46px);
			line-height: 1;
		}

		.tt-pn-subtitle {
			color: var(--ink-2);
			font-family: var(--sans);
		}

		&:has(.tt-pn-link:is(:hover)) {
			.tt-pn-subtitle {
				color: var(--accent);
			}
		}
	}
}

/* Shrink the circular hover-preview cursor on ".tt-pn-link" (page-nav prev/next
   links with an image/video preview) — theme.js grows #ball to 20vw via inline
   GSAP styles on hover, hence !important to override it. */
#magic-cursor.tt-pn-hover-on #ball {
	width: 10vw !important;
	height: 10vw !important;
}

/* MARK Loghi

*/

.tt-logo-wall > li {
	aspect-ratio: 1 / 1;
	align-content: center;
	background: #fff;
	border-color: #dee3eb !important;
	border-width: 1px;
	img {
		opacity: 1 !important;
	}
}

/* MARK: Studio

*/

.about-texts {
	.avatar {
		width: clamp(92px, 12vw, 124px);
		height: auto;
		flex: none;
		display: block;
	}
	.tt-heading-subtitle {
		margin-top: 1rem;
		margin-bottom: 0 !important;
		color: var(--accent) !important;
	}
}

/* MARK: Servizi

*/

#servizi {
	.tt-accordion-content {
		color: var(--ink);
	}

	.tt-accordion-content,
	.tt-accordion-subtext {
		margin-left: 0.4rem;
	}
	.tt-accordion-caret {
		color: var(--accent);
		&:before,
		&:after {
			background-color: var(--accent);
		}
	}
}

/* Contact */

.page:has(.wpcf7-form) #link-parliamone {
	display: none;
}
#link-parliamone {
	.tt-btn.tt-btn-link > *,
	.tt-btn.tt-btn-link > *::after {
		color: #fff;
	}
}

.wpcf7 form {
	/*::placeholder,
	select:has(option:checked[value='']) {
		font-family: var(--mono);
	}*/
	input[type='text'],
	input[type='email'],
	input[type='tel'],
	textarea {
		color: var(--ink);
		&:focus {
			border-color: var(--accent);
		}
	}
	textarea {
		resize: vertical;
		min-height: 6lh;
		max-height: 15lh;
	}
	.wpcf7-not-valid-tip {
		font-size: 12px;
	}
	.wpcf7-response-output {
		margin: 5rem 0 2rem !important;
		padding: 0 !important;
		font-family: var(--mono);
	}
	.wpcf7-submit > button {
		&:hover,
		&:focus,
		&:active {
			transform: none;
		}
	}

	.wpcf7-spinner {
		display: none;
		position: absolute;
		opacity: 0;
	}
	&.submitting {
		opacity: 0.65;
		pointer-events: none;
		user-select: none;
	}
	&.sent .wpcf7-response-output {
		color: var(--accent);
	}
}

body.page.page-id-31 {
	.tt-section-inner.tt-wrap.max-width-dt:has(.wpcf7):not(.wr-default-page) {
		padding-left: 0 !important;
		padding-right: 0 !important;
		width: min(100%, 1200px);
		margin-inline: auto;
	}

	.vc_row:has(form) {
		.tt-heading,
		.tt-heading-subtitle {
			margin-bottom: 0.5rem !important;
		}
		.tt-heading-subtitle {
			color: var(--ink-2) !important;
		}
	}
}

/*
@media (width<768px) {
	form.wpcf7-form {
		margin-top: 10rem;
		margin-bottom: 15rem;
	}
}*/

/* MARK: Footer
*/

footer#tt-footer {
	&,
	& a {
		font-family: var(--mono);
		color: var(--ink-2) !important;
		font-size: 11px !important;
	}
	.footer-col-text,
	.tt-copyright {
		color: var(--ink-2);
		font-family: var(--mono);
		font-size: 11px;
		letter-spacing: 0.06em;
		.tt-copyright {
			font-family: var(--mono);

			color: var(--ink-2);
			letter-spacing: 0.06em;
		}
	}
	.footer-social,
	.tt-btn:has(.scroll-to-top) {
		display: none !important;
	}
	@media (max-width: 1024px) {
		padding: 2rem 0 calc(2rem + env(safe-area-inset-bottom, 0px)) !important;
	}
}

.made-with-love {
	display: none !important;
}

@keyframes sweep {
	0% {
		transform: translateX(-100%);
	}
	50% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(100%);
	}
}

/* MARK: policies

*/

.privacy-policy {
	h2,
	h3 {
		font-size: 22px;
		text-align: left;
		margin-top: 15px;
		text-transform: initial;
		padding-bottom: 10px;
		margin-bottom: 10px;
		margin-top: 4rem;
	}

	p,
	li,
	td {
		font-size: 14px;
		margin-top: 0;
	}
}
#cmplz-document {
	max-width: 100%;
	width: 100%;

	h2,
	h3 {
		margin-top: 4rem;
	}
}

.whatsapp-button-container {
	position: fixed;
	bottom: 2rem;
	right: max(3.5%, 15px);
	width: min(4rem, 20vw);
	height: min(4rem, 20vw);
	z-index: 25;
	background: url('/wp-content/uploads/wa-bg.png') center center no-repeat;
	background-size: contain;
	transition: all 1s;
	.fab {
		font-size: min(4rem, 20vw);
		line-height: 1;
	}
	body.contact-visible & {
		bottom: 8rem;
		@media (width<=1024px) {
			bottom: 12rem;
		}
	}

	body:not(.scrolled) & {
		transform: translateX(250px);
	}
}

#ball.cursor-sm {
	width: 60px !important;
	height: 60px !important;
}
#ball.cursor-sm * {
	font-size: 8px !important;
}

/* Portfolio Grid — "Slider su mobile" option (inc/vc-portfolio-grid-mobile-slider.php
   + the mobile-slider block in js/custom.js). Below 768px js/custom.js rebuilds
   .tt-grid-items-wrap into Swiper markup; the theme doesn't ship swiper-bundle.css
   globally, so the flex layout + pagination bullets are defined here. Scoped to
   #portfolio-grid.ttgr-mobile-slider so nothing else is touched. */
@media (max-width: 768px) {
	/* Kill the theme's grid gutters/margins that otherwise leave the active
	   slide misaligned and a strip of the next slide showing. */
	#portfolio-grid.ttgr-mobile-slider {
		overflow: hidden;
	}
	#portfolio-grid.ttgr-mobile-slider .tt-grid {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	#portfolio-grid.ttgr-mobile-slider .tt-grid-items-wrap.swiper {
		width: 100%;
		max-width: 100%;
		margin: 0;
		padding: 0;
		overflow: hidden;
	}
	#portfolio-grid.ttgr-mobile-slider .swiper-wrapper {
		display: flex;
		align-items: stretch;
		height: auto;
		box-sizing: border-box;
	}
	#portfolio-grid.ttgr-mobile-slider .swiper-slide {
		flex-shrink: 0;
		width: 100%;
		max-width: 100%;
		height: auto;
		float: none !important;
		position: relative !important;
		inset: auto !important;
		transform: none !important;
		margin: 0 !important;
		padding: 0 !important;
		box-sizing: border-box;
	}
	#portfolio-grid.ttgr-mobile-slider .swiper-slide .ttgr-item-inner {
		margin: 0 !important;
	}
	#portfolio-grid.ttgr-mobile-slider .swiper-pagination {
		position: relative;
		margin-block: 1.5rem;
		text-align: center;
		line-height: 1;
	}
	#portfolio-grid.ttgr-mobile-slider .swiper-pagination-bullet {
		display: inline-block;
		width: 0.65rem;
		height: 0.65rem;
		margin: 0 0.25rem;
		border-radius: 50%;
		background: currentColor;
		opacity: 0.3;
		cursor: pointer;
		transition: opacity 0.3s;
	}
	#portfolio-grid.ttgr-mobile-slider .swiper-pagination-bullet-active {
		opacity: 1;
	}
}

/* lightbox */

#lg-counter,
.lg-actions .lg-next,
.lg-actions .lg-prev,
.lg-toolbar .lg-icon {
	color: #fff !important;
}

.lg-outer .lg-img-wrap {
	background-color: var(--darkest-blue);
	img {
		max-height: 88vh;
		max-width: 96vw;
	}
}

.lg-sub-html,
.hidden,
.clear.hidden {
	display: none !important;
}

.lg-actions .lg-next,
.lg-actions .lg-prev {
	background-color: rgba(255, 255, 255, 0) !important;
}

.tt-image > .tt-image-link {
	display: block;
	color: inherit;
	text-decoration: none;
}
