@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;200;300;400&display=swap');

:root{
   --main-color:#4834d4;
   --red:#e74c3c;
   --orange:#f39c12;
   --black:#34495e;
   --white:#fff;
   --light-bg:#f5f5f5;
   --light-color:#999;
   --border:.2rem solid var(--black);
   --box-shadow:0 .5rem 1rem rgba(0,0,0,.1);
}

*{
   font-family: 'Montserrat', sans-serif;
   margin:0; padding:0;
   box-sizing: border-box;
   text-decoration: none;
   outline: none; border:none;
}

*::selection{
   color:var(--white);
   background-color: var(--main-color);
}

::-webkit-scrollbar{
   width: 1rem;
   height: .5rem;
}

::-webkit-scrollbar-track{
  background-color: none;
}

::-webkit-scrollbar-thumb{
   background-color: var(--main-color);
}

html{
   font-size: 62.5%;
   overflow-x: hidden;
}

body{
   background-color: var(--light-bg);
   /* padding-bottom: 7rem; */
   height:100vh;
}


section{
    padding: 2rem;
    margin: 0 auto;
    max-width: 1200px; 
}

.btn,
.delete-btn{
    display: inline-block;
    margin-top: 1rem;
    padding: 1rem 3rem;
    font-size: 2rem;
    cursor: pointer;
    text-transform: capitalize;
    transition: .2s linear;
}
.btn{
    background-color: var(--orange);
    color: var(--black);
}
.delete-btn{
    background-color: var(--red);
    color: var(--white);
}

.btn:hover,
.delete-btn:hover{
    letter-spacing: .2rem;
}


.disabled{
    -webkit-user-select: none;
    user-select: none;
    opacity: .5;
    pointer-events: none;
}
.title{
    margin-bottom: 3rem;
    text-align: center;
    text-transform: uppercase;
    font-size: 4rem;
    color: var(--black);
    text-decoration: underline;
    text-underline-offset: 1rem; 
}




.empty{
  border: var(--border);
  padding: 2rem;
  text-align: center;
  font-size: 2rem;
  color: var(--red);
  text-transform: capitalize;
  width: 100%;
}

.message{
    position: sticky;
    top: 0;
    margin: 0 auto;
    max-width: 1200px;
    background-color: var(--yellow);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 2rem;
    z-index: 1100;
}
.message span{
    font-size: 2rem;
    color: var(--black);
}

.message i{
    font-size: 2.5rem;
    color: var(--red);
    cursor: pointer;
    transition: .2s linear;
}
.message i:hover{
    transform: rotate(45deg);
}

.header{
    position: sticky;
    z-index: 1000;
    background-color: var(--white);
    border-bottom: var(--border);
    top: 0;left: 0;
}
.header .flex{
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
}

.header .flex .logo img{
    display: grid;
    max-width: 60px;
}

.header .flex .navbar a{
    font-size:2rem;
    color: var(--black);
    margin: 0 1rem;
}

.header .flex .navbar a:hover{
    color: var(--yellow);
    text-decoration: underline;
}

.header .flex .icons > *{
   font-size: 2.5rem;
   color: var(--black);
   cursor: pointer;
   margin-left: 1.5rem;
}

.header .flex .icons span{
    font-size: 2rem;
}

.header .flex .icons > *:hover{
    color: var(--yellow);
}


.header .flex .profile{
    position: absolute;
    top: 120%; right: 2rem;
    border: var(--border);
    background-color: var(--white);
    padding: 1.5rem;
    text-align: center;
    width: 30rem;
    display: none;
    animation: fadeIn .2s linear;
}

/* ===== Budget Estimator in Header ===== */
.header .flex{
  align-items: center;
  gap: 14px;
}

/* กล่องวงเงิน ชิดขวา */
.budget-box{
  margin-left: auto;
  background: #ffffff;
  border: 1px solid #e7eef7;
  border-radius: 16px;
  padding: 10px 12px;
  box-shadow: 0 10px 25px rgba(0,0,0,.06);
  min-width: 240px;
  max-width: 280px;
}

.budget-title{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight: 900;
  font-size: 1.25rem;
  color:#0f172a;
  margin-bottom: 8px;
}
.budget-title i{
  font-size: 1.2rem;
  color:#4f46e5;
}

.budget-input-row{
  display:flex;
  align-items:center;
  gap:8px;
  background:#fbfdff;
  border:1px solid #dbe7f5;
  border-radius: 12px;
  padding: 8px 10px;
}

.budget-input-row .thb{
  font-weight: 900;
  color:#64748b;
}

.budget-input{
  width: 100%;
  border: none;
  outline: none;
  background: transparent;
  font-size: 1.25rem;
  font-weight: 900;
  color:#16a34a; /* ตัวเลขวงเงินสีเขียว */
}

.budget-result-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top: 10px;
  gap:10px;
}

.budget-label{
  font-size: 1.05rem;
  font-weight: 900;
  color:#64748b;
}

.budget-value{
  font-size: 1.2rem;
  font-weight: 950;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #fff;
  white-space: nowrap;
}

/* สถานะสี */
.budget-ok{
  color:#16a34a;
  border-color:#a7f3d0;
  background:#ecfdf5;
}
.budget-bad{
  color:#dc2626;
  border-color:#fecaca;
  background:#fef2f2;
}

.budget-hint{
  margin-top: 8px;
  font-size: 1.0rem;
  font-weight: 800;
  color:#64748b;
}
.budget-cart{
  font-weight: 950;
  color:#0f172a;
}

/* ===== FIX: Budget input cannot type (force clickable) ===== */
.header{ position: relative; z-index: 9999; }

.budget-box{ position: relative; z-index: 10000; }

.budget-box *{ pointer-events: auto !important; }

#budgetInput{
  pointer-events: auto !important;
  user-select: text !important;
  -webkit-user-select: text !important;
  -webkit-touch-callout: default !important;
  z-index: 10001 !important;
  position: relative;
}

/* มือถือ: ให้ลงบรรทัดและเต็มกว้าง */
@media (max-width: 900px){
  .budget-box{
    margin-left: 0;
    width: 100%;
    max-width: 100%;
    order: 10;
  }
}


@keyframes fadeIn {
  0%{
    transform: translateY(1rem);
  }
}

.header .flex .profile.active{
    display: inline-block;
}

.header .flex .profile .name{
    margin-bottom: .5rem;
    font-size: 2rem;
    color: var(--black);
    margin-bottom: .5rem;
}

.header .flex .profile .account{
    margin-top: 1rem;
    font-size: 2rem;
    color: var(--light-color);
}
.header .flex .profile .account a{
    color: var(--black);
}
.header .flex .profile .account a:hover{
    text-decoration: underline;
    color: var(--yellow);
}

#menu-btn {
    display: none;
}



.heading {
    background: var(--black);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-flow: column;
    gap: 1rem;
    padding: 3rem 1rem;
    text-align: center;
}



.heading h3{
    font-size: 2.5rem;
    color: var(--white);
    text-transform: capitalize;
}
.heading p{
    font-size: 2rem;
    color: var(--light-color);
}
.heading p a{
    color: var(--yellow);
}
.heading p a:hover{
    color: var(--white);
}




.home-category .box-container{  
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(27rem, 1fr));
    gap: 1.5rem;
    align-items: flex-start;
}
.home-category .box-container .box{
    border: var(--border);
    padding: 2rem;
    text-align: center;
}


.home-category .box-container .box img{
    width: 100%;
    height: 12rem;
    object-fit: contain;
    margin-bottom: 1rem;
}

.home-category .box-container .box h3{
    font-size: 2rem;
    color:var(--black);
    margin-top: 1rem;
}
.home-category .box-container .box:hover{
    background-color: var(--black);
}
.home-category .box-container .box:hover img{
    filter:1;
}
.home-category .box-container .box:hover h3{
    color: var(--white);
}




.products .box-container{
    display: grid;
    grid-template-columns: repeat(auto-fit, 32rem);
    gap: 1.5rem;
    align-items: flex-start;
    justify-content: center;
}

.products .box-container .box{
    padding: 2rem;
    position: relative;
    border: var(--border);
    overflow: hidden;
}
.products .box-container .box img{
    height: 25rem;
    width: 100%;
    object-fit: contain;
    margin-bottom: 1rem;
}
.products .box-container .box .fa-times,
.products .box-container .box .fa-eye,
.products .box-container .box .fa-shopping-cart{
    position: absolute;
    top: 1rem;
    height: 4.5rem;
    width: 4.5rem;
    cursor: pointer;
    font-size: 2rem;
    border: var(--border);
    background-color: var(--white);
    line-height: 4.3rem;
    color: var(--black);
    text-align: center;
    transition: .2rem linear;
}
.products .box-container .box .fa-eye:hover,
.products .box-container .box .fa-shopping-cart:hover{
    background-color: var(--black);
    color: var(--white);
}
.products .box-container .box .fa-eye{
    left: -10rem;
}
.products .box-container .box .fa-shopping-cart{
    right: -10rem;
}

.products .box-container .box:hover .fa-eye{
    left: 1.5rem;
}
.products .box-container .box:hover .fa-shopping-cart{
    right: 1.5rem;
}
.products .box-container .box .fa-times{
    position: absolute;
    top: 1rem; right: 1rem;
    height: 4.5rem;
    width: 4.5rem;
    cursor: pointer;
    background-color: var(--red);
    border: var(--border);
    line-height: 4.3rem;
    font-size: 2rem;
    color: var(--white);
}
.products .box-container .box .fa-times:hover{
    background-color: var(--black);
    color: var(--white);
}

.products .box-container .box .cat{
    font-size: 1.8rem;
    color: var(--light-color);
}
.products .box-container .box .cat:hover{
    color: var(--black);
    text-decoration: underline;
}
.products .box-container .box .name{
   font-size: 2rem;
   color: var(--black);
   margin: 1rem 0;
}
.products .box-container .box .flex{
    display: flex;
    gap: 1rem;
    align-items: center;
    margin: 1rem 0;
}

.products .box-container .box .flex .price{
    font-size: 2.5rem;
    color: var(--black);
    margin-right: auto;
}

.products .box-container .box .flex .price span{
    font-size: 2rem;
    color: var(--light-color);
}

.products .box-container .box .flex .qty{
    padding: 1rem;
    border: var(--border);
    font-size: 1.8rem;
    color: var(--black);
}

.products .box-container .box .fa-edit{
  font-size: 2rem;
  cursor: pointer;
  border: var(--border);
  width: 5rem;
  background-color: var(--yellow);
  color: var(--black);
  height: 4.5rem;

}
.products .box-container .box .fa-edit:hover{
    background-color: var(--black);
    color: var(--white);
}

.products .box-container .box .sub-total{
    font-size: 1.8rem;
    color: var(--light-color);
    margin-top: 1rem;
}
.products .box-container .box .sub-total span{
    color: var(--red);
}

.products .more-btn{
    text-align: center;
    margin-top: 1rem;
}

.products .cart-total{
    display: flex;
    align-items: center;
    gap:1.5rem;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-top: 3rem;
    border:var(--border);
    padding:1rem;
 }
 
 .products .cart-total p{
    font-size: 2.5rem;
    color:var(--light-color);
 }
 
 .products .cart-total p span{
    color:var(--red);
 }
.products .cart-total .grand-total{
    font-size: 2.5rem;
    text-transform: capitalize;
    margin-bottom: .5rem;
    color: var(--light-color);
}
.products .cart-total .grand-total span{
    color: var(--red);
}




.quick-view .box{
    margin: 0 auto;
    max-width: 40rem;
    border: var(--border);
    padding: 2rem;
}

.quick-view .box image{
  width: 100%;
  height: 30rem;
  object-fit: contain;
  margin-bottom: 1rem;
}
.quick-view .box .cat{
    font-size: 1.8rem;
    color: var(--light-color);
}
.quick-view .box .cat:hover{
    text-decoration: underline;
    color: var(--black);
}
.quick-view .box .name{
    font-size: 2rem;
    color: var(--black);
    margin: 1rem 0;
}
.quick-view .box .cart-btn{
    width: 100%;
    border: var(--border);
    padding: 1rem 3rem;
    font-size: 2rem;
    color: var(--black);
    cursor: pointer;
    text-transform: capitalize;
    margin-top: 1.5rem;
    background-color: var(--white);
}
.quick-view .box .cart-btn:hover{
  background-color: var(--black);
  color: var(--white);
}

.quick-view .box .flex{
    display: flex;
    gap: 1.5rem;
    align-items: center;
}

.quick-view .box .flex .price{
    font-size: 2.5rem;
    color: var(--black);
    margin-right: auto;
}

.quick-view .box .flex .price span{
    font-size: 2rem;
    color: var(--light-color);
}

.quick-view .box .flex .qty{
    padding: 1rem;
    border: var(--border);
    font-size: 1.8rem;
    color: var(--black);
}






.checkout form{
    max-width: 80rem;
    margin:0 auto;
    border:var(--border);
    padding:2rem;
 }
 
 .checkout form h3{
    font-size: 2.5rem;
    text-transform: capitalize;
    padding: 2rem 0;
    color:var(--black);
 }
 
 .checkout form .cart-items{
    background-color: var(--black);
    padding:2rem;
    padding-top: 0;
 }
 
 .checkout form .cart-items h3{
    color:var(--white);
 }
 
 .checkout form .cart-items p{
    display: flex;
    align-items: center;
    gap:1.5rem;
    justify-content: space-between;
    margin:1rem 0;
    line-height: 1.5;
    font-size: 2rem;
 }
 
 .checkout form .cart-items p .name{
    color:var(--light-color);
 }
 
 .checkout form .cart-items p .price{
    color:var(--yellow);
 }
 
 .checkout form .cart-items .grand-total{
    background-color: var(--white);
    padding:.5rem 1.5rem;
 }
 
 .checkout form .cart-items .grand-total .price{
    color:var(--red);
 }
 
 .checkout form .user-info p{ 
    font-size: 2rem;
    line-height: 1.5;
    padding:1rem 0;
 }
 
 .checkout form .user-info p i{
    color:var(--light-color);
    margin-right: 1rem;
 }
 
 .checkout form .user-info p span{
    color:var(--black);
 }
 
 .checkout form .user-info .box{
    width: 100%;
    border:var(--border);
    padding:1.4rem;
    margin-top: 2rem;
    margin-bottom: 1rem;
    font-size: 1.8rem;
 }





 
.orders .box-container{
    display: flex;
    flex-wrap: wrap;
    gap:1.5rem;
    align-items: flex-start;
 }
 
 .orders .box-container .box{
    padding:1rem 2rem;
    border:var(--border);
    flex:1 1 40rem;
 }
 
 .orders .box-container .box p{
    line-height: 1.5;
    margin:1rem 0;
    font-size: 2rem;
    color:var(--light-color);
 }
 
 .orders .box-container .box p span{
    color:var(--black);
 }





.form-container form{
    border: var(--border);
    padding: 2rem;
    border: var(--border);
    text-align: center;
    max-width: 50rem;
    margin: 0 auto;
}
.form-container form h3{
    font-size: 2.5rem;
    color:var(--black);
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.form-container form .box{
    width: 100%;
    margin: 1rem 0;
    font-size: 1.8rem;
    color: var(--black);
    padding: 1.4rem;
    border: var(--border);
}

.form-container form p{
    margin-top: 2rem;
    font-size: 2rem;
    color: var(--light-color);
}
.form-container form p a{
    color: var(--black);
}

.form-container form p a:hover{
    text-decoration: underline;
    color: var(--yellow);
}

.user-profile{
    border: var(--border);
    padding: 2rem;
    border: var(--border);
    max-width: 50rem;
    margin: 0 auto;
    margin-top: 2rem;
}
.user-profile .box img{
    width: 100%;
    height: 20rem;
    margin-bottom: 1rem;
    object-fit: contain;
}

.user-profile .box p{
   margin: 1.5rem 0;
   line-height: 1.5;
   font-size: 2rem;
}
.user-profile .box p i{
    color: var(--light-color);
    margin-right: 1rem;
}
.user-profile .box p span{
    color: var(--black);
}

.about .row{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.5rem;

}
.about .row .image{
    flex: 1 1 40rem;
}
.about .row .image img{
    width: 100%;
}
.about .row .content{
    flex: 1 1 40rem;
    text-align: center;
}
.about .row .content h3{
    font-size: 3rem;
    color: var(--black);
    text-transform: capitalize;
    margin-bottom: 1rem;
}
.about .row .content p{
    padding: 1rem 0;
    line-height: 2;
    font-size: 1.6rem;
    color: var(--light-color);
}
.steps .box-container{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(32rem, 1fr));
    gap: 1.5rem;
    align-items: flex-start;
 }
 .steps .box-container .box{
    text-align: center;
    border: var(--border);
    padding: 2rem;
    height: 36rem;
 }

 .steps .box-container .box img{
    max-height: 27rem;
    width: 100%;
    object-fit: contain;
    margin-bottom: 1rem;
 }
 .steps .box-container .box h3{
    font-size: 2.3rem;
    margin: 1rem 0;
    color: var(--black);
    text-transform: capitalize;
 }
 .steps .box-container .box p{
    font-size: 1.6rem;
    line-height: 2;
    color: var(--light-color);
 }
 
 .reviews .slide{
    margin-bottom: 4rem;
    border: var(--border);
    padding: 2rem;
    text-align: center;

}

.reviews .slide img{
    height: 10rem;
    width: 10rem;
    margin-bottom: .5rem;
    border-radius: 50%;
}
.reviews .slide p{
    padding: 1.5rem 0;
    line-height: 2;
    font-size: 1.6rem;
    color: var(--light-color);
}
.reviews .slide .stars{
    display: inline-block;
    padding: .5rem 1rem;
    border: var(--border);
}
.reviews .slide .stars i{
    font-size: 1.8rem;
    color: var(--yellow);
}
.reviews .slide h3{
    font-size: 2rem;
    margin-top: 1.5rem;
    text-transform: capitalize;
    color: var(--black);
}

.contact .row{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.5rem;
}
.contact .row .image{
    flex: 1 1 40rem;
}
.contact .row .image img{
    width: 100%;
}
.contact .row form{
    border: var(--border);
    flex: 1 1 40rem;
    padding: 2rem;
    text-align: center;
}

.contact .row form h3{
    font-size: 2.5rem;
    color: var(--black);
    margin-bottom: 1rem;
    text-transform: capitalize;
}
.contact .row form .box{
    margin: .7rem 0;
    font-size: 1.8rem;
    color: var(--black);
    border: var(--border);
    padding: 1.4rem;
    width: 100%;
}
.contact .row form textarea{
    height: 15rem;
    resize: none;
}

.search-form form{
    display: flex;
    gap: 1rem;
}

.search-form form .box{
    width: 100%;
    border: var(--border);
    padding: 1.4rem;
    font-size: 2rem;
    color: var(--black);
}
.search-form form button{
    width: 6rem;
    cursor: pointer;
    background-color: var(--black);
    color: var(--white);
    font-size: 2.2rem;
}
.search-form form button:hover{
    background-color: var(--yellow);
    color: var(--black);
}




.footer{
    background-color: #ECBCFA;
    border-top: black;
    max-width:100%;
    padding: 20px;
   
}

.footer .grid{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(5rem, 1fr));
    gap: 3rem;
    align-items: flex-start;
    justify-content: space-between; 
 }
 .footer .grid .box{
     padding: 2rem 1rem;
     text-align: center;
 }
 .footer .grid .box img{
     height: 5rem;
     width: 100%;
     object-fit: contain;
     margin-bottom: 1rem;
 }

 .footer .grid img:hover{
     text-decoration: underline;
 }






@media (max-width:991px){
    html{
        font-size: 55%;
    }
}



@media (max-width:768px){

    #menu-btn {
        display: inline-block;
    }

    .header .flex .navbar{
        position: absolute;
        top: 99%; left: 0; right: 0;
        border-top: var(--border);
        border-bottom: var(--border);
        background-color: var(--white);
        transition: .2s linear;
        clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
    }

    .header .flex .navbar.active{
        clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    }

    .header .flex .navbar a{
        margin: 2rem;
        display: block;
    }

}


@media (max-width:450px){
    html{
        font-size: 50%;
    }

    .header .flex .logo img{
        display: grid;
        align-items: flex-start;
        max-width: 80px;
    }

    .products .box-container{
        grid-template-columns: 1fr;
    }
}