/* ============================================================
   Eco Connex — SHARED HEADER STYLESHEET
   One single header design used by every page (Homepage,
   Products, Product Details, and all future pages).
   Edit this file once — every page updates automatically.
   ============================================================ */

/* ── GLOBAL ACCESSIBILITY: keyboard focus indicator ──
   Site-wide, one rule (this file is linked on every page).
   Only shows for keyboard navigation, never on mouse click,
   so it doesn't change the visual design for mouse users. */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--orange,#f97316);outline-offset:2px;border-radius:4px;}
button:disabled,button[disabled]{opacity:0.5;cursor:not-allowed;}

/* ── NAV ── */
:root{--header-h:70px;}
/* Global mobile-safe top spacing: the ONE place every page compensates for
   the fixed header. shared-layout.js measures the header's real rendered
   height (which already includes the safe-area padding below) and updates
   --header-h precisely; this fallback just avoids a flash before that runs. */
body{padding-top:var(--header-h);}
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(10,10,10,0.96);backdrop-filter:blur(16px);border-bottom:1px solid rgba(249,115,22,0.15);transition:padding 0.3s ease;padding:calc(11px + env(safe-area-inset-top)) 0 11px;}
.nav.scrolled{box-shadow:0 4px 24px rgba(0,0,0,0.4);}
.nav .container{max-width:1600px;margin:0 auto;padding:0 40px;}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap;}
.nav-logo{display:flex;align-items:center;gap:10px;}
.nav-logo img{height:58px;width:auto;object-fit:contain;}
.nav-brand{color:#fff;}
.nav-brand-name{font-size:17px;font-weight:700;line-height:1;color:#fff;}
.nav-brand-sub{font-size:10px;color:#f97316;font-weight:400;margin-top:2px;}
.nav-links{display:flex;align-items:center;gap:8px;}
.nav-links a{color:#ccc;font-size:13px;font-weight:500;padding:6px 12px;border-radius:8px;transition:color 0.2s,background 0.2s;}
.nav-links a:hover{color:#fff;background:rgba(255,255,255,0.08);}
.nav-actions{display:flex;align-items:center;gap:14px;}

/* SEARCH BAR (works identically on every page) */
.nav-search{position:relative;flex:0 0 400px;width:400px;}
.search-box{position:relative;display:flex;align-items:center;background:rgba(255,255,255,0.06);border:1.5px solid rgba(255,255,255,0.12);border-radius:10px;transition:border-color 0.2s ease,box-shadow 0.2s ease,background 0.2s ease;}
.search-box:focus-within{border-color:#22c55e;background:rgba(255,255,255,0.09);box-shadow:0 0 0 3px rgba(34,197,94,0.15);}
.search-box-icon{position:absolute;left:13px;font-size:16px;color:rgba(255,255,255,0.45);pointer-events:none;}
.search-box-input{width:100%;background:transparent;border:none;outline:none;color:#fff;font-family:'Inter',sans-serif;font-size:13px;padding:10px 34px 10px 36px;}
.search-box-input::placeholder{color:rgba(255,255,255,0.4);}
.search-box-clear{position:absolute;right:12px;font-size:14px;color:rgba(255,255,255,0.45);cursor:pointer;padding:4px;}
.search-box-clear:hover{color:#fff;}
.search-dropdown{position:absolute;top:calc(100% + 10px);left:0;width:100%;min-width:400px;max-height:440px;overflow-y:auto;background:rgba(17,20,24,0.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,0.12);border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,0.5);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity 0.18s ease,transform 0.18s ease,visibility 0.18s;z-index:200;}
.search-dropdown.open{opacity:1;visibility:visible;transform:translateY(0);}
.search-dropdown::-webkit-scrollbar{width:6px;}
.search-dropdown::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:6px;}
.sd-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;color:rgba(255,255,255,0.4);padding:14px 16px 8px;}
.sd-tags{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 14px;}
.sd-tag{background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.1);color:rgba(255,255,255,0.75);font-size:12px;font-weight:500;padding:7px 13px;border-radius:20px;cursor:pointer;transition:all 0.15s ease;}
.sd-tag:hover{background:rgba(34,197,94,0.15);border-color:rgba(34,197,94,0.4);color:#fff;}
.sd-cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:0 16px 16px;}
.sd-cat-chip{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08);color:rgba(255,255,255,0.8);font-size:12.5px;font-weight:500;padding:9px 12px;border-radius:10px;transition:all 0.15s ease;}
.sd-cat-chip:hover{background:rgba(249,115,22,0.15);border-color:rgba(249,115,22,0.4);color:#fff;}
.sd-cat-chip i{font-size:16px;color:var(--orange,#f97316);flex:0 0 auto;}
.sd-cat-chip span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sd-recent-item{display:flex;align-items:center;gap:10px;padding:9px 16px;cursor:pointer;color:rgba(255,255,255,0.7);font-size:13px;transition:background 0.15s ease;}
.sd-recent-item:hover,.sd-recent-item.active{background:rgba(255,255,255,0.06);}
.sd-recent-item i{font-size:15px;color:rgba(255,255,255,0.35);flex-shrink:0;}
.sd-divider{height:1px;background:rgba(255,255,255,0.08);margin:4px 0;}
.sd-result{display:flex;align-items:center;gap:12px;padding:10px 16px;cursor:pointer;transition:background 0.15s ease;border-radius:10px;margin:2px 8px;}
.sd-result:hover,.sd-result.active{background:rgba(255,255,255,0.08);}
.sd-result-img{width:44px;height:44px;flex-shrink:0;background:linear-gradient(135deg,rgba(249,115,22,0.18),rgba(249,115,22,0.06));border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;overflow:hidden;}
.sd-result-img .product-photo{width:100%;height:100%;object-fit:contain;padding:4px;}
.sd-result-info{flex:1;min-width:0;}
.sd-result-name{font-size:13px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sd-result-name mark{background:rgba(34,197,94,0.35);color:#fff;border-radius:3px;padding:0 1px;}
.sd-result-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:rgba(255,255,255,0.45);margin-top:2px;}
.sd-result-meta .dot{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,0.3);}
.sd-result-right{text-align:right;flex-shrink:0;}
.sd-result-price{font-size:13px;font-weight:700;color:#fed7aa;}
.sd-result-stock{font-size:10px;font-weight:600;margin-top:3px;padding:2px 7px;border-radius:5px;display:inline-block;}
.sd-result-stock.in-stock{background:rgba(34,197,94,0.15);color:#4ade80;}
.sd-result-stock.low{background:rgba(234,179,8,0.15);color:#facc15;}
.sd-result-stock.enquire{background:rgba(59,130,246,0.15);color:#60a5fa;}
.sd-result-stock.out-of-stock{background:rgba(156,163,175,0.15);color:#9ca3af;}
.sd-empty{text-align:center;padding:36px 20px;color:rgba(255,255,255,0.4);}
.sd-empty i{font-size:34px;display:block;margin-bottom:10px;color:rgba(255,255,255,0.25);}
.sd-empty p{font-size:14px;font-weight:600;color:rgba(255,255,255,0.6);}
.sd-empty small{font-size:12px;display:block;margin-top:4px;}

/* CART BUTTON + BADGE */
.btn-cart-nav{position:relative;display:flex;align-items:center;gap:6px;background:rgba(255,255,255,0.08);color:#fff;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;border:none;cursor:pointer;transition:background 0.2s;}
.btn-cart-nav:hover{background:rgba(255,255,255,0.15);}
.cart-badge{position:absolute;top:-6px;right:-6px;background:#f97316;color:#fff;font-size:10px;font-weight:700;width:18px;height:18px;border-radius:50%;display:none;align-items:center;justify-content:center;}
.btn-wishlist-nav{position:relative;display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:rgba(255,255,255,0.08);color:#fff;border-radius:8px;font-size:17px;transition:background 0.2s;}
.btn-wishlist-nav:hover{background:rgba(255,255,255,0.15);}
.wishlist-badge{position:absolute;top:-6px;right:-6px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;width:18px;height:18px;border-radius:50%;display:none;align-items:center;justify-content:center;}

.btn-quote-nav{display:flex;align-items:center;gap:6px;background:#f97316;color:#fff;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;border:none;cursor:pointer;transition:background 0.2s;}
.btn-quote-nav:hover{background:#ea580c;}

/* HAMBURGER + MOBILE MENU (identical full-screen overlay on every page) */
.hamburger{display:none;background:none;border:none;color:#fff;font-size:24px;cursor:pointer;padding:4px;}
.mobile-menu{display:none;position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100vh;height:100dvh;background:#0a0a0a;z-index:999;padding:80px 24px 40px;flex-direction:column;gap:12px;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.mobile-menu.open{display:flex;}
.mobile-menu a{color:#fff;font-size:18px;font-weight:500;padding:14px 0;border-bottom:1px solid rgba(255,255,255,0.08);}
body.menu-open{overflow:hidden;position:fixed;width:100%;}

/* ── RESPONSIVE ── */
@media(min-width:901px) and (max-width:1440px){
  .nav-search{flex:0 0 300px;width:300px;}
  .search-dropdown{min-width:300px;}
}
@media(max-width:900px){
  .nav .container{padding:0 20px;}
  .nav-links{display:none;}
  .hamburger{display:block;}
  .btn-quote-nav{display:none;}
  .nav-search{flex:0 0 250px;width:250px;}
  .search-dropdown{min-width:250px;}
}
@media(max-width:600px){
  :root{--header-h:56px;}
  .nav{padding:calc(8px + env(safe-area-inset-top)) 0 8px;}
  .nav .container{padding:0 16px;}
  .nav-inner{flex-wrap:wrap;}
  .nav-logo img{height:42px;}
  .nav-brand-name{font-size:14px;}
  .nav-brand-sub{font-size:9px;}
  .btn-cart-nav{padding:7px 10px;font-size:12px;}
  .btn-quote-nav{display:none;}
  .nav-search{order:5;flex-basis:100%;width:100%;margin-top:10px;}
  .search-dropdown{min-width:100%;}
}

/* ── SHARED CHECKOUT MODAL (used on every page with a cart) ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:1200;opacity:0;pointer-events:none;transition:opacity 0.3s;display:flex;align-items:center;justify-content:center;padding:20px;}
.modal-overlay.open{opacity:1;pointer-events:all;}
.modal{background:#fff;border-radius:14px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,0.3);}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e5e7eb;background:#0a0a0a;}
.modal-header h3{font-size:18px;font-weight:700;color:#fff;display:flex;align-items:center;gap:8px;}
.modal-close{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;line-height:1;}
.modal-body{padding:24px;}
.modal-order-summary{background:#f9fafb;border-radius:14px;padding:16px;margin-bottom:20px;}
.modal-order-summary h4{font-size:13px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:12px;}
.modal-item{display:flex;justify-content:space-between;font-size:14px;padding:4px 0;gap:12px;}
.modal-item span{color:#374151;}
.modal-item strong{font-weight:600;white-space:nowrap;}
.modal-total{display:flex;justify-content:space-between;padding-top:12px;border-top:1px solid #e5e7eb;margin-top:8px;}
.modal-gst-note{font-size:11px;color:#9ca3af;margin-top:6px;line-height:1.5;}
.modal-total span{font-size:15px;font-weight:700;}
.modal-total strong{font-size:18px;font-weight:800;color:#ea580c;}
.form-group{margin-bottom:16px;}
.form-group label{display:block;font-size:12px;font-weight:600;color:#374151;margin-bottom:6px;text-transform:uppercase;letter-spacing:0.5px;}
.form-group input,.form-group textarea{width:100%;padding:12px 14px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:14px;font-family:'Inter',sans-serif;background:#f9fafb;color:#111827;outline:none;transition:border-color 0.2s;}
.form-group input:focus,.form-group textarea:focus{border-color:#f97316;background:#fff;}
.form-group textarea{height:80px;resize:vertical;}
.form-hint{font-size:11px;color:#6b7280;margin-top:5px;line-height:1.4;}
.form-group input.field-error,.form-group textarea.field-error{border-color:#dc2626;background:#fef2f2;}
.form-error-msg{font-size:11.5px;color:#dc2626;margin-top:5px;display:none;font-weight:500;}
.form-error-msg.show{display:block;}
.ec-modal-error{font-size:12.5px;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;margin-bottom:14px;}
.ec-returning-badge{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:#16a34a;background:#dcfce7;border-radius:8px;padding:10px 12px;margin-bottom:16px;}
.btn-wa-order{width:100%;background:#25D366;color:#fff;border:none;padding:14px;border-radius:14px;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;font-family:'Inter',sans-serif;transition:background 0.2s;margin-top:4px;}
.btn-wa-order:hover{background:#1da851;}
.btn-wa-order:disabled{opacity:0.7;cursor:not-allowed;}
.btn-wa-order.ec-loading i{animation:ecSpin 0.8s linear infinite;}
@keyframes ecSpin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
.ec-clear-saved-link{display:block;width:100%;background:none;border:none;text-align:center;font-size:12.5px;color:#9ca3af;font-weight:600;cursor:pointer;margin-top:14px;padding:6px;text-decoration:underline;}
.ec-clear-saved-link:hover{color:#dc2626;}
@media(max-width:600px){
  .modal-overlay{padding:0;align-items:flex-end;}
  .modal{max-width:100%;max-height:92vh;border-radius:16px 16px 0 0;}
  .modal-body{padding-bottom:calc(20px + env(safe-area-inset-bottom));}
  .btn-wa-order{position:sticky;bottom:0;}
}

/* ── PREMIUM TOAST NOTIFICATIONS (global) ── */
.ec-toast-stack{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column-reverse;gap:8px;align-items:center;pointer-events:none;}
.ec-toast{display:flex;align-items:center;gap:8px;background:#111827;color:#fff;padding:11px 20px;border-radius:30px;font-size:13px;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,0.3);white-space:nowrap;opacity:0;transform:translateY(16px) scale(0.95);transition:opacity 0.25s ease,transform 0.25s ease;}
.ec-toast.show{opacity:1;transform:translateY(0) scale(1);}
.ec-toast.hide{opacity:0;transform:translateY(-8px) scale(0.97);}
.ec-toast i{font-size:17px;color:#4ade80;flex:0 0 auto;}

/* ── FLYING PRODUCT ANIMATION (global, targets .btn-cart-nav) ── */
.ec-flying-item{position:fixed;z-index:9998;border-radius:12px;overflow:hidden;pointer-events:none;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,0.25);transition:left 0.55s cubic-bezier(0.2,0.8,0.3,1),top 0.55s cubic-bezier(0.2,0.8,0.3,1),width 0.55s ease,height 0.55s ease,opacity 0.55s ease 0.15s;display:flex;align-items:center;justify-content:center;}
.ec-flying-item img{width:100%;height:100%;object-fit:contain;padding:4px;}
.ec-flying-item i{font-size:18px;color:var(--orange,#f97316);}

@keyframes ecCartBump{0%{transform:scale(1);}30%{transform:scale(1.28);}55%{transform:scale(0.94);}100%{transform:scale(1);}}
.ec-cart-bump{animation:ecCartBump 0.4s ease;}

/* ── BUTTON RIPPLE (global, delegated in cart.js) ── */
.ec-ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,0.55);transform:scale(0);animation:ecRippleAnim 0.6s ease-out;pointer-events:none;}
@keyframes ecRippleAnim{to{transform:scale(1);opacity:0;}}

/* ── ACCESSIBILITY: SKIP TO CONTENT LINK ── */
.ec-skip-link{position:absolute;top:-48px;left:8px;background:#111827;color:#fff;padding:10px 18px;border-radius:8px;font-size:13px;font-weight:700;z-index:10000;transition:top 0.2s ease;text-decoration:none;}
.ec-skip-link:focus{top:8px;}
