@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap');

html {
   font-family: 'Inter';
   font-size: 16px;
}

body {
   margin: 0;
   padding: 0;
}

.header {
   min-height: 100vh;
   position: relative;
   color: #FFFFFF;
   overflow: hidden;
}

.bg_img{
   position: absolute;
   height: 100%;
   width: 100%;
   background-image: url('./img/hero.jpeg');
   background-position: left;
   background-size: cover;
   z-index: -3;
}

.header_content{
   z-index: 1;
}

.container {
   max-width: 1440px;
   margin: 0 auto;
   padding: 0 2rem;
}

.bg_filter {
   position: absolute;
   height: 100%;
   width: 100%;
   z-index: -1;
   background: rgba(0, 0, 0, 0.3);
}

.nav {
   padding: 3rem 2.5rem;
   display: flex;
   flex-wrap: wrap;
   justify-content: space-between;
   align-items: center;
}

.logo {
   font-weight: 400;
   font-size: 1rem;
   cursor: pointer;
   text-transform: uppercase;
}

.menu {
   display: flex;
   align-items: center;
   list-style: none;
   gap: 2rem;
}

.menu li {
   font-weight: 400;
   font-size: 1rem;
   text-transform: uppercase;
   cursor: pointer;
   position: relative;
}

.menu_btn{
   width: 30px;
   height: 30px;
   position: relative;
   z-index: 2;
}
.menu_btn span{
   width: 30px;
   height: 2px;
   position: absolute;
   background: #fff;
   transition: all 1s;
}
.menu_btn span:nth-of-type(2) {
   top: calc(50% - 10px);
}
.menu_btn span:nth-of-type(3) {
   top: calc(50% + 10px);
}

#toggler,
.nav label{
   display: none;
}

.menu li:after {
   content: "";
   display: block;
   position: absolute;
   right: 0;
   bottom: -3px;
   width: 0;
   height: 2px;
   /* Высота линии */
   background-color: #FFFFFF;
   /* Цвет подчеркивания при исчезании линии*/
   transition: width 0.5s;
   /* Время эффекта */
}

.menu li:hover:after {
   content: "";
   width: 100%;
   display: block;
   position: absolute;
   left: 0;
   bottom: -3px;
   height: 2px;
   /* Высота линии */
   background-color: #FFFFFF;
   /* Цвет подчеркивания при появлении линии*/
   transition: width 0.5s;
   /* Время эффекта */
}

.cover {
   min-height: 70vh;
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   text-align: center;
   padding: 2rem;
}

.cover h1 {
   font-weight: 700;
   font-size: 6rem;
   margin: 0;
}

.cover p {
   font-weight: 400;
   font-size: 2rem;
   max-width: 750px;
}

.btn {
   font-weight: 700;
   font-size: 1rem;
   text-transform: uppercase;
   color: #FFFFFF;
   background-color: transparent;
   border: 2px solid #FFFFFF;
   padding: 1.2rem 1.5rem;
   transition: 0.3s;
   cursor: pointer;
}

.btn:hover {
   transform: scale(1.05);
}

/* Вторая часть */

.coffee {
   background-color: #FFFFFF;
   position: relative;
   overflow: hidden;
}

.box_img_coffee {
   margin: 0 -12rem;
   z-index: 2;
}

.img_coffee {
   width: 100%;
}

.row_coffee {
   display: grid;
   grid-template-columns: 1fr 1fr 1fr;
   grid-template-rows: 100%;
}

.col_coffee {
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   gap: 3.1rem;
   padding: 1.2rem 0;
}

.right {
   text-align: left;
   z-index: 3;
}

.left {
   text-align: right;
   z-index: 3;
}

.item {
   display: flex;
   align-items: flex-end;
   gap: 1.2rem;
}

.item h3 {
   font-weight: 400;
   font-size: 1rem;
   text-transform: uppercase;
   margin: 0 0 0.6rem 0;
}

.item p {
   max-width: 17rem;
   font-weight: 400;
   font-size: 0.8rem;
   margin: 0;
}

.item img {
   width: 4.2rem;
   height:4.2rem;
   object-fit: contain;
   opacity: 0.7;
}

/* третья часть */

.book {
   position: relative;
   color: #FFFFFF;
   overflow: hidden;
}


.block_info {
   padding-block: 5.5rem;
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   text-align: center;
   gap: 1.5rem;
}

.block_title {
   font-weight: 700;
   font-size: 2.5rem;
   text-align: center;
   margin: 0;
}

.block_text {
   font-weight: 400;
   font-size: 1rem;
   max-width: 26rem;
   text-align: center;
   margin: 0 auto;
}

.block_line{
   width: 12rem;
}

.block_line.white {
   border: 1px solid #FFFFFF;
}

.block_line.black {
   border: 1px solid #000000;
}


.explore_menu {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 1.8rem;
   margin-top: 3rem;
}

.explore_menu .card {
   display: flex;
   align-items: flex-start;
   gap: 1.5rem;
}

.explore_menu .info {
   display: flex;
   flex-direction: column;
   gap: 0.5rem;
}

.explore_menu h3 {
   margin: 0;
   font-weight: 400;
   font-size: 1rem;
   text-transform: uppercase;
}

.explore_menu p {
   margin: 0;
   font-weight: 400;
   font-size: 0.8rem;
}

.explore_menu .price {
   font-weight: 400;
   font-size: 1rem;
}


/* reviews */

.reviews{
   color: #FFFFFF;
}

.reviews .block_text {
   max-width: 50rem;
}

.reviews .block_info{
   padding-bottom: 9rem;
}



/* carousel */
 
.carousel {
   position: relative;
   overflow: hidden;
 }
 
 .slides {
   display: flex;
 }
 
 .slide {
   flex-shrink: 0;
   width: 100%;
   height: 100%;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 5rem;
 }
 
 .dots {
   position: absolute;
   bottom: 5.5rem;
   left: 50%;
   transform: translateX(-50%);
   display: flex;
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 0.8rem;
 }
 
 .dot {
   width: 0.8rem;
   height: 0.8rem;
   border-radius: 50%;
   border: 2px solid #FFFFFF;
   cursor: pointer;
 }
 
 .dot.active {
   background-color: #FFFFFF;
 }



 /* news */


.cards_new{
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
   gap: 2rem;
}

.card_new{
   text-align: start;
}

.card_new h3{
   margin: 1.2rem 0 0 0;
   font-weight: 700;
   font-size: 1rem;
   text-transform: uppercase;
}

.card_new p{
   font-weight: 400;
   font-size: 1rem;
   margin: 0.3rem 0;
}

.card_new img {
   width: 100%;
   height: 18rem;
   object-fit: cover;
   object-position: center;
}



/* connection */

.connection{
   background: #111111;
   color: #FFFFFF;
}

.inp{
   background-color: transparent;
   font-weight: 400;
   font-size: 1rem;
   color: #FFFFFF;
   border: 1px solid #FFFFFF;
   padding: 1.2rem 2rem;
   transition: 0.3s;
   cursor: pointer;
}

.use_connection{
   display: flex;
   gap: 1.2rem;
}


/* footer */

.footer{
   background: #111111;
   color: #FFFFFF;
   padding: 2rem 0 2rem 0;
}

.box_footer{
   display: flex;
   justify-content: space-between;
   align-items: center;
   gap: 2rem;
}

.menu_footer{
   display: flex;
   justify-content: center;
   gap: 1.5rem;
   flex-wrap: wrap;
   list-style: none;
   flex: 1 0;
   padding: 0;
}

.menu_footer li{
   font-weight: 400;
   font-size: 1rem;
}

.box_footer p{
   flex: 1 0;
   font-weight: 400;
   font-size: 0.8rem;
}

.devs{
   flex: 1 0;
   display: flex;
   align-items: center;
   justify-content: flex-end;
}
.dev{
   background: rgba(217, 217, 217, 0.1);
   padding: 1.6rem;
   border-radius: 50%;
}




@media screen and (max-width: 1280px) {
   
}

@media screen and (max-width: 1024px) {
   html{
      font-size: 14px;
   }
   .menu{
      gap: 1.5rem;
   }
}

@media screen and (max-width: 860px) {
   .menu{
      width: 100%;
      max-height: 0;
      padding: 0;
      overflow: hidden;
      transition: all 1s ease-out;
      flex-direction: column;
      align-items: center;
   }

   .nav label{
      display: inline-flex;
      align-items: center;
      cursor: pointer;
   }


   #toggler:checked ~ .menu{
      max-height: 100vh;
   }

   #toggler:checked ~ .menu_btn > span:nth-of-type(1){
      opacity: 0;
      transition: all 0.5s;
   }
   #toggler:checked ~ .menu_btn > span:nth-of-type(2){
      transition: all 0.5s;
      transform: rotate(45deg);
      top: 13px;
   }
   #toggler:checked ~ .menu_btn > span:nth-of-type(3){
      transition: all 0.5s;
      transform: rotate(-45deg);
      top: 13px;
   }
}

@media screen and (max-width: 768px) {
   .cover h1{
      font-size: 4rem;
   }
   .cover p{
      font-size: 1.3rem;
   }

   /* ------- */
   .coffee{
      padding-block:  50px;
   }
   .row_coffee{
      grid-template-columns: minmax(300px, 2fr) 1fr;
      grid-template-rows: auto;
   }
   .col_coffee{
      padding: 1.5rem 0;
   }
   .box_img_coffee{
      grid-column-start: 2;
      grid-row: 1 / 3;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-inline: -15rem -32rem;
   }

   .left{
      text-align: left;
   }

   .left .item{
      display: flex;
      flex-direction: row-reverse;
   }

   /* ------- */
   .explore_menu{
      grid-template-columns: 1fr;
   }

}

@media screen and (max-width: 480px) {
   .use_connection{
      flex-direction: column;
      align-items: center;
   }

   .box_footer{
      flex-wrap: wrap;
   }

   .menu_footer{
      flex-basis: 100%;
      order: -1;
   }
}

@media screen and (max-width: 360px) {
   .row_coffee{
      grid-template-columns: 1fr;
   }
   .box_img_coffee{
      display: none;
   }
}
