/* -- DEFAULTS -- */

* {
    box-sizing: border-box !important;
}

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;
}

/* -- 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;
}

.flex-1 {
    flex: 1;
}

.flex-4 {
    flex: 4;
}

/* -- SINGLE ELEMENTS GENERIC -- */

/* Headers */

.default-text {
    font-size: var(--body-font-size);
}

.subheader {
    font-size: var(--subh-font-size);
}

.header {
    font-family: var(--h-font-family);
    font-weight: 700;
    /*text-transform: uppercase; */
}

.header-l {
    font-size: var(--h-font-size-l);
    line-height: 1.3em;
}

.header-m {
    font-size: var(--h-font-size-m);
}

.header-s {
    font-size: var(--h-font-size-s);
}

/* Buttons */

.button-wrap {
    display: inline-block;
    width: fit-content;
}

.v0-button {
    padding: var(--button-padding);
    border-radius: var(--button-border-radius);
    font-size: var(--button-font-size);
    font-family: var(--button-font-family);
    font-weight: var(--button-font-weight);
    align-items: center;
    cursor: pointer;
    line-height: 1rem;
    min-width: var(--button-min-width);
    text-align: center;
    transition: all 0.4 ease-in-out !important;
}

.v0-button-inline {
    display: inline-block;
}

.v0-button1 {
    background: transparent;
    color: white;
    border: 2px solid white;
}

.v0-button1:hover {
    background: var(--main-color);
    color: var(--alt-color);
    border-color: var(--main-color);
}

.v0-button2 {
    background: var(--main-color);
    color: var(--alt-color);
    border: 2px solid var(--main-color);
}

.v0-button2:hover {
    background: transparent;
    color: white;
    border: 2px solid white;
}

/* 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 -- */

.bg-main-color {
    background-color: var(--main-bg-color);
}

.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-1 {
    z-index: 1;
}

.z-ind-2 {
    z-index: 2;
}

.z-ind-3 {
    z-index: 3;
}

.z-ind-4 {
    z-index: 4;
}

.font-size-m {
    font-size: var(--font-size-m);
    line-height: 1.3em;
}

.font-size-l {
    font-size: var(--font-size-l);
    line-height: 1.3em;
}

.font-size-xl {
    font-size: var(--font-size-xl);
    line-height: 1em;
}

.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-light a {
    color: var(--font-color-light);
}

.font-white {
    color: #fff;
}

.font-dark {
    color: var(--font-color-dark);
}

.text-center {
    text-align: center;
}

.text-underline {
    text-decoration: underline;
}

.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-t-col-gap {
    margin-top: var(--default-col-gap);
}

.m-b-s {
    margin-bottom: var(--vertical-margin-s);
}

.m-t-l {
    margin-top: var(--vertical-margin-l);
}

.m-t-xl {
    margin-top: var(--vertical-margin-xl);
}

.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);
}

.p-v-gridhalf {
    padding-top: var(--grid-width-inner-half);
    padding-bottom: var(--grid-width-inner-half);
}

.p-v-xl {
    padding-top: var(--vertical-padding-xl);
    padding-bottom: var(--vertical-padding-xl);
}

.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);
}

.p-t-l {
    padding-top: var(--vertical-padding-l);
}

.p-t-xl {
    padding-top: var(--vertical-padding-xl);
}

.m-ho-auto {
    margin-left: auto;
    margin-right: auto;
}

.m-v-auto {
    margin-top: auto;
    margin-bottom: auto;
}

.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-center {
    justify-content: center;
}

.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-align-end {
    align-items: flex-end;
}

.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;
}

/* Edit di 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;
}