/* -- DEFAULTS -- */

* {
    box-sizing: border-box;
}

p {
    display: block;
    margin-block-start: unset;
    margin-block-end: unset;
    margin-inline-start: 0px;
    margin-inline-end: 0px;
    /* line-height: 1.1em; */
    font-family: var(--body-font-family);
    margin-bottom: 0px;
}

div {
    font-family: var(--body-font-family);
}

a {
    text-decoration: unset;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    line-height: 1.1em;
    font-family: var(--h-font-family);
    margin-block-start: unset;
    margin-block-end: unset;
    padding-bottom: unset;
}

/* ----- LAYOUT ----- */

/* -- SECTIONS AND CONTAINERS -- */

body {
    margin: 0px;
}

.flex-container {
    display: flex;
    position: relative;
}

.flex-col {
    display: flex;
    flex-direction: column;
    width: 100%;
    position: relative;
}

.flex-row {
    display: flex;
    flex-direction: row;
    position: relative;
}

/* ----- GLOBALS ----- */

/* - GLOBAL TEXT - */

/* Default text values */
.default-body-text {
    font-size: var(--body-font-size);
    font-family: var(--body-font-family);
}

/* ----- COMPONENTS ----- */

/* -- SINGLE ELEMENTS GENERIC -- */


/* Background overlay */

.bg-overlay {
    height: 100%;
    width: 100%;
    background-color: var(--default-overlay);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
}

/* Background element for zoomy effects */

.bg-container {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
}

.bg-image-default {
    background-size: cover;
    background-position: center;
}

/* -- SPECIFIC ELEMENTS --*/

.v0-simple-gallery-img {
    object-fit: contain;
    max-height: 100px;
}

.menu-container {
    background: var(--alt-color);
    padding-top: var(--vertical-padding-s);
    padding-bottom: var(--vertical-padding-s);
}

.card {
    background-color: white;
}

.card-img {
    max-height: 90px;
    object-fit: contain;
}

.parallax-section {
    height: 60vh;

    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.image-fullheight {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    height: 100%;
}

.big-yellow-text {
    color: var(--main-color);
    font-weight: 700;
    font-size: 66px;
    line-height: 1em;
}

.big-yellow-text-blurb {
    color: var(--main-color);
    font-weight: 700;
    font-size: 36px;
    line-height: 1em;
}

.big-text {
    font-weight: 700;
    font-size: 46px;
    line-height: 1em;
}

.min-h-200 {
    min-height: 200px;
}

.min-h-300 {
    min-height: 300px;
}

.min-h-500 {
    min-height: 500px;
}

.l-blurb {
    align-items: center;
}

.l-blurb-top {
    align-items: flex-start;
}

.l-blurb-top .l-blurb-text {
    padding-top: 5px;
}

.l-blurb-top .l-blurb-text.font-heavy {
    margin-bottom: 5px;
}

.l-blurb-text {
    margin-left: 15px;
}

.blurb-text-col {}

.blurb-icon {
    min-width: var(--blurb-icon-width);
}

.blurb-icon-col {
    width: auto;
    margin-right: 20px;
    height: 100%;
}

.cross-svg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.visual-portfolio-carousel .vp-portfolio__items-style-default .vp-portfolio__item-img img {
    object-fit: contain;
}

.vp-portfolio__item-img::before,
.vp-portfolio__item-img::after {
    background: transparent !important;
}

.accordion {
    transition: 0.4s ease-in-out;
}

.accordion-panel {
    display: none;
    padding: 15px;
    background-color: var(--light-bg-color);
}

/* -- General utility boot-like -- */

.active {
    background-color: var(--main-color);
}

.h-font {
    font-family: var(--h-font-family);
}

.body-font {
    font-family: var(--body-font-family);
}

.pw-10 {
    max-width: 10%;
}

.pw-15 {
    max-width: 15%;
}

.pw-2 {
    max-width: 20%;
}

.pw-25 {
    max-width: 25%;
}

.pw-3 {
    max-width: 30%;
}

.pw-4 {
    max-width: 40%;
}

.pw-45 {
    max-width: 45%;
}

.pw-5 {
    max-width: 50%;
}

.pw-6 {
    max-width: 60%;
}

.pw-7 {
    max-width: 70%;
}

.pw-100 {
    max-width: 100%;
}

.fullwidth {
    width: 100%;
}

.z-ind-2 {
    z-index: 2;
}

.font-heavy {
    font-weight: 600;
}

.font-uppercase {
    text-transform: uppercase;
}

.font-white {
    color: white;
}

.font-maincolor {
    color: var(--main-color);
}

.font-altcolor {
    color: var(--alt-color);
}

.font-light {
    color: var(--font-color-light);
}

.font-white {
    color: #fff;
}

.font-dark {
    color: var(--font-color-dark);
}

.text-center {
    text-align: center;
}

/* SPACING */

/* Margins */

.m-v-l {
    margin-top: var(--vertical-margin-l);
    margin-bottom: var(--vertical-margin-l);
}

.m-v-m {
    margin-top: var(--vertical-margin-m);
    margin-bottom: var(--vertical-margin-m);
}

.m-v-s {
    margin-top: var(--vertical-margin-s);
    margin-bottom: var(--vertical-margin-s);
}

.m-t-auto {
    margin-top: auto;
}

.m-b-auto {
    margin-bottom: auto;
}

.m-b-l {
    margin-bottom: var(--vertical-margin-l);
}

.m-b-m {
    margin-bottom: var(--vertical-margin-m);
}

.m-b-s {
    margin-bottom: var(--vertical-margin-s);
}

.m-t-l {
    margin-top: var(--vertical-margin-l);
}

.m-t-m {
    margin-top: var(--vertical-margin-m);
}

.m-t-s {
    margin-top: var(--vertical-margin-s);
}

.m-b-l {
    margin-bottom: var(--vertical-margin-l);
}

.m-b-m {
    margin-bottom: var(--vertical-margin-m);
}

.m-b-s {
    margin-bottom: var(--vertical-margin-s);
}

.m-ho-auto {
    margin-left: auto;
    margin-right: auto;
}

.m-v-auto {
    margin-top: auto;
    margin-bottom: auto;
}

/* Paddings */

.p-v-l {
    padding-top: var(--vertical-padding-l);
    padding-bottom: var(--vertical-padding-l);
}


.p-v-m {
    padding-top: var(--vertical-padding-m);
    padding-bottom: var(--vertical-padding-m);
}

.p-v-s {
    padding-top: var(--vertical-padding-s);
    padding-bottom: var(--vertical-padding-s);
}

.p-ho-l {
    padding-left: var(--horizontal-padding-l);
    padding-right: var(--horizontal-padding-l);
}

.p-ho-m {
    padding-left: var(--horizontal-padding-m);
    padding-right: var(--horizontal-padding-m);
}

.p-ho-s {
    padding-left: var(--horizontal-padding-s);
    padding-right: var(--horizontal-padding-s);
}

.p-t-m {
    padding-top: var(--vertical-padding-m);
}

/* Grid and gaps */

.grid-width {
    max-width: var(--grid-max-width);
    width: 100%;
}

.smaller-grid {
    max-width: var(--grid-smaller-max-width);
    width: 100%;
}

.flex-gap {
    gap: var(--base-flex-gap);
}

.column-gap {
    column-gap: var(--default-col-gap);
}

.column-gap-l {
    column-gap: var(--big-col-gap);
}

.justify-left {
    justify-content: left;
}

.justify-center {
    justify-content: center;
}

.justify-right {
    justify-content: right;
}

.fullheight {
    height: 100%;
}

.width-auto {
    width: auto;
}

.bg-light {
    background-color: var(--light-bg-color);
}

.bg-main {
    background-color: var(--main-color);
}

.flex-align-center {
    align-items: center;
}

.flex-justify-space-between {
    justify-content: space-between;
}

.flex-justify-flex-end {
    justify-content: flex-end;
}

.ratio-1-1 {
    aspect-ratio: 1 / 1;
}

.flex-wrap {
    flex-wrap: wrap;
}

/* ----- EDITS FOR WOOCOMMERCE ----- */

#masthead>.col-full,
#masthead .storefront-primary-navigation {
    max-width: var(--grid-max-width) !important;
    margin: 0 auto !important;
}

.storefront-primary-navigation .col-full {
    max-width: 100% !important;
}

.col-full {
    max-width: 100% !important;
    padding: 0 !important;
}

@media (min-width: 768px) {
    .col-full {
        max-width: 100% !important;
        padding: 0 !important;
    }
}

.site-header {
    margin-bottom: 0px !important;
}

/*Fibosearch generico */
.dgwt-wcas-search-input {
    border: 2px solid black !important;
    border-radius: 0 !important;
}

/* Rimozione margini e padding stupidi messi a caso dal tema */
/* Logo link */

.custom-logo-link {
    margin-bottom: 0px !important;
}

/* Cart */

.v0-cart-col .cart-contents {
    padding: 0px !important;
}

/* Primary Navigation */

.v0-navigation-row {
    border-top: 3px solid var(--main-color);
}

.v0-navigation-row .menu {
    text-align: center !important;
}

.v0-navigation-row .menu li>a {
    font-size: 18px;
    font-weight: 700;
    text-transform: uppercase;
}

.v0-navigation-row .main-navigation .nav-menu a {
    padding-top: var(--vertical-padding-s) !important;
    padding-bottom: var(--vertical-padding-s) !important;
    padding-left: var(--horizontal-padding-m) !important;
    padding-right: var(--horizontal-padding-m) !important;
}

.v0-site-header .cart-contents {
    text-align: right;
}

.v0-site-header .cart-contents .count {
    margin-right: 5px;
}

.mobile-only-block,
.mobile-only-flex {
    display: none;
}