:root {
    /* FONT FAMILY */
    --balboa: "balboa", sans-serif;
    --balboaCondensed: "balboa-condensed", sans-serif;
    --balboaExtraCondensed: "balboa-extra-condensed", sans-serif;
    --sharp: 'Sharp Grotesk';

    /* COLORS */
    --azzurro: #2E75ED;
    --azzurro-chiaro: #5891F1;
    --azzurro-light: #ABC8F8;
    --rosa: #E1C1E6;
    --blu: #273681;
    --giallo: #E4FF83;
    --viola: #502274;

    --form-gap: calc(var(--distance-medium) / 2);

    --error: #FF5151;
}

body {
    font-family: var(--sharp);
    background: var(--azzurro);
    color: var(--bianco);
    font-weight: normal;
}
section {
    padding: var(--distance-big) 0;
}
.min-fullscreen {
    min-height: var(--vh100);
}

.swiper-card.swiper-mobile {
    height: 0;
    overflow: hidden;
    margin-top: 0;
}

/* COLORS */
.color-blu {
    color: var(--blu);
}
.color-rosa {
    color: var(--rosa);
}
.color-azzurro {
    color: var(--azzurro);
}
.color-azzurro-chiaro {
    color: var(--azzurro-chiaro);
}
.color-azzurro-light {
    color: var(--azzurro-light);
}
.color-viola {
    color: var(--viola);
}
.color-giallo {
    color: var(--giallo);
}

/* BACKGROUNDS */
.back-rosa {
    background: var(--rosa);
}
.back-viola {
    background: var(--viola);
}
.back-blu {
    background: var(--blu);
}
.back-azzurro {
    background: var(--azzurro);
}
.back-azzurro-chiaro {
    background: var(--azzurro-chiaro);
}
.back-azzurro-light {
    background: var(--azzurro-light);
}
.back-giallo {
    background: var(--giallo);
}

/* BORDERS */
.border-rosa {
    border-color: var(--rosa) !important;
}
.border-viola {
    border-color: var(--viola) !important;
}
.border-blu {
    border-color: var(--blu) !important;
}
.border-azzurro {
    border-color: var(--azzurro) !important;
}
.border-azzurro-chiaro {
    border-color: var(--azzurro-chiaro) !important;
}
.border-azzurro-light {
    border-color: var(--azzurro-light) !important;
}
.border-giallo {
    border-color: var(--giallo) !important;
}

/* BOTTONE */
.bottone,
.bottone:focus,
.bottone:visited,
.bottone:hover {
    position: relative;
    font-size: 1.8rem;
    line-height: 1.28;
    font-weight: 300;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: calc(var(--distance-half) * 3);
    border-radius: 23px;
    border: 1px solid transparent;
    padding: 0 calc(var(--distance-big) / 4);
    text-decoration: none;
    text-transform: uppercase;
    pointer-events: all;
    transition: var(--transition);
    -webkit-transition: var(--transition);
    overflow: hidden;
}
.bottone::before {
	content: '';
    position: absolute;
	top: 0;
	left: -75%;
	z-index: 2;
	display: block;
	width: 50%;
	height: 100%;
	background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,.2) 100%);
	background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.2) 100%);
	-webkit-transform: skewX(-25deg);
	transform: skewX(-25deg);
}
.bottone:hover::before {
	-webkit-animation: shine .75s;
	animation: shine .75s;
}
@-webkit-keyframes shine {
	100% {
		left: 125%;
	}
}
@keyframes shine {
	100% {
		left: 125%;
	}
}

/* .bottone:hover {
    background: var(--bianco);
}
header .bottone:hover {
    border-color: var(--blu);
} */


/* FONT SIZE */
.sharp1 {
    font-size: 5rem;
    line-height: 1;
    letter-spacing: normal;
    font-weight: 500;
}
.sharp1 span {
    display: block;
    color: var(--bianco);
}
.sharp2 {
    font-size: 4rem;
    line-height: 1.25;
    letter-spacing: normal;
    font-weight: 300;
}
.sharp3 {
    font-size: 2.4rem;
    line-height: 1.3;
    letter-spacing: normal;
    font-weight: normal;
}
.sharp4 {
    font-size: 1.8rem;
    line-height: 1.5;
    letter-spacing: normal;
    font-weight: normal;
}
.sharp5 {
    font-size: 1.4rem;
    line-height: 1.285;
    letter-spacing: normal;
    font-weight: 300;
}
.sharp6 {
    font-size: 1.2rem;
    line-height: 1.25;
    letter-spacing: normal;
    font-weight: 300;
}

.balboa1 {
    font-family: var(--balboaExtraCondensed);
    font-size: 12rem;
    line-height: 1;
    letter-spacing: normal;
}
.balboa2 {
    font-family: var(--balboaCondensed);
    font-size: 6rem;
    line-height: 1;
    letter-spacing: normal;
}

/* TAG */
.tag {
    position: relative;
    display: inline-flex;
    font-weight: 300;
    padding: calc(var(--distance) / 3) calc(var(--distance-half) * 3);
    border-radius: 23px;
}
.tag + .tag {
    margin-top: var(--distance-half);
}
.tag span {
    content: "";
    position: absolute;
    left: var(--distance-half);
    top: 50%;
    width: var(--distance-half);
    height: var(--distance-half);
    transform: translateY(-50%);
    border-radius: 50%;
}
.tag span:last-of-type {
    left: auto;
    right: var(--distance-half);
}

/* CONT TESTO */
.cont-testo {
    margin: 0;
}
.cont-testo * + .balboa2 {
    margin-top: calc(var(--distance-medium) / 2);
}
.cont-testo .balboa2 + * {
    margin-top: var(--distance);
}
.cont-testo .sharp1 + * {
    margin-top: var(--distance-medium);
}
.cont-testo * + .sharp3 {
    margin-top: var(--distance-medium);
}
section:first-of-type .cont-testo * + .row {
    margin-top: calc(var(--distance) * 3);
}

.cont-testo ul {
    list-style: none; /* Remove default bullets */
}
  
.cont-testo ul li::before {
    content: "\2022";  /* Add content: \2022 is the CSS Code/unicode for a bullet */
    color: var(--rosa); /* Change the color */
    font-weight: bold; /* If you want it to be bold */
    display: inline-block; /* Needed to add space between the bullet and the text */
    width: 1em; /* Also needed for space (tweak if needed) */
    margin-left: -1em; /* Also needed for space (tweak if needed) */
}

/* COLUMNS */
.col-4_5 {
    flex: 0 0 auto;
    width: 37.5%;
}

/* GUTTERS */
.g-custom {
    --bs-gutter-x: calc(var(--distance-medium) / 2);
    --bs-gutter-y: calc(var(--distance-medium) / 2);
}
.gy-custom {
    --bs-gutter-y: calc(var(--distance-medium) / 2);
}
.g-custom-double {
    --bs-gutter-x: var(--distance-medium);
    --bs-gutter-y: var(--distance-medium);
}
.gy-custom-double {
    --bs-gutter-y: var(--distance-medium);
}
.gy-custom-triple {
    --bs-gutter-y: calc(var(--distance-medium) * 1.5);
}

/* SECTION TITLE */
.section-title {
    padding-top: var(--distance-medium);
    border-top: 1px solid var(--bianco);
}

/* CARDS */
.custom-card {
    height: 100%;
    width: 100%;
    border-radius: var(--distance);
    overflow: hidden;
    user-select: none !important;
}
.custom-card.square {
    aspect-ratio: 1 / 1;
    height: auto;
}
.custom-card.horizontal {
    max-width: 100%;
    width: auto;
    height: 100%;
    aspect-ratio: 5/3;
}
.last-card .custom-card.horizontal {
    aspect-ratio: 5/2.35;
}

.custom-card .sharp3 {
    font-size: 2.8rem;
    line-height: 1;
    font-weight: 600;
}

/* CARD ICON */ 
.custom-card.card-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    /* flex-wrap: wrap; */
    padding: var(--distance) var(--distance-medium) calc(var(--distance-medium) / 2);
}
.custom-card.card-icon [class*="icon-"] {
    height: calc(var(--distance-medium) * 2);
    width: calc(var(--distance-medium) * 2);
}
.custom-card.card-icon.with-text {
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.custom-card.card-icon.only-icon {
    padding: var(--distance-medium);
}
.custom-card.card-icon.only-icon [class*="icon-"] {
    height: calc(var(--distance-medium) * 3);
    width: calc(var(--distance-medium) * 3);
    max-width: 100%;
    max-height: 100%;
}
.custom-card.card-icon.only-icon.horizontal [class*="icon-"] {
    height: calc(var(--distance-medium) * 5);
    width: calc(var(--distance-medium) * 5);
}
.custom-card.card-icon .sharp3 {
    margin: calc(var(--distance-medium) / 2) 0 calc(var(--distance-half) / 3);
}

.custom-card.card-icon.with-text.horizontal {
    display: block;
}
.custom-card.card-icon.with-text.horizontal [class*="icon-"] {
    margin: 0 auto;
}

/* CARD CALENDAR */
.custom-card.card-calendar {
    display: flex;
    align-items: end;
    column-gap: calc(var(--distance-medium) / 2);
    padding: calc(var(--distance-big) / 2) var(--distance-medium) var(--distance-medium);
}
.custom-card.card-calendar .calendar {
    display: flex;
    flex-wrap: wrap;
    row-gap: calc(var(--distance-half) / 3);
    width: calc(55% - calc(var(--distance) / 3));
}
.custom-card.card-calendar .calendar .linea {
    position: relative;
    height: calc(var(--distance-medium) / 2);
    width: 100%;
    border-radius: calc(var(--distance) / 3);
    overflow: hidden;
}
.custom-card.card-calendar .calendar .linea .bg-rect {
    position: relative;
    width: 100%;
    height: 100%;
    opacity: 0.4;
}
.custom-card.card-calendar .calendar .linea .active-rect {
    position: absolute;
    left: 0;
    top: 0;
    width: var(--distance-medium);
    height: 100%;
    border-radius: calc(var(--distance) / 3);
    transition: all 0.5s 0.4s linear;
    -webkit-transition: all 0.5s 0.4s linear;
    transform: translateX(0);
}
.custom-card.card-calendar .calendar.visible .linea:nth-child(1) .active-rect {
    left: 100%;
    transform: translateX(-100%);
}
.custom-card.card-calendar .calendar.visible .linea:nth-child(2) .active-rect {
    left: 50%;
    transform: translateX(-50%);
}
.custom-card.card-calendar .calendar.visible .linea:nth-child(4) .active-rect {
    left: 70%;
    transform: translateX(-50%);
}
.custom-card.card-calendar .card-text {
    display: block;
    width: calc(45% - calc(var(--distance) / 3));
}
.custom-card.card-calendar .card-text * + * {
    margin-top: calc(var(--distance) / 3);
}

/* CARD PERCENTAGE */
.custom-card.card-percentage {
    display: flex;
    align-items: end;
    column-gap: calc(var(--distance-medium) / 2);
    padding: calc(var(--distance-big) / 2) var(--distance-medium) var(--distance-medium);
}
.custom-card.card-percentage .pie-chart {
    position: relative;
    width: calc(55% - calc(var(--distance) / 3));
    height: auto;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    overflow: hidden;
}
.custom-card.card-percentage .pie-chart .dato {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0.5;
    --perc: 0%;
    -webkit-transition: --perc 0.5s linear;
    transition: --perc 0.5s linear;
}
@property --perc {
    syntax: '<percentage>'; /* its type */
    inherits: false;
    initial-value: 0%; /* the initial value */
}
.custom-card.card-percentage .pie-chart .mask {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 70%;
    height: 70%;
    border-radius: 50%;
    z-index: 10;
}
.custom-card.card-percentage .card-text {
    display: block;
    width: calc(45% - calc(var(--distance) / 3));
}
.custom-card.card-percentage .card-text > * + * {
    margin-top: calc(var(--distance) / 3);
}
.custom-card.card-percentage .card-text .dati > * {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: start;
    column-gap: calc(var(--distance-half) / 3);
}
.custom-card.card-percentage .card-text .dati > * + * {
    margin-top: calc(var(--distance-half) / 3);
}
.custom-card.card-percentage .card-text .dati > * span {
    display: block;
    width: calc(var(--distance-big) / 4);
    height: calc(var(--distance-big) / 4);
    min-width: calc(var(--distance-big) / 4);
    min-height: calc(var(--distance-big) / 4);
    border-radius: 50%;
}

/* CARD COLUMNS */
.custom-card.card-columns {
    display: flex;
    align-items: end;
    column-gap: calc(var(--distance-medium) / 2);
    padding: calc(var(--distance-big) / 2) var(--distance-medium) var(--distance-medium);
}
.custom-card.card-columns .columns-chart {
    position: relative;
    display: flex;
    align-items: end;
    justify-content: space-between;
    width: calc(55% - calc(var(--distance) / 3));
    height: 100%;
}
.custom-card.card-columns .columns-chart .column {
    height: 100%;
    width: calc(16.666666666666668% - 2px);
    border-radius: calc(var(--distance) / 3);
    transition: max-height 0.85s linear;
    -webkit-transition: max-height 0.85s linear;
    max-height: 100%;
}
.custom-card.card-columns .columns-chart .column:nth-child(1) {
    opacity: 0.2;
    height: 50%;
}
.custom-card.card-columns .columns-chart .column:nth-child(2) {
    opacity: 0.4;
    height: 30%;
}
.custom-card.card-columns .columns-chart .column:nth-child(3) {
    opacity: 0.5;
    height: 60%;
}
.custom-card.card-columns .columns-chart .column:nth-child(4) {
    opacity: 0.65;
    height: 80%;
}
.custom-card.card-columns .columns-chart .column:nth-child(5) {
    opacity: 0.8;
    height: 40%;
}
.custom-card.card-columns .card-text {
    display: block;
    width: calc(45% - calc(var(--distance) / 3));
}
.custom-card.card-columns .card-text > * + * {
    margin-top: calc(var(--distance) / 3);
}

/* CARD ORARIO */
.custom-card.card-orario {
    padding: calc(var(--distance-big) * 0.35) var(--distance);
}
.custom-card.card-orario .giorno,
.custom-card.card-orario .ore,
.custom-card.card-orario .minuti {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: calc(var(--distance) / 3);
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
    margin-top: calc(var(--distance-half) / 3);
}
.custom-card.card-orario .ore,
.custom-card.card-orario .minuti {
    justify-content: space-between;
    overflow: hidden;
    border-radius: 50%;
}
.custom-card.card-orario .minuti {
    border-radius: calc(var(--distance) / 3);
}
.custom-card.card-orario .ore span,
.custom-card.card-orario .minuti span {
    transform: translateX(-5px);
    opacity: 0.5;
}
.custom-card.card-orario .ore span:last-of-type,
.custom-card.card-orario .minuti span:last-of-type {
    transform: translateX(5px);
}
.custom-card.card-orario .card-text {
    margin-top: calc(var(--distance-big) / 4);
}
.custom-card.card-orario .card-text > * + * {
    margin-top: calc(var(--distance) / 3);
}

/* CARD CASO STUDIO */
.custom-card.card-caso-studio {
    display: flex;
    align-items: center;
    column-gap: calc(var(--distance-medium) / 2);
    padding: var(--distance-medium) calc(var(--distance-big) / 2);
}
.custom-card.card-caso-studio .card-chart {
    width: calc(50% - calc(var(--distance) / 3));
    height: 100%;
}
.custom-card.card-caso-studio .pie-chart {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    overflow: hidden;
}
.custom-card.card-caso-studio .pie-chart .dato {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0.5;
    --perc: 0%;
    transition: --perc 0.5s linear;
    -webkit-transition: --perc 0.5s linear;
    z-index: 1;
}
.custom-card.card-caso-studio .pie-chart .mask {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 70%;
    height: 70%;
    border-radius: 50%;
    z-index: 3;
}
.custom-card.card-caso-studio .card-chart .dati {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    row-gap: var(--distance-half);
    margin-top: var(--distance);
}
.custom-card.card-caso-studio .card-chart .dati > * {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: start;
    column-gap: calc(var(--distance-half) / 3);
}
/* .custom-card.card-caso-studio .card-chart .dati > * + * {
    margin-top: calc(var(--distance-half) / 3);
} */
.custom-card.card-caso-studio .card-chart .dati > * span {
    display: block;
    width: calc(var(--distance-big) / 4);
    height: calc(var(--distance-big) / 4);
    min-width: calc(var(--distance-big) / 4);
    min-height: calc(var(--distance-big) / 4);
    border-radius: 50%;
}
.custom-card.card-caso-studio .card-chart .dati > *:nth-child(1) span {
    opacity: 0.5;
}
.custom-card.card-caso-studio .card-text {
    display: block;
    width: calc(50% - calc(var(--distance) / 3));
}
.custom-card.card-caso-studio .card-text > *.sharp3 {
    -webkit-hyphens: auto;
    -moz-hyphens: auto;
    hyphens: auto;
}
.custom-card.card-caso-studio .card-text > *.sharp3 + *.sharp5 {
    margin-top: calc(var(--distance-medium) / 2);
}

/* CARD SERVIZIO */
.card-servizio {
    position: relative;
    border-radius: calc(var(--distance-big) / 2);
    overflow: hidden;
}
.card-servizio [class*="icon-"] {
    width: var(--distance-medium);
    height: var(--distance-medium);
    margin-left: var(--distance-medium);
    margin-top: var(--distance);
    margin-bottom: calc(var(--distance-big) / 4);
}
.card-servizio [class*="icon-"].big {
    width: var(--distance-big);
    height: var(--distance-big);
    margin-bottom: calc(var(--distance-half) * 3);
}
.card-servizio .cont-testo {
    padding: calc(var(--distance-half) * 3) var(--distance-medium) calc(var(--distance-big) / 4);
    border-radius: calc(var(--distance-big) / 2);
}
.card-servizio .cont-testo * + .balboa2 {
    -webkit-hyphens: auto;
    -moz-hyphens: auto;
    hyphens: auto;
    margin-top: calc(var(--distance-medium) * 4);
    transition: var(--transition);
}
a .card-servizio::before {
	content: '';
    position: absolute;
	top: 0;
	left: -85%;
	z-index: 2;
	display: block;
	width: 50%;
	height: 100%;
	background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,.2) 100%);
	background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.2) 100%);
	-webkit-transform: skewX(-25deg);
	transform: skewX(-25deg);
}
a .card-servizio:hover::before {
	-webkit-animation: shine .75s;
	animation: shine .75s;
}

/* CARD TESTO */
.custom-card.card-testo {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    justify-content: start;
    padding: calc(var(--distance-big) / 2) var(--distance-medium);
}
.custom-card.card-testo .cont-testo + .cont-testo {
    margin-top: var(--distance-half);
    padding-top: var(--distance-half);
    border-top: 1px solid var(--bianco);
}
.custom-card.card-testo .cont-testo * + .sharp3 {
    margin-top: calc(var(--distance) / 3);
}

/* CARD ONLY PERCENTAGE */
.custom-card.card-percentage.only-percentage {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: calc(var(--distance-big) / 4);
}
.custom-card.card-percentage.only-percentage .pie-chart {
    width: auto;
    height: 100%;
}
.custom-card.card-percentage.only-percentage .pie-chart .sharp3 {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 11;
    transform: translate(-50%, -50%);
}

.page-template-page-grazie header,
.page-template-page-grazie footer,
.page-template-page-grazie .subfooter{
    display: none;
}