@charset "utf-8";

.menu_toggle,
.mobile_menu_contact{
    display: none;
}

@media (min-width: 1101px) and (max-width: 1400px){
    .main_menu{
        gap: 14px;
    }

    .main_menu > a{
        font-size: 11px;
        letter-spacing: .12em;
    }

    .nav .logo img{
        height: 82px;
    }

    .nav_cta{
        padding-right: 15px;
        padding-left: 15px;
        font-size: 12px;
        letter-spacing: .15em;
    }

    .language_code{
        display: none;
    }

    .main_menu .language_switch a{
        min-width: 31px;
        justify-content: center;
    }
}

@media (max-width: 1100px){
    body{
        min-width: 0;
        font-size: 17px;
    }

    body.mobile_menu_open{
        overflow: hidden;
    }

    .pad_page{
        width: min(calc(100% - 40px), 820px);
    }

    .nav{
        position: relative;
        height: 88px;
    }

    .nav .logo img{
        height: 70px;
    }

    .nav_cta{
        display: none;
    }

    .menu_toggle{
        display: flex;
        width: 48px;
        height: 48px;
        padding: 0;
        border: 1px solid var(--hairline);
        border-radius: 50%;
        background: rgba(255,255,255,.34);
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 5px;
        cursor: pointer;
    }

    .menu_toggle span{
        display: block;
        width: 20px;
        height: 1.5px;
        background: var(--ink);
        transition: transform .25s ease, opacity .25s ease;
    }

    #header.menu_open .menu_toggle span:nth-child(1){
        transform: translateY(6.5px) rotate(45deg);
    }

    #header.menu_open .menu_toggle span:nth-child(2){
        opacity: 0;
    }

    #header.menu_open .menu_toggle span:nth-child(3){
        transform: translateY(-6.5px) rotate(-45deg);
    }

    .main_menu{
        position: fixed;
        top: 88px;
        left: 0;
        right: 0;
        display: grid;
        align-content: start;
        gap: 0;
        max-height: calc(100dvh - 88px);
        padding: 20px;
        overflow-y: auto;
        background: rgba(247,242,231,.98);
        border-top: 1px solid var(--hairline);
        box-shadow: 0 22px 44px rgba(43,42,36,.13);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-12px);
        pointer-events: none;
        transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
    }

    #header.menu_open .main_menu{
        opacity: 1;
        visibility: visible;
        transform: none;
        pointer-events: auto;
    }

    .main_menu > a{
        width: min(100%, 780px);
        margin: 0 auto;
        padding: 17px 4px;
        border-bottom: 1px solid var(--hairline);
        font-size: 13px;
    }

    .language_switch{
        width: fit-content;
        margin: 18px auto 0;
        padding: 5px;
        justify-content: center;
        gap: 5px;
    }

    .main_menu .language_switch a{
        min-width: 62px;
        padding: 9px 11px;
        justify-content: center;
        font-size: 12px;
    }

    .language_flag{
        width: 24px;
        height: 16px;
    }

    .main_menu a:hover,
    .main_menu a.active{
        border-color: var(--olive);
    }

    .main_menu .mobile_menu_contact{
        display: block;
        margin-top: 18px;
        padding: 14px 22px;
        border: 1.5px solid var(--ink);
        border-radius: 999px;
        text-align: center;
        font-size: 14px;
        font-weight: 500;
    }

    .mobile_menu_contact span{
        display: block;
        margin-top: 3px;
        font-size: 9px;
        letter-spacing: .14em;
    }

    .hero{
        padding-top: 118px;
    }

    .hero_grid{
        grid-template-columns: 1fr;
        gap: 54px;
        padding-bottom: 78px;
    }

    .hero_text{
        padding: 38px 0 0;
    }

    .hero h1{
        max-width: 760px;
        margin: 24px 0;
        font-size: clamp(54px, 8vw, 72px);
    }

    .hero_sub{
        max-width: 660px;
    }

    .hero_media{
        width: min(100%, 700px);
        height: 620px;
        margin: auto;
    }

    .hero_rail{
        display: none;
    }

    .welcome_story{
        gap: 28px;
        padding-bottom: 82px;
    }

    .welcome_grid,
    .welcome_bottom{
        gap: 22px;
    }

    .anime{
        padding: 92px 0 100px;
    }

    .anime h2{
        margin-bottom: 48px;
        font-size: 62px;
    }

    .cards{
        gap: 32px;
    }

    .media_gallery_block,
    .cucina_gallery_block{
        margin-top: 64px;
    }

    .cucina_gallery{
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-auto-rows: 112px;
    }

    .gallery_item.feature{
        grid-column: span 2;
    }

    .enoteca_inner{
        grid-template-columns: 1fr;
        gap: 60px;
        padding-top: 96px;
        padding-bottom: 82px;
    }

    .enoteca_text{
        max-width: 720px;
    }

    .enoteca_aside{
        display: grid;
        grid-template-columns: minmax(220px, 320px) minmax(180px, 280px);
        align-items: end;
        justify-content: center;
        gap: 28px;
    }

    .arch_card{
        width: 100%;
    }

    .aperitivi_gallery_wrap{
        padding-bottom: 96px;
    }

    .bottega_section{
        padding: 94px 0 104px;
    }

    .bottega_section h2{
        font-size: 92px;
    }

    .bottega_layout{
        grid-template-columns: 1fr;
        gap: 56px;
        padding-top: 58px;
    }

    .bottega_copy h3,
    .bottega_copy p{
        max-width: 760px;
    }

    .bottega_video{
        width: min(100%, 520px);
    }

    .contatti{
        padding-top: 96px;
    }

    .contatti_inner{
        grid-template-columns: 1fr;
        gap: 72px;
    }

    .contatti .media{
        width: min(100%, 520px);
        margin: auto;
    }

    .contatti_text{
        padding-bottom: 92px;
    }

    .contact_story,
    .info_grid{
        max-width: none;
    }

    .footer_grid{
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 44px 60px;
    }
}

@media (max-width: 720px){
    body{
        font-size: 16px;
    }

    .pad_page{
        width: calc(100% - 32px);
    }

    .nav{
        height: 78px;
    }

    .nav .logo img{
        height: 62px;
    }

    .main_menu{
        top: 78px;
        max-height: calc(100dvh - 78px);
        padding: 14px 16px 24px;
    }

    .main_menu > a{
        padding: 15px 2px;
        font-size: 12px;
    }

    .hero{
        padding-top: 102px;
    }

    .hero_grid{
        gap: 40px;
        padding-bottom: 64px;
    }

    .hero_text{
        padding-top: 24px;
    }

    .hero_text .sprig,
    .contatti_text .sprig{
        display: none;
    }

    .hero h1{
        margin: 20px 0 22px;
        font-size: clamp(42px, 12vw, 58px);
        line-height: 1.02;
    }

    .hero_intro{
        margin-bottom: 16px;
        font-size: 20px;
    }

    .hero_sub{
        margin-bottom: 28px;
        font-size: 17px;
    }

    .hero_ctas{
        align-items: stretch;
        gap: 18px;
        margin-bottom: 32px;
    }

    .hero_ctas .btn{
        width: 100%;
        padding: 15px 22px;
        text-align: center;
    }

    .hero_ctas .link_u{
        align-self: center;
        margin: auto;
    }

    .hero_info{
        font-size: 11px;
        line-height: 1.6;
    }

    .hero_media{
        height: min(122vw, 540px);
    }

    .hero_arch{
        width: 86%;
    }

    .hero_arch_echo{
        right: -1%;
        width: 90%;
    }

    .hero_arch_small{
        width: 43%;
        height: 52%;
        border-width: 6px;
    }

    .hero_caption{
        bottom: -35px;
        width: 43%;
        font-size: 9px;
    }

    .welcome_story{
        padding-bottom: 68px;
    }

    .welcome_main{
        font-size: 17px;
    }

    .welcome_main p{
        text-align: left;
    }

    .welcome_grid,
    .welcome_bottom{
        grid-template-columns: 1fr;
    }

    .welcome_card{
        padding: 26px 24px;
        border-radius: 22px;
    }

    .welcome_card h3{
        font-size: 32px;
    }

    .welcome_bottom{
        padding-top: 22px;
    }

    .welcome_bottom p + p{
        margin-top: 0;
    }

    .anime{
        padding: 76px 0 82px;
    }

    .anime h2,
    .enoteca h2,
    .contatti h2{
        font-size: 50px;
        line-height: 1.04;
    }

    .anime h2{
        margin: 20px 0 34px;
    }

    .section_lead{
        margin-bottom: 36px;
        font-size: 18px;
    }

    .cards{
        grid-template-columns: 1fr;
        gap: 58px;
    }

    .card .ph{
        aspect-ratio: 6 / 5;
        border-radius: 150px 150px 24px 24px;
    }

    .card p{
        font-size: 16px;
    }

    .section_note{
        margin-top: 38px;
        font-size: 16px;
    }

    .media_gallery_block,
    .cucina_gallery_block{
        margin-top: 54px;
    }

    .cucina_gallery{
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: 104px;
        gap: 12px;
    }

    .gallery_item,
    .gallery_item.tall{
        grid-row: span 2;
    }

    .gallery_item.wide,
    .gallery_item.feature{
        grid-column: span 2;
    }

    .gallery_item.feature{
        grid-row: span 3;
    }

    .gallery_frame{
        border-radius: 20px;
    }

    .gallery_overlay{
        gap: 7px;
        padding: 18px;
    }

    .gallery_label,
    .gallery_item.feature .gallery_label{
        font-size: 27px;
    }

    .gallery_panel{
        justify-content: center;
        padding: 74px 14px 22px;
    }

    .gallery_stage{
        width: 100%;
        min-height: 62vh;
        padding: 12px;
        border-radius: 22px;
    }

    .gallery_media_asset{
        max-height: calc(62vh - 24px);
        border-radius: 14px;
    }

    .gallery_close{
        top: 14px;
        right: 14px;
        width: 46px;
        height: 46px;
    }

    .gallery_nav{
        top: auto;
        bottom: 18px;
        width: 46px;
        height: 46px;
        margin: 0;
        background: rgba(28,26,21,.82);
    }

    .gallery_prev{
        left: 14px;
    }

    .gallery_next{
        right: 14px;
    }

    .gallery_footer{
        align-items: flex-start;
        width: 100%;
        margin-top: 16px;
        padding: 0 54px;
    }

    .gallery_caption{
        font-size: 25px;
    }

    .enoteca_inner{
        gap: 50px;
        padding-top: 78px;
        padding-bottom: 66px;
    }

    .enoteca h2{
        margin: 20px 0 24px;
    }

    .enoteca_sub{
        margin-bottom: 30px;
        font-size: 17px;
    }

    .section_copy,
    .section_note_light{
        font-size: 16px;
    }

    .wines{
        margin-top: 32px;
        font-size: 11px;
        line-height: 1.7;
    }

    .enoteca_aside{
        display: block;
    }

    .arch_card{
        width: min(82%, 310px);
    }

    .aperitivi_gallery_wrap{
        padding-bottom: 78px;
    }

    .bottega_section{
        padding: 78px 0 86px;
    }

    .bottega_section::before{
        top: -10px;
        font-size: 105px;
    }

    .bottega_header{
        padding-bottom: 42px;
    }

    .bottega_section h2{
        font-size: clamp(62px, 20vw, 82px);
    }

    .bottega_lead{
        font-size: 25px;
    }

    .bottega_layout{
        gap: 46px;
        padding-top: 44px;
    }

    .bottega_copy h3{
        font-size: 39px;
    }

    .bottega_copy p{
        font-size: 16px;
    }

    .bottega_copy .bottega_claim{
        margin: 30px 0;
        font-size: 27px;
    }

    .bottega_video{
        border-radius: 180px 180px 8px 8px;
    }

    .contatti{
        padding-top: 80px;
    }

    .contatti_inner{
        gap: 58px;
    }

    .media::after{
        inset: -12px -12px 0;
    }

    .contatti_text{
        padding-bottom: 76px;
    }

    .contatti h2{
        margin: 20px 0 34px;
    }

    .contact_story{
        margin-bottom: 34px;
    }

    .info_grid{
        grid-template-columns: 1fr;
        gap: 28px;
        margin-bottom: 40px;
    }

    .opening_hours p{
        gap: 14px;
    }

    .site_footer{
        padding-top: 64px;
    }

    .footer_grid{
        grid-template-columns: 1fr;
        gap: 40px;
        padding-bottom: 48px;
    }

    .footer_brand img{
        width: 180px;
    }

    .footer_brand .tag{
        margin-top: 20px;
    }

    .footer_bottom .inner{
        flex-direction: column;
        align-items: flex-start;
        padding: 22px 0 28px;
    }

    .footer_legal{
        align-items: flex-start;
    }

    .footer_legal p{
        text-align: left;
    }
}

@media (max-width: 480px){
    .pad_page{
        width: calc(100% - 24px);
    }

    .eyebrow{
        gap: 10px;
        font-size: 11px;
        letter-spacing: .2em;
    }

    .eyebrow::before,
    .eyebrow.center::after{
        width: 28px;
    }

    .hero h1{
        font-size: clamp(38px, 11.5vw, 48px);
    }

    .hero_media{
        height: 112vw;
        min-height: 390px;
        max-height: 490px;
    }

    .hero_arch_small{
        width: 46%;
    }

    .hero_caption{
        width: 46%;
    }

    .cucina_gallery{
        grid-auto-rows: 88px;
    }

    .gallery_label,
    .gallery_item.feature .gallery_label{
        font-size: 22px;
    }

    .gallery_action{
        font-size: 9px;
    }

    .opening_hours p{
        flex-direction: column;
        gap: 2px;
    }

    .opening_hours span{
        text-align: left;
    }

    .info_grid .val{
        font-size: 16px;
    }
}

@media (hover: none){
    .gallery_overlay{
        opacity: 1;
        background: linear-gradient(180deg, transparent 46%, rgba(20,19,15,.78) 100%);
    }

    .card:hover .ph img,
    .gallery_item:hover img,
    .gallery_item:hover .gallery_thumb_video{
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce){
    html{
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after{
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }

    .rv{
        opacity: 1;
        transform: none;
    }
}
