/* =========================
   GLOBAL
========================= */

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  font-family:'DM Sans',sans-serif;
  color:#2a1b1d;
  background:#fff;
  line-height:1.5;
}

a{
  color:inherit;
  text-decoration:none;
}

img{
  display:block;
  max-width:100%;
}

button,
input,
select,
textarea{
  font:inherit;
}

.container{
  width:92%;
  max-width:1180px;
  margin:auto;
}

/* =========================
   HEADER
========================= */

.topbar{
  padding:9px;
  background:#4d0713;
  color:#fff;
  text-align:center;
  font-size:13px;
}

.site-header{
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid #eadedb;
  backdrop-filter:blur(10px);
}

.nav-wrap{
  display:flex;
  align-items:center;
  gap:28px;
  min-height:82px;
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:190px;
}

.brand-mark{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  flex:0 0 auto;
  border-radius:50%;
  background:linear-gradient(145deg,#d4a53a,#f2d17b);
  color:#4d0713;
  font:700 27px 'Playfair Display',serif;
}

.brand strong{
  display:block;
  color:#7a1022;
  font:700 24px 'Playfair Display',serif;
}

.brand small{
  display:block;
  color:#74656a;
  font-size:9px;
  letter-spacing:2px;
}

.main-nav{
  display:flex;
  gap:24px;
  margin:auto;
  font-weight:600;
}

.main-nav a:hover,
.nav-actions a:hover{
  color:#7a1022;
}

.nav-actions{
  display:flex;
  align-items:center;
  gap:14px;
  font-size:14px;
}

.cart-link{
  padding:10px 13px;
  border-radius:999px;
  background:#fff8ed;
}

.cart-link span{
  margin-left:4px;
  padding:2px 7px;
  border-radius:50%;
  background:#7a1022;
  color:#fff;
}

.menu-toggle{
  display:none;
  border:0;
  background:none;
  font-size:24px;
  cursor:pointer;
}

/* =========================
   TYPOGRAPHY
========================= */

h1,
h2,
h3{
  margin-top:0;
  font-family:'Playfair Display',serif;
}

.eyebrow{
  color:#d4a53a;
  font-size:12px;
  font-weight:700;
  letter-spacing:2.4px;
  text-transform:uppercase;
}

/* =========================
   BUTTONS
========================= */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 22px;
  border:1px solid transparent;
  border-radius:10px;
  font-weight:700;
  cursor:pointer;
}

.btn.primary{
  background:#7a1022;
  color:#fff;
}

.btn.primary:hover{
  background:#4d0713;
}

.btn.ghost{
  background:#fff;
  border-color:#eadedb;
}

.btn.full{
  width:100%;
}

/* =========================
   HERO
========================= */

.hero{
  padding:74px 0;
  background:
    radial-gradient(circle at 80% 10%,#ffe9b7,transparent 30%),
    linear-gradient(135deg,#fffaf3,#f9ece6);
}

.hero-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  align-items:center;
  gap:60px;
}

.hero h1{
  margin:14px 0 22px;
  font-size:64px;
  line-height:1.03;
}

.hero h1 em{
  color:#7a1022;
  font-style:normal;
}

.hero p{
  max-width:650px;
  color:#74656a;
  font-size:18px;
  line-height:1.75;
}

.hero-actions{
  display:flex;
  gap:12px;
  margin:28px 0;
}

.hero-stats{
  display:flex;
  gap:34px;
  margin-top:32px;
}

.hero-stats strong{
  display:block;
  color:#7a1022;
  font-size:23px;
}

.hero-stats span{
  color:#74656a;
  font-size:12px;
}

.hero-card{
  position:relative;
  padding:26px;
  border-radius:34px;
  background:#fff;
  box-shadow:0 18px 55px rgba(77,7,19,.11);
  transform:rotate(2deg);
}

.hero-card img{
  width:100%;
  height:auto;
  border-radius:24px;
}

.floating-label{
  position:absolute;
  left:-24px;
  bottom:36px;
  padding:14px 18px;
  border-radius:12px;
  background:#fff;
  box-shadow:0 18px 55px rgba(77,7,19,.11);
}

.floating-label strong,
.floating-label span{
  display:block;
}

.floating-label span{
  color:#7a1022;
  font-weight:700;
}

/* =========================
   SECTIONS
========================= */

.section{
  padding:86px 0;
}

.soft-bg{
  background:#fff8ed;
}

.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  margin-bottom:30px;
}

.section-head h2{
  margin:6px 0 0;
  font-size:38px;
}

.section-head > a{
  color:#7a1022;
  font-weight:700;
}

/* =========================
   CATEGORIES
========================= */

.category-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

.category-card{
  padding:26px;
  border:1px solid #eadedb;
  border-radius:18px;
  background:#fff;
  transition:.25s;
}

.category-card:hover{
  transform:translateY(-5px);
  box-shadow:0 18px 55px rgba(77,7,19,.11);
}

.category-icon{
  color:#d4a53a;
  font-size:28px;
}

.category-card h3{
  margin:14px 0 8px;
}

.category-card p{
  margin:0;
  color:#74656a;
}

/* =========================
   PRODUCT GRID
========================= */

.product-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:start;
  gap:22px;
}

.product-card{
  display:block;
  height:auto;
  overflow:hidden;
  border:1px solid #eadedb;
  border-radius:18px;
  background:#fff;
  transition:transform .25s ease,box-shadow .25s ease;
}

.product-card:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 35px rgba(77,7,19,.10);
}

.product-image{
  position:relative;
  display:block;
  width:100%;
  height:250px;
  overflow:hidden;
  background:#f8eee8;
}

.product-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .3s ease;
}

.product-card:hover .product-image img{
  transform:scale(1.04);
}

.badge,
.discount,
.discount-badge{
  display:none !important;
}

.product-content{
  display:block;
  padding:14px 16px;
}

.product-content small{
  display:block;
  margin-bottom:4px;
  color:#d4a53a;
  font-size:11px;
  font-weight:700;
  letter-spacing:.8px;
  text-transform:uppercase;
}

.product-content h3{
  min-height:auto;
  margin:5px 0 8px;
  font-size:19px;
  line-height:1.3;
}

.product-content p,
.product-content .unit{
  min-height:auto;
  margin:0 0 10px;
  color:#74656a;
  font-size:13px;
}

.product-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-top:0;
}

.price{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:6px;
}

.price strong{
  color:#7a1022;
  font-size:18px;
}

del{
  margin-left:4px;
  color:#aaa;
  font-size:13px;
}

.product-bottom form,
.price-row form{
  margin:0;
}

.add-btn,
.icon-btn{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  flex:0 0 auto;
  border:0;
  border-radius:50%;
  background:#7a1022;
  color:#fff;
  font-size:23px;
  line-height:1;
  cursor:pointer;
}

.add-btn:hover,
.icon-btn:hover{
  background:#4d0713;
}

/* =========================
   PROMISE SECTION
========================= */

.promise-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.promise-grid > div{
  padding:28px;
  border-left:3px solid #d4a53a;
}

.promise-grid span{
  color:#d4a53a;
  font-weight:700;
}

.promise-grid p{
  color:#74656a;
  line-height:1.6;
}

/* =========================
   CELEBRATION
========================= */

.celebration{
  background:linear-gradient(125deg,#4d0713,#7a1022);
  color:#fff;
}

.celebration-inner{
  display:grid;
  grid-template-columns:1fr .7fr;
  align-items:center;
  gap:50px;
}

.celebration h2{
  font-size:44px;
}

.celebration p{
  max-width:620px;
  color:#f2dfe3;
}

.celebration img{
  max-height:300px;
  margin:auto;
}

.light{
  color:#ffd879;
}

.light-btn{
  background:#fff;
  color:#7a1022;
}

/* =========================
   PAGE BANNER
========================= */

.page-banner{
  padding:70px 0;
  background:linear-gradient(135deg,#fff4e0,#f7e4e6);
  text-align:center;
}

.page-banner.compact{
  padding:38px 0;
}

.page-banner h1{
  margin:8px 0;
  font-size:48px;
}

.page-banner p{
  color:#74656a;
}

/* =========================
   SHOP
========================= */

.shop-layout{
  display:grid;
  grid-template-columns:240px minmax(0,1fr);
  gap:34px;
}

.filters{
  position:sticky;
  top:105px;
  height:max-content;
  padding:22px;
  border:1px solid #eadedb;
  border-radius:16px;
  background:#fff;
}

.filters input,
.filters select,
.checkout-form input,
.checkout-form select,
.checkout-form textarea,
.form-grid input,
.form-grid select{
  width:100%;
  margin:7px 0 14px;
  padding:13px;
  border:1px solid #eadedb;
  border-radius:9px;
  background:#fff;
}

.results-head{
  display:flex;
  justify-content:space-between;
  margin-bottom:20px;
  color:#74656a;
}

/* =========================
   PRODUCT DETAIL
========================= */

.product-detail{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:60px;
}

.detail-image{
  overflow:hidden;
  border-radius:24px;
  background:#f7eee8;
}

.detail-image img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
}

.detail-copy h1{
  margin:12px 0;
  font-size:48px;
}

.detail-copy > p{
  color:#74656a;
  line-height:1.75;
}

.detail-price{
  color:#7a1022;
  font-size:28px;
  font-weight:700;
}

.stock.in{
  color:#2f7d43;
}

.stock.out{
  color:#a22;
}

.buy-form{
  display:flex;
  gap:12px;
  margin:24px 0;
}

.buy-form input{
  width:75px;
  padding:13px;
  border:1px solid #eadedb;
  border-radius:9px;
}

.detail-points{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  color:#74656a;
  font-size:13px;
}

/* =========================
   CART + CHECKOUT
========================= */

.cart-layout,
.checkout-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:34px;
}

.cart-table{
  overflow:hidden;
  margin-bottom:18px;
  border:1px solid #eadedb;
  border-radius:14px;
}

.cart-row{
  display:grid;
  grid-template-columns:75px 1fr 110px 70px 110px 30px;
  align-items:center;
  gap:14px;
  padding:14px;
  border-bottom:1px solid #eadedb;
}

.cart-row:last-child{
  border-bottom:0;
}

.cart-row img{
  width:70px;
  height:70px;
  border-radius:9px;
  object-fit:cover;
}

.cart-row input{
  width:60px;
  padding:9px;
}

.remove{
  color:#a22;
  font-size:22px;
}

.summary-card,
.checkout-form,
.auth-card,
.success-card,
.admin-card,
.contact-info{
  padding:26px;
  border:1px solid #eadedb;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 30px rgba(50,20,20,.05);
}

.summary-card{
  height:max-content;
}

.summary-card > div{
  display:flex;
  justify-content:space-between;
  margin:15px 0;
}

.summary-card .total{
  font-size:21px;
}

.summary-card small{
  display:block;
  margin-top:13px;
  color:#74656a;
  text-align:center;
}

/* =========================
   AUTH + FORMS
========================= */

.auth-section{
  display:grid;
  place-items:center;
  min-height:70vh;
  padding:70px 20px;
  background:#fff8ed;
}

.auth-card,
.success-card{
  width:min(500px,100%);
  text-align:center;
}

.form-grid label,
.checkout-form label{
  display:block;
  font-size:14px;
  font-weight:600;
  text-align:left;
}

.two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.radio-card,
.check{
  margin-bottom:10px;
  padding:13px !important;
  border:1px solid #eadedb;
  border-radius:10px;
}

.radio-card input,
.check input{
  width:auto !important;
  margin-right:8px;
}

.success-icon{
  display:grid;
  place-items:center;
  width:70px;
  height:70px;
  margin:0 auto 20px;
  border-radius:50%;
  background:#e9f7ed;
  color:#2f7d43;
  font-size:32px;
}

/* =========================
   ORDERS
========================= */

.order-list{
  display:grid;
  gap:14px;
}

.order-card{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  padding:20px;
  border:1px solid #eadedb;
  border-radius:14px;
}

.order-card span{
  display:block;
  color:#74656a;
  font-size:12px;
}

.status{
  padding:5px 9px;
  border-radius:999px;
  background:#fae8ec;
  color:#7a1022;
  font-size:12px;
}

/* =========================
   STORY + CONTACT
========================= */

.story-grid,
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:60px;
}

.story-grid img{
  border-radius:24px;
}

.contact-item{
  margin-bottom:20px;
}

.contact-item strong{
  display:block;
  margin-bottom:5px;
  color:#7a1022;
}

.contact-item p{
  margin:0;
  color:#74656a;
}

.mini{
  margin-top:25px;
}

.mini > div{
  padding:14px;
}

.mini strong,
.mini span{
  display:block;
}

.prose{
  max-width:800px;
  line-height:1.8;
}

/* =========================
   OUTLET SHOPS
========================= */

.outlet-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.outlet-card{
  display:flex;
  flex-direction:column;
  padding:26px;
  border:1px solid #eadedb;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 30px rgba(77,7,19,.07);
  transition:transform .25s ease,box-shadow .25s ease;
}

.outlet-card:hover{
  transform:translateY(-5px);
  box-shadow:0 18px 45px rgba(77,7,19,.12);
}

.outlet-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  margin-bottom:16px;
  border-radius:50%;
  background:#fff8ed;
  font-size:22px;
}

.outlet-card h3{
  margin:0 0 12px;
  color:#7a1022;
  font-size:23px;
}

.outlet-card p{
  flex:1;
  margin:0 0 20px;
  color:#74656a;
  line-height:1.75;
}

.outlet-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.outlet-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:10px 15px;
  border-radius:9px;
  font-size:13px;
  font-weight:700;
}

.call-btn{
  background:#7a1022;
  color:#fff;
}

.call-btn:hover{
  background:#4d0713;
}

.map-btn{
  border:1px solid #eadedb;
  background:#fff8ed;
  color:#7a1022;
}

.map-btn:hover{
  background:#f7e8d8;
}

/* =========================
   GENERAL STATES
========================= */

.empty-state{
  padding:55px;
  border:1px dashed #eadedb;
  border-radius:16px;
  text-align:center;
}

.alert{
  margin:15px 0;
  padding:13px 16px;
  border-radius:9px;
  transition:.4s;
}

.alert.success,
.alert-success{
  background:#e9f7ed;
  color:#256536;
}

.alert.error,
.alert-danger{
  background:#fdebed;
  color:#8f1e2d;
}

.alert.fade{
  opacity:.35;
}

.flash-wrap{
  position:relative;
}

/* =========================
   FOOTER
========================= */

.footer{
  padding:60px 0 20px;
  background:#211619;
  color:#e8dfe1;
}

.footer-grid{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1.2fr;
  gap:30px;
}

.footer h4{
  color:#fff;
}

.footer a,
.footer p{
  display:block;
  margin:10px 0;
  color:#bdaeb2;
}

.footer-brand strong{
  color:#fff;
}

.footer-bottom{
  margin-top:35px;
  padding-top:20px;
  border-top:1px solid #433338;
  color:#9e8f93;
  text-align:center;
}

/* =========================
   ADMIN
========================= */

.admin-body{
  background:#f6f2f2;
}

.admin-side{
  position:fixed;
  top:0;
  bottom:0;
  width:245px;
  padding:25px;
  background:#4d0713;
  color:#fff;
}

.admin-side .brand strong{
  color:#fff;
}

.admin-side nav{
  display:grid;
  gap:8px;
  margin-top:35px;
}

.admin-side nav a{
  padding:12px;
  border-radius:8px;
  color:#eadde0;
}

.admin-side nav a:hover{
  background:rgba(255,255,255,.1);
}

.admin-main{
  margin-left:245px;
}

.admin-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:78px;
  padding:0 30px;
  border-bottom:1px solid #eadedb;
  background:#fff;
}

.admin-top h1{
  margin:0;
  font-size:27px;
}

.admin-content{
  padding:30px;
}

.admin-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  margin-bottom:25px;
}

.admin-stats > div{
  padding:22px;
  border:1px solid #eadedb;
  border-radius:14px;
  background:#fff;
}

.admin-stats span{
  display:block;
  color:#74656a;
}

.admin-stats strong{
  color:#7a1022;
  font-size:27px;
}

.data-table{
  overflow:auto;
}

.data-table table{
  width:100%;
  border-collapse:collapse;
}

.data-table th,
.data-table td{
  padding:13px;
  border-bottom:1px solid #eadedb;
  text-align:left;
  vertical-align:middle;
}

.thumb{
  width:55px;
  height:55px;
  border-radius:8px;
  object-fit:cover;
}

.danger-link{
  color:#a22;
}

.inline-form{
  display:flex;
  gap:6px;
}

.inline-form select,
.inline-form button{
  padding:8px;
  border:1px solid #eadedb;
  border-radius:7px;
}

.narrow{
  max-width:850px;
}

/* =========================
   RESPONSIVE - TABLET
========================= */

@media(max-width:1000px){

  .product-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

}

/* =========================
   RESPONSIVE - MOBILE/TABLET
========================= */
@media(max-width:900px){

  .hero-grid,
  .product-detail,
  .story-grid,
  .contact-grid,
  .celebration-inner,
  .cart-layout,
  .checkout-grid{
    grid-template-columns:1fr;
  }

  .hero h1{
    font-size:46px;
  }

  .category-grid,
  .product-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .shop-layout{
    grid-template-columns:1fr;
  }

  .filters{
    position:static;
  }

  .outlet-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

}
/* =========================
   RESPONSIVE - PHONE
========================= */

@media(max-width:560px){

  .hero{
    padding:45px 0;
  }

  .hero h1,
  .page-banner h1,
  .detail-copy h1{
    font-size:37px;
  }

  .hero-stats{
    flex-wrap:wrap;
    gap:14px;
  }

  .category-grid,
  .product-grid,
  .promise-grid,
  .order-card,
  .admin-stats,
  .two-col,
  .outlet-grid{
    grid-template-columns:1fr;
  }

  .section{
    padding:58px 0;
  }

  .section-head{
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }

  .product-image{
    height:280px;
  }

  .product-content h3{
    min-height:auto;
  }

  .outlet-card{
    padding:20px;
  }

  .outlet-actions{
    flex-direction:column;
  }

  .outlet-btn{
    width:100%;
  }

  .footer-grid{
    grid-template-columns:1fr;
  }

  .admin-side nav{
    grid-template-columns:1fr 1fr;
  }

  .admin-content{
    padding:15px;
  }

}