/* 
Theme Name: Diligize
Theme URI: http://underscores.me/
Author: Remake
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: diligize
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Diligize is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
 */


/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */


/* Document
	 ========================================================================== */
/* import font */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

@font-face {
    font-family: 'Emord Light';
    src: url('https://diligize.pe/wp-content/themes/diligize/fonts/Emord-Light.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Emord Regular';
    src: url('https://diligize.pe/wp-content/themes/diligize/fonts/Emord-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Emord';
	src: url('https://diligize.pe/wp-content/themes/diligize/fonts/Emord-Medium.woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Emord SemiBold';
    src: url('https://diligize.pe/wp-content/themes/diligize/fonts/Emord-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Emord Bold';
    src: url('https://diligize.pe/wp-content/themes/diligize/fonts/emord-bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Emord ExtraBold';
    src: url('https://diligize.pe/wp-content/themes/diligize/fonts/Emord-ExtraBold.woff2') format('woff2');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Emord Black';
    src: url('https://diligize.pe/wp-content/themes/diligize/fonts/Emord-Black.woff2') format('woff2');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

/* Reset */
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}
/* body {
	cursor: none;
} */

/* Sections
	 ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
body {
	margin: 0;
}
html {
  scroll-behavior: smooth;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
	display: block;
}

/* Grouping content
	 ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}
/**
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}
.site {
	overflow: hidden;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
	border-style: none;
}

/* Forms
	 ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
	overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
	text-transform: none;
}


/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}


/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

/* Interactive
	 ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
	display: list-item;
}

/* Misc
	 ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */
template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
	display: none;
}

/* Box sizing
--------------------------------------------- */

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/

/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
	color: #404040;
	font-family: "Montserrat", sans-serif;
	font-size: 1rem;
	line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
	text-transform: uppercase;
}

p {
	margin-bottom: 1.5em;
}

dfn,
cite,
em,
i {
	font-style: italic;
}

blockquote {
	margin: 0 1.5em;
}

address {
	margin: 0 0 1.5em;
}

pre {
	background: #eee;
	font-family: "Montserrat", sans-serif;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}

code,
kbd,
tt,
var {
	font-family: "Montserrat", sans-serif;
}

abbr,
acronym {
	border-bottom: 1px dotted #666;
	cursor: help;
}

mark,
ins {
	background: #fff9c0;
	text-decoration: none;
}

big {
	font-size: 125%;
}

/* Elements
--------------------------------------------- */
hr {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}

ul,
ol {
	margin: 0 0 1.5em 3em;
}

ul {
	list-style: disc;
	margin: 0;
	margin-bottom: 20px;
	padding-left: 0;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
	max-width: 100%;
}

img {
	height: auto;
	max-width: 100%;
}

figure {
	margin: 1em 0;
}

table {
	margin: 0 0 1.5em;
	width: 100%;
}

/* Links
--------------------------------------------- */
a {
	color: white;
}

a:visited {
	color: white;
}

a:hover,
a:focus,
a:active {
	color: white; /* optional hover shade like gold */
}

a:focus {
	outline: thin dotted;
}

a:hover,
a:active {
	outline: 0;
}

/* Forms
--------------------------------------------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	border: 1px solid;
	border-color: #ccc #ccc #bbb;
	border-radius: 3px;
	background: #e6e6e6;
	color: rgba(0, 0, 0, 0.8);
	line-height: 1;
	padding: 0.6em 1em 0.4em;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	border-color: #ccc #bbb #aaa;
}

button:active,
button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
	border-color: #aaa #bbb #bbb;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
	color: #666;
	border: 1px solid #ccc;
	border-radius: 3px;
	padding: 3px;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
	color: #111;
}

select {
	border: 1px solid #ccc;
}

textarea {
	width: 100%;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/

/* Navigation
--------------------------------------------- */
.main-navigation {
	display: block;
	width: 100%;
}

.main-navigation ul {
	display: none;
	list-style: none;
	margin: 0;
	padding-left: 0;
}

.main-navigation ul ul {
	box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
	float: left;
	position: absolute;
	top: 100%;
	left: -999em;
	z-index: 99999;
}

.main-navigation ul ul ul {
	left: -999em;
	top: 0;
}

.main-navigation ul ul li:hover > ul,
.main-navigation ul ul li.focus > ul {
	display: block;
	left: auto;
}

.main-navigation ul ul a {
	width: 200px;
}

.main-navigation ul li:hover > ul,
.main-navigation ul li.focus > ul {
	left: auto;
}

.main-navigation li {
	position: relative;
}

.main-navigation a {
	display: block;
	text-decoration: none;
}

/* Small menu. */
.menu-toggle,
.main-navigation.toggled ul {
	display: block;
}

@media screen and (min-width: 37.5em) {

	.menu-toggle {
		display: none;
	}

	.main-navigation ul {
		display: flex;
	}
}

.site-main .comment-navigation,
.site-main
.posts-navigation,
.site-main
.post-navigation {
	margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
	flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
	text-align: end;
	flex: 1 0 50%;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
	display: block;
}

.updated:not(.published) {
	display: none;
}

.page-content,
.entry-content,
.entry-summary {
	margin: 1.5em 0 0;
}

.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

/* Comments
--------------------------------------------- */
.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
	margin: 0 0 1.5em;
}

.widget select {
	max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
	display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

.wp-caption-text {
	text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
	margin-bottom: 1.5em;
	display: grid;
	grid-gap: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
	display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

body:has(.fullscreen-menu.open-top) {
	overflow: hidden;
	height: 100vh;
	touch-action: none;
}

/* Alignments
--------------------------------------------- */
.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}

/* Variabili */
:root {
	--background-blue : #001A3C;
	--light-blue: #00B5FF;
	--Gradient-multicolor: linear-gradient(90deg, #0078EF 0%, #00B5FF 12.46%, #48CED5 23.79%, #AEDCAC 34.46%, #FFE08E 44.06%, #FFB48B 54.91%, #FF8D73 63.8%, #FF5854 75.07%, #DC4173 86.21%, #D05494 93.13%, #C26CB7 100%);
}


/* Custom CSS */
/* Reset */
.section {
	padding-left: 110px;
	padding-right: 110px;
}
.custom-padding {
	padding-left: 110px;
	padding-right: 110px;
}
.custom-padding-extra {
	padding-left: 150px;
	padding-right: 150px;
}
.custom-y-padding {
	padding-top: 140px;
	padding-bottom: 140px;
}
.background-cover {
	background-size: cover !important;
	background-repeat: no-repeat !important;
}
.light-blue {
	color: var(--light-blue);
}
.background-blue {
	background-color: var(--background-blue);
}
p {
    font-size: 24px;
    line-height: 38px;
	margin: 0;
}
h1 {
	font-family: 'Emord';
	font-size: 50px;
	text-transform: uppercase;
}
h2 {
	font-family: 'Emord';
	font-size: 2rem !important;
	text-transform: uppercase;
}
h4 {
	font-family: 'Emord';
	text-transform: uppercase;
}
.text-white h1, .text-white p, .text-white h2, .text-white {
	color: white;
}
.text-whie {
	color: white;
}
.section h1 {
    width: 85%;
	text-transform: uppercase;
}
.contain-70 {
	width: 70%;
}
.page-section a:hover {
	color: var(--Gradient-multicolor);
}

/* Menu */
.site-header {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 90px;
	z-index: 99;
    display: flex;

	height: 140px;
    padding: 0 110px;
}

.center-text-absolute {
	position: absolute;
    text-align: center;
    left: 0;
    right: 0;
	top: 47%;
	color: white !important;
}

/* .custom-navigation-ultra {
	display: none;
} */
.flex-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.custom-logo-link img {
	width: 245px;
}
.open-menu {
	position: relative;
	background: none;
	border: none;
	cursor: pointer;
	transition: all 0.8s ease-in-out;
}
.open-menu::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) scale(0);
	width: 100px;
	opacity: 0;
	height: 100px;
	border-radius: 200px;
	transition: all 0.8s ease-in-out;
	z-index: 9;
	border: solid .5px white;
}

.open-menu:hover::before {
	transform: translate(-50%, -50%) scale(1.1);
	opacity: 1;
}
.logo-contain-animate {
    width: 240px;
	position: relative;
	cursor: pointer;
}
.crown-logo {
	width: 80px;
	position: absolute;
	left: -20px;
	top: -25px;
	transition: all .3s ease-in-out;
	opacity: 0;
}
.crown-white-logo {
    width: 80px;
    position: absolute;
    left: 0;
    top: -25px;
	transition: all .3s ease-in-out;
}
.text-logo {
    width: 280px;
    top: 0;
	left: 50px;
	transition: all .3s ease-in-out;
}
.logo-contain-animate:hover .crown-logo {
	left: 0;
	top: -25px;
	opacity: 1;
}
.logo-contain-animate:hover .crown-white-logo {
	left: 10px;
	top: -25px;
	opacity: 0;
}
#section-2 .ball {
    width: 100vh !important;
}

/* Menu animazine toggle */
#menu-open {
	position: relative;
	width: 60px; /* adatta alla dimensione dell’immagine */
	height: 40px;
}

#menu-open img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transition: opacity 0.4s ease, transform 0.4s ease;
	pointer-events: none;
}

/* Stato iniziale */
#menu-open .menu-default {
	opacity: 1;
	transform: rotate(0deg);
}

#menu-open .menu-opened {
	opacity: 0;
	transform: rotate(-180deg);
}

/* Stato attivo */
#menu-open.active .menu-default {
	opacity: 0;
	transform: rotate(180deg);
}

#menu-open.active .menu-opened {
	opacity: 1;
	transform: rotate(0deg);
}

/* Fullscreen Menu */
.fullscreen-menu {
	position: fixed;
	top: -100%;
	left: 0;
	width: 100%;
	height: 100vh;
	background-color: var(--background-blue);
	color: white;
	z-index: -1;
	display: flex;
	justify-content: center;
	align-items: center;
	transition: top 0.8s ease-in-out;
}

.background-gradient {
	background-color: var(--Gradient-multicolor);
}

.bg-home-menu {
	background-color: var(--background-blue);
	transition: background-color 0.6s ease-in-out;
}
.bg-services-menu {
	background-color: #DD0439;
	transition: background-color 0.6s ease-in-out;
  }
.bg-about-menu {
	background-color: #FFB57C;
	transition: background-color 0.6s ease-in-out;
  }
.bg-journal-menu {
	background-color: #A266C6;
	transition: background-color 0.6s ease-in-out;
  }
.bg-contact-menu {
	background-color: #81FEC8;
	transition: background-color 0.6s ease-in-out;
  }
  
.bg-cover-def {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.padding-y-custom {
	padding-top: 120px;
	padding-bottom: 120px;
}

.fullscreen-menu.open-top {
	top: 0;
}
.close-menu {
	position: absolute;
    right: 30px;
    top: 20px;
    background: none;
    color: white;
    border: none;
    font-size: 74px;
    padding: 0;
    margin: 0;
    line-height: 50px;
	cursor: pointer;
}

.fullscreen-menu ul {
	list-style: none;
	padding: 0;
	margin: 0;
	text-align: center;

	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 0;
}

.fullscreen-menu ul li {
	font-size: 2rem;
}

.fullscreen-menu ul li a {
	color: white;
	text-decoration: none;
	font-family: "Montserrat", sans-serif;

	text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 50px;
    font-weight: 500;
	transition: all .3s ease-in-out;
}
.current-menu-item a {
	color: var(--Gradient-multicolor) !important;
    background: var(--Gradient-multicolor) !important;
    background-clip: text !important;
    -webkit-background-clip: text !important;
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
}
.fullscreen-menu ul li a {
    color: white;
    background: none;
    transition: all .3s ease-in-out;
    background-clip: unset;
    -webkit-background-clip: unset;
    -webkit-text-fill-color: unset;
}

.fullscreen-menu ul li a:hover {
    background: var(--Gradient-multicolor);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}


/* Dots Fullpages */
/* Dot attivo */
#fp-nav ul li a.active span,
#fp-nav ul li:hover a.active span,
.fp-slidesNav ul li a.active span,
.fp-slidesNav ul li:hover a.active span {
    height: 16px;
    width: 16px;
    margin: -8px 0 0 -8px;
    background: white;
    border-radius: 100%;
    border: none;
    transition: all 0.3s ease-in-out;
    box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.3);
}

#fp-nav ul li a span:hover,
.fp-slidesNav ul li a span:hover {
    transform: scale(1.2);
    box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.2);
}

/* Dot normale */
#fp-nav ul li a span,
.fp-slidesNav ul li a span {
    height: 8px;
    width: 8px;
    margin: -4px 0 0 -4px;
    background: none;
    border: 1px solid white;
    border-radius: 100%;
    position: absolute;
    z-index: 1;
    left: 50%;
    top: 50%;
    transition: all 0.3s ease-in-out;
}
#fp-nav ul li,
.fp-slidesNav ul li {
    margin: 20px 0;
}
#fp-nav {
	right: 30px !important;
	z-index: 9;
}
#fp-nav ul li .fp-tooltip {
    position: absolute;
    top: -2px;
    color: rgba(255, 255, 255, .8);
    font-size: 13px;
    font-family: "Montserrat", sans-serif;
    max-width: 220px;
    overflow: hidden;
    display: block;
    opacity: 0;
    width: 0;
    cursor: pointer;
	transition: all .8s ease-in-out;
    text-transform: uppercase;
}
#fp-nav ul li .fp-tooltip.fp-right {
    right: 25px !important;
}

.animate-ball {
    position: absolute;
    top: -50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: -1;
    animation: spin-blue-ball 10s linear infinite;
    transition: top 1s ease-in-out 0.3s, opacity 0.5s ease-in-out;
    opacity: 0;
}
.animate-ball-visible {
    position: absolute;
    top: -50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: -1;
    animation: spin-blue-ball 10s linear infinite;
    transition: top 1s ease-in-out 0.3s, opacity 0.5s ease-in-out;
    opacity: 1;
}
.animate-ball-bg-special {
    position: absolute;
    top: -50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: -1;
    transition: top 1s ease-in-out 0.3s, opacity 0.5s ease-in-out;
    opacity: 0;
}
.ball-normal {
    width: 40% !important;
	opacity: 1;
}
.ball-normal-service {
    width: 32% !important;
	opacity: 1;
}
/* Animazione menu mega */
@keyframes spin-blue-ball {
    0% {
      transform: translate(-50%, -50%) rotate(0deg);
    }
    100% {
      transform: translate(-50%, -50%) rotate(360deg);
    }
}


html, body {
	/* overflow: hidden;
	height: 100%; */
	touch-action: none;
	overscroll-behavior: none;
}
body {
	background-color: var(--background-blue);
}


/* New rule for fullscreen menu open state affecting .blue-ball */
.open .blue-ball {
    top: 50%;
    opacity: 1;
}
.blue-ball {
	transition: opacity 1.5s ease-in-out !important
}

.red-ball, .orange-ball, .violet-ball, .lightblue-ball {
	opacity: 0 !important;
	top: 50% !important;
	transition: opacity .8s ease-in-out !important;
}

/* menu service */
.bg-services-menu .blue-ball {
	opacity: 0 !important;
	transition: .8s ease-in-out !important;
}
.bg-services-menu .red-ball {
	opacity: 1 !important;
	transition: .8s ease-in-out !important;
}

/* menu about*/
.bg-about-menu .blue-ball {
	opacity: 0 !important;
	transition: .8s ease-in-out !important;
}
.bg-about-menu .orange-ball {
	opacity: 1 !important;
	transition: .8s ease-in-out !important;
}

/* menu journal*/
.bg-journal-menu .blue-ball {
	opacity: 0 !important;
	transition: .8s ease-in-out !important;
}
.bg-journal-menu .violet-ball {
	opacity: 1 !important;
	transition: .8s ease-in-out !important;
}

/* menu contact*/
.bg-contact-menu .blue-ball {
	opacity: 0 !important;
	transition: .8s ease-in-out !important;
}
.bg-contact-menu .lightblue-ball {
	opacity: 1 !important;
	transition: .8s ease-in-out !important;
}

.menu-main-menu-container {
    z-index: 9;
}

#ball-container {
    z-index: 2;
}
#ball-container .ball {
    width: 75vh !important;
}

.ball-backgrund-section {
	top: 50vh !important;
}
.ball {
	width: 30vh !important;
}


/* Video bg hero */
.video-background-wrapper {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1; /* sotto al contenuto */
	overflow: hidden;
  }
  
.video-background {
	position: absolute;
	top: 50%;
	left: 50%;
	min-width: 100%;
	min-height: 100%;
	width: 100%;
	height: auto;
	transform: translate(-50%, -50%);
	object-fit: cover;
	z-index: 0;
	pointer-events: none;
}
.pay-off-absolute {
    font-size: 28px;
    position: absolute;
    bottom: 50px;
    left: 50%;
	opacity: .7;
    transform: translateX(-50%);
    text-align: center;
	width: 100%;
}

.home footer {
    display: none;
}
footer#colophon {
    position: relative;
    height: 80px;
}
.page-section {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  opacity: 0;
  transition: opacity 0.6s ease-in-out;
  z-index: 0;
  pointer-events: none;
  visibility: hidden;

  display: flex;
  align-items: center;
  padding-left: 110px;
  padding-right: 110px;
}
.bg-blue-section {
    background-color: #001A3C;
}
.page-section h1 {
    width: 100%;
	text-transform: uppercase;
}
.page-section.active {
  opacity: 1;
  z-index: 1;
  pointer-events: all;
  visibility: visible;
}

#custom-fullpage {
  position: relative;
  height: 100vh;
  overflow: hidden;
}

/* City section fixed */
.list-city {
    display: flex;
    list-style: none;
    color: white;
    justify-content: space-between;
    padding: 0 110px;
    margin: 0;
    align-items: center;
    height: 80px;
	background: var(--Gradient-multicolor);
}
.background-gradient {
	background: var(--Gradient-multicolor);
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    display: block;
}


quote.rainbow-text {
    margin-top: 35px;
    display: block;
	font-weight: 300;
    font-size: 1.4rem;
}

/* Dot nav + loader */
#dot-navigation {
  position: fixed;
  right: 110px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
}

#section-loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: var(--background-blue);
  z-index: 9999;
  pointer-events: none;
  transform: translateY(100%);
  transition: transform 0.7s ease-in-out;
}
#section-loader.active {
  transform: translateY(0%);
}
#section-loader.exit {
  transform: translateY(100%);
  pointer-events: none; /* Disabilita interazioni dopo l'uscita */
}

#dot-navigation ul {
    margin: 0;
    padding: 0;
    /* overflow: hidden; */
}
#dot-navigation ul li::marker {
  content: none; /* Rimuove il marker */
}

#dot-navigation a {
	display: block;
    width: 15px;
    height: 15px;
    margin: 35px auto;
    border-radius: 50%;
    background: none;
    border: 1px solid #fff;
    position: relative;
    z-index: 11;
    text-decoration: none;
    transition: background 0.3s ease;
	transition: all .4s ease;
}

#dot-navigation a:hover {
	transform: scale(1.6);
	box-shadow: 0 0 0 4px rgba(255, 255, 255, .25);
}

#dot-navigation a.active {
	transition: all .4s ease;
	transform: scale(2);
}

.fp-tooltip {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  color: white;
  font-size: 10px;
  opacity: 0; /* Nasconde la label di default */
  visibility: hidden; /* Nasconde la label di default */
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

#dot-navigation a:hover .fp-tooltip {
  opacity: 1; /* Mostra la label al hover */
  visibility: visible; /* Rende visibile la label */
}

#dot-navigation ul li:hover .active .fp-sr-only {
	display: none;
}

span.fp-sr-only {
    position: absolute;
    right: 25px;
    top: -1px;
    color: white;
    opacity: 0;
    transition: all .6s ease-in-out;
    font-size: 10px;
    width: max-content;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
}
#dot-navigation ul li:hover .fp-sr-only {
	opacity: 1;
	transition: all .6s ease-in-out;
  }


.loader-flx {
    display: flex;
    align-items: center;
    justify-content: center;
	overflow: hidden;
}
.loader-logo {
	position: absolute;
}


/* Nuovo loader */
.new-loader {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100px;
	height: 100px;
	background-color: #001A3C; /* Colore blu */
	border-radius: 50%;
	opacity: 0;
	pointer-events: none;
	z-index: 9999;
	animation: growAndFade 2s forwards; /* Anima per 2 secondi */
	box-shadow: 0 0 35px rgba(0,0,0,.2);
  }
  #new-loader {
	display: none;
	/* Impedisce che il loader sia visibile al primo caricamento */
  }
  
  /* Animazione di crescita e sfondo blu */
  @keyframes growAndFade {
	0% {
	  transform: translate(-50%, -50%) scale(0);
	  opacity: 1;
	  background-color: #001A3C; /* Bianco iniziale */
	}
	50% {
	  transform: translate(-50%, -50%) scale(10); /* Ingrandisce rapidamente */
	  opacity: 1;
	  background-color: #001A3C; /* Diventa blu durante l'espansione */
	}
	80% {
	  transform: translate(-50%, -50%) scale(30); /* Espansione a tutto schermo */
	  opacity: 1;
	  background-color: #001A3C; /* Blu alla fine */
	}
	100% {
	  transform: translate(-50%, -50%) scale(30); /* Espansione a tutto schermo */
	  opacity: 0;
	  background-color: #001A3C; /* Blu alla fine */
	}
  }
  
  /* Elimina la transizione di opacità e visibilità durante il cambio di sezione */
  .page-section {
	transition: none !important; /* Disabilita tutte le transizioni */
	opacity: 0 !important; /* Impedisce l'opacità di transire su sezione non attiva */
	visibility: hidden !important; /* Nascosti immediatamente */
  }
  
  .page-section.active {
	opacity: 1 !important;
	visibility: visible !important;
  }
  
  /* Iniziamo con il contenuto che non è visibile */
  .page-section .content-section {
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease-in-out; /* Fade-in per il contenuto */
  }
  
  /* Quando la sezione è attiva, il contenuto appare con il fade-in */
  .page-section.active .content-section {
	opacity: 1 !important;
	visibility: visible !important;
  }
  .page-section .ball {
	opacity: 1 !important;
  }

.background-animate-cursor {
	position: relative;
}

.background-animate-cursor::before {
	background-color: rgba(0, 0, 0, 0.2);
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	mask-image: radial-gradient(circle 120px at var(--x) var(--y), transparent 95%, black 100%);
	-webkit-mask-image: radial-gradient(circle 120px at var(--x) var(--y), transparent 95%, black 100%);
	mask-composite: exclude;
	-webkit-mask-composite: destination-out;
	pointer-events: none;
	z-index: -1;
}
.bg-cover-def::before {
	background-color: rgba(0, 0, 0, 0.4);
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	mask-image: radial-gradient(circle 120px at var(--x) var(--y), transparent 95%, black 100%);
	-webkit-mask-image: radial-gradient(circle 120px at var(--x) var(--y), transparent 95%, black 100%);
	mask-composite: exclude;
	-webkit-mask-composite: destination-out;
	pointer-events: none;
}
/* quote */

.quote-section-home, .quote-section-home p {
    color: white;
    font-family: "Montserrat", sans-serif;
    font-size: 40px !important;
    font-style: normal;
    font-weight: 400;
    line-height: 52px !important;
}
.quote-section-home h3 {
	font-family: 'Emord' !important;
	font-size: 34px;
}
.section-special-icon h5, .section-special-icon h5.p1 {
	font-size: 24px !important;
    margin-bottom: 0 !important;
    background: var(--Gradient-multicolor) !important;
    background-clip: text !important;
    color: transparent;
    display: inline-block;
}

body, a, button, div, img, input, textarea, select, label, [data-cursor-hover] {
	cursor: none !important;
}
  

/* Cursore personalizzato */
.custom-cursor {
	position: fixed;
	top: -42.5px;
	left: -42.5px;
	width: 85px;
	height: 85px;
	border: 1px solid white;
	border-radius: 100%;
	pointer-events: none;
	z-index: 9999;
	/* transition: transform 0.1s ease; */
	transform: translate(0, 0);
}
  
.custom-cursor::after {
	content: '';
	position: absolute;
	top: 45%;
	left: 45%;
	width: 6px;
	height: 6px;
	background: white;
	border-radius: 50%;
	transform: translate(0, 0);
	/* transition: all .3s ease; */
}
.custom-cursor.cursor-hover {
	/* transform: scaleX(.5); */
	background-color: rgba(255, 255, 255, .2); /* leggero alone */
	/* transition: all 0.3s ease; */
}
  
.custom-cursor.cursor-hover::after {
	/* background: var(--light-blue); */
	width: 3px;
	height: 3px;
}


/* Gradiente per il bordo o background */
/* --- AGGIORNA questa regola: --- */
.cursor-readmore {
    width: 150px !important;
    height: 150px !important;
    transition: width 0.22s, height 0.22s;
    background: none !important;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "Montserrat", sans-serif;
    font-size: 1.3rem;
    font-weight: 600;
    position: fixed;
    box-sizing: border-box;
}
/* --- AGGIUNGI/AGGIORNA queste regole: --- */
.cursor-border {
    position: absolute;
    top: 50%; left: 50%;
    width: 100%;
    height: 100%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    box-sizing: border-box;
    pointer-events: none;
    border: 1px solid white; /* fallback */
    transition: border 0.18s, width 0.18s, height 0.18s;
    z-index: 2;
    opacity: 1;
    background: none;
}

.cursor-readmore .cursor-border {
    border: 1px solid transparent;
    background: var(--Gradient-multicolor);
    background-origin: border-box;
    background-clip: border-box;
    /* masking per il solo bordo, supporto universale: */
    -webkit-mask:
      linear-gradient(#fff 0 0) content-box, 
      linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    mask:
      linear-gradient(#fff 0 0) content-box, 
      linear-gradient(#fff 0 0);
    mask-composite: exclude;
    opacity: 1;
    border-radius: 50%;
    animation: spin-gradient 1.8s linear infinite;
}

@keyframes spin-gradient {
  0% { transform: translate(-50%, -50%) rotate(0deg);}
  100% { transform: translate(-50%, -50%) rotate(360deg);}
}

.cursor-readmore .cursor-dot { display: none !important; }
.cursor-readmore .cursor-label {
	opacity: 1;
    display: block !important;
    color: white;
    letter-spacing: 1.2px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    z-index: 10;
    font-size: 0.92rem;
    font-weight: 600;
    text-transform: uppercase;
}
.custom-cursor .cursor-label {
    display: block;
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%) scale(0.7);
    pointer-events: none;
    white-space: nowrap;
    opacity: 0;
    transition: opacity 0.22s, transform 0.22s;
    color: white;
    z-index: 10;
    font-size: 0.92rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.2px;
}

.cursor-readmore .cursor-label {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}


/* cambio colore cursore */
#cursor-hoc.dark-cursor {
	border: 1px solid var(--background-blue);
}
#cursor-hoc.dark-cursor::after {
	background: var(--background-blue);
}


/* Rainbow text gradient */
.rainbow-text {
  background: linear-gradient(45deg, red, orange, yellow, green, blue, indigo, violet);
  background: var(--Gradient-multicolor);
  background-clip: text;
  color: transparent;
  -webkit-background-clip: text;
  font-weight: bold;
  font-size: 1.4rem; /* Modifica la dimensione del font come desideri */
}
.rainbow-text-2 {
	background: linear-gradient(45deg, red, orange, yellow, green, blue, indigo, violet) !important;
	background: var(--Gradient-multicolor) !important;
	background-clip: text !important;
	color: transparent !important;
	-webkit-background-clip: text;
  }
.intro-text-home-section {
    color: #FFF;
    font-family: "Montserrat", sans-serif;
    font-size: 20px;
    font-style: normal;
    font-weight: 300;
    line-height: 30px;
}
.intro-page-full-about {
	background-color:var(--background-blue);
	height: 100vh;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 15%;
    flex-direction: column;
	position: relative;
}
.ball-absolute-center {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 50%;
	z-index: 1;
}
.zindex-top {
	z-index: 9;
}
.text-center {
	text-align: center;
}
.title-hero-service-single {
	font-size: 26px;
	font-style: normal;
	font-weight: 700;
	text-transform: uppercase;
}


/* responsive */
@media (max-width: 576px) {
	.contain-70 {
		width: 100%;
	}
}

/* Griglia interattiva a 7 elementi con effetto hover */
.interactive-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 40px;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  perspective: 1000px;
  z-index: -1;
  opacity: .1;
}

.grid-item {
  text-align: center;
  transition: transform 0.5s ease-out;
  border-radius: 12px;
  will-change: transform;
  position: relative;
  border-radius: 100%;
  overflow: hidden;
  height: 200px;
  width: 200px;
}
.grid-item img {
	object-fit: cover;
	height: 100%;
  	width: 100%;
}
.point-ever {
	pointer-events: none;
}

.active-hover {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 200px;
}

/* Gradiente animato */
@keyframes moving-gradient {
	0% {
	  background-position: 0% 0%;
	}
	50% {
	  background-position: 100% 100%;
	}
	100% {
	  background-position: 0% 0%;
	}
  }
  
.background-animated {
	background: linear-gradient(90deg, #001A3E 63.46%, #03215D 100%);
	background-size: 200% 200%; /* Aumenta la dimensione per creare movimento */
	animation: moving-gradient 6s ease-in-out infinite; /* Animazione fluida e continua */
}

/* CSS */
@keyframes fadeInUp {
	0% {
	  opacity: 0;
	  transform: translateY(20px);
	}
	25% {
	  opacity: 0;
	  transform: translateY(20px);
	}
	100% {
	  opacity: 1;
	  transform: translateY(0);
	}
  }

.text-animate-in {
	animation: fadeInUp 1.5s ease forwards;
	animation-delay: var(--delay, 0s);
	opacity: 0;
}


/* About */
.intro-page-full {
	height: 100vh;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 15%;
    flex-direction: column;
	position: relative;
}
.intro-page-full::before {
	background-color: rgba(0, 0, 0, 0.4);
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
}
.intro-page-full h1, span {
	color: white !important;
	z-index: 1;
}
.intro-page-full h1 {
	font-size: 64px;
	font-style: normal;
	font-weight: 700;
	line-height: normal;
	text-transform: uppercase;
	margin-bottom: 20px !important;
}
.intro-page-classic {
	text-align: center;
	font-family: "Montserrat", sans-serif;
	font-size: 30px;
	font-style: normal;
	font-weight: 400;
	line-height: 40px; /* 133.333% */
}
.service-fullscreen {
	height: auto;
	scroll-snap-align: start;
	display: flex;
	align-items: start;
	justify-content: center;
	position: relative;
	transition: opacity 0.5s ease;
	gap: 140px;
	transition: background-color 0.3s ease-in-out;

	padding-left: 110px;
    padding-right: 110px;
}

.service-text {
	flex: 0 0 50%;
}

.service-fullscreen p {
	font-size: 20px;
	line-height: 30px;
	margin-bottom: 20px;
	color: #555;
	font-weight: 100;
	opacity: .8;
}
.service-fullscreen li {
	font-size: 20px;
	color: #555;
}
.pre-title {
	/* Pre title */
	font-size: 22px !important;
	font-style: normal;
	font-weight: 700;
	line-height: 30px; /* 136.364% */
	text-transform: uppercase;
	margin-bottom: 25px;
    display: inline-block;
}
.service-fullscreen h2 {
    font-size: 26px !important;
    font-style: normal;
    font-weight: 700;
    margin-bottom: 20px !important;
    line-height: 38px;
    margin-top: 0;
    width: 100%;
    word-break: break-word;
}

#cursor-hoc.cursor-light {
	background: white;
	border: 1px solid white;
}
#cursor-hoc.cursor-dark {
	background: black;
	border: 1px solid black;
}
/* Custom bullet icon for list items */
.service-fullscreen ul li, ul.dark-check {
    list-style: none;
    position: relative;
    padding-left: 40px;
    margin-bottom: 15px;
}
ul.dark-check {
	padding-left: 0;
}

.service-fullscreen ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 6px;
    width: 24px;
    height: 24px;
    background-image: url('https://diligize.pe/wp-content/uploads/2025/04/mynaui_check-waves-solid.svg');
    background-size: contain;
    background-repeat: no-repeat;
}

.service-fullscreen ul.dark-check li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 6px;
    width: 24px;
    height: 24px;
    background-image: url('https://diligize.pe/wp-content/uploads/2025/04/checklist-icon.svg');
    background-size: contain;
    background-repeat: no-repeat;
}
.riga-custom {
    position: absolute;
    bottom: 0;
    left: auto;
}

.page-template-service {
	/* background-color: white; */
	transition: background-color 0.4s ease-in-out;
}
.fade-out-up {
	opacity: 0;
	transform: translateY(-50px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}
.color-text-2 p, .color-text-2 h2, .color-text-2 span, .color-text-2 li,
.color-text-3 p, .color-text-3 h2, .color-text-3 span, .color-text-3 li,
.color-text-4 p, .color-text-4 h2, .color-text-4 span, .color-text-4 li,
.color-text-5 p, .color-text-5 h2, .color-text-5 span, .color-text-5 li {
	color: white;
}
.color-text-1 .riga-custom, .color-text-2 .riga-custom, .color-text-3 .riga-custom, .color-text-4 .riga-custom , .color-text-5 .riga-custom {
	opacity: .2;
}
.service-text p, .service-text li {
	color: white;
}


/* Contact */
.contact-col-grid {
	min-height: 100vh;
	display: flex;
	gap: 50px;
	align-items: start;
	justify-content: space-between;
	padding-left: 110px;
	padding-right: 110px;
	position: relative;
	padding-top: 10%;
}
.contact-col-grid h1 {
	margin-top: 0;
}
.col-custom, .form-contain {
	flex: 0 0 50%;
}
.contact-col-grid p {
	font-size: 18px;
	font-weight: 300;
	line-height: 30px;
}
.form-duble-col-input p {
	display: flex;
	gap: 10px;
}
.form-duble-col-input {
	margin-bottom: 15px;
}
.form-duble-col-input p input {
	width: 100%;
	border-radius: 100px;
	border: solid 1px white;
	height: 55px;
	padding-left: 15px;
	color: white !important;
	background: none;
}
.form-duble-col-input p input::placeholder, textarea::placeholder  {
	color: #f8f8f8 !important;
}
.wpcf7-submit {
	display: inline-flex !important;
		justify-content: center !important;
		align-items: center !important;
		width: 220px !important;
		height: 60px !important;
		border: 2px solid transparent !important;
		border-radius: 200px !important;
		color: white !important;
		font-weight: bold !important;
		font-size: 16px !important;
		background: linear-gradient(var(--background-blue), var(--background-blue)) padding-box, var(--Gradient-multicolor) border-box !important;
		background-clip: padding-box, border-box !important;
		background-origin: border-box !important;
		background-color: transparent !important;
		text-align: center !important;
		text-transform: uppercase;
		letter-spacing: 1px !important;
		font-size: 18px !important;
		font-weight: 400 !important;
		margin-top: 20px;
}
.form-text-area p textarea {
	border-radius: 25px;
	border: solid 1px white;
	background: none;
	padding-left: 15px;
	padding-top: 15px;
	color: white;
}
.form-contain h4 {
	color: var(--White, #FFF);
	font-size: 24px;
	font-style: normal;
	font-weight: 700;
	line-height: 30px; /* 125% */
	text-transform: uppercase;
	margin-top: 0;
}
.form-contain {
	color: var(--White, #FFF);
	font-size: 24px;
	font-style: normal;
	font-weight: 400;
	line-height: 40px; /* 166.667% */
}
.col-custom .text-whie {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.col-custom .text-whie a {
	font-size: 20px;
	color: var(--Gradient-multicolor);
	display: inline-block;
}


/* Blog */
.blog-page {
	padding-top: 180px;
}
.thumb-post {
    height: 240px;
    width: 100%;
    border-radius: 25px;
	background-size: cover;
    background-position: center;
	transition: all .2s ease-in-out;
}
.thumb-post:hover {
	transform: scale(1.05);
}
.latest-posts {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 40px;
    justify-content: space-between;
	padding-left: 110px;
	padding-right: 110px;
	margin-bottom: 60px;
	row-gap: 70px;
}
.single-post-grid a p {
	font-size: 18px;
	text-decoration: none !important;
	color: white;
	line-height: 26px !important;
	font-weight: 100;
}
.single-post-grid a {
	text-decoration: none !important;
}
.row-tag-categry {
    margin-bottom: 35px;
    text-align: center;
}
.category-menu {
	display: flex;
	gap: 15px;
	justify-content: center;
}
.post-title-home {
	transition: all .3 ease-in-out;
}
.post-title-home:hover {
	background: var(--Gradient-multicolor);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}
.category-button {
	background: none;
    color: white;
    border-radius: 100px;
    height: 50px;
    padding: 0 30px;
	transition: all .5s ease-in-out;
	border: solid 1px white;
}
.load-more-btn {
	margin-bottom: 70px;
}
.category-button:hover {
	background-color: white;
    color: var(--background-blue);
	border-color: white;
	border: solid 1px white;
}

.post-single-page {
    width: 660px !important;
    margin: 0 auto;
    box-sizing: border-box;
    padding-left: 0;
    padding-right: 0;
	padding-top: 100px !important;
}
.single-post p {
	color: white;
	font-size: 18px;
}
.post-single-page h1, .comments-area h2 {
	color: white !important;
}
.entry-meta {
	margin-bottom: 20px;
	color: white;
	text-decoration: none;
}
.entry-footer {
	margin-top: 20px;
	color: white;
	text-decoration: none;
}
.entry-meta a, .entry-meta span, .entry-footer a, .entry-footer span {
	color: white;
	text-decoration: none;
	font-size: 15px;
	font-weight: 300;
}
.entry-title {
	font-size: 36px;
}
figure.wp-block-image.size-large {
    margin: 85px auto;
    transform: scale(1.3);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 0 35px rgba(0, 0, 0, .5);
}
.single-post aside {
	display: none !important;
}
.entry-content {
	padding-bottom: 150px;
}


/* Services home balls section */
#section-2-a {
	position: relative;
	overflow: visible; /* Per non tagliare le absolute */
}

.circle-center-absolute {
	position: relative;
    width: 100%;
    min-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    padding-top: 140px;
    padding-bottom: 180px;
    height: 100%;
}

.title-linked a {
	text-decoration: none !important;
	color: white;
}
.service-icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: all .4s ease-in-out;
}

.zone-link {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 30%;
}

/* Posizionamento singolo, adatta come preferisci */

	.service-absolute-icons {
      position: relative;
      width: 30vw;
      height: 30vw;
      border-radius: 50%;
      margin: 0 auto;
      background-image: url('https://diligize.pe/wp-content/uploads/2025/04/bg-service-home.png');
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
	  margin-top: 130px;
    }
    .service-icon {
      position: absolute;
      top: 50%;
      left: 50%;
      transform-origin: center;
      width: 140px;
      height: 140px;
      margin-left: -70px;
      margin-top: -70px;
      pointer-events: auto;
      z-index: 2;
    }
    .service-icon-1 { transform: rotate(-90deg) translate(calc(7vw + 50px)) rotate(90deg) translateY(-50%); }
    .service-icon-2 { transform: rotate(-38.57deg) translate(calc(12vw + 50px)) rotate(38.57deg) translateY(9%)}
    .service-icon-3 { transform: rotate(12.86deg) translate(calc(11vw + 70px)) rotate(-12.86deg) translateY(0%) }
    .service-icon-4 { transform: rotate(64.29deg) translate(calc(10vw + 70px)) rotate(-64.29deg) translateY(20%) }
    .service-icon-5 { transform: rotate(115.71deg) translate(calc(10vw + 70px)) rotate(-115.71deg) translateY(20%) }
    .service-icon-6 { transform: rotate(167.14deg) translate(calc(11vw + 70px)) rotate(-167.14deg) translateY(0%)}
    .service-icon-7 { transform: rotate(218.57deg) translate(calc(11vw + 50px)) rotate(-218.57deg) translateY(0%)}

/* Tooltip stile base */
.service-icon:hover .service-tooltip,
.service-icon:focus .service-tooltip {
	display: block;
	opacity: 1;
}

.service-icon:hover img {
	transform: scale(1.3);
}

.service-tooltip {
	opacity: 1;
	position: absolute;
	transform: translateX(-50%);
	color: #fff;
	padding: 10px 22px;
	border-radius: 18px;
	transition: .4s ease-in-out;
	font-size: 1.3rem;
	white-space: pre-line;
	z-index: 100;
	width: 370px;
	min-width: 140px;
	max-width: 350px;

	text-transform: uppercase;
    font-weight: 500;
	font-size: 18px;
  }
  
  /* Tooltip visibile in hover su .service-icon OPPURE su tooltip stesso */
  .service-icon:hover .service-tooltip,
  .service-icon:focus-within .service-tooltip,
  .service-tooltip:hover {
	display: block;
	opacity: 1;
  }

  
  /* Tooltip di Service 3 posizionato a destra, centrato rispetto alla palla */
.service-icon-3, .service-icon-2, .service-icon-1, .service-icon-4, .service-icon-5 {
	position: absolute;
	/* mantieni il tuo posizionamento originale, es: bottom: 5%; left: 70%; */
	/* width e height già presenti */
	display: flex;
	align-items: center; /* Per allineare palla e tooltip */
  }

.service-icon-6 .service-tooltip {
	top: 10px;
    right: -30px;
    text-align: right;
	transition:
	 right 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.service-icon-6:hover .service-tooltip,
  .service-icon-6:focus-within .service-tooltip,
  .service-icon-6 .service-tooltip:hover {
	opacity: 1;
	right: -10px; /* Piccolo movimento di "slide" verso destra */
	pointer-events: auto;
}
.service-icon-7 .service-tooltip {
	top: 20px;
    right: -30px;
    text-align: right;
}
.service-icon-7:hover .service-tooltip,
  .service-icon-7:focus-within .service-tooltip,
  .service-icon-7 .service-tooltip:hover {
	opacity: 1;
	right: -10px; /* Piccolo movimento di "slide" verso destra */
	pointer-events: auto;
}
/* Service 3 */
.service-icon-3 .service-tooltip {
	position: absolute;
	left: 130px;
    top: 60px;
	transform: translateY(-50%);
	color: #fff;
	padding: 12px 28px;
	border-radius: 18px;
	white-space: pre-line;
	z-index: 200;
	pointer-events: none;
	transition:
	  left 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  }
  
  .service-icon-3:hover .service-tooltip,
  .service-icon-3:focus-within .service-tooltip,
  .service-icon-3 .service-tooltip:hover {
	opacity: 1;
	left: 145px; /* Piccolo movimento di "slide" verso destra */
	pointer-events: auto;
  }

/* Service 4 */
.service-icon-2 .service-tooltip {
	position: absolute;
	left: 215%;
    top: 15%;
	color: #fff;
	padding: 12px 28px;
	border-radius: 18px;
	white-space: pre-line;
	z-index: 200;
	pointer-events: none;
	transition:
	  left 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  }
  
  .service-icon-2:hover .service-tooltip,
  .service-icon-2:focus-within .service-tooltip,
  .service-icon-2 .service-tooltip:hover {
	opacity: 1;
	left: 217%; /* Piccolo movimento di "slide" verso destra */
	pointer-events: auto;
  }


  /* Service 4 */
.service-icon-5 .service-tooltip {
	position: absolute;
	right: 150px;
    top: 65px;
	transform: translateY(-50%);
	color: #fff;
	padding: 12px 28px;
	border-radius: 18px;
	white-space: pre-line;
	z-index: 200;
	text-align: right;
	pointer-events: none;
	transition:
	  opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1),
	  right 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  }
  
  .service-icon-5:hover .service-tooltip,
  .service-icon-5:focus-within .service-tooltip,
  .service-icon-5 .service-tooltip:hover {
	opacity: 1;
	right: 165px; /* Piccolo movimento di "slide" verso destra */
	pointer-events: auto;
  }

  .service-icon-4 .service-tooltip {
	position: absolute;
	left: 140px;
    top: 60px;
	transform: translateY(-50%);
	color: #fff;
	padding: 12px 28px;
	border-radius: 18px;
	white-space: pre-line;
	z-index: 200;
	pointer-events: none;
	transition:
	  left 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  }
  
  .service-icon-4:hover .service-tooltip,
  .service-icon-4:focus-within .service-tooltip,
  .service-icon-4 .service-tooltip:hover {
	opacity: 1;
	left: 155px; /* Piccolo movimento di "slide" verso destra */
	pointer-events: auto;
  }

  .service-icon-1 .service-tooltip {
	position: absolute;
	left: 70px;
    top: -80px;
	color: #fff;
	padding: 12px 28px;
	border-radius: 18px;
	white-space: pre-line;
	z-index: 200;
	pointer-events: none;
	transition:
	  top 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	text-align: center;
  }
  
  .service-icon-1:hover .service-tooltip,
  .service-icon-1:focus-within .service-tooltip,
  .service-icon-1 .service-tooltip:hover {
	opacity: 1;
	top: -95px; /* Piccolo movimento di "slide" verso destra */
	pointer-events: auto;
  }

  /* Policy page */
  .policy-page-content p {
	font-size: 18px;
	font-weight: 300;
	line-height: 30px;
  }
  .policy-page-content h2 {
	font-size: 24px !important;
  }

  .image-about {
	height: 480px;
	overflow: hidden;
  }


  /* About new rules */
  .section-full-text-dynamic {
	min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
	padding-left: 110px;
    padding-right: 110px;
}
.section-special-icon {
	display: flex;
    align-items: center;
    min-width: 100vh;
    color: white;
	padding-left: 110px;
    padding-right: 110px;
	padding-bottom: 150px;
	gap: 65px;
}
.icon-special-img {
    width: 670px;
}
.page-template-about {
	background-color: var(--background-blue);
}
.page-template-about p {
	font-size: 20px;
	line-height: 30px;
	margin: 0;
}
.nopadding {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.grid-four-icon {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 50px;
    min-height: 70vh;
	padding-left: 110px;
    padding-right: 110px;
}
.list-icon {
	list-style: none;
}
.list-icon li {
	color: white;
	margin-bottom: 25px;
}
.grid-two-col {
    display: flex;
    gap: 90px;
    padding-left: 110px;
    padding-right: 110px;
}
.size-20 {
	font-size: 20px !important;
}
.ball-with-number {
	width: 175px;
}
.icon-card {
    display: flex;
    align-items: center;
    gap: 20px;
}
.scroll-down {
    position: static;
    left: 0;
    bottom: 45px;
    font-size: 18px;
    letter-spacing: 1.2px;
    font-style: italic;
    color: white;
    width: 100%;
    text-align: center;
    animation: scroll infinite 2s;
    font-weight: 400;
}
@keyframes scroll {
	0% {
	  position: absolute;
	  bottom: 45px; }
	100% {
	  position: absolute;
	  bottom: 0;
	  opacity: 0; } 
}
/* Service updatea */
.page-template-service .service-fullscreen {
	padding-top: 145px;
	padding-top: 145px;
}
.service-image img.zoomed-image {
    transform: scale(1.05);
    object-fit: cover;
    width: 100%;
    height: 100%;
}
.service-image {
    overflow: hidden;
	border-radius: 55px;
}
.page-template-about img.zoomed-image {
    transform: scale(1.05);
    object-fit: cover;
    width: 100%;
    height: 100%;
}
.img-center-full {
    width: 70%;
    margin: 30px;
}
.final-section-img-svg-center {
	margin: 65px auto;
}
.final-section-img-svg-center h2 {
	max-width: 60%;
	margin: 20px auto;
}
.margin-top-extra {
	margin-top: 75px;
}
b, strong {
    font-weight: 900;
}
.bio-section {
    font-size: 20px;
    line-height: 30px;
	margin-top: 70px;
}
.bio-section p {
	margin: 50px auto;
	font-size: 20px !important;
    line-height: 30px !important;
}
.img-col {
	flex: 0 0 40%;
}
.max-height {
	min-height: 100vh;
	padding-left: 110px;
	padding-right: 110px;
	display: flex;
	align-items: center;
}




/* New Service Page */
.intro-service-min-hero {
	display: flex;
	gap: 50px;
	align-items: center;
	min-height: 90vh;
	padding-bottom: 90px;
	padding-left: 150px;
    padding-right: 150px;
	background-size: cover;
	position: relative;
}
.intro-service-min-hero::before {
	content: '';
	width: 100%;
	height: 100%;
	background: linear-gradient(to top, #0F1A3A 10%, rgba(15, 26, 58, 0.65) 100%);
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1;
}
.end-service-bottom {
	padding-top: 110px;
	padding-bottom: 110px;
	position: relative;
	background-size: cover;
	display: flex;
	align-items: center;
	text-align: center;
}
.end-service-bottom::before {
	content: '';
	width: 100%;
	height: 100%;
	background: linear-gradient(to bottom, #001A3C 10%, rgba(15, 26, 58, 0.65) 100%);
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1;
}
.intro-service-min-hero .col {
	z-index: 2;
}
.intro-service-min-hero p {
	font-size: 20px;
	margin-bottom: 20px;
}
.col-50 {
	flex: 0 0 65%;
}
.col-img-icon {
	display: flex;
	align-items: center;
	justify-content: center;
}
.illustratzione-icon-service {
    max-width: 70%;
    margin: 0 auto;
}
.service-icon-optional {
	padding-bottom: 65px;
	padding-left: 120px;
}
.slider-section {
	padding-bottom: 65px;
	padding-left: 120px;
}
.title-service-secondary {
	text-align: center;
	font-size: 24px;
	font-style: normal;
	font-weight: 700;
	text-transform: uppercase;
	font-family: 'Emord';
}
.title-content {
	margin-bottom: 50px;
	text-align: center;
}
.title-icon {
	font-size: 20px;
	font-style: normal;
	font-weight: 700;
	margin: 20px auto;
}
.grid-col-three {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 60px;
}
.grid-col-four {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 60px;
}
.grid-col-three p, .card p, .grid-col-four p {
	font-size: 18px;
    font-weight: 100 !important;
	margin-bottom: 25px;
	line-height: 30px;
}
.card p {
	margin-bottom: 0 !important;
}
.card-section-one {
	padding-top: 50px;
	padding-bottom: 75px;
}
.card-container {
	display: grid;
	grid-template-columns: auto 150px auto;
	gap: 35px;
	align-items: center;
}
.card-container-three {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 35px;
	align-items: center;
}
.card-container > .card:only-child {
  justify-self: center;
  text-align: center;
}
.card-container > *:only-child {
	grid-column: 1 / -1;
}
.card-container > *:first-child:nth-last-child(2),
.card-container > *:first-child:nth-last-child(2) ~ * {
	grid-column: span 2;
}
.card-container p {
	margin-bottom: 0;
}
.card {
	padding: 25px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
	height: 100%;

	/* Style */
	border-radius: 20px;
	background: #07102A;
	box-shadow: 0px 0px 24px 0px rgba(255, 255, 255, 0.10);
}
.card h5 {
	background: linear-gradient(45deg, red, orange, yellow, green, blue, indigo, violet) !important;
	background: var(--Gradient-multicolor) !important;
	background-clip: text !important;
	color: transparent !important;
	-webkit-background-clip: text;

	/* szie */
	margin-bottom: 10px;
    font-size: 20px;
	margin-top: 0 ;
}
.quote-text-service {
	font-family: "Montserrat", sans-serif;
	font-size: 32px;
	font-style: normal;
	font-weight: 400;
}
.sub-title-sphere {
	font-size: 20px;
	font-style: normal;
	font-weight: 400;
	text-align: center;
}
.container-sphere-text {
	margin-top: 80px;
	padding-bottom: 120px;
	display: flex;
	gap: 100px;
}
.text-column-special p {
	color: white;
	font-size: 20px;
	font-weight: 100;
}
.text-column-special strong {
	background: linear-gradient(45deg, red, orange, yellow, green, blue, indigo, violet) !important;
	background: var(--Gradient-multicolor) !important;
	background-clip: text !important;
	color: transparent !important;
	-webkit-background-clip: text;
}
.text-col-round {
    display: flex;
    flex-direction: column;
    gap: 40px;
    position: relative;
}
.sphere-contain {
    flex: 0 0 50%;
    display: flex;
    align-items: center;
    justify-content: end;
}

/* frasi sfalsate */
.pos-left-lg {
	margin-left: -140px;
}
.pos-left {
    margin-left: -90px;
}
.pos-left-mid {
    margin-left: -45px;
}

.pos-relative {
	position: relative;
}
.sphere-bg-col {
	position: absolute;
    top: 47%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: -1;
    width: 110%;
    max-width: none;
}
.sphere-column {
    margin: 130px auto;
}
.icon-contain-section.pos-relative {
    padding-left: 60px;
    padding-right: 60px;
}

/* Slider */
.glide__slide {
	display: flex;
	padding: 70px 25px 25px 25px;
	flex-direction: column;
	align-items: flex-start;
	flex-shrink: 0;
	align-self: stretch;
	position: relative;
	color: white;
	height: auto;

	/* style */
	border-radius: 20px;
	background: #0D1427;
	box-shadow: 0px 0px 25px 0px rgba(48, 61, 99, 0.60);
}
.glide__slide p {
	font-size: 18px;
	font-weight: 100;
}
.glide__slide h5 {
	background: linear-gradient(45deg, red, orange, yellow, green, blue, indigo, violet) !important;
	background: var(--Gradient-multicolor) !important;
	background-clip: text !important;
	color: transparent !important;
	-webkit-background-clip: text;
	font-size: 20px;
}
.glide__slides {
	padding: 50px 0 50px 30px;
}
.glide__bullets {
	text-align: center;
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: center;
}
.glide__bullet {
	height: 20px;
    width: 20px;
    border: solid 1px white;
    border-radius: 100px;
    background: none;
	transition: all .3s ease-in-out;
	padding: 0;
	margin-top: 55px;
}
.glide__bullet--active {
	height: 35px;
    width: 35px;
	background-color: rgba(255, 255, 255, .4);
}
.ct-home-only-mobile, .only-mobile {
	display: none;
}
.city-desk, .only-desktop {
	display: block;
}
.number-style {
	display: flex;
	width: 115px;
	padding: 19px 20px 11px 20px;
	justify-content: center;
	align-items: center;
	gap: 8px;
	border-radius: 15px;

	position: absolute;
	right: 28px;
	top: -20px;

	font-family: 'Emord';
	font-size: 32px;
	font-style: normal;
	font-weight: 500;
}
.bg-number-blue {
	background: linear-gradient(180deg, #1C90E3 0%, #02548D 100%);
}
.bg-number-orange {
	background: linear-gradient(180deg, #E6C885 0%, #E19379 100%);
}
.bg-number-red {
	background: linear-gradient(180deg, #D96958 0%, #C24F65 100%);
}
.bg-number-green {
	background: linear-gradient(180deg, #58D96B 0%, #2E913D 100%);
}
.bg-number-yellow {
	background: linear-gradient(180deg, #C26CB7 0%, #803EA4 100%);
}

#animated-titles {
	font-family: "Montserrat", sans-serif !important;
	font-weight: 500;
	text-transform: none !important;
}
#animated-titles strong {
	display: block;
	margin-bottom: 25px;
}
.title-slide {
	font-size: 42px !important;
}

@media (max-width: 768px) {
	html, body {
	  touch-action: auto !important;
	  overscroll-behavior: auto !important;
	  overflow: auto !important;
	  height: auto !important;
	}
}

/* Responsive */
@media (max-width: 576px) {
	.custom-cursor {
		display: none;
	}
	footer#colophon {
		margin-top: 100px;
	}
	.site-header {
		height: 90px;
		height: 90px;
		padding: 0 25px;
	}
	.text-logo {
		position: static;
		width: 200px;
	}
	.logo-contain-animate {
		height: 90px;
		display: flex;
		align-items: center;
	}
	h1 {
		font-family: 'Emord';
		font-size: 30px;
		text-transform: uppercase;
	}
	.ball-absolute-center {
		width: 180%;
        max-width: none;
	}
	.intro-page-full-about {
		padding: 0 25px;
	}
	.crown-logo, .crown-white-logo {
		display: none;
	}
	.padding-y-custom {
		padding-top: 65px;
		padding-bottom: 65px;
	}
	.service-fullscreen {
		flex-direction: column;
		padding-left: 25px;
		padding-right: 25px;
	}
	.service-text {
		flex: 0;
		padding-left: 25px;
		padding-right: 25px;
		width: 100%;
		order: -1;
	}
	.max-height {
		padding-left: 25px;
		padding-right: 25px;
	}
	.page-template-service .service-fullscreen {
		padding: 85px 0;
		gap: 70px;
	}
	.service-fullscreen h2 {
		font-size: 24px !important;
		font-style: normal;
		font-weight: 700;
		margin-bottom: 20px !important;
		line-height: 30px;
		margin-top: 0;
	}
	.section-full-text-dynamic {
		min-height: auto;
		display: flex;
		align-items: center;
		justify-content: center;
		padding-left: 25px;
		padding-right: 25px;
		padding-bottom: 140px;
		padding-top: 80px;
	}
	.section-special-icon {
		display: flex;
		align-items: center;
		min-width: auto;
		color: white;
		padding-left: 25px;
		padding-right: 25px;
		padding-bottom: 70px;
		gap: 50px;
		flex-direction: column;
	}
	.section-special-icon .text-section {
		display: flex;
		flex-direction: column;
		gap: 20px;
	}
	.grid-four-icon {
		display: grid;
		grid-template-columns: repeat(1, 1fr);
		gap: 80px;
		min-height: auto;
		padding-left: 25px;
		padding-right: 25px;
	}
	.icon-card {
		display: flex;
		align-items: center;
		gap: 30px;
		flex-direction: column;
		text-align: center;
	}
	.grid-four-icon {
		padding-bottom: 80px;
	}
	.quote-section-home, .quote-section-home p {
		font-size: 26px !important;
		line-height: 42px !important;
	}
	.list-city {
		display: flex;
		justify-content: space-around;
		flex-wrap: wrap;
		gap: 8px; /* spazio tra le voci, opzionale */
		padding: 10px 20px;
		margin: 0;
		list-style: none;
		height: auto;
	  }
	.list-city li {
		white-space: nowrap; /* evita che un nome si spezzi a metà */
		padding: 2px 8px;
		border-radius: 5px;
	  }
	.page-section {
		padding-left: 25px;
		padding-right: 25px;
	}
	.home h1 {
		width: 100%;
		font-size: 26px;
		text-align: center;
	}
	.service-icon {
		position: static;
		margin-left: 0;
		margin-top: 0;
		transform: none !important;
	}
	.service-icon-3, .service-icon-2, .service-icon-1, .service-icon-4, .service-icon-5, .service-icon-6, .service-icon-7 {
		transform: none;
		position: static;
	}
	.service-absolute-icons {
		position: static !important;
		display: flex;
		flex-direction: column;
		width: 100%;
    	height: 100%;
		background: none;
		margin-top: 20px;
	}
	#dot-navigation {
		position: fixed;
		right: 30px;
		bottom: -160px;
		transform: translateY(-50%);
		z-index: 10;
		top: auto;
	}
	h2 {
		font-family: 'Emord';
		font-size: 24px !important;
		text-transform: uppercase;
	}
	p {
		font-size: 20px;
		line-height: 30px;
		margin: 0;
	}
	.rainbow-text {
		font-size: 22px;
	}

	/* Palle section service */
	.service-icon {
		width: 100%;
        display: flex;
        flex-direction: row;
	}
	.service-icon-1, .service-icon-2, .service-icon-3, .service-icon-4, .service-icon-5, .service-icon-6, .service-icon-7 {
		transform: none;
		height: auto;
	}
	.service-tooltip {
		opacity: 1 !important;
		position: static !important;
		transform: none !important;
		text-align: left !important;
	}
	.service-icon img {
		width: 130px;
	}
	.ball-normal {
		width: 80% !important;
		opacity: .2;
	}
	.service-icon-6 .service-tooltip, .service-icon-7 .service-tooltip {
		text-align: left;
	}
	.service-absolute-icons a {
		text-decoration: none !important;
	}
	.ball-normal-service {
		display: none;
	}
	#section-2-a {
		position: relative;
		overflow: visible;
		display: flex;
		flex-direction: column-reverse;
		align-items: center;
		justify-content: center;

		height: auto;
        padding: 100px 20px;
	}
	.center-text-absolute {
		position: static;
	}
	.center-text-absolute {
		top: 16%;
	}
	h2.white-text.center-text-absolute.title-linked a {
		font-size: 36px !important;
	}
	.title-slide, #animated-titles {
		padding: 0  !important;
	}
	.ball {
		width: 130% !important;
		max-width: none;
	}
	.mask-section::before {
		--mask-radius: 240px;
	}
	.open-menu::before {
		border: none !important;
	}

	/* Blog */
	.latest-posts {
		grid-template-columns: 1fr;
		padding-left: 25px;
		padding-right: 25px;
		margin-bottom: 60px;
		row-gap: 70px;
	}
	.post-single-page {
		width: 100% !important;
		margin: 0 auto;
		box-sizing: border-box;
		padding-left: 25px;
		padding-right: 25px;
		padding-top: 140px;
	}
	.single-post p {
		color: white;
		font-size: 20px;
		margin-bottom: 20px;
	}

	/* Contact */
	.contact-col-grid {
		min-height: 100vh;
		display: flex;
		gap: 55px;
		align-items: start;
		justify-content: space-between;
		padding-left: 25px;
		padding-right: 25px;
		position: relative;
		padding-top: 25%;
		flex-direction: column;
	}
	.wpcf7-submit {
		width: 80% !important;
	}

	/* Menu mobile */
	.fullscreen-menu ul li a {
		font-size: 34px;
	}

	/* Service */
	.intro-page-full h1 {
		font-size: 30px;
		margin-bottom: 20px !important;
	}
	.intro-page-classic {
		font-size: 24px;
	}
	.final-section-img-svg-center h2 {
		max-width: 90%;
		margin: 0 auto;
	}
	.img-center-full {
		width: 100%;
		margin: 7% auto;
	}
	.pay-off-absolute {
		font-size: 20px;
		position: absolute;
		bottom: 50px;
		left: 50%;
		opacity: .7;
		transform: translateX(-50%);
		text-align: center;
		width: 95%;
	}
	.service-image.aos-init.aos-animate {
		padding-left: 25px;
		padding-right: 25px;
	}
	.service-image img.zoomed-image {
		transform: none;
		object-fit: cover;
		width: 100%;
		height: 100%;
		border-radius: 25px;
	}

	/* Service page new */
	.intro-service-min-hero {
		padding-left: 25px;
		padding-right: 25px;
		flex-direction: column-reverse;
		min-height: auto;
		padding-top: 65px;
	}
	.illustratzione-icon-service {
		max-width: 55%;
		margin: 0 auto;
	}
	.service-icon-optional {
		padding-bottom: 65px;
		padding-left: 25px;
		padding-right: 25px;
	}
	.slider-section {
		padding-left: 0;
		padding-right: 0;
		padding-bottom: 65px;
	}
	.grid-col-three {
		display: grid;
		grid-template-columns: repeat(1, 1fr);
		gap: 20px;
	}
	.custom-padding-extra {
		padding-left: 25px;
		padding-right: 25px;
	}
	.card-container {
		display: grid;
		grid-template-columns: 1fr;
		gap: 45px;
		align-items: center;
	}
	.icon-mid {
		max-width: 55%;
		margin: 0 auto;
	}
	.quote-text-service {
		font-family: "Montserrat", sans-serif;
		font-size: 28px;
	}
	.container-sphere-text {
		flex-direction: column;
	}
	.sphere {
		max-width: 65%;
		margin: 0 auto;
	}
	.pos-left, .pos-left-mid, .pos-left-lg {
		margin-left: 0;
	}
	.sphere-column {
		gap: 160px;
	}
	.grid-col-four {
		display: grid;
		grid-template-columns: repeat(1, 1fr);
		gap: 20px;
	}
	.card-container-three {
		display: grid;
		grid-template-columns: repeat(1, 1fr);
		gap: 35px;
		align-items: center;
	}
	.page-template-service footer#colophon {
        margin-top: 40px;
        z-index: 9;
    }

	/* H1 Home animato */
	#animated-titles .title-slide {
		font-size: 1.4rem !important;
	}

	/* Home mobile */
	#dot-navigation {
		display: none;
	}
	#custom-fullpage {
		position: relative;
		min-height: 100vh;
		overflow: scroll;
		height: max-content;
	}
	.grid-two-col {
		display: flex;
		gap: 90px;
		padding-left: 25px;
		padding-right: 25px;
		flex-direction: column;
	}
	.page-section {
		transition: none !important;
		opacity: 1 !important;
		visibility: visible !important;
		overflow: hidden;
	}
	.page-section {
		position: relative;
		width: 100%;
		min-height: 100vh;
	}
	.page-section .content-section {
		opacity: 1;
		visibility: visible;
		transition: opacity 0.3s ease-in-out;
	}
	.ct-home-only-mobile {
		display: block;
		position: static !important;
	}
	.city-desk {
		display: none;
	}
	 .only-mobile {
		display: block;
	}
	.only-desktop {
		display: none;
	}
	.service-icon-1 .service-tooltip {
		text-align: left;
	}
	.pay-off-absolute span {
		display: block;
	}
	.quote-section-home h3 {
		font-size: 24px;
	}
	.quote-section-home {
        padding-left: 0 !important;
    }
	.title-service-secondary {
		font-size: 20px;
	}
}

@media (max-width: 380px) {
  #animated-titles .title-slide {
    font-size: 1.3rem;
  }
}


/* 404 */
.error404 .page-content {
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 90vh;
    text-align: center;
    flex-direction: column;
    max-width: 90%;
    margin: 0 auto;
}


.w-100 {
  width: 100%;
}
#animated-titles {
  position: relative;
  height: 100vh; /* Altezza fissa per mantenere il centro verticale */
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 0 2rem;
}

#animated-titles .title-slide {
  position: absolute;
  width: 100%;
  left: 50%;
  top: 50%;
  transform: translate(-50%, 100%);
  opacity: 0;
  transition: opacity 1.5s ease, transform 1.5s ease;
  /* font-size: clamp(28px, 5vw, 50px); */
  font-size: clamp(20px, 3.5vw, 35px);
  padding: 0 2rem;
  box-sizing: border-box;
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: break-word;
}

#animated-titles .title-slide.visible {
  opacity: 1;
  transform: translate(-50%, -50%);
  z-index: 2;
}

#animated-titles .title-slide.exiting {
  opacity: 0;
  transform: translate(-50%, -150%);
  z-index: 1;
}
.home {

}

/* White headings inside blog posts */
.post-single-page h2,
.entry-content h2 {
  color: #fff;
  font-size: 1.5rem !important; /* Adjust this value as needed */
  line-height: 1.3;
}
.post-single-page {
    flex: 1;
    max-width: 800px;
    padding: 0 2rem;
    margin: 0 auto; /* ← Centers the block horizontally */
}

.post-single-page h3,
.entry-content h3 {
  color: #fff;
}

.sticky-sidebar {
    position: fixed;
    right: 0;
    top: 0;
    width: 25%;
    height: 100vh;
    padding-left: 1rem;
    border-left: 1px solid rgba(255, 255, 255, 0.2);
    background: rgba(0, 0, 0, 0.1); /* Optional for visual separation */
    overflow-y: auto;
    z-index: 1000;
}

.sticky-sidebar-inner {
    background: transparent;
    padding: 1rem;
    color: white;
}

.main-content-wrapper {
    display: flex;
    align-items: flex-start;
    gap: 2%;
}

@media (max-width: 768px) {
    .main-content-wrapper {
        flex-direction: column;
    }

	.sticky-sidebar {
		position: sticky;
		top: 2rem;
		width: 15%;
		margin-left: 2%;
		height: fit-content;
		border-left: 1px solid #ccc !important; /* This is the thin grey line */
		padding-left: 1rem; /* Add space between the border and sidebar content */
	}
}

body.single-post .main-content-wrapper{
    /* use only the left-hand 85 % … */
    max-width: 75vw;            /* 85 % of the viewport          */
    margin: 0 auto;             /* centre that strip             */

    /* …but push it 15 % away from the right edge so that it
       never sits under the sidebar that is fixed there        */
    padding-right: 25vw;        /* = width of your sidebar       */

    box-sizing: border-box;     /* include the padding in the 85 % calc */
}

/* 2. Let the article grow inside that strip instead of the   */
/*    old fixed 660 px.  Adjust the max as you prefer.         */
body.single-post .post-single-page{
    max-width: 800px;           /* or 100%, 70ch, etc.           */
    width: 100%;
    margin: 0 auto;             /* keeps it centred in the strip */
}

/* ─────────────────────────  TABLE-OF-CONTENTS  ───────────────────────── */
/* Container ──────────────────────────────────────────────────────────── */
.post-toc{
	--toc-accent: var(--light-blue);      /* single source of colour      */
	--toc-bg: rgba(255,255,255,.03);
	--toc-link: #c9d7ff;
	--toc-link-hover: #fff;
	--toc-border: rgba(255,255,255,.15);

	padding: 1.25rem 1rem 1.5rem;
	font-size: .9rem;
	line-height: 1.45;
}

/* Heading “ON THIS PAGE” */
.post-toc>h3{
	margin:0 0 .75rem;
	font-size: .95rem;
	letter-spacing: .5px;
	color:#fff;
	display:flex;
	align-items:center;
	gap:.75rem;
}
.post-toc>h3::after{                /* nice little underline bar      */
	content:'';
	flex:1;
	min-width:2.5rem;
	height:2px;
	background:var(--toc-accent);
	opacity:.7;
}

/* Lists ──────────────────────────────────────────────────────────────── */
.post-toc ul{
	list-style:none;
	margin:0;
	padding-left:0;
}

/* first-level bullet */
.post-toc li{
	position:relative;
	margin:.35em 0;
	padding-left:1rem;               /* room for the custom bullet     */
}
.post-toc li::before{
	content:'';
	position:absolute;
	left:0; top:.6em;
	width:.45em; height:.45em;
	border-radius:50%;
	background:var(--toc-accent);
	box-shadow:0 0 0 2px var(--toc-bg);
}

/* deeper levels = subtle indent & lighter colour */
.post-toc .toc-level-3   {margin-left:1rem; font-size:.95em; opacity:.8;}
.post-toc .toc-level-4   {margin-left:1.75rem; font-size:.9em; opacity:.7;}
.post-toc .toc-level-5,
.post-toc .toc-level-6   {display:none;}     /* rarely useful, just hide   */

/* Links ──────────────────────────────────────────────────────────────── */
.post-toc a{
	color:var(--toc-link);
	text-decoration:none;
	transition:color .2s;
}
.post-toc a:hover,
.post-toc a:focus{
	color:var(--toc-link-hover);
}
.post-toc a.active{                 /* the “scroll-spy” class from JS  */
	color:#fff;
	font-weight:600;
}

/* Responsive collapse below 980 px ──────────────────────────────────── */
@media(max-width:980px){
	.sticky-sidebar{ width:100%; height:auto; position:static; }
	.post-toc{margin-top:2rem;}
}

/* ░░░  SINGLE-POST top offset – keep content below the fixed header  ░░░ */
:root{
	/* single source of truth – change this if the header ever grows/shrinks */
	--header-height: 120px;
}

/* push the sidebar down and give it its own viewport-height */
body.single-post .sticky-sidebar{
	top: var(--header-height);
	height: calc(100vh - var(--header-height));
}

/* give the main article the same breathing room */
body.single-post .post-single-page{
	padding-top: calc(var(--header-height) + 1.5rem);   /* header + a little air */
}

/* ─────────────────────────  SINGLE POST – RESPONSIVE FIX PATCH  ───────────────────────── */
/* 1) Safer container math: stop reserving 25vw on narrow viewports */
@media (max-width: 1280px){
  body.single-post .main-content-wrapper{
    max-width: 92vw;
    padding-right: 0;           /* stop the forced empty space for the sidebar */
    margin: 0 auto;
  }
}

/* 2) Sidebar behavior:
   - Desktop: keep fixed if you want
   - ≤ 1200px: make it sticky (scrolls with page, doesn’t overlay)
   - ≤ 980px: stack under the article and take full width
*/
@media (max-width: 1200px){
  .sticky-sidebar{
    position: sticky;
    top: var(--header-height, 120px);
    height: auto;
    width: 28%;
    background: transparent;
  }
}
@media (max-width: 980px){
  .main-content-wrapper{
    flex-direction: column;      /* already set, but ensure here */
    gap: 2rem;
  }
  .sticky-sidebar{
    position: static;
    width: 100%;
    height: auto;
    padding-left: 0;
    border-left: none;           /* remove the vertical rule on mobile */
    background: transparent;
  }
}

/* 3) Article width & readable line length */
body.single-post .post-single-page{
  width: 100%;
  max-width: 72ch;               /* keeps paragraphs comfortable on desktop */
  padding-left: 1rem;
  padding-right: 1rem;
}
@media (max-width: 576px){
  body.single-post .post-single-page{
    max-width: 100%;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}

/* 4) Headings & body text scale fluidly */
body.single-post .entry-title{
  font-size: clamp(1.75rem, 2.2vw + 1rem, 2.5rem);
  line-height: 1.2;
}
body.single-post .entry-content p{
  font-size: clamp(1rem, 0.45vw + 0.95rem, 1.125rem);
  line-height: 1.7;
}

/* 5) Images/figures: kill the huge scale on small screens and prevent overflow */
figure.wp-block-image{
  margin: 2rem auto;
  max-width: 100%;
}
figure.wp-block-image.size-large{
  transform: none;               /* override earlier scale(1.3) */
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 0 24px rgba(0,0,0,.35);
  margin: 2.5rem auto;
}
.entry-content img,
.post-single-page img{
  height: auto;
  width: 100%;
  max-width: 100%;
  display: block;
}

/* 6) Wide embeds (iframes/tables/code) get a scroll wrapper to avoid layout breaks */
.entry-content iframe,
.entry-content table,
.entry-content pre{
  max-width: 100%;
}
.entry-content table{
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-spacing: 0;
}
.entry-content pre{
  white-space: pre-wrap;
  word-wrap: break-word;
}

/* 7) In-content heading sizes inside posts (your global h2 is uppercase & big) */
.post-single-page h2,
.entry-content h2{
  font-size: clamp(1.25rem, 1.2vw + 1rem, 1.6rem) !important;
  line-height: 1.3;
}
.post-single-page h3,
.entry-content h3{
  font-size: clamp(1.125rem, 1vw + .9rem, 1.35rem);
  line-height: 1.35;
}

/* 8) Keep content clear of the fixed header on all sizes */
:root{ --header-height: 120px; }
body.single-post .post-single-page{
  padding-top: calc(var(--header-height) + 1.25rem);
}

/* 9) TOC: full width on mobile, nicer spacing */
@media (max-width: 980px){
  .post-toc{ 
    margin-top: 1.25rem;
    padding: 1rem 1rem 1.25rem;
    border-left: none;
    background: rgba(255,255,255,.04);
    border-radius: 12px;
  }
}

/* 10) Don’t globally disable scrolling on phones (you already flip it at 768px,
       but make sure single-post never gets stuck if other classes leak) */
@media (max-width: 768px){
  html, body{
    touch-action: auto !important;
    overscroll-behavior: auto !important;
    overflow: auto !important;
    height: auto !important;
  }
}

/* 11) Safe link wrapping in post body to avoid overflow with long URLs */
.entry-content a{ word-break: break-word; }
