/*
Theme Name: FreshBite (Hello Elementor Child)
Template: hello-elementor
Description: Multi-restaurant food delivery theme. Elementor + WooCommerce + Dokan.
Version: 1.0.0
Text Domain: freshbite
*/
:root{
  --v-primary:#2E7D32; --v-deep:#1B5E20; --v-lime:#A7D957; --v-mango:#2E7D32;
  --v-cream:#F7FFF3; --v-mint:#E8F8E8; --v-text:#1d2b20; --v-muted:#6b7f70;
  --v-radius:12px; --v-radius-lg:16px;
  --v-shadow:0 6px 20px rgba(27,94,32,.09); --v-shadow-hover:0 14px 30px rgba(27,94,32,.18);
}
body{background:var(--v-cream);color:var(--v-text);font-family:'Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6,.elementor-heading-title{font-family:'Poppins',sans-serif;color:var(--v-deep);letter-spacing:-.01em}
a{color:var(--v-primary);transition:color .2s}a:hover{color:var(--v-deep)}

/* Buttons */
.elementor-button,.button,button.single_add_to_cart_button,.wc-block-components-button{
  background:var(--v-primary)!important;color:#fff!important;border-radius:99px!important;
  font-weight:600;padding:12px 24px;border:0;transition:transform .15s,background .2s,color .2s}
.elementor-button:hover,.button:hover,button.single_add_to_cart_button:hover{
  background:var(--v-lime)!important;color:var(--v-deep)!important;transform:translateY(-2px)}

/* Sticky header (add class v-header to header section) */
.v-header{position:sticky;top:0;z-index:99;background:rgba(247,245,236,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--v-mint)}
.v-location-pill{display:inline-flex;gap:8px;align-items:center;background:var(--v-mint);color:var(--v-deep);padding:8px 16px;border-radius:999px;font-weight:600;font-size:14px}

/* Hero (class v-hero on section) */
.v-hero{background:linear-gradient(120deg,var(--v-mint),var(--v-cream));border-radius:0 0 var(--v-radius-lg) var(--v-radius-lg)}
.v-hero h1,.v-hero .elementor-heading-title{color:var(--v-deep)}
.v-hero em{font-style:normal;color:var(--v-primary)}
.v-hero-search{background:#fff;border-radius:999px;padding:6px 6px 6px 22px;box-shadow:var(--v-shadow-hover);display:flex;gap:8px}
.v-hero-search input{border:0!important;outline:0;flex:1;font-size:16px;background:transparent}
.v-hero-search button{border-radius:999px!important}

/* Category / filter chips */
.v-chips{display:flex;gap:10px;overflow-x:auto;padding:8px 4px;scrollbar-width:none}
.v-chips::-webkit-scrollbar{display:none}
.v-chip{flex:0 0 auto;padding:10px 18px;border-radius:999px;background:#fff;color:var(--v-deep)!important;font-weight:600;font-size:14px;border:1.5px solid var(--v-mint);transition:.2s}
.v-chip:hover,.v-chip.active{background:var(--v-primary);color:#fff!important;border-color:var(--v-primary)}

/* Product cards */
ul.products li.product{background:#fff;border-radius:var(--v-radius-lg);padding:0 0 16px;box-shadow:var(--v-shadow);overflow:hidden;transition:.25s;position:relative}
ul.products li.product:hover{transform:translateY(-4px);box-shadow:var(--v-shadow-hover)}
ul.products li.product img{aspect-ratio:4/3;object-fit:cover;width:100%;margin:0 0 12px;border-radius:0}
ul.products li.product .woocommerce-loop-product__title{font-family:'Poppins',sans-serif;font-size:18px;padding:0 16px;color:var(--v-deep)}
ul.products li.product .price{padding:0 16px;color:var(--v-primary);font-weight:700;font-size:17px}
ul.products li.product .button{margin:10px 16px 0;width:calc(100% - 32px);text-align:center}
.star-rating span::before{color:var(--v-mango)}
.v-badge,.onsale{background:var(--v-mango)!important;color:var(--v-deep)!important;border-radius:999px!important;font-weight:700;min-height:auto;line-height:1;padding:7px 12px;top:12px!important;left:12px!important}
.v-veg::before{content:"";display:inline-block;width:12px;height:12px;border:2px solid var(--v-primary);border-radius:3px;background:radial-gradient(circle,var(--v-primary) 40%,transparent 45%);margin-right:6px;vertical-align:middle}

/* Offers strip (class v-offers) */
.v-offers{background:var(--v-mango);color:var(--v-deep);font-weight:700;text-align:center;padding:12px}

/* Cart: upfront transparent breakdown, no hidden charges */
.cart_totals,.woocommerce-checkout-review-order{background:#fff;border-radius:var(--v-radius-lg);padding:24px;box-shadow:var(--v-shadow)}
.cart_totals th,.cart_totals td{border:0;padding:10px 0}
.cart_totals .order-total td,.cart_totals .order-total th{border-top:2px dashed var(--v-mint);font-size:20px;color:var(--v-deep)}

/* Mobile sticky cart bar */
.v-cartbar{display:none}
@media(max-width:767px){
  .v-cartbar{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:999;background:var(--v-primary);color:#fff;border-radius:var(--v-radius);padding:14px 18px;justify-content:space-between;align-items:center;box-shadow:var(--v-shadow-hover);font-weight:600}
  .v-cartbar a{color:var(--v-deep);background:var(--v-lime);padding:8px 16px;border-radius:10px}
  body{padding-bottom:80px}
}
img{height:auto;max-width:100%}

/* ===== FreshBite additions ===== */
.fb-cat{background:#fff;border:1px solid var(--v-mint);border-radius:14px;padding:14px 6px;text-align:center;font-size:12px;font-weight:500;transition:.2s;cursor:pointer}
.fb-cat:hover,.fb-cat.active{background:var(--v-primary);color:#fff;border-color:var(--v-primary);transform:translateY(-2px)}
.fb-cat:hover *,.fb-cat.active *{color:#fff!important}
.fb-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--v-shadow);transition:.25s;position:relative}
.fb-card:hover{transform:translateY(-4px);box-shadow:var(--v-shadow-hover)}
.fb-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.fb-off{position:absolute;top:10px;left:10px;background:var(--v-primary);color:#fff;font:600 10px Inter,sans-serif;padding:4px 9px;border-radius:99px;z-index:2}
.fb-fav{position:absolute;top:8px;right:8px;background:#fff;border-radius:50%;width:28px;height:28px;display:grid;place-items:center;z-index:2}
.fb-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--v-muted)}
.fb-promo{background:linear-gradient(110deg,var(--v-primary),#5aa84f);color:#fff;border-radius:20px}
.fb-promo h2,.fb-promo .elementor-heading-title{color:#fff}
.fb-promo .elementor-button{background:var(--v-lime)!important;color:var(--v-deep)!important}
.fb-why{background:#fff;border:1px solid var(--v-mint);border-radius:20px}
.fb-footer{background:var(--v-deep);color:#cfe8cf}
/* Dokan store cards */
.dokan-seller-wrap li.dokan-single-seller{background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--v-shadow);transition:.25s}
.dokan-seller-wrap li.dokan-single-seller:hover{transform:translateY(-4px);box-shadow:var(--v-shadow-hover)}
.dokan-seller-wrap .store-banner img{aspect-ratio:16/10;object-fit:cover;width:100%}

/* ===== FreshBite responsive theme layout ===== */
*,*::before,*::after{box-sizing:border-box}
img{max-width:100%;height:auto}
.fb-wrap{max-width:1140px;margin:0 auto;padding:0 20px}
.fb-btn{display:inline-block;background:var(--v-primary);color:#fff!important;border-radius:99px;padding:10px 20px;font-weight:600;font-size:14px;border:0;cursor:pointer;text-decoration:none;transition:.2s}
.fb-btn:hover{background:var(--v-deep)}
.fb-btn-lime{background:var(--v-lime);color:var(--v-deep)!important}
/* header */
.fb-header{position:sticky;top:0;z-index:99;background:#fff;border-bottom:1px solid var(--v-mint)}
.admin-bar .fb-header{top:32px}
.fb-nav{display:flex;align-items:center;gap:24px;min-height:68px}
.fb-logo{font:700 22px Poppins,sans-serif;color:var(--v-deep)!important;text-decoration:none}
.fb-menu{flex:1}
.fb-menu ul{display:flex;gap:24px;justify-content:center;list-style:none;margin:0;padding:0}
.fb-menu a{color:var(--v-text);font-size:14px;font-weight:500;text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.fb-menu a:hover,.fb-menu .current-menu-item a{color:var(--v-primary);border-color:var(--v-primary)}
.fb-actions{display:flex;align-items:center;gap:14px}
.fb-cart{position:relative;font-size:20px;text-decoration:none}
.fb-count{position:absolute;top:-8px;right:-10px;background:var(--v-primary);color:#fff;font-size:10px;border-radius:99px;min-width:17px;height:17px;display:grid;place-items:center;padding:0 4px}
.fb-burger{display:none;background:none;border:0;font-size:24px;cursor:pointer;color:var(--v-deep)}
/* hero */
.fb-hero{padding:0}
.fb-hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:24px;align-items:center;padding-top:48px;padding-bottom:44px}
.fb-tag{color:var(--v-primary);font-size:14px;font-weight:500;margin:0}
.fb-hero h1{font-size:clamp(34px,5.4vw,58px);line-height:1.08;margin:10px 0 14px}
.fb-sub{color:var(--v-muted);max-width:430px}
.fb-search{display:flex;align-items:center;gap:8px;background:#fff;border-radius:99px;padding:6px 6px 6px 18px;max-width:500px;margin:22px 0;box-shadow:var(--v-shadow-hover)}
.fb-search input{flex:1;min-width:0;border:0!important;outline:0;background:transparent;font-size:14px;box-shadow:none!important}
.fb-trust{display:flex;gap:20px;flex-wrap:wrap;list-style:none;padding:0;margin:0;font-size:12px;color:var(--v-muted)}
.fb-trust b{display:block;color:var(--v-text)}
.fb-plate{max-width:460px;margin:auto;width:100%}
.fb-plate img{border-radius:50%;box-shadow:0 24px 50px rgba(27,94,32,.25);aspect-ratio:1;object-fit:cover;width:100%}
.fb-plate-emoji{aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#dfe9d6);display:grid;place-items:center;font-size:clamp(90px,16vw,170px);box-shadow:0 24px 50px rgba(27,94,32,.25)}
/* cats */
.fb-cats{display:grid;grid-template-columns:repeat(9,1fr);gap:12px;padding:26px 0}
.fb-cat{background:#fff;border:1px solid var(--v-mint);border-radius:14px;padding:12px 4px;text-align:center;font-size:12px;font-weight:500;color:var(--v-text)!important;text-decoration:none;transition:.2s}
.fb-cat i,.fb-cat img{display:block;margin:0 auto 4px;font-style:normal;font-size:26px;width:40px;height:40px;object-fit:contain}
.fb-cat:hover,.fb-cat.active{background:var(--v-primary);color:#fff!important;border-color:var(--v-primary)}
/* sections */
.fb-sec{padding:8px 20px 8px}
.fb-sh{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:16px}
.fb-sh h2{font-size:22px;margin:0}.fb-sh p{margin:0;color:var(--v-muted);font-size:14px}
.fb-sh a{color:var(--v-primary);font-weight:600;font-size:13px;text-decoration:none;white-space:nowrap}
.fb-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
a.fb-card{display:block;color:inherit;text-decoration:none}
.fb-img{aspect-ratio:16/10;background:var(--v-mint);overflow:hidden}
.fb-img img{width:100%;height:100%;object-fit:cover}
.fb-ph{height:100%;display:grid;place-items:center;font-size:52px}
.fb-body{padding:12px 14px 14px}
.fb-body h3{font-size:15px;margin:0 0 2px;color:var(--v-text)}
.fb-body small{color:var(--v-muted);font-size:12px;display:block;min-height:18px}
.fb-meta{margin-top:8px}
.fb-fav.on{color:#e53935}
.fb-two{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;padding-top:28px;padding-bottom:34px}
.fb-promo{background:linear-gradient(110deg,var(--v-primary),#5aa84f);color:#fff;border-radius:20px;padding:30px;display:flex;justify-content:space-between;align-items:center;gap:12px;overflow:hidden}
.fb-promo h2{color:#fff;font-size:26px;line-height:1.2;margin:0 0 8px}.fb-promo p{font-size:13px;opacity:.9;margin:0 0 16px}
.fb-promo-e{font-size:88px}
.fb-why{background:#fff;border:1px solid var(--v-mint);border-radius:20px;padding:22px}
.fb-why h3{margin:0 0 12px}
.fb-why-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fb-why-grid div{background:var(--v-cream);border-radius:12px;padding:12px;font-size:12px}
.fb-why-grid i{font-style:normal;font-size:22px;display:block}
.fb-footer{background:var(--v-deep);color:#cfe8cf;padding:28px 0;font-size:13px}
.fb-foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:20px}
.fb-foot a{display:block;color:#cfe8cf;text-decoration:none;margin-bottom:6px}
.fb-foot p{margin:4px 0 0}
/* tablet */
@media(max-width:1024px){.fb-grid{grid-template-columns:repeat(3,1fr)}.fb-cats{grid-template-columns:repeat(5,1fr)}}
/* mobile nav + layout */
@media(max-width:900px){
  .fb-burger{display:block}
  .fb-logo{flex:1}
  .fb-nav{gap:12px}
  .fb-menu{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--v-mint);box-shadow:var(--v-shadow)}
  .fb-menu.open{display:block}
  .fb-menu ul{flex-direction:column;gap:0;padding:8px 20px 14px}
  .fb-menu li a{display:block;padding:12px 0;border-bottom:1px solid var(--v-mint)}
  .fb-actions .fb-btn{display:none}
  .fb-hero-grid{grid-template-columns:1fr;padding-top:28px;padding-bottom:30px}
  .fb-plate{max-width:280px;order:-1}
  .fb-two{grid-template-columns:1fr}
  .fb-foot{grid-template-columns:1fr}
}
@media(max-width:782px){.admin-bar .fb-header{top:46px}}
@media(max-width:640px){
  .fb-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .fb-cats{display:flex;overflow-x:auto;gap:10px;scrollbar-width:none}
  .fb-cats::-webkit-scrollbar{display:none}
  .fb-cat{flex:0 0 84px}
  .fb-search{padding-left:14px}.fb-search .fb-btn{padding:10px 14px}
  .fb-promo{padding:22px}.fb-promo h2{font-size:21px}.fb-promo-e{font-size:56px}
  .fb-body h3{font-size:14px}
}
@media(max-width:380px){.fb-grid{grid-template-columns:1fr}}
/* Woo/Dokan grids */
@media(max-width:768px){ul.products.columns-3,ul.products.columns-4{display:grid!important;grid-template-columns:repeat(2,1fr);gap:12px}ul.products li.product{width:auto!important;margin:0!important;float:none!important}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
