:root {
    --bs-body-font-family: 'Playfair Display';
}

/*// -- Generic -- //*/

@font-face {
    font-family: 'Corinthia';
    src: url('../core/font/Corinthia-Regular.woff2') format('woff2'),
        url('../core/font/Corinthia-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Playfair Display';
    src: url('../core/font/PlayfairDisplay-Regular.woff2') format('woff2'),
        url('../core/font/PlayfairDisplay-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

.builder-section-bg-dark-green {
    background: #8E9769;
}

.home section {
    padding: 50px 0;
    overflow: hidden;

    @media screen and (min-width: 768px) {
        padding: 100px 0;
    }

    @media screen and (min-width: 1200px) {
        min-height: 650px;
        padding: 150px 0;
    }
}

.btn {
    font-size: 20px;
}

#footer {
    background: #C98D00;
    color: #FFFFFF;
    text-align: center;

    h3 {
        font-family: 'Corinthia';
    }

    h4 {
        text-transform: uppercase;
    }

    p {
        font-size: 16px;
        line-height: 1.2;
        margin-bottom: 0;
    }

    @media screen and (min-width: 768px) {

        h3 {
            font-size: 80px !important;
            margin-bottom: 15px;
        }
    
        h4 {
            font-size: 30px !important;
            margin-bottom: 15px;
        }
    
    }

    @media screen and (max-width: 767px) {

        h3 {
            font-size: 40px !important;
        }
    
        h4 {
            font-size: 20px !important;
        }

    }
}

/*// -- Home -- //*/

#main-section {

    .title { 
        font-family: 'Corinthia'; 
        line-height: 1 !important;
        margin-bottom: 25px;
    }

    .subtitle { 
        line-height: 1 !important;
        margin-bottom: 30px;
    }

    .description { 
        line-height: 1.6 !important;
    }


    /*// -- Responsive breakpoint -- //*/

    /*// -- XL - XXL -- //*/
    @media screen and (min-width: 1200px) {
        padding-top: 200px;
        min-height: 800px;

        .title          { font-size: 160px !important; }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 30px !important; }
    }

    /*// -- LG -- //*/
    @media screen and (min-width: 992px) and (max-width: 1199px) {
        padding-top: 200px;
        min-height: 800px;

        .title          { font-size: 120px !important; }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 30px !important; }
    }
    
    /*// -- MD -- //*/
    @media screen and (min-width: 768px) and (max-width: 991px) {
        padding-top: 200px;

        .title          { font-size: 100px !important; }
        .subtitle       { font-size: 40px !important; }
        .description    { font-size: 30px !important; }
    }

    /*// -- SM -- //*/
    @media screen and (min-width: 576px) and (max-width: 767px) {   
        padding-top: 200px;

        .copy-container {
            text-align: center !important;
            .title          { font-size: 80px !important; margin-bottom: 10px; }
            .subtitle       { font-size: 30px !important; }
            .description    { font-size: 25px !important; }
        }
    }

    /*// -- XS -- //*/
    @media screen and (max-width: 575px) {
        padding-top: 150px;
        .copy-container {
            text-align: center !important;
            .title          { font-size: 80px !important; margin-bottom: 10px; }
            .subtitle       { font-size: 30px !important; }
            .description    { font-size: 20px !important; }
        }
    }

}

#intro-section {
    background: #F2F2F2;
    
    .title { 
        line-height: 1 !important;
        
        span {
            font-family: 'Corinthia';
        }
    }

    .subtitle { 
        line-height: 1 !important;
    }

    .description { 
        line-height: 1.6 !important;
        max-width: 550px;
        margin: 0 auto;
    }

    /*// -- Responsive breakpoint -- //*/

    @media screen and (min-width: 768px) {

        .left-bg {
            position: absolute;
            left: 0;
            width: 40%;
            height: 100%;
            background: url('./images/fiore-sx.jpg') no-repeat scroll center center / cover transparent;
        }

        .right-bg {
            position: absolute;
            right: 0;
            width: 40%;
            height: 100%;
            background: url('./images/fiore-dx.jpg') no-repeat scroll center center / cover transparent;
        }
    }

    /*// -- XL - XXL -- //*/
    @media screen and (min-width: 1200px) {
        .title          { 
            font-size: 50px !important; 
            margin-bottom: 50px;

            span {
                font-size: 140px !important;
                line-height: 140px !important;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }
    }

    /*// -- LG -- //*/
    @media screen and (min-width: 992px) and (max-width: 1199px) {
        .title          { 
            font-size: 40px !important;
            margin-bottom: 30px;

            span {
                font-size: 100px !important;
                line-height: 100px !important;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }
    }
    
    /*// -- MD -- //*/
    @media screen and (min-width: 768px) and (max-width: 991px) {
        .title          { 
            font-size: 40px !important;
            margin-bottom: 30px;

            span {
                font-size: 100px !important;
                line-height: 100px !important;
            }
         }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }
    }

    /*// -- SM -- //*/
    @media screen and (min-width: 576px) and (max-width: 767px) {
        .title          { 
            font-size: 30px !important;
            margin-bottom: 30px;

            span {
                display: block;
                margin-top: 10px;
                font-size: 60px !important;
                line-height: 60px !important;
            }
         }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }
    }

    /*// -- XS -- //*/
    @media screen and (max-width: 575px) {
        .title          {
            font-size: 30px !important; 
            margin-bottom: 25px;

            span {
                display: block;
                margin-top: 10px;
                font-size: 60px !important;
                line-height: 60px !important;
            }
        }

        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }
    }

}

#location-section {
    overflow: hidden;

    &:before {
        content: 'Location';
        width: 100%;
        text-align: center;
        position: absolute;
        z-index: 1;
        line-height: 1;
        font-family: 'Corinthia'; 
        text-align: center;
        color: rgba(255,255,255, 1);
        opacity: 0.2;
    }

    .title {  
        line-height: 1 !important;
        margin-bottom: 30px;
        
        span {
            font-family: 'Corinthia';
            display: block;
        }
    }

    .subtitle { 
        line-height: 1 !important;
    }

    .description { 
        line-height: 1.6 !important;
        max-width: 700px;
        margin: 0 auto 30px;
    }

    .swiper {

        .swiper-slide {
            transition: all 0.3s;
            padding: 0px 45px;

            img {
                border-radius: 8px;
            }
        }

        .swiper-slide:first-child,
        .swiper-slide-active,
        .swiper-slide:last-child {
            padding: 0 !important;
        }

        @media screen and (max-width: 991px) {

            .swiper-slide {
                padding: 0px 30px;
            }

        }


        @media screen and (max-width: 767px) {
            overflow: visible;
        }

    }

    /*// -- Responsive breakpoint -- //*/

    /*// -- XL - XXL -- //*/
    @media screen and (min-width: 1200px) {
        &:before {
            font-size: 500px;
            top: -180px;
        }
        
        .title          { 
            font-size: 50px !important; 
            
            span {
                font-size: 140px !important;
                line-height: 140px !important;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }

        .gallery {
            margin-bottom: 100px;
        }
    }

    /*// -- LG -- //*/
    @media screen and (min-width: 992px) and (max-width: 1199px) {
        .title          { 
            font-size: 40px !important;
            margin-bottom: 30px;

            span {
                font-size: 100px !important;
                line-height: 100px !important;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }

        &:before {
            font-size: 400px;
            top: -180px;
        }

        .gallery {
            margin-bottom: 100px;
        }
    }
    
    /*// -- MD -- //*/
    @media screen and (min-width: 768px) and (max-width: 991px) {
        .title          { 
            font-size: 40px !important;
            margin-bottom: 30px;

            span {
                font-size: 100px !important;
                line-height: 100px !important;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }

        &:before {
            font-size: 300px;
            top: -140px;
        }

        .gallery {
            margin-bottom: 100px;
        }
    }

    /*// -- SM -- //*/
    @media screen and (min-width: 576px) and (max-width: 767px) {
        .title          { 
            font-size: 30px !important; 
            line-height: 1.4 !important;
            margin-bottom: 25px;

            span {
                margin-top: 25px;
                font-size: 60px !important;
                line-height: 60px !important;
                display: block;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }

        .gallery {
            margin-bottom: 50px;
        }

        &:before {
            display: none;
        }
    }

    /*// -- XS -- //*/
    @media screen and (max-width: 575px) {
        .title          { 
            font-size: 30px !important; 
            line-height: 1.4 !important;
            margin-bottom: 25px;

            span {
                margin-top: 25px;
                font-size: 60px !important;
                line-height: 60px !important;
                display: block;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }

        .gallery {
            margin-bottom: 50px;
        }

        &:before {
            display: none;
        }
    }

}

#rsvp-section {

    .title { 
        line-height: 1 !important;
        
        span {
            font-family: 'Corinthia';
        }
    }

    .subtitle { 
        line-height: 1 !important;
    }

    .description { 
        line-height: 1.6 !important;
    }


    /*// -- Responsive breakpoint -- //*/

    /*// -- XL - XXL -- //*/
    @media screen and (min-width: 1200px) {
        .title          { 
            font-size: 50px !important;
            margin-bottom: 30px;

            span {
                font-size: 140px !important;
                line-height: 140px !important;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }
    }

    /*// -- LG -- //*/
    @media screen and (min-width: 992px) and (max-width: 1199px) {
        .copy-container {
            text-align: center !important;
        }

        .title          { 
            font-size: 40px !important;
            margin-bottom: 30px;

            span {
                font-size: 100px !important;
                line-height: 100px !important;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }
    }
    
    /*// -- MD -- //*/
    @media screen and (min-width: 768px) and (max-width: 991px) {
        .copy-container {
            text-align: center !important;
        }

        .title          { 
            font-size: 40px !important;
            margin-bottom: 30px;

            span {
                font-size: 100px !important;
                line-height: 100px !important;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }
    }

    /*// -- SM -- //*/
    @media screen and (min-width: 576px) and (max-width: 767px) {
        .copy-container {
            text-align: center !important;
        }

        .title          { 
            font-size: 30px !important;
            line-height: 1.4 !important;
            margin-bottom: 25px;

            span {
                margin-top: 10px;
                font-size: 60px !important;
                line-height: 60px !important;
                display: block;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }
    }

    /*// -- XS -- //*/
    @media screen and (max-width: 575px) {
        .copy-container {
            text-align: center !important;
        }

        .title          { 
            font-size: 30px !important;
            line-height: 1.4 !important;
            margin-bottom: 25px;

            span {
                margin-top: 10px;
                font-size: 60px !important;
                line-height: 60px !important;
                display: block;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }
    }

}

#roadmap-section {

    .roadmap-item {
        h3 {
            font-size: 40px !important;
            color: #000000; 
        }

        h4 {
            font-size: 24px !important;
        }

    }

    /*// -- Responsive breakpoint -- //*/ 

    &:before {
        content: 'Programma';
        width: 100%;
        text-align: center;
        position: absolute;
        z-index: 1;
        line-height: 1;
        font-family: 'Corinthia'; 
        text-align: center;
        color: #C7C7C7;
        opacity: 0.3;
    }

    /*// -- XL - XXL -- //*/
    @media screen and (min-width: 1200px) {
        &:before {
            font-size: 500px;
            top: -180px;
        }
    }

    /*// -- LG -- //*/
    @media screen and (min-width: 992px) and (max-width: 1199px) {
        &:before {
            font-size: 300px;
            top: -100px;
        }
    }
    
    /*// -- MD -- //*/
    @media screen and (min-width: 768px) and (max-width: 991px) {
        &:before {
            font-size: 250px;
            top: -100px;
        }
    }

    /*// -- SM -- //*/
    @media screen and (min-width: 576px) and (max-width: 767px) {
        &:before { display: none; }

        .title  {
            font-family: 'Corinthia';
            font-size: 60px !important;
            line-height: 90px !important;
            color: #000000;
        }
    }

    /*// -- XS -- //*/
    @media screen and (max-width: 575px) {
        &:before { display: none; }

        .title  {
            font-family: 'Corinthia';
            font-size: 60px !important;
            line-height: 90px !important;
            color: #000000;
        }
    }

}

#gift-section {

    .title { 
        line-height: 1 !important;
        
        span {
            font-family: 'Corinthia';
        }

        margin-bottom: 50px;
    }

    .subtitle { 
        line-height: 1 !important;
    }

    .description { 
        line-height: 1.6 !important;
    }

    /*// -- Responsive breakpoint -- //*/

    /*// -- XL - XXL -- //*/
    @media screen and (min-width: 1200px) {
        .title          { 
            font-size: 50px !important;
            margin-bottom: 30px;

            span {
                font-size: 140px !important;
                line-height: 140px !important;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }
    }

    /*// -- LG -- //*/
    @media screen and (min-width: 992px) and (max-width: 1199px) {
        .title          { 
            font-size: 40px !important;
            margin-bottom: 30px;

            span {
                font-size: 100px !important;
                line-height: 100px !important;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }
    }
    
    /*// -- MD -- //*/
    @media screen and (min-width: 768px) and (max-width: 991px) {
        .title          { 
            font-size: 40px !important;
            margin-bottom: 30px;

            span {
                font-size: 100px !important;
                line-height: 100px !important;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }
    }

    /*// -- SM -- //*/
    @media screen and (min-width: 576px) and (max-width: 767px) {
        .title          { 
            font-size: 30px !important;
            margin-bottom: 25px;

            span {
                font-size: 60px !important;
                line-height: 60px !important;
                display: block;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }
    }

    /*// -- XS -- //*/
    @media screen and (max-width: 575px) {
        .title          { 
            font-size: 30px !important;
            margin-bottom: 25px;

            span {
                font-size: 60px !important;
                line-height: 60px !important;
                display: block;
            }
        }
        .subtitle       { font-size: 50px !important; }
        .description    { font-size: 20px !important; }
    }

}

/*// -- Menu navigation -- //*/

body.home #header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    transition: all 0.4s;
    padding: 15px 0;

    img {
        width: 100px;
        transition: all 0.4s
    }

    &.active {
        background: rgba(20, 20, 20, 0.90);
        padding: 10px 0;

        img {
            width: 80px;
        }
    }
}

body:not(.home) #header {
    background: #000000;
    position: sticky;
    top: 0;
    padding: 10px 0;

    img {
        width: 80px;
        transition: all 0.4s
    }

    @media screen and (max-width: 767px) {
        padding: 10px 0;
    }

}

#header {
    z-index: 1000;

    .btn-main-menu {
        color: #FFF;
    }

    #menu-menu-principale-dx {
        justify-content: end;
    }

    @media screen and (max-width: 767px) {
        background: rgba(20, 20, 20, 0.90);
        padding: 5px 0 !important;

        .logo {
            width: 75px; 
            position: absolute;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            margin: auto;
            display: flex;
            align-items: center;
        }

    }

    a {
        font-size: 20px;
        color: #FFFFFF;
    }

}

.desktop-menu {
    display: flex;
    gap: 2rem;
    list-style: none;
    padding: 0;
    margin: 0;

    a {
        text-decoration: none;
        color: var(--bs-body-color);
        padding: 0.5rem;
        line-height: 24px !important;
        display: block;
    }

    .sub-menu {
        position: absolute;
        opacity: 0;
        list-style: none;
        padding: 0;
        margin: 0;
        visibility: hidden;

        transition: all 0.3s;

        &:hover {
            opacity: 1;
            visibility: visible;
        }
    }

    a:hover + .sub-menu {
        opacity: 1;
        visibility: visible;
    }

}

.page-id-508 {

    .builder-section-0 {
        position: relative;

        .container {
            z-index: 10;
            position: relative
        }

        &:before {
            content: 'Grazie';
            width: 100%;
            text-align: center;
            position: absolute;
            z-index: 1;
            line-height: 1;
            font-family: 'Corinthia'; 
            text-align: center;
            color: #C7C7C7;
            opacity: 0.3;
        }

    }

    /*// -- Responsive breakpoint -- //*/

    /*// -- XL - XXL -- //*/
    @media screen and (min-width: 1200px) {

        .builder-section-0 {
            padding-bottom: 300px !important;
        }

        .builder-section-0:before {
            font-size: 350px;
            bottom: 100px;
        }

    }

    /*// -- LG -- //*/
    @media screen and (min-width: 992px) and (max-width: 1199px) {

        .builder-section-0 {
            padding-bottom: 300px !important;
        }

        .builder-section-0:before {
            font-size: 300px;
            bottom: 100px;
        }

    }
    
    /*// -- MD -- //*/
    @media screen and (min-width: 768px) and (max-width: 991px) {

        .builder-section-0 {
            padding-bottom: 340px !important;
        }

        .builder-section-0:before {
            font-size: 250px;
            bottom: 100px;
        }

    }

    /*// -- SM -- //*/
    @media screen and (min-width: 576px) and (max-width: 767px) {

        .builder-section-0 {
            padding-bottom: 280px !important;
        }

        .builder-section-0:before {
            font-size: 200px;
            bottom: 80px;
        }

    }

    /*// -- XS -- //*/
    @media screen and (max-width: 575px) {

        .builder-section-0 {
            padding-bottom: 180px !important;
        }

        .builder-section-0:before {
            font-size: 130px;
            bottom: 50px;
        }
    }

}

.page-id-504 {

    .wpcf7  {
        max-width: 768px;
        margin: 0 auto;

        label {
            font-size: 20px !important;
        }
    }

}


.page:not(.home) {

    h1 {
        font-family: 'Corinthia'; 
    }

    .layout-title {
        text-align: center;
    }

    /*// -- Responsive breakpoint -- //*/

    /*// -- XL - XXL -- //*/
    @media screen and (min-width: 1200px) {

        .layout-title {
            margin-bottom: 50px;
        }

        section {
            padding: 50px 0 100px;
        }
        
        h1 {
            font-size: 140px !important;
            line-height: 1 !important;
            margin-bottom: 50px;
        }

        p { font-size: 20px !important; }
        h3 { font-size: 36px !important; }

    }

    /*// -- LG -- //*/
    @media screen and (min-width: 992px) and (max-width: 1199px) {

        .layout-title {
            margin-bottom: 50px;
        }

        section {
            padding: 50px 0 100px;
        }

        h1 {
            font-size: 100px !important;
            line-height: 1 !important;
            margin-bottom: 30px;
        }

        p { font-size: 20px !important; }
        h3 { font-size: 30px !important; }
        
    }
    
    /*// -- MD -- //*/
    @media screen and (min-width: 768px) and (max-width: 991px) {

        .layout-title {
            margin-bottom: 50px;
        }

        section {
            padding: 50px 0 100px;
        }

        h1 {
            font-size: 100px !important;
            line-height: 1 !important;
            margin-bottom: 30px;
        }

        p { font-size: 20px !important; }
        h3 { font-size: 30px !important; }

    }

    /*// -- SM -- //*/
    @media screen and (min-width: 576px) and (max-width: 767px) {

        .layout-title {
            margin-bottom: 50px;
        }

        section {
            padding: 25px 0 50px;
        }
        
        h1 {
            font-size: 60px !important;
            line-height: 1 !important;
            margin-bottom: 25px;
        }

        p { font-size: 20px !important; }
        h3 { font-size: 25px !important; }

    }

    /*// -- XS -- //*/
    @media screen and (max-width: 575px) {

        .layout-title {
            margin-bottom: 50px;
        }

        section {
            padding: 25px 0 50px;
        }

        h1 {
            font-size: 60px !important;
            line-height: 1 !important;
            margin-bottom: 25px;
        }

        p { font-size: 20px !important; }
        h3 { font-size: 25px !important; }

    }
}

.offcanvas {
    background: #000000;

    .logo-mobile-container {
        width: 100px;
    }

    button {
        color: #FFFFFF !important;
    }

    #menu-menu-principale-mobile {
        margin: 20px 0 0;
        padding: 0;
        border-top: 1px solid #444444;

        a {
            color: #FFFFFF;
            text-transform: uppercase;
            font-size: 16px !important;
            padding: 10px 20px;
            display: block;
            border-bottom: 1px solid #444;
            text-decoration: none;
        }
    }
}

.btn-primary {
    text-transform: uppercase;
}

.builder-section-bg-gray {
    background-color: #F2F2F2;
}

.row {
    margin-top: 0 !important;
}