html, body {
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    font-size: 10px;
    margin: 0 !important;
    background-color: var(--brand-light);
}

@media (max-width: 768px){
    .desktop {
        display: none !important;
    }
}

@media screen and (min-width: 769px){
    html, body {
        font-size: 0.521vw;
    }
    .mobile {
        display: none !important;
    }
}


/* utilities */

.transition {
    transition: var(--transition-base);
}
a {
    text-decoration: none;
    color: var(--brand-dark);
    transition: all .25s ease-in-out;
    display: inline-block;
}
a:hover {
    color: var(--brand-dark-hover);
}
footer a {
    color: var(--brand-light);
}
footer a:hover {
    color: var(--brand-light-hover);
}
ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.uppercase {
    text-transform: uppercase;
}
.relative {
    position: relative;
}
.overflow-hidden {
    overflow: hidden;
}


/* fonts */

h1,h2,h3,h4,h5,h6,p {
    margin: 0;
}

h1, h1 a, .header {
    font-size: var(--header);
    font-weight: 600;
    line-height: 1.2;
}
h2, h2 a, .sub-a {
    font-size: var(--subheader-a);
    font-weight: 600;
    line-height: 1.3;
}
h3, h3 a, h4, h4 a, h5, h5 a, .sub-b {
    font-size: var(--subheader-b);
    font-weight: 600;
    line-height: 1.3;
}
strong, b {
    font-weight: 600;
}
h4, h5, h6, p, span, em {
    font-weight: 500;
}
p {
    font-size: var(--body);
    line-height: 1.4;
}
.font-regular {
    font-weight: 400;
}


/* struttura */

.flex {
    display: flex;
}
.flex-col {
    flex-direction: column;
}
.flex-row {
    flex-direction: row;
}
.md-flex-row {
    flex-direction: column;
}
.flex-1 {
    flex: 1 1 0%;
}
.justify-normal {
    justify-content: normal;
}
.justify-start {
    justify-content: flex-start;
}
.justify-end {
    justify-content: flex-end;
}
.justify-center {
    justify-content: center;
}
.justify-between {
    justify-content: space-between;
}
.items-start {
    align-items: flex-start;
}
.items-end {
    align-items: flex-end;
}
.items-center {
    align-items: center;
}
.items-baseline {
    align-items: baseline;
}
.items-stretch {
    align-items: stretch;
}

@media screen and (min-width: 769px){
    .md-flex-row {
        flex-direction: row;
    }
    .md-flex-1 {
        flex: 1 1 0%;
    }
    .md-items-center {
        align-items: center;
    }
    .md-justify-end {
        justify-content: flex-end;
    }
    .md-items-end {
        align-items: flex-end;
    }
    .md-justify-center {
        justify-content: center;
    }
    .md-justify-start {
        justify-content: flex-start;
    }
}


/* paddings */

.py-s {
    padding-top: var(--p-s);
    padding-bottom: var(--p-s);
}
.py-m {
    padding-top: var(--p-m);
    padding-bottom: var(--p-m);
}
.py-l {
    padding-top: calc(var(--p-l) * 2);
    padding-bottom: calc(var(--p-l) * 2);
}
.px-s {
    padding-left: var(--p-s);
    padding-right: var(--p-s);
}
.px-l {
    padding-left: var(--p-l);
    padding-right: var(--p-l);
}
.pt-s {
    padding-top: var(--p-s);
}
.pt-m {
    padding-top: var(--p-m);
}
.pt-ms {
    padding-top: var(--p-ms);
}
.pt-l {
    padding-top: calc(var(--p-l) * 2);
}
.pb-s {
    padding-bottom: var(--p-s);
}
.pb-m {
    padding-bottom: var(--p-m);
}
.pb-l {
    padding-bottom: calc(var(--p-l) * 2);
}
.pl-s {
    padding-left: var(--p-s);
}
.pl-m {
    padding-left: var(--p-m);
}
.pl-l {
    padding-left: var(--p-l);
}
.pr-s {
    padding-right: var(--p-s);
}
.pr-m {
    padding-right: var(--p-m);
}
.pr-l {
    padding-right: var(--p-l);
}

@media (max-width: 768px){
    .mobile-pt-m {
        padding-top: var(--p-m);
    }
    .mobile-pt-l {
        padding-top: calc(var(--p-l) * 2);
    }
    .mobile-py-l {
        padding-top: calc(var(--p-l) * 2);
        padding-bottom: calc(var(--p-l) * 2);
    }
    .py-s, .py-m, .py-l {
        padding-top: calc(var(--p-l) * 2);
        padding-bottom: calc(var(--p-l) * 2);
    }
}

@media screen and (min-width: 769px){
    .py-l {
        padding-top: var(--p-l);
        padding-bottom: var(--p-l);
    }
    .pt-l {
        padding-top: var(--p-l);
    }
    .pb-l {
        padding-bottom: var(--p-l);
    }
    .desktop-pl-m {
        padding-left: var(--p-m);
    }
    .desktop-pr-l {
        padding-right: var(--p-m);
    }
}


/* buttons */

a.button {
    background-color: var(--brand-accent-a);
    transition: var(--transition-base);
    padding: 1.1rem 4.5rem;
    font-size: var(--button-text);
    border-radius: 9px;
    color: var(--brand-light);
    width: max-content;
    min-width: 252px;
    text-align: center;
}

@media screen and (min-width: 769px){
    a.button {
        border-radius: .9rem;
        min-width: auto;
    }
    a.button:hover {
        background-color: var(--brand-accent-b);
    }
}


/* header */

.header-logo,
.footer-logo {
    width: 220px;
}
.ancor-nav li a {
    font-size: var(--megamenu);
    font-weight: 500;
}

@media screen and (min-width: 769px){
    .header-logo ,
    .footer-logo {
        width: 13.667vw;
    }
}


/* divider */

.divider-h,
.divider-v {
    background-color: var(--brand-dark);
}
.divider-h {
    width: 100%;
    height: 2px;
}
.divider-v {
    width: 2px;
    height: 100%;
}


/* footer */

footer#site-footer {
    background-color: var(--brand-dark);
    padding-top: calc(var(--p-l) * 2);
    padding-left: var(--p-m);
    padding-right: var(--p-m);
    padding-bottom: var(--p-l);
}
footer#site-footer p, footer#site-footer a {
    color: var(--brand-light);
    line-height: 1.8;
}
footer#site-footer a {
    font-size: var(--body);
    text-decoration: underline;
}

@media (max-width: 768px){
    footer#site-footer p, footer#site-footer a {
        font-size: 1.2rem;
    }
}

@media screen and (min-width: 769px){
    footer#site-footer {
        padding-top: var(--p-l);
    }
    footer#site-footer .footer_col {
        width: 28%;
    }
    footer#site-footer .footer_col.footer_col_4 {
        width: 16%;
    }
}


main *, *::after, *::before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
li, ul {padding: 0; margin: 0; list-style: none;}

::selection {background-color: var(--color-accent); color: var(--color-dark); text-shadow: none;}
::-moz-selection {background-color: var(--color-accent); color: var(--color-dark); text-shadow: none;}

*:focus {
  outline: none;
}

/************************ Global ****/

@media (max-width: 997px){
    .desktop {
        display: none !important;
    }
}

@media screen and (min-width: 998px){
    .mobile {
        display: none !important;
    }
}

.grecaptcha-badge {
	right: -800px !important;
}
h1, h2, h3, h4, h5, h6, p, span, a {
    margin-bottom: 0;
    margin-top: 0;
}
li, ul, ol, figure {
    padding: 0; margin: 0; list-style: none;
}
p a {
    overflow-wrap: break-word;
    word-wrap: break-word;
    -ms-word-break: break-all;
    word-break: break-all;
    word-break: break-word;
    -ms-hyphens: auto;
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    hyphens: auto;
}
canvas, img, video {
    box-sizing: border-box;
}
canvas, img, video, picture, figure {
    max-width: 100%;
    height: auto;
    box-sizing: border-box;
    display: block;
}
img {
    border-style: none;
}
svg {
    max-width: none;
    height: auto;
    box-sizing: border-box;
}
audio, canvas, iframe, img, svg, video, picture, figure {
    vertical-align: middle;
}

/* WPML */

.wpml-ls-legacy-list-horizontal.wpml-ls-statics-footer {
    margin-bottom: 30px;
    display: none !important;
}
.otgs-development-site-front-end {
    display: none !important;
}

/************************ height / width defaults */

.w-full {
    width: 100%;
}
.h-full {
    height: 100%;
}
.min-h-screen {
    min-height: 100vh;
    min-height: 100svh;
}

@media screen and (min-width: 575px){
    .sm-w-full {
        width: 100%;
    }    
    .sm-h-full {
        height: 100%;
    }
    .sm-min-h-screen {
        min-height: 100vh;
    }    
}

@media screen and (min-width: 998px){
    .md-w-full {
        width: 100%;
    }    
    .md-h-full {
        height: 100%;
    }
    .md-min-h-screen {
        min-height: 100vh;
    }    
}

/************************ text */

.text-center {
    text-align: center;
}
.text-right {
    text-align: right;
}
.text-left {
    text-align: left;
}

@media screen and (min-width: 998px){
    .md-text-center {
        text-align: center;
    }
    .md-text-right {
        text-align: right;
    }
    .md-text-left {
        text-align: left;
    }  
}

/************************ cursor */

button,
a.pulsante,
.cursor-pointer {
    cursor: pointer;
}
.cursor-default {
    cursor: default;
}

/************************ border radius */

.rounded {
    border-radius: 5rem;
}
.rounded-full {
    border-radius: 9999px;
}

/************************ coordinates */

.right-0 {
    right: 0;
}
.left-0 {
    left: 0;
}
.top-0 {
    top: 0;
}
.bottom-0 {
    bottom: 0;
}

/************************ z-index */

.z-1 {
    z-index: 1;
}
.z-2 {
    z-index: 2;
}
.z-3 {
    z-index: 2;
}
.z-9 {
    z-index: 9;
}
.z-999 {
    z-index: 999;
}

/************************ overflow */

.overflow-hidden {
    overflow: hidden;
}
.overflow-visible {
    overflow: visible;
}

/************************ text transform e decoration */

.uppercase {
    text-transform: uppercase;
}
.underline {
    text-decoration: underline;
}

/************************ position */

.absolute {
    position: absolute;
}
.relative {
    position: relative;
}
.fixed {
    position: fixed;
}
.sticky {
    position: sticky;
}

@media screen and (min-width: 575px){
    .sm-absolute {
        position: absolute;
    }
    .sm-relative {
        position: relative;
    }
    .sm-fixed {
        position: fixed;
    }
    .sm-sticky {
        position: fixed;
    }
}

@media screen and (min-width: 998px){
    .md-absolute {
        position: absolute;
    }
    .md-relative {
        position: relative;
    }
    .md-fixed {
        position: fixed;
    }
    .md-sticky {
        position: fixed;
    }
}

/************************ ordinamento */

.order-1 {order: 1;}
.order-2 {order: 2;}
.order-3 {order: 3;}
.order-4 {order: 4;}
.order-5 {order: 5;}
.order-6 {order: 6;}

@media screen and (min-width: 575px){
    .sm-order-1 {order: 1;}
    .sm-order-2 {order: 2;}
    .sm-order-3 {order: 3;}
    .sm-order-4 {order: 4;}
    .sm-order-5 {order: 5;}
    .sm-order-6 {order: 6;}
}

@media screen and (min-width: 998px){
    .md-order-1 {order: 1;}
    .md-order-2 {order: 2;}
    .md-order-3 {order: 3;}
    .md-order-4 {order: 4;}
    .md-order-5 {order: 5;}
    .md-order-6 {order: 6;}
}

/************************ display */

.block {
    display: block;
}
.inline-block {
    display: inline-block;
}

/************************ struttura flex tailwind */

.flex {
    display: flex;
}
.flex-1 {
    flex: 1 1 0%;
}
.flex-auto {
    flex: 1 1 auto;
}
.flex-row {
    flex-direction: row;
}
.flex-row-reverse {
    flex-direction: row-reverse;
}
.flex-col {
    flex-direction: column;
}

.items-start {
    align-items: flex-start;
}
.items-end {
    align-items: flex-end;
}
.items-center {
    align-items: center;
}

.justify-start {
    justify-content: flex-start;
}
.justify-end {
    justify-content: flex-end;
}
.justify-center {
    justify-content: center;
}
.justify-between {
    justify-content: space-between;
}

/* classi extra: flex-col-row, sub-flex-1 */
.flex-col-row {
    display: flex;
    flex-direction: column;
}

@media (max-width: 997px){
    .mobile-reverse {
        flex-direction: column-reverse;
    }
}

@media screen and (min-width: 998px){
    .md-flex-1 {
        flex: 1 1 0%;
    }
    .md-flex-auto {
        flex: 1 1 auto;
    }
    .md-flex-row {
        flex-direction: row;
    }
    .md-flex-row-reverse {
        flex-direction: row-reverse;
    }
    .md-flex-col {
        flex-direction: column;
    }

    .md-items-start {
        align-items: flex-start;
    }
    .md-items-end {
        align-items: flex-end;
    }
    .md-items-center {
        align-items: center;
    }

    .md-justify-start {
        justify-content: flex-start;
    }
    .md-justify-end {
        justify-content: flex-end;
    }    
    .md-justify-center {
        justify-content: center;
    }
    .md-justify-between {
        justify-content: space-between;
    }
    
    /* classi extra */
    .flex-col-row {
        flex-direction: row;
    }
    .sub-flex-1 > * {
        flex: 1 1 0%;
    }
}

/************************ strttura row > col: Contenitore principale */

:root {
    --bs-gutter-x:0rem;
    --bs-gutter-y:0rem;
}

.container,
.container-fluid {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding-right: calc(-1* var(--bs-gutter-x)* .5);
    padding-left: calc(-1* var(--bs-gutter-x)* .5);
    
}

/* strttura row > col: Riga */

.row {
    display: flex;
    flex-direction: row;
    width: 100%;
    flex-wrap: wrap;
    margin-top: calc(-1* var(--bs-gutter-y));
    padding-right: calc(var(--bs-gutter-x)* .5);
    padding-left: calc(var(--bs-gutter-x)* .5);
}
.row > * {
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    margin-top: var(--bs-gutter-y);
    padding-right: calc(var(--bs-gutter-x)* .5);
    padding-left: calc(var(--bs-gutter-x)* .5);
}


