@font-face {
    font-family: 'Montserrat';
    font-style:normal;
    src: local("Montserrat"), url(../../assets/fonts/Montserrat/Montserrat-VariableFont_wght.ttf) format('truetype');
}

@font-face {
    font-family: 'Montserrat';
    font-style: italic;
    font-weight: 100 900;
    src: local("Montserrat Italic"), local("Montserrat-Italic"),
     url(../../assets/fonts/Montserrat/Montserrat-Italic-VariableFont_wght.ttf) format('truetype');
}

@font-face{
    font-family: 'Allura';
    font-style:normal;
    font-weight: 400;
    src: local('Allura'), url(../../assets/fonts/Allura/Allura-Regular.ttf) format('truetype');
}

html{
    scroll-behavior: smooth;
}

:root{
    --first-font: 'Montserrat', sans-serif;
    --second-font: 'Allura', sans-serif;
    --primary: #ff4646;
    --dark: #181c29;
    --static-white: #fff;
    --content-background: #ecf3f8;
    --tag-purple: #4361ff;
    --tag-pink: #ff43f7;
    --tag-green: #06a44f;
    --primary-10: rgba(255, 70, 70, 0.1);
    --static-white-20: rgba(255, 255, 255, 0.2);
    --static-white-40: rgba(255, 255, 255, 0.4);
    --overlay:rgba(24, 28, 41, 0.8); 
}

*{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

.layout-container{
    max-width: 90rem;
    width: 100%;
    margin: 0 auto;
}

.header{
    max-width: 79.75em;
    margin: 0 auto;
    display: flex;
    padding: 0.75em 0;
    justify-content: space-between;
    background-color: var(--static-white);
}

.logo-container{
    padding: 0.5em 1.25em;
    display: flex;
    align-items: center;
    gap: 0.5em;
}

.logo-title, 
.menu-item,
.button,
.card-caption {
    font-style: normal;
    font-weight: 600;
    font-size: 0.75em;
    line-height: 130%;
    font-family: 'Montserrat', sans-serif;
    letter-spacing: 0.0483em;
    text-transform: uppercase;
    color:var(--dark);
}

.nav-menu{
    max-width: 23.4375em;
    width: 100%;
}

.menu-list{
    height: 100%;
    list-style-type:none;
    display: flex;
    justify-content:space-between;
    align-items: center;
}

.menu-item>.link{
    display: block;
    padding: 1em 1.6667em;
    border-radius: 0.75em;
    transition: background-color 0.3s ease-in, color 0.5s ease-in-out;
}

@media(hover:hover){
    .menu-item .link:hover{
        color:var(--primary);
        background-color: var(--primary-10);
        cursor: pointer;
    }
}

.Hero>.background-container>.content-container{
    max-width: 26.625em;
    margin: 0 auto;
    padding: 7.5em 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: 0.75em;
}

.caption{
    font-style: normal;
    font-weight: 400;
    font-size: 1.5em;
    line-height: 100%;
    letter-spacing: 0.05em;
    font-family: 'Allura', sans-serif;
    text-transform:capitalize;
    color:var(--static-white);
}

.caption.new-year{
    text-transform: none;
}

.h,
.slider-text,
.card-name{
    font-style: normal;
    font-weight: 600;
    font-family: 'Montserrat', sans-serif;
    text-transform: uppercase;
}

.h1{
    font-size: 2em;
    line-height: 150%;
    letter-spacing: 0.175em;
    text-align: center;
    color: var(--static-white);
}

.button{
    line-height: 134%;
    text-decoration: none;
    color: var(--static-white);
    padding: 1.667em 2.667em;
    border-radius: 1.5em;
    border-width: 0;
    background-color: var(--dark);
    transition: color 0.5s ease-in-out, background-color 0.3s ease-in;
}

@media(hover:hover){
    .button:hover{
        color: var(--dark);
        background-color: var(--static-white);
        cursor:pointer;
    }
}

/* Background color&images*/
.main{
    background-color: var(--primary);
    border-radius: 1.5em;
    overflow-x: hidden;
}

.Hero,
.About,
.Slider,
.BestGifts,
.CTA{
    background-image: url('../../assets/images/bg-snow.png');
    background-size: cover;
    background-position: center;
}

.Hero>.background-container {
    background-image: url(../../assets/images/bg-ball.png);
    background-size: cover;
    background-position: center;
}

/* About section start */
.About>.content-container{
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: var(--static-white);
    border-radius: 1.5em;
}

.About{
    padding: 3.75em 5.125em;
}

.text-container{
    display: flex;
    flex-direction: column;
    row-gap: 1.25em
}

.About .text-container{
    width: 50%;
    max-width: 33.125em;
    padding: 3.75em;
}

.About .caption{
    color:var(--primary);
}

.h2{
    font-size: 1.5em;
    line-height: 152%;
    letter-spacing: 0.16em;
    color: var(--static-white);
}

.About .h2{
    color: var(--dark);
    line-height: 150%;
}

.paragraph{
    font-style: normal;
    font-weight: 400;
    font-size: 1em;
    line-height: 150%;
    font-family: 'Montserrat', sans-serif;
    color:var(--dark);
}

.image{
    display: block;
    border-radius: 1.5em;
}

.About .image{
    height: 33em;
    width: 50%;
    min-width: 22.75em;
    object-fit: cover;
}

/* About section end */

/* Slider section end */

.Slider{
    margin: 0 auto;
    padding: 3.75em 5.125em;
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: 1.25em;
}

.Slider>.text-container,
.BestGifts>.text-container{
    margin: 0;
    row-gap: 0.75em;
    align-items: center;
}

.slider-text{
    font-size: 5em;
    color:var(--static-white);
}

.slider-image{
    width: 12.5em;
}

.slider-box{
    align-self: flex-start;
    width: 100%;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    column-gap: 1.25em;
    transition: transform 0.5s ease-in-out;
}

.arrows-container{
    max-height: 3.5em;
    align-self: flex-end;
}

.arrows-container .arrow:first-child{
    margin-right: 1.25em;
}

.arrow{
    border: none;
    max-height: 4.2em;
    background-color: transparent;
}

.arrow svg{
    transition: fill 0.5s, cursor 0.3s;
}

.arrow path,
.arrow rect{
    transition: stroke 0.5s ease-in-out, stroke-opacity 0.2s ease-in-out;
}

@media(hover:hover){
    .arrow.active:hover svg{
        cursor:pointer;
        fill: var(--static-white);
    }

    .arrow.active:hover path{
        stroke:var(--primary);
    }
    
    .arrow.active:hover rect{
        stroke:var(--static-white);
    }
}

.arrow.disabled rect,
.arrow.disabled path{
    stroke-opacity: 0.4;
}

.arrow.active rect,
.arrow.active path{
    stroke-opacity: 1;
}

/* Slider section end */

/* BestGifts section start */
.card-caption.work{
    color: var(--tag-purple);
}

.card-caption.harmony{
    color: var(--tag-pink);
}

.card-caption.health{
    color: var(--tag-green);
}

.card-name{
    font-size: 1em;
    line-height: 152%;
    letter-spacing: 0.08em;
    color:var(--dark);
    transition: color 0.3s ease;
}

.card-image{
    width:19.375em;
}

.card{
    max-width: 19.375em;
    background-color: var(--content-background);
    border-radius: 1.25em;
    display: inline-flex;
    flex-direction: column;
}

.card-text{
    flex-basis: 7em;
    background-color: var(--static-white);
    border-radius: 1.25em;
    padding: 1.25em;
    display:flex;
    flex-direction: column;
    align-items: flex-start;
    row-gap: 0.5em;
}

@media(hover:hover){
    .card:hover {
        cursor: pointer;
    }
    
    .card:hover .card-name{
        color:var(--primary);
    }
}

.cards-container{
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75em;
}

.BestGifts{
    padding: 3.75em 5.125em;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25em
}

/* BestGifts section end */
/********************************************************/

/* CTA section start */

.CTA>.background-container {
    background-image: url(../../assets/images/bg-forest.png);
    background-size: cover;
    background-position: center;
}

.CTA .content-container{
    margin: 0 auto;
    padding: 11.25em 0;
    max-width: 26.625em;
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: 1.25em;;
}

.CTA .h2{
    font-size: 1.5em;
    line-height: 150%;
    letter-spacing: 0.16em;
    text-align: center;
}

.timer{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5em;
}

.timer-container .h4{
    font-size: 0.75em;
    line-height: 130%;
    letter-spacing: 0.05em;
    text-align: center;
    color:var(--static-white);
}


.timer-container{
    background-color: var(--static-white-40);
    border-radius: 1.25em;
    width: 21.5em;
    height: 4.5em;
    display: flex;
    justify-content: center;
    align-items: center;
}

.timer-container>.block{
    width: 5em;
    position: relative;
}

.day>.h2::after, 
.hour>.h2::after,
.minute>.h2::after{
    display: block;
    content: "";
    position: absolute;
    right: 0;
    bottom: 1.25rem;
    height: 1.25rem;
    width: 0.0625rem;
    background-color: var(--static-white-40);
}

/* CTA section end */

/* Footer section end */
.footer{
    padding: 3.75em 5.125em;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3.75em;
}

.footer-image{
    width: 5em;
}

.link{
    text-decoration: none;
}

.menu-item>.link,
.contacts .h2,
.contacts .link,
.footer .caption>.link{
    color: var(--dark);
}

.contacts{
    width: 100%;
    max-width: 79.75em;
    display: flex;
    justify-content: stretch;
    flex-grow: 1;
    gap: 0.75em
}

.contacts>.link{
    height: 12.75em;
    width: 33%;
}

.contact-card{
    width: 100%;
    padding: 1.25em 0;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    row-gap: 0.75em;
    background-color: var(--content-background);
    border-radius: 1.25em;
    flex-grow: 1;
}

.contact-card .h,
.contact-card:hover .link,
.school-link{
    transition: color 0.3s ease-in;
}

@media(hover:hover){
    .contact-card:hover .h,
    .contact-card:hover .link,
    .info-container>.caption:hover .school-link{
        color:var(--primary);
    }
    
    .contact-card:hover{
        cursor: pointer;
    }
}

.socials{
    display: flex;
    justify-content: center;
    gap: 0.75em;
}

.social-container{
    max-width: 2.5em;
    max-height: 2.5em;
}

.social-container>a>svg{
    margin: 0.5em;
}

.social-container path{
    transition: stroke 0.5s ease-out;
}

@media(hover:hover){
    .social-container:hover svg>path{
        stroke:var(--primary);
    }

    .social-container:hover{
        cursor: pointer;
    }
}

.info-container{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75em;
}

.burger-button{
    display:none;
}
/* Footer section end */



/*****************************************************************************************/
/*Responsive Start*/

@media(max-width: 1440px){
    .BestGifts{
        padding: 3.75em 4.25em;
    }
}

@media(max-width: 1411px){
    .cards-container{
        max-width: 39.5em;
    }
}

@media(max-width: 1180px){
    .About,
    .Slider{
        padding: 3.75em 0.5em;
    }
}

@media(max-width:1060px){
    .footer{
        padding: 3.75em 0.5em;
    }

    .contacts{
        flex-wrap: wrap;
    }

    .contacts>.link{
        width: 100%;
    }
}

@media(max-width: 768px){
    .header{
        padding: 0.75em 0.5em;
    }

    .nav-menu{
        max-width: 100vw;
        position: fixed;
        top: 4em;
        bottom: 0;
        left: 100vw;
        background-color: var(--static-white);
        opacity: 0;
        transition: left 0.9s ease-out, opacity 0.4s ease-out;
    }

    .nav-menu.open{
        left: 0;
        opacity: 1;
    }

    .menu-list{
        flex-direction: column;
        row-gap: 0.5em;
        justify-content: center;
    }
    
    .menu-item{
        font-size: 1.5em;
        line-height: 152%;
        letter-spacing: 0.16em;
    }

    .menu-item>.link{
        padding: 0.5em 0.834em; 
    }

    .burger-button{
        display:block;
        width: 3em;
        position: relative;
        border:none;
        background-color: transparent;
    }

    .burger-line{
        display:block;
        position: absolute;
        left: 0.75em;
        width: 1.5em;
        height: 0.08em;
        background-color: var(--dark);
        transition: transform 0.5s ease-out;
    }

    .burger-line:first-child{
        top: 1.2em;
        transform: translateY(-50%);
    }

    .burger-line:last-child{
        bottom: 1.2em;
        transform: translateY(50%);
    }

    .burger-button.active>.burger-line:first-child{
        transform: rotateZ(45deg) translate(3px, 3px); 
    }
    .burger-button.active>.burger-line:last-child{
        transform: rotateZ(-45deg) translate(2px, -2px); 
    }

    .BestGifts{
        padding: 3.75em 0.5em;
    }
}

@media(max-width: 704px){
    .About>.content-container{
        flex-direction: column;
        align-items: center;
    }

    .About .text-container{
        width: 100%;
        padding: 3.75em 1.25em;
    }

    .About .image{
        width: 100%;
    }
}

/* Modal Start */
.modal{
    width: 100vw;
    height: 100vh;
    position: fixed;
    top:0;
    left: 0;
    background-color: rgba(0,0,0,0.4);
    display: none; /*flex*/
    align-items: center;
    opacity:0;
    transition-property: display opacity ;
    transition-duration: 1s;
    transition-behavior: allow-discrete;
}

.modal.open{
    display:flex;
    opacity: 1;

    @starting-style{
        opacity:0;
    }
}

.modal-content{
    position: relative;
    margin: auto;
    max-width: 25em;
    background-color: var(--content-background);
    border-radius: 1.25em;
    display: flex;
    flex-direction: column;
    transition: opacity 0.5s ease;
}

.modal-content .image{
    width: 100%;
    height: 14.375em;
    object-fit: cover;
}

.cross-button{
    align-self: flex-end;
    display:block;
    width: 3em;
    height: 3em;
    position: absolute;
    top: 0.9em;
    right: 0.9em;
    border:none;
    background-color: transparent;
    cursor: pointer;
}

@media (hover:hover) {
    .cross-button:hover>.cross-line{
        background-color: var(--primary);
    }
    
}

.cross-line{
    display:block;
    position: absolute;
    width: 2.2em;
    height: 0.15em;
    left: 0.3em;
    margin: auto;
    background-color: var(--dark);
    transition: transform 0.5s ease-out,  background-color 0.5s ease-out;
}

.cross-line:first-child{
    transform: translateY(-50%);
    transform: rotateZ(45deg) translate(1px, -1px); 
}

.cross-line:last-child{
    transform: translateY(50%);
    transform: rotateZ(-45deg) translate(1px, 1px); 
}

.modal .paragraph{
    line-height: 150%;
}

.card-content{
    border-radius: 1.25em;
    background-color: var(--static-white);
}

.superpowers-container{
    padding: 0 1.25em 1.25em;
    display: flex;
    flex-direction: column;
    row-gap: 0.5em
}

.superpowers-container .h4{
    line-height: 1em;
    font-size: 0.75em;
    letter-spacing: 0.05em;
}

.power{
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.power>.paragraph:first-child{
    flex-basis: 11.5em;
    text-transform:capitalize;
}

.snowflakes{
    display: flex;
    align-items: center;
    column-gap: 0.5em;
}

.snowflakes>svg.inactive>g>path{
    fill-opacity: 0.1;
}



    