/* =====================  REVITIX shop / auth / cart styles  ===================== */
.nav-right{display:flex;align-items:center;gap:14px}
.cart-link{position:relative;font-size:20px;line-height:1;padding:6px}
.cart-badge{position:absolute;top:-4px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:20px;background:var(--gold);color:var(--navy);font-size:11px;font-weight:800;display:grid;place-items:center}
.cart-badge[hidden]{display:none}
.cart-badge.pop{animation:badgePop .4s ease}
@keyframes badgePop{50%{transform:scale(1.5)}}
.nav-login{font-size:13px;font-weight:700;padding:10px 6px;opacity:.9}
.nav-login:hover{color:var(--gold-2)}
.nav-register{background:var(--gold);color:var(--navy);font-weight:800;font-size:13px;border-radius:30px;padding:11px 20px;transition:.3s}
.nav-register:hover{background:var(--gold-2);transform:translateY(-2px)}

.user-menu{position:relative}
.user-btn{background:#ffffff14;border:1px solid #ffffff26;color:#fff;border-radius:30px;padding:9px 16px;font-size:13px;font-weight:700}
.user-btn:hover{background:#ffffff22}
.user-drop{display:none;position:absolute;right:0;top:calc(100% + 12px);width:250px;background:#fff;color:var(--navy);border-radius:16px;box-shadow:0 25px 60px rgba(0,0,0,.3);overflow:hidden;z-index:200}
.user-drop.show{display:block}
.ud-head{padding:16px 18px;background:var(--cream-2);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px}
.ud-head small{color:var(--muted);word-break:break-all}
.user-drop a,.user-drop form button{display:block;width:100%;text-align:left;padding:12px 18px;font-size:14px;font-weight:600;border:0;background:#fff;color:var(--navy)}
.user-drop a:hover,.user-drop form button:hover{background:var(--cream)}
.role-pill{align-self:flex-start;margin-top:6px;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:4px 10px;border-radius:20px;background:var(--navy);color:var(--gold-2)}
.role-pill.role-wholesale{background:#2f6b3f;color:#fff}
.role-pill.ws-pending{background:#c98a10;color:#fff}
.role-pill.ws-rejected{background:#a33;color:#fff}
.mobile-menu form{margin:0}
.mm-logout{width:100%;text-align:left;background:none;border:0;color:#e6edf0;font-weight:600;font-size:15px;padding:14px 0}
.ws-banner{background:#fff4d6;color:#6b4a00;text-align:center;font-size:13px;padding:10px 16px;border-bottom:1px solid #f0dca0}
.ws-banner a{text-decoration:underline;font-weight:700}

.flash-wrap{padding-top:18px}
.flash{padding:13px 18px;border-radius:12px;font-size:14px;font-weight:600;margin-bottom:10px;border:1px solid}
.flash-ok{background:#e8f5ea;color:#1f5a2c;border-color:#bfe0c5}
.flash-err{background:#fdeaea;color:#8e2323;border-color:#f0c2c2}
.flash-info{background:#eaf2fb;color:#1d4a78;border-color:#c3d8ef}

.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,30px);background:var(--navy);color:#fff;padding:14px 22px;border-radius:30px;font-size:14px;font-weight:600;box-shadow:0 18px 40px rgba(0,0,0,.3);opacity:0;pointer-events:none;transition:.35s;z-index:999;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.ok{border-left:5px solid #4ccf72}.toast.err{border-left:5px solid #ff6b6b}.toast.info{border-left:5px solid var(--gold)}

/* ---------- auth pages ---------- */
.auth{background:var(--cream-2);padding:60px 0 90px;min-height:70vh}
.auth-box{max-width:520px;margin:auto;background:#fff;border:1px solid var(--line);border-radius:26px;padding:38px;box-shadow:var(--shadow)}
.auth-box.wide{max-width:680px}
.auth-box h1{font-size:34px;margin:0 0 6px;color:var(--navy)}
.auth-box .sub{color:var(--muted);font-size:14px;margin:0 0 24px;line-height:1.6}
.auth-box .form-field{margin-bottom:16px}
.auth-box .buy{width:100%;padding:15px;border-radius:14px;font-size:15px}
.auth-alt{text-align:center;margin-top:20px;font-size:14px;color:var(--muted)}
.auth-alt a{color:var(--navy);font-weight:800;text-decoration:underline;text-decoration-color:var(--gold)}
.form-field select{border:1px solid var(--line);border-radius:12px;padding:13px 14px;font:inherit;background:#fff}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.form-field .hint{font-size:11.5px;color:var(--muted)}
.form-errors{background:#fdeaea;border:1px solid #f0c2c2;color:#8e2323;border-radius:12px;padding:12px 18px;font-size:13.5px;margin-bottom:18px}
.form-errors ul{margin:0;padding-left:18px}
.type-pick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px}
.type-pick input{position:absolute;opacity:0;pointer-events:none}
.type-pick label{border:2px solid var(--line);border-radius:16px;padding:16px;cursor:pointer;display:block;transition:.25s}
.type-pick label b{display:block;font-size:15px;color:var(--navy)}
.type-pick label span{font-size:12px;color:var(--muted);line-height:1.5;display:block;margin-top:4px}
.type-pick input:checked+label{border-color:var(--gold);background:#fff8e6;box-shadow:0 8px 22px #dba53c2b}
.ws-fields{display:none;border-top:1px dashed var(--line);margin-top:6px;padding-top:18px}
.ws-fields.show{display:block}

/* ---------- shop ---------- */
.shop{background:#fff;padding:50px 0 90px}
.shop-bar{display:flex;gap:14px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:22px}
.shop-search{display:flex;gap:8px;flex:1;min-width:240px;max-width:420px}
.shop-search input,.shop-sort{border:1px solid var(--line);border-radius:30px;padding:12px 18px;font:inherit;background:#fff}
.shop-search input{flex:1}
.shop-search button{border:0;background:var(--navy);color:#fff;border-radius:30px;padding:0 20px;font-weight:700}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.chips.sub{margin-bottom:26px;padding-left:2px}
.chip{border:1px solid var(--line);background:#fff;padding:10px 20px;border-radius:30px;font-weight:700;font-size:13.5px;transition:.2s}
.chip:hover{border-color:var(--navy)}
.chip.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.chips.sub .chip{padding:7px 15px;font-size:12.5px}
.chips.sub .chip.on{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.shop-count{font-size:13px;color:var(--muted);margin-bottom:18px}
.empty{text-align:center;padding:60px 20px;color:var(--muted);background:var(--cream-2);border-radius:20px}
.shop .product-grid .product-card{display:flex;flex-direction:column}
.shop .product-info{display:flex;flex-direction:column;flex:1}
.shop .product-bottom{margin-top:auto}
.product-card .product-image{position:relative;display:block}
.product-cat{font-size:11px;color:var(--muted);font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-left:8px}
.product-info h3 a:hover{color:var(--leaf-2)}
.price-stack{display:flex;flex-direction:column;line-height:1.2}
.price-stack .mrp{font-size:12.5px;color:#8a949b;text-decoration:line-through;font-weight:500}
.price-stack .ws-label{font-size:10px;font-weight:800;letter-spacing:.06em;color:#2f6b3f;text-transform:uppercase}
.off{position:absolute;top:14px;right:14px;background:#d9534f;color:#fff;font-size:11px;font-weight:800;padding:5px 10px;border-radius:20px}
.stock-out{position:absolute;inset:0;background:rgba(255,255,255,.65);display:grid;place-items:center;font-weight:800;color:var(--navy);letter-spacing:.1em}
.btn-row{display:flex;gap:8px}
.small-buy.alt{background:#fff;color:var(--navy);border:1px solid var(--navy)}
.small-buy:disabled{opacity:.5;cursor:not-allowed}
.pager{display:flex;justify-content:center;gap:8px;margin-top:36px;flex-wrap:wrap}
.pager a{min-width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;font-weight:700}
.pager a.on{background:var(--navy);color:#fff;border-color:var(--navy)}

/* ---------- product detail ---------- */
.pd{background:#fff;padding:40px 0 80px}
.pd .crumb{color:var(--muted);margin-bottom:24px}
.pd .crumb a{color:var(--navy);font-weight:700}
.pd-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.pd-img{border-radius:28px;overflow:hidden;background:var(--navy);box-shadow:var(--shadow);position:sticky;top:100px;aspect-ratio:1/1}
.pd-img img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
.pd-info h1{font-size:clamp(34px,4vw,48px);margin:12px 0 6px;color:var(--navy)}
.pd-meta{font-size:13px;color:var(--muted);font-weight:600;margin-bottom:16px}
.pd-price{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:18px 0 6px}
.pd-price .now{font-size:38px;font-weight:800;color:var(--navy)}
.pd-price .mrp{font-size:18px;color:#8a949b;text-decoration:line-through}
.pd-price .save{background:#e8f5ea;color:#1f5a2c;font-size:12px;font-weight:800;padding:5px 11px;border-radius:20px}
.ws-note{background:#eef7f0;border:1px solid #c5e1cb;color:#1f5a2c;border-radius:14px;padding:12px 16px;font-size:13px;line-height:1.6;margin:10px 0}
.ws-note.promo{background:#fff8e6;border-color:#f0dca0;color:#6b4a00}
.ws-note a{font-weight:800;text-decoration:underline}
.pd-short{color:var(--muted);line-height:1.8;margin:16px 0}
.pd-buy{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:22px 0}
.qty-box{display:flex;align-items:center;border:1px solid var(--line);border-radius:30px;overflow:hidden}
.qty-box button{width:44px;height:48px;border:0;background:var(--cream-2);font-size:20px;font-weight:700}
.qty-box input{width:58px;text-align:center;border:0;font:inherit;font-weight:700;height:48px;-moz-appearance:textfield}
.qty-box input::-webkit-outer-spin-button,.qty-box input::-webkit-inner-spin-button{-webkit-appearance:none}
.pd-buy .buy{padding:14px 34px}
.stock-line{font-size:13px;font-weight:700}
.stock-line.in{color:#2f6b3f}.stock-line.low{color:#c98a10}.stock-line.out{color:#b33}
.pd-sections{margin-top:30px;border-top:1px solid var(--line)}
.pd-sec{padding:20px 0;border-bottom:1px solid var(--line)}
.pd-sec h3{font-family:"Playfair Display",serif;font-size:21px;margin:0 0 8px}
.pd-sec p{color:var(--muted);line-height:1.8;margin:0;font-size:14.5px;white-space:pre-line}
.related{background:var(--cream-2);padding:70px 0}

/* ---------- cart ---------- */
.cart-page{background:var(--cream-2);padding:50px 0 90px;min-height:60vh}
.cart-page h1{font-size:40px;margin:0 0 26px;color:var(--navy)}
.cart-grid{display:grid;grid-template-columns:1fr 340px;gap:26px;align-items:start}
.cart-list{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden}
.cart-row{display:grid;grid-template-columns:90px 1fr auto;gap:18px;padding:20px;border-bottom:1px solid var(--line);align-items:center}
.cart-row:last-child{border-bottom:0}
.cart-row img{width:90px;height:90px;border-radius:14px;object-fit:cover;object-position:var(--pos,50% 50%);background:var(--navy)}
.cart-row h3{margin:0 0 4px;font-size:17px}
.cart-row .meta{font-size:12.5px;color:var(--muted)}
.cart-row .meta .ws{color:#2f6b3f;font-weight:800}
.cart-row .warn{font-size:12px;color:#b33;font-weight:700;margin-top:4px}
.cart-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.cart-actions .line{font-weight:800;font-size:18px;color:var(--navy)}
.cart-actions form{display:flex;gap:8px;align-items:center}
.cart-actions input[type=number]{width:70px;border:1px solid var(--line);border-radius:10px;padding:8px;font:inherit;text-align:center}
.link-btn{background:none;border:0;color:#b33;font-weight:700;font-size:12.5px;text-decoration:underline;padding:0}
.btn-sm{border:0;background:var(--navy);color:#fff;border-radius:20px;padding:8px 14px;font-size:12.5px;font-weight:700}
.cart-summary{background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px;position:sticky;top:100px}
.cart-summary h3{margin:0 0 16px;font-family:"Playfair Display",serif;font-size:24px}
.sum-row{display:flex;justify-content:space-between;padding:9px 0;font-size:14px;color:var(--muted)}
.sum-row.total{border-top:1px solid var(--line);margin-top:8px;padding-top:16px;font-size:20px;font-weight:800;color:var(--navy)}
.cart-summary .note{font-size:12.5px;line-height:1.6;background:#fff8e6;border-radius:12px;padding:12px 14px;color:#6b4a00;margin:16px 0}
.cart-summary .buy{width:100%;text-align:center;display:block;padding:14px}

@media(max-width:900px){
  .nav-right .nav-login{display:none}
  .pd-grid,.cart-grid{grid-template-columns:1fr}
  .pd-img{position:static}
  .cart-summary{position:static}
  .nav-inner{gap:12px}
}
@media(max-width:600px){
  .nav-register{padding:9px 14px;font-size:12px}
  .user-btn span{display:none}
  .type-pick{grid-template-columns:1fr}
  .auth-box{padding:26px 20px}
  .cart-row{grid-template-columns:70px 1fr}
  .cart-row img{width:70px;height:70px}
  .cart-actions{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}
  .shop .product-grid{display:grid;grid-template-columns:1fr;margin:0;padding:0;overflow:visible}
  .shop .product-card{flex:auto}
}

/* ---------- home page product carousel (3 per row, scroll sideways) ---------- */
.carousel{position:relative}
.products .product-grid{display:flex;grid-template-columns:none;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:14px 4px 30px;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
.products .product-grid::-webkit-scrollbar{display:none}
.products .product-card{flex:0 0 calc((100% - 44px) / 3);scroll-snap-align:start;min-width:0}
.car-btn{position:absolute;top:42%;z-index:5;width:46px;height:46px;border-radius:50%;border:0;background:var(--navy);color:var(--gold-2);font-size:28px;line-height:1;box-shadow:0 10px 24px rgba(0,0,0,.25);transition:.25s;display:grid;place-items:center;padding:0 0 3px}
.car-btn:hover{background:var(--gold);color:var(--navy)}
.car-btn.prev{left:-22px}.car-btn.next{right:-22px}
.car-btn[hidden]{display:none}
@media(max-width:1280px){.car-btn.prev{left:-8px}.car-btn.next{right:-8px}}
@media(max-width:900px){.products .product-card{flex:0 0 calc((100% - 22px) / 2)}}
@media(max-width:600px){
  .products .product-grid{margin:0 -6%;padding:14px 6% 20px;gap:16px}
  .products .product-card{flex:0 0 86%;scroll-snap-align:center}
  .car-btn{display:none}
}

/* ---------- password show/hide toggle ---------- */
.pw-wrap{position:relative;display:block}
.pw-wrap input{width:100%;padding-right:46px !important;box-sizing:border-box}
.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:8px;padding:0}
.pw-toggle:hover{color:var(--navy)}

/* ---- checkout / payment result ---- */
.co-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px}
.co-card h3{margin:0 0 18px;font-family:"Playfair Display",serif;font-size:24px}
.co-item{display:flex;justify-content:space-between;gap:12px;padding:9px 0;font-size:13.5px;border-bottom:1px solid var(--line)}
.co-item.total{font-size:16px;border-bottom:0;color:var(--navy)}
.pay-result{max-width:560px;margin:30px auto;text-align:center;background:#fff;border:1px solid var(--line);border-radius:26px;padding:40px 28px;box-shadow:var(--shadow)}
.pay-result .ic{font-size:54px;line-height:1}
.pay-result h1{font-size:30px;margin:14px 0 10px;color:var(--navy)}
.pay-result p{color:var(--muted);line-height:1.7;font-size:14.5px}
.pay-result .small{font-size:12.5px}
.pay-result .co-list{text-align:left;margin:18px 0}
.pay-result .buy{display:inline-block;margin-top:10px;padding:13px 28px}
.ord-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.ord-head small,.ord-addr{color:var(--muted);font-size:12.5px;line-height:1.6}
.ord-addr{display:block;margin-top:8px}
.ord-badge{font-size:12px;font-weight:800;padding:6px 12px;border-radius:20px;white-space:nowrap}
.ord-ok{background:#e3f4e7;color:#1f5a2c}.ord-wait{background:#fff1cf;color:#8a5d00}.ord-bad{background:#fbe3e3;color:#8e2323}

/* My Orders: product thumbnail + link */
.ord-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.ord-prod{display:flex;align-items:center;gap:14px;min-width:0;color:inherit;text-decoration:none}
.ord-prod img{width:64px;height:64px;flex:0 0 64px;border-radius:12px;object-fit:cover;object-position:var(--pos,50% 50%);background:var(--navy)}
.ord-name{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:14px}
.ord-name small{color:var(--muted);font-size:12.5px}
a.ord-prod:hover .ord-name b{text-decoration:underline}
a.ord-prod:hover img{opacity:.9}
@media(max-width:560px){.ord-prod img{width:54px;height:54px;flex-basis:54px}}
