/* ==========================================================
   Bathenjan — Mobile app layer
   Tab bar, bottom sheets, sticky action bars, native-feel touch
   ========================================================== */
:root{
  --tabbar-h:64px;
  --actionbar-h:74px;
  --safe-b:env(safe-area-inset-bottom,0px);
  --safe-t:env(safe-area-inset-top,0px);
  --ease-out:cubic-bezier(.2,.8,.2,1);
}

/* ---------- Native touch feel (all sizes) ---------- */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation}
body{-webkit-tap-highlight-color:transparent;overscroll-behavior-x:none}
a,button,.btn,label,summary{touch-action:manipulation}
.btn,.tab,.icon-btn,.sheet-link,.sheet-pill,.pc-link,.cat-tabs a,.zone-chip,.size-opt span,.check-pill span,.qty-btn{-webkit-user-select:none;user-select:none}

/* Cross-page transitions (Chrome/Edge/Safari 18+) */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .18s var(--ease-out) both}
::view-transition-new(root){animation:vt-in .26s var(--ease-out) both}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translateY(8px)}}
.site-header{view-transition-name:appbar}
.tabbar{view-transition-name:tabbar}
.m-actionbar{view-transition-name:actionbar}
@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}

/* Navigation progress bar */
.nav-progress{position:absolute;inset-inline:0;bottom:-1px;height:3px;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .2s}
.nav-progress::before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:40%;background:linear-gradient(90deg,var(--olive),var(--pepper));border-radius:3px;animation:np 1s ease-in-out infinite}
.is-navigating .nav-progress{opacity:1}
@keyframes np{0%{transform:translateX(-110%)}100%{transform:translateX(260%)}}
[dir=rtl] .nav-progress::before{animation-name:np-rtl}
@keyframes np-rtl{0%{transform:translateX(110%)}100%{transform:translateX(-260%)}}

.site-header.scrolled{box-shadow:0 6px 18px -12px rgba(36,19,31,.35)}
.icon-btn{width:40px;height:40px;border-radius:50%;border:0;background:var(--cream);color:var(--dark);display:inline-grid;place-items:center;font-size:1.1rem}
.app-back{width:38px;height:38px;border-radius:50%;border:0;background:transparent;color:var(--dark);font-size:1.35rem;display:inline-grid;place-items:center;margin-inline-end:.1rem}

.btn-cart.d-lg-inline-flex{align-items:center;justify-content:center}

/* ---------- Tab bar ---------- */
.tabbar{position:fixed;inset-inline:0;bottom:0;z-index:1045;height:calc(var(--tabbar-h) + var(--safe-b));padding-bottom:var(--safe-b);
  display:flex;background:rgba(255,249,240,.92);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);
  border-top:1px solid var(--line);box-shadow:0 -8px 24px -18px rgba(36,19,31,.35)}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#8a7f79;text-decoration:none;border:0;background:none;font-size:.7rem;font-weight:600;padding:0;position:relative}
.tab-ico{position:relative;font-size:1.35rem;line-height:1;display:grid;place-items:center;width:52px;height:30px;border-radius:999px;transition:background .2s var(--ease-out),transform .15s}
.tab.active{color:var(--purple)}
.tab.active .tab-ico{background:rgba(74,33,65,.1)}
.tab:active .tab-ico{transform:scale(.88)}
.tab-badge{position:absolute;top:-3px;inset-inline-end:6px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--pepper);color:#fff;font-size:.65rem;font-weight:700;display:none;place-items:center;border:2px solid var(--bg);font-style:normal}
.tab-badge.show{display:grid}
.tab-badge.bump{animation:bump .45s ease}

/* ---------- Bottom sheet ---------- */
.sheet.offcanvas-bottom{height:auto;max-height:86vh;border-radius:26px 26px 0 0;border:0;background:var(--bg);padding-bottom:var(--safe-b);box-shadow:0 -20px 50px -20px rgba(0,0,0,.4)}
.sheet .offcanvas-header{padding:.4rem 1.25rem .2rem}
.sheet-handle{width:42px;height:5px;border-radius:5px;background:#d9ccba;margin:.6rem auto .2rem}
.sheet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.sheet-link{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.9rem .3rem;border-radius:18px;background:#fff;border:1px solid var(--line);color:var(--dark);text-decoration:none;font-size:.82rem;font-weight:600;text-align:center;line-height:1.3}
.sheet-link i{font-size:1.4rem;color:var(--purple)}
.sheet-link.active{border-color:var(--purple);background:var(--cream)}
.sheet-link:active{transform:scale(.96)}
.sheet-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}
.sheet-pill{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.65rem 1rem;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--dark);text-decoration:none;font-weight:600;font-size:.88rem}
.sheet-pill.wa{background:#25D366;border-color:#25D366;color:#fff}
.sheet .socials a{background:var(--cream);color:var(--purple)}
.offcanvas-backdrop.show{opacity:.4}

.sheet-search.offcanvas-top{height:auto;border:0;border-radius:0 0 22px 22px;background:var(--bg);padding-top:var(--safe-t)}
.search-sheet-form{display:flex;align-items:center;gap:.4rem;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:.2rem .3rem .2rem .9rem}
[dir=rtl] .search-sheet-form{padding:.2rem .9rem .2rem .3rem}
.search-sheet-form .bi{color:var(--muted)}
.search-sheet-form .form-control{border:0;box-shadow:none;background:transparent;padding:.55rem .2rem}
.search-sheet-form .btn-link{text-decoration:none;color:var(--purple);font-weight:600;padding:.4rem .6rem}
.search-suggest{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.8rem}
.search-suggest a{background:var(--cream);color:var(--dark);border-radius:999px;padding:.35rem .85rem;font-size:.85rem;text-decoration:none}

/* ---------- Sticky action bar ---------- */
.m-actionbar{position:fixed;inset-inline:0;bottom:calc(var(--tabbar-h) + var(--safe-b));z-index:1044;display:flex;align-items:center;gap:.8rem;
  padding:.65rem 1rem;background:#fff;border-top:1px solid var(--line);box-shadow:0 -10px 24px -16px rgba(36,19,31,.3)}
.mab-info{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.mab-info small{color:var(--muted);font-size:.72rem}
.mab-info b{font-family:var(--font-display);color:var(--purple);font-size:1.25rem;white-space:nowrap}
.mab-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.8rem 1rem!important;font-size:1rem!important}
.no-tabbar .m-actionbar{bottom:0;padding-bottom:calc(.65rem + var(--safe-b))}

/* ==========================================================
   Phone & small tablet
   ========================================================== */
@media (max-width:991.98px){
  body{padding-bottom:calc(var(--tabbar-h) + var(--safe-b));font-size:.98rem}
  body.has-actionbar{padding-bottom:calc(var(--tabbar-h) + var(--actionbar-h) + var(--safe-b))}
  body.no-tabbar{padding-bottom:calc(var(--actionbar-h) + var(--safe-b))}
  .no-tabbar .tabbar{display:none}

  /* iOS: 16px inputs prevent auto-zoom on focus */
  input,select,textarea,.form-control,.form-select{font-size:16px!important}

  /* App bar */
  .announce{font-size:.78rem;padding:.3rem .8rem}
  .site-header{padding-top:var(--safe-t);background:rgba(255,249,240,.9);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px)}
  .navbar{padding:.4rem 0;min-height:56px}
  .navbar>.container{flex-wrap:nowrap}
  .navbar-collapse{display:none!important}
  .navbar-brand{gap:.45rem;margin-inline-end:auto}
  .navbar-brand img{width:36px;height:36px}
  .brand-ar{font-size:1.2rem}
  .brand-en{font-size:.62rem}
  .btn-lang{padding:.3rem .65rem;font-size:.78rem}
  .skip-link{display:none}

  /* Layout rhythm — gutters must not exceed container padding (no sideways scroll) */
  html,body{overflow-x:clip}
  .row.g-5,.row.gx-5,.row.g-4,.row.gx-4{--bs-gutter-x:1.5rem}
  .row.g-5,.row.gy-5{--bs-gutter-y:1.5rem}
  .page-pad{padding-top:.9rem;padding-bottom:1.5rem}
  .section{padding:2rem 0}
  .page-head{margin:.4rem 0 1.2rem}
  .page-head h1,.page-title{font-size:1.55rem}
  h2{font-size:1.3rem}
  .crumbs{display:none}
  .lead{font-size:1rem}

  /* Hero */
  .hero{padding:1.2rem 0 1.8rem}
  .hero .row{--bs-gutter-y:1.2rem}
  .hero-carousel{max-width:250px;margin:0 auto;border-radius:48% 48% 22px 22px/40% 40% 22px 22px}
  .hero-title{font-size:1.7rem;text-align:center}
  .hero-kicker{display:flex;width:max-content;margin:0 auto .8rem;font-size:.82rem}
  .hero-sub{font-size:.98rem;text-align:center;margin-inline:auto}
  .hero-cta{margin:1.2rem 0;flex-direction:column}
  .hero-cta .btn{width:100%}
  .hero-facts{justify-content:center;gap:.5rem}
  .hero-facts li{background:rgba(247,240,227,.1);border-radius:999px;padding:.25rem .7rem;font-size:.8rem}
  .answer-block{margin-top:1.5rem;padding:1.1rem 1.2rem}
  .answer-block h2{font-size:1.1rem}

  /* Horizontal rails */
  .rail-m,.cat-tabs,.zone-chips,.p-thumbs{display:flex!important;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain}
  .rail-m::-webkit-scrollbar,.cat-tabs::-webkit-scrollbar,.zone-chips::-webkit-scrollbar,.p-thumbs::-webkit-scrollbar{display:none}
  .rail-m{gap:.8rem;margin-inline:calc(var(--bs-gutter-x)*-.5);padding-inline:calc(var(--bs-gutter-x)*.5);padding-bottom:.3rem;scroll-padding-inline:calc(var(--bs-gutter-x)*.5)}
  .rail-m>.product-card{flex:0 0 62%;scroll-snap-align:start}
  .cat-tabs{gap:.4rem;margin-inline:calc(var(--bs-gutter-x)*-.5);padding-inline:calc(var(--bs-gutter-x)*.5)}
  .cat-tabs a{flex:0 0 auto;scroll-snap-align:start;white-space:nowrap}
  .zone-chips{justify-content:flex-start;margin-inline:calc(var(--bs-gutter-x)*-.5);padding-inline:calc(var(--bs-gutter-x)*.5)}
  .zone-chip{flex:0 0 auto;scroll-snap-align:start;white-space:nowrap}
  .zones-strip{text-align:start}

  /* Product grid: 2 columns like a shopping app */
  .product-grid:not(.rail-m){grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
  .product-card{border-radius:18px}
  .product-card:hover{transform:none;box-shadow:none}
  .product-card:active{transform:scale(.97)}
  .pc-body{padding:.65rem .75rem .8rem;gap:.15rem}
  .pc-title{font-size:.98rem;line-height:1.35}
  .pc-desc{display:none}
  .pc-cat{font-size:.72rem}
  .pc-price{font-size:.95rem}
  .pc-go{width:32px;height:32px;font-size:.95rem;background:var(--purple);color:#fff}
  .pc-flag{top:8px;inset-inline-start:8px;font-size:.7rem}

  .filter-bar{flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:.7rem}
  .cat-tabs{min-width:0;max-width:none}
  .search-form{min-width:0;width:100%}

  /* Product page */
  .page-product .page-pad{padding-top:0}
  .product-carousel{margin-inline:calc(var(--bs-gutter-x)*-.5);border-radius:0 0 28px 28px}
  .product-carousel .carousel-control-prev,.product-carousel .carousel-control-next{display:none}
  .p-thumbs{gap:.4rem;padding:0 .1rem}
  .p-thumbs img{width:58px;height:58px}
  .page-product .row{--bs-gutter-y:1rem}
  .p-title{font-size:1.5rem}
  .p-price{font-size:1.5rem;margin-bottom:1rem}
  .size-options{display:grid;grid-template-columns:repeat(2,1fr)}
  .size-opt span{min-width:0}
  .buy-row #addToCart{display:none}
  .buy-row{justify-content:flex-start}
  .qty{height:46px}
  .p-details .nav-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .p-details .nav-link{white-space:nowrap}

  /* How / order steps */
  .order-steps{gap:.6rem}
  .order-steps li{display:grid;grid-template-columns:48px 1fr;column-gap:.9rem;text-align:start;background:#fff;border:1px solid var(--line);border-radius:18px;padding:.9rem 1rem}
  .order-steps .os-n{grid-row:span 2;width:44px;height:44px;font-size:1.2rem;margin:0}
  .order-steps h3{font-size:1rem;margin:0}
  .order-steps p{font-size:.88rem}
  .how-steps::before{inset-inline-start:21px}
  .how-step{gap:.8rem}
  .hs-num{flex-basis:45px;height:45px;font-size:1.2rem}
  .hs-body{padding:1rem}
  .hs-body h2{font-size:1.08rem}
  .why-list>div{padding:.9rem 1rem}
  .story-img{aspect-ratio:16/10}

  /* Forms & cards */
  .bj-form{padding:1.1rem;border-radius:20px}
  .summary-card{border-radius:20px;padding:1.1rem;position:static!important}
  .cart-item{border-radius:18px;padding:.8rem;gap:.8rem}
  .flow-steps{font-size:.78rem;gap:.35rem;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .flow-steps li{white-space:nowrap}
  .page-cart .summary-card .btn-bj,.page-cart .summary-card .btn-link{display:none}
  .contact-card{border-radius:18px}
  .bj-accordion .accordion-button{padding:.9rem 1rem;font-size:.96rem}
  .article-card{border-radius:18px}
  .zone-facts{grid-template-columns:repeat(3,1fr);gap:.5rem}
  .zone-facts>div{padding:.8rem .4rem}
  .zone-facts b{font-size:.85rem}
  .confirm-actions .btn{flex:1 1 100%}
  .order-box{padding:1rem;border-radius:18px}
  .timeline li{font-size:.68rem}
  .timeline .dot{width:26px;height:26px}
  .timeline::before{top:12px}

  /* Footer: compact, sits above the tab bar */
  .site-footer{padding:2rem 0 1rem;font-size:.88rem}
  .site-footer .row>.col-6{display:none}
  .footer-bottom{margin-top:1.2rem;flex-direction:column;text-align:center}

  /* Floating WhatsApp above tab bar */
  .wa-float{width:50px;height:50px;font-size:1.5rem;bottom:calc(var(--tabbar-h) + var(--safe-b) + 14px);inset-inline-start:14px}
  .has-actionbar .wa-float{display:none}

  /* Press feedback instead of hover */
  .btn:active{transform:scale(.97)}
  .cat-tabs a:active,.zone-chip:active{transform:scale(.95)}

  /* SweetAlert on phones */
  .swal2-popup:not(.swal2-toast){width:calc(100% - 2rem)!important;border-radius:24px!important}
  .swal2-actions{width:100%;flex-wrap:nowrap}
  .swal2-actions .swal2-styled{flex:1;border-radius:999px!important}
  .swal2-container.swal2-top{padding-top:calc(var(--safe-t) + .6rem)!important}
}

@media (max-width:374px){
  .rail-m>.product-card{flex-basis:74%}
  .sheet-grid{grid-template-columns:repeat(2,1fr)}
  .brand-en{display:none}
}

/* Installed app (PWA standalone) */
@media (display-mode:standalone){
  .announce{display:none}
  body{-webkit-user-select:none;user-select:none}
  input,textarea,.rich,.order-box,p{-webkit-user-select:text;user-select:text}
}

@media print{.tabbar,.m-actionbar,.sheet,.sheet-search,.nav-progress{display:none!important}body{padding:0!important}}
