/* ============================================
   cart.css
   Extracted from cart.html
   Paste into Flatsome > Theme Options > Custom CSS
   (or into the per-page Custom CSS panel)
   ============================================ */

:root { --promo-h: 48px; }
  @media (max-width: 480px) { :root { --promo-h: 44px; } }
  /* Shared */
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
  body {
    font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
    background: #fcfaf4; color: #1a1a1a; line-height: 1.5;
  }
  a { color: inherit; text-decoration: none; }
  img { max-width: 100%; display: block; }
  button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }

  .promo-bar {
    background: #1a1a1a;
    color: #ff6b35;
    padding: 12px 0;
    font-size: 14px; font-weight: 600;
    overflow: hidden;
    position: sticky;
    top: 0;
    z-index: 9999;
  }
  .promo-track {
    display: flex; gap: 48px;
    animation: scroll 24s linear infinite;
    white-space: nowrap; width: max-content;
  }
  .promo-track span { display: inline-flex; align-items: center; gap: 12px; }
  /* Wholesale link inside the scrolling marquee — match span layout */
  .promo-track a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: inherit;
  }
  .promo-track a > .promo-highlight {
    display: inline-flex;
    align-items: center;
    gap: 12px;
  }
  /* Canonical wholesale link in promo bar — styled as orange pill */
  .promo-track .promo-wholesale {
    background: #ff6b35;
    color: #1a1a1a;
  }


  .promo-track .promo-highlight {
    background: #ff6b35; color: #1a1a1a;
    padding: 4px 14px; border-radius: 980px;
    font-weight: 800; letter-spacing: 0.02em;
  }
  .promo-track .promo-highlight iconify-icon { color: #1a1a1a; }
  .promo-track iconify-icon { color: #1f5d3f; }
  @keyframes scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }

  header {
    position: sticky;
    top: var(--promo-h, 48px);
    z-index: 9998;
    background: #fcfaf4;
    border-bottom: 3px solid #1a1a1a;
  }
  .nav-inner {
    max-width: 1400px; margin: 0 auto;
    padding: 16px 32px;
    display: flex; align-items: center; justify-content: space-between;
  }
  .logo {
    display: inline-flex; align-items: center;
    background: #1f5d3f; color: #fcfaf4;
    padding: 8px 22px;
    clip-path: polygon(8% 0, 92% 0, 100% 50%, 92% 100%, 8% 100%, 0 50%);
    line-height: 1; transition: background 0.2s;
  }
  .logo:hover { background: #ff6b35; }
  .logo-stack { display: flex; flex-direction: column; align-items: center; text-align: center; line-height: 1; }
  .logo-tag { font-size: 9px; font-weight: 700; letter-spacing: 0.18em; opacity: 0.85; margin: 1px 0; }
  .logo-name { font-size: 19px; font-weight: 900; font-style: italic; letter-spacing: -0.01em; margin: 1px 0; }
  .nav-links {
    display: flex; gap: 14px; list-style: none;
  }
  .nav-links a {
    font-size: 14px; font-weight: 700;
    color: #1a1a1a;
    padding: 6px 10px;
    border-radius: 980px;
    transition: background 0.2s;
    display: inline-flex; align-items: center; justify-content: center;
    gap: 4px;
    min-width: 100px;
    text-align: center;
    box-sizing: border-box;
  }
  /* Narrower laptops: drop min-width so 6 items fit comfortably with sidebar icons */
  @media (max-width: 1200px) {
    .nav-links { gap: 8px; }
    .nav-links a { min-width: 0; padding: 6px 10px; }
  }
  .nav-links a:hover { background: #ff6b35; }
  .nav-icons { display: flex; gap: 14px; align-items: center; }
  .nav-icons iconify-icon { font-size: 22px; color: #1a1a1a; cursor: pointer; }
  .cart-btn {
    position: relative;
    background: #1a1a1a; color: #fcfaf4;
    padding: 10px 16px; border-radius: 980px;
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 13px; font-weight: 600;
    transition: background 0.2s;
  }
  .cart-btn:hover { background: #ff6b35; }
  .cart-btn iconify-icon { color: #fcfaf4; font-size: 18px; }
  .cart-count {
    background: #ff6b35; color: #1a1a1a;
    font-size: 11px; font-weight: 700;
    min-width: 22px; height: 22px; border-radius: 11px; padding: 0 6px;
    display: inline-flex; align-items: center; justify-content: center;
  }

  /* ============================================
     CART PAGE
     ============================================ */
  .breadcrumb {
    max-width: 1200px; margin: 0 auto;
    padding: 10px 32px 0;
    display: flex; align-items: center; gap: 8px;
    font-size: 12px; font-weight: 600;
    color: #6b6b6b;
    text-transform: uppercase; letter-spacing: 0.05em;
  }
  .breadcrumb a:hover { color: #ff6b35; }

  /* Page header */
  .cart-header {
    max-width: 1400px; margin: 0 auto;
    padding: 28px 32px 0;
    display: flex; align-items: baseline; justify-content: space-between;
    flex-wrap: wrap; gap: 16px;
  }
  .cart-header h1 {
    font-size: clamp(40px, 7vw, 80px);
    font-weight: 900; letter-spacing: -0.04em;
    line-height: 1;
  }
  .cart-header h1 .accent {
    background: linear-gradient(135deg, #1f5d3f 0%, #ff6b35 100%);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  .cart-header .meta {
    font-size: 16px; font-weight: 600;
    color: #555;
  }

  /* Main layout */
  .cart-layout {
    max-width: 1400px; margin: 0 auto;
    padding: 32px 32px 80px;
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 40px;
    align-items: start;
  }

  /* ============== FREE SHIPPING TRACKER ============== */
  .ship-tracker {
    background: #1a1a1a;
    color: #fcfaf4;
    border-radius: 24px;
    padding: 24px 28px;
    margin-bottom: 14px;
    position: relative;
    overflow: hidden;
  }
  .ship-tracker.qualified {
    background: linear-gradient(135deg, #1f5d3f 0%, #2a7a52 100%);
  }
  .ship-tracker-head {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 14px;
  }
  .ship-tracker-icon {
    width: 44px; height: 44px;
    border-radius: 50%;
    background: #ff6b35;
    color: #1a1a1a;
    display: flex; align-items: center; justify-content: center;
    font-size: 22px;
    flex-shrink: 0;
  }
  .ship-tracker.qualified .ship-tracker-icon {
    background: #fcfaf4;
    color: #1f5d3f;
  }
  .ship-tracker-msg {
    display: flex;
    align-items: baseline;
    gap: 10px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    flex-wrap: wrap;
  }
  .ship-tracker-amount {
    font-size: 32px;
    font-weight: 900;
    font-style: italic;
    letter-spacing: -0.03em;
    color: #ff6b35;
    line-height: 1;
  }
  .ship-tracker-label { color: #fcfaf4; }
  .ship-tracker-msg strong {
    color: #ff6b35;
    font-weight: 900;
  }
  .ship-tracker.qualified .ship-tracker-amount { color: #fcfaf4; }
  .ship-tracker.qualified .ship-tracker-msg strong { color: #fcfaf4; }
  @media (max-width: 480px) {
    .ship-tracker-amount { font-size: 26px; }
    .ship-tracker-label { font-size: 13px; }
  }
  .ship-tracker-bar {
    height: 12px;
    background: rgba(255, 248, 240, 0.15);
    border-radius: 6px;
    overflow: hidden;
    position: relative;
  }
  .ship-tracker-fill {
    height: 100%;
    background: linear-gradient(90deg, #ff6b35 0%, #ffd56b 100%);
    border-radius: 6px;
    transition: width 0.4s ease;
    position: relative;
  }
  .ship-tracker.qualified .ship-tracker-fill {
    background: #fcfaf4;
    width: 100% !important;
  }
  .ship-tracker-amounts {
    display: flex; justify-content: space-between;
    margin-top: 8px;
    font-size: 12px;
    color: rgba(255, 248, 240, 0.7);
    font-weight: 600;
  }

  /* ============== LINE ITEMS ============== */
  .line-items {
    background: #fff;
    border: 3px solid #1a1a1a;
    border-radius: 24px;
    overflow: hidden;
  }
  .line-item {
    display: grid;
    grid-template-columns: 100px 1fr auto;
    gap: 20px;
    padding: 24px;
    border-bottom: 2px solid #f0e8d8;
    align-items: center;
  }
  .line-item:last-child { border-bottom: none; }
  .line-img {
    aspect-ratio: 1 / 1;
    border-radius: 16px;
    border: 2px solid #1a1a1a;
    background-size: cover; background-position: center;
  }
  .line-info { min-width: 0; }
  .line-category {
    font-size: 11px; font-weight: 800;
    color: #ff6b35;
    text-transform: uppercase; letter-spacing: 0.08em;
    margin-bottom: 4px;
  }
  .line-name {
    font-size: 18px; font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
    margin-bottom: 4px;
  }
  .line-name a:hover { color: #ff6b35; }
  .line-meta {
    font-size: 13px;
    color: #6b6b6b;
    margin-bottom: 10px;
  }
  .line-controls {
    display: flex; align-items: center; gap: 12px;
    flex-wrap: wrap;
  }
  .line-qty {
    display: inline-flex; align-items: center;
    border: 2px solid #1a1a1a;
    border-radius: 980px;
    background: #fff;
    overflow: hidden;
  }
  .line-qty button {
    width: 32px; height: 36px;
    font-size: 16px; font-weight: 700;
    transition: background 0.2s;
  }
  .line-qty button:hover { background: #ff6b35; }
  .line-qty input {
    width: 36px; height: 36px;
    text-align: center;
    background: transparent;
    border: none;
    font-size: 14px; font-weight: 800;
    color: #1a1a1a;
    font-family: inherit;
    outline: none;
  }
  .line-remove {
    font-size: 12px;
    color: #6b6b6b;
    font-weight: 600;
    text-decoration: underline;
  }
  .line-remove:hover { color: #ff6b35; }
  .line-price {
    text-align: right;
    align-self: start;
  }
  .line-price-current {
    font-size: 22px; font-weight: 900;
    letter-spacing: -0.02em;
    color: #1a1a1a;
  }
  .line-price-was {
    display: block;
    font-size: 13px;
    color: #b0b0b0;
    text-decoration: line-through;
    font-weight: 600;
    margin-top: 2px;
  }
  .line-price-unit {
    display: block;
    font-size: 11px;
    color: #6b6b6b;
    margin-top: 4px;
  }

  /* Empty state for cart */
  .empty-state {
    text-align: center;
    padding: 14px 32px;
    background: #fff;
    border: 3px solid #1a1a1a;
    border-radius: 24px;
  }
  .empty-state .icon {
    font-size: 80px;
    color: #d0c8b8;
    margin-bottom: 16px;
  }
  .empty-state h3 {
    font-size: 28px; font-weight: 900;
    letter-spacing: -0.02em;
    margin-bottom: 8px;
  }
  .empty-state p {
    color: #6b6b6b;
    margin-bottom: 14px;
  }

  /* Coupon section */
  .coupon-section {
    margin-top: 20px;
    padding: 20px 24px;
    background: rgba(255, 107, 53, 0.06);
    border: 2px dashed #ff6b35;
    border-radius: 18px;
  }
  .coupon-form {
    display: flex; gap: 10px;
    margin-top: 12px;
  }
  .coupon-form input {
    flex: 1;
    padding: 12px 18px;
    background: #fff;
    border: 2px solid #1a1a1a;
    border-radius: 12px;
    font-size: 14px;
    font-family: inherit;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
    color: #1a1a1a;
    outline: none;
  }
  .coupon-form input::placeholder { color: #999; letter-spacing: 0; text-transform: none; font-weight: 500; }
  .coupon-form input:focus { border-color: #ff6b35; }
  .coupon-form button {
    padding: 12px 22px;
    background: #1a1a1a; color: #ff6b35;
    border-radius: 12px;
    font-size: 13px; font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }
  .coupon-form button:hover { background: #ff6b35; color: #1a1a1a; }
  .coupon-label {
    font-size: 14px; font-weight: 800;
    color: #1a1a1a;
    display: flex; align-items: center; gap: 8px;
  }
  .coupon-label iconify-icon { color: #ff6b35; font-size: 18px; }
  .coupon-applied {
    display: none;
    margin-top: 10px;
    padding: 10px 14px;
    background: rgba(31, 93, 63, 0.1);
    color: #1f5d3f;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    align-items: center;
    gap: 8px;
  }
  .coupon-applied.shown { display: flex; }

  /* ============== ORDER SUMMARY (sidebar) ============== */
  .summary {
    position: sticky; top: 100px;
    background: #fff;
    border: 3px solid #1a1a1a;
    border-radius: 24px;
    padding: 28px;
  }
  .summary h2 {
    font-size: 22px; font-weight: 900;
    letter-spacing: -0.02em;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 2px dashed #e0d8c8;
  }
  .summary-row {
    display: flex; justify-content: space-between;
    padding: 8px 0;
    font-size: 15px;
  }
  .summary-row.discount { color: #1f5d3f; font-weight: 700; }
  .summary-row.shipping { font-weight: 700; }
  .summary-row.shipping.free { color: #1f5d3f; }
  .summary-divider {
    height: 2px;
    background: #1a1a1a;
    margin: 16px 0;
  }
  .summary-total {
    display: flex; justify-content: space-between;
    align-items: baseline;
    padding: 8px 0 20px;
  }
  .summary-total-label {
    font-size: 14px; font-weight: 800;
    text-transform: uppercase; letter-spacing: 0.05em;
  }
  .summary-total-value {
    font-size: 32px; font-weight: 900;
    letter-spacing: -0.03em;
    color: #1a1a1a;
  }
  .checkout-btn {
    width: 100%;
    padding: 18px;
    background: #1f5d3f;
    color: #fcfaf4;
    border-radius: 14px;
    font-size: 16px; font-weight: 800;
    letter-spacing: 0.02em;
    display: flex; align-items: center; justify-content: center; gap: 10px;
    box-shadow: 5px 5px 0 #1a1a1a;
    transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
    margin-bottom: 14px;
  }
  .checkout-btn:hover {
    background: #2a7a52;
    transform: translate(-2px, -2px);
    box-shadow: 7px 7px 0 #1a1a1a;
  }
  .continue-shopping {
    display: block;
    text-align: center;
    font-size: 13px; font-weight: 700;
    color: #6b6b6b;
    text-decoration: underline;
    margin-bottom: 20px;
  }
  .continue-shopping:hover { color: #1a1a1a; }
  /* Payment / trust icons */
  .summary-trust {
    padding-top: 20px;
    border-top: 2px dashed #e0d8c8;
    text-align: center;
  }
  .summary-trust-icons {
    display: flex; justify-content: center; gap: 8px;
    margin-bottom: 12px;
    flex-wrap: wrap;
  }
  .summary-trust-icon {
    padding: 6px 12px;
    background: #fcfaf4;
    border: 1.5px solid #e0d8c8;
    border-radius: 8px;
    font-size: 11px; font-weight: 800;
    letter-spacing: 0.04em;
    color: #555;
  }
  .summary-trust-msg {
    font-size: 12px;
    color: #6b6b6b;
    line-height: 1.5;
    display: flex; align-items: center; justify-content: center; gap: 6px;
  }
  .summary-trust-msg iconify-icon { color: #1f5d3f; font-size: 14px; }

  /* ============== RECOMMENDATIONS ============== */
  .recs-section {
    background: #ede4d3;
    padding: 12px 32px;
    border-top: 3px solid #1a1a1a;
  }
  .recs-inner { max-width: 1400px; margin: 0 auto; }
  .recs-header {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 28px;
    flex-wrap: wrap; gap: 12px;
  }
  .recs-header h2 {
    font-size: clamp(28px, 4vw, 40px);
    font-weight: 900; letter-spacing: -0.03em;
    line-height: 1;
  }
  .recs-header h2 .accent {
    background: linear-gradient(135deg, #1f5d3f 0%, #ff6b35 100%);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  .recs-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
  }
  .rec-card {
    background: #fff;
    border: 3px solid #1a1a1a;
    border-radius: 20px;
    overflow: hidden;
    transition: transform 0.2s, box-shadow 0.2s;
    display: block;
    cursor: pointer;
  }
  .rec-card:hover {
    transform: translate(-3px, -3px);
    box-shadow: 6px 6px 0 #1a1a1a;
  }
  .rec-img {
    height: 160px;
    border-bottom: 3px solid #1a1a1a;
    background-size: cover; background-position: center;
    position: relative;
  }
  .rec-tag {
    position: absolute; top: 10px; left: 10px;
    padding: 4px 10px;
    background: #ff6b35; color: #1a1a1a;
    border-radius: 980px;
    font-size: 10px; font-weight: 800;
    transform: rotate(-2deg);
  }
  .rec-body { padding: 16px; }
  .rec-name {
    font-size: 16px; font-weight: 800;
    letter-spacing: -0.01em;
    margin-bottom: 4px;
  }
  .rec-meta {
    font-size: 12px;
    color: #6b6b6b;
    margin-bottom: 10px;
  }
  .rec-footer {
    display: flex; align-items: center; justify-content: space-between;
  }
  .rec-price {
    font-size: 16px; font-weight: 900;
  }
  .rec-add {
    padding: 6px 14px;
    background: #1a1a1a; color: #ff6b35;
    border-radius: 980px;
    font-size: 11px; font-weight: 800;
    display: inline-flex; align-items: center; gap: 4px;
  }
  .rec-add:hover { background: #ff6b35; color: #fcfaf4; }

  /* Footer */
  footer {
    background: #1a1a1a;
    color: rgba(255, 248, 240, 0.7);
    padding: 14px 32px 8px;
    font-size: 14px;
  }
  .footer-grid {
    max-width: 1400px; margin: 0 auto;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
    gap: 64px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(255, 248, 240, 0.1);
  }
  .footer-brand .logo { margin-bottom: 20px; }
  .footer-brand p { margin: 20px 0 24px; line-height: 1.6; max-width: 320px; }
  .footer-socials { display: flex; gap: 10px; }
  .footer-socials a {
    width: 40px; height: 40px; border-radius: 50%;
    background: rgba(255, 248, 240, 0.1);
    display: flex; align-items: center; justify-content: center;
    color: #ff6b35; font-size: 18px;
  }
  .footer-socials a:hover { background: #ff6b35; color: #1a1a1a; }
  .footer-col h5 {
    font-size: 13px; font-weight: 800;
    color: #ff6b35; margin-bottom: 16px;
    text-transform: uppercase; letter-spacing: 0.08em;
  }
  .footer-col ul { list-style: none; }
  .footer-col li { margin-bottom: 10px; }
  .footer-col a:hover { color: #fcfaf4; }
  .footer-bottom {
    max-width: 1400px; margin: 18px auto 0;
    display: flex; justify-content: space-between;
    flex-wrap: wrap; gap: 16px;
    font-size: 13px;
  }
  .footer-bottom-links { display: flex; gap: 24px; }

  /* Responsive */
  
  @media (max-width: 820px) { .nav-links { display: none; } }
@media (max-width: 1024px) {
    
    .cart-layout { grid-template-columns: 1fr; gap: 24px; padding: 24px 22px 60px; }
    .summary { position: static; }
    .recs-grid { grid-template-columns: repeat(2, 1fr); }
    .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  }
  @media (max-width: 640px) {
    .nav-icons iconify-icon:not(.cart-btn iconify-icon) { display: none; }
    .line-item {
      grid-template-columns: 80px 1fr;
      gap: 14px;
      padding: 16px;
    }
    .line-price { grid-column: 1 / -1; text-align: left; padding-top: 8px; border-top: 1px dashed #e0d8c8; display: flex; justify-content: space-between; align-items: center; }

    /* Recommendations: horizontal scroll rail — customers swipe right for more */
    .recs-grid {
      display: flex;
      grid-template-columns: none;
      flex-wrap: nowrap;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: thin;
      scroll-snap-type: x mandatory;
      gap: 12px;
      padding-bottom: 8px;
    }
    .recs-grid::-webkit-scrollbar { height: 4px; }
    .recs-grid::-webkit-scrollbar-thumb { background: rgba(26,26,26,0.2); border-radius: 4px; }
    .rec-card {
      flex: 0 0 60%;
      scroll-snap-align: start;
    }
    .rec-img { height: 140px; }

    .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  }

  /* ============== UNIFIED DROPDOWN NAV ============== */
  .nav-item { position: relative; }
  .nav-trigger { display: inline-flex; align-items: center; gap: 4px; }
  .nav-trigger .nav-caret {
    font-size: 11px;
    transition: transform 0.2s;
  }
  .nav-item.has-dropdown:hover .nav-trigger .nav-caret { transform: rotate(180deg); }
  .nav-dropdown {
    position: absolute;
    top: calc(100% + 14px);
    left: 50%;
    transform: translateX(-50%) translateY(-10px);
    width: 320px;
    background: #fff;
    border: 3px solid #1a1a1a;
    border-radius: 20px;
    box-shadow: 6px 6px 0 #1a1a1a;
    padding: 12px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
    z-index: 9999;
  }
  .nav-dropdown::before {
    content: "";
    position: absolute;
    top: -17px; left: 0; right: 0;
    height: 17px;
  }
  .nav-dropdown::after {
    content: "";
    position: absolute;
    top: -10px;
    left: 50%; transform: translateX(-50%) rotate(45deg);
    width: 14px; height: 14px;
    background: #fff;
    border-top: 3px solid #1a1a1a;
    border-left: 3px solid #1a1a1a;
  }
  .nav-dropdown-narrow { width: 300px; }
  .nav-item.has-dropdown:hover .nav-dropdown,
  .nav-item.has-dropdown:focus-within .nav-dropdown {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
  }
  .dd-item {
    display: flex !important; align-items: center; gap: 12px;
    padding: 12px 14px !important;
    border-radius: 12px !important;
    transition: background 0.15s !important;
    text-decoration: none;
  }
  .dd-item:hover { background: rgba(255, 107, 53, 0.08) !important; }
  .dd-item > iconify-icon {
    font-size: 22px;
    color: #1a1a1a;
    flex-shrink: 0;
    width: 32px;
    text-align: center;
  }
  .dd-item.dd-item-all > iconify-icon,
  .dd-item.dd-item-highlight > iconify-icon { color: #ff6b35; }
  .dd-item > div { flex: 1; min-width: 0; }
  .dd-title {
    font-size: 14px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: #1a1a1a;
    line-height: 1.2;
    margin-bottom: 2px;
    display: flex; align-items: center; gap: 8px;
  }
  .dd-sub {
    font-size: 12px;
    font-weight: 500;
    color: #6b6b6b;
    line-height: 1.3;
  }
  /* Hide subtitles inside dropdown items (cleaner, title-only look) */
  .nav-dropdown .dd-sub { display: none; }
  .nav-dropdown .dd-title { margin-bottom: 0; }
  .dd-tag {
    display: inline-block;
    padding: 2px 8px;
    background: #ff6b35;
    color: #1a1a1a;
    border-radius: 980px;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.05em;
  }
  .dd-divider {
    height: 1px;
    background: #f0e8d8;
    margin: 6px 8px;
  }
  .dd-item-highlight { background: rgba(255, 107, 53, 0.06) !important; }
  .dd-item-highlight:hover { background: rgba(255, 107, 53, 0.12) !important; }

  /* =========== MOBILE HAMBURGER + DRAWER =========== */
  .mobile-nav-toggle {
    display: none;
    width: 44px; height: 44px;
    background: transparent;
    border: 2px solid #1a1a1a;
    border-radius: 12px;
    align-items: center; justify-content: center;
    cursor: pointer;
    transition: background 0.2s;
    flex-shrink: 0;
  }
  .mobile-nav-toggle:hover { background: #1a1a1a; }
  .mobile-nav-toggle:hover .hamburger-line { background: #fcfaf4; }
  .hamburger-lines {
    width: 20px; height: 14px;
    position: relative;
    display: flex; flex-direction: column; justify-content: space-between;
  }
  .hamburger-line {
    width: 100%; height: 2.5px;
    background: #1a1a1a;
    border-radius: 2px;
    transition: transform 0.25s, opacity 0.2s;
  }
  .mobile-nav-toggle.is-open .hamburger-line:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }
  .mobile-nav-toggle.is-open .hamburger-line:nth-child(2) {
    opacity: 0;
  }
  .mobile-nav-toggle.is-open .hamburger-line:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }
  .mobile-drawer-backdrop {
    display: none;
    position: fixed; inset: 0;
    background: rgba(26, 26, 26, 0.55);
    z-index: 9998;
    opacity: 0;
    transition: opacity 0.25s;
  }
  .mobile-drawer-backdrop.is-open {
    display: block;
    opacity: 1;
  }
  .mobile-drawer {
    position: fixed;
    top: 0; right: 0; bottom: 0;
    width: 88%; max-width: 380px;
    background: #fcfaf4;
    z-index: 9999;
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.32, 0.72, 0, 1);
    display: flex; flex-direction: column;
    overflow-y: auto;
    box-shadow: -8px 0 32px rgba(0,0,0,0.18);
  }
  .mobile-drawer.is-open { transform: translateX(0); }
  .mobile-drawer-head {
    padding: 18px 22px;
    display: flex; align-items: center; justify-content: space-between;
    border-bottom: 2px solid #1a1a1a;
    background: #1a1a1a; color: #fcfaf4;
  }
  .mobile-drawer-head .drawer-logo {
    display: inline-flex; align-items: center;
    background: #1f5d3f; color: #fcfaf4;
    padding: 6px 18px;
    clip-path: polygon(8% 0, 92% 0, 100% 50%, 92% 100%, 8% 100%, 0 50%);
    line-height: 1;
  }
  .mobile-drawer-head .drawer-logo-name {
    font-size: 16px; font-weight: 900; font-style: italic;
  }
  .mobile-drawer-close {
    width: 40px; height: 40px;
    background: transparent;
    border: 2px solid rgba(255, 248, 240, 0.4);
    border-radius: 10px;
    color: #fcfaf4;
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer;
  }
  .mobile-drawer-close iconify-icon { font-size: 18px; }
  .mobile-drawer-section {
    border-bottom: 1px solid rgba(26, 26, 26, 0.1);
    padding: 8px 0;
  }
  .md-section-label {
    padding: 14px 22px 6px;
    font-size: 11px; font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #6b6b6b;
  }
  .md-link {
    display: flex; align-items: center; gap: 12px;
    padding: 14px 22px;
    min-height: 48px;
    color: #1a1a1a;
    font-size: 16px; font-weight: 700;
    text-decoration: none;
    transition: background 0.15s;
  }
  .md-link:active, .md-link:hover { background: #ede4d3; }
  .md-link iconify-icon {
    font-size: 22px; color: #1f5d3f;
    flex-shrink: 0;
  }
  .md-link.featured {
    background: #1f5d3f; color: #fcfaf4;
    margin: 6px 14px;
    border-radius: 14px;
    min-height: 56px;
  }
  .md-link.featured iconify-icon { color: #ff6b35; }
  .md-link.tg {
    background: linear-gradient(135deg, #229ED9 0%, #1a1a1a 100%);
    color: #fcfaf4;
    margin: 6px 14px;
    border-radius: 14px;
    min-height: 56px;
  }
  .md-link.tg iconify-icon { color: #fcfaf4; }
  .md-sub { font-size: 12px; color: rgba(255, 248, 240, 0.7); font-weight: 500; margin-top: 2px; display: block; }
  .md-link .md-link-text { line-height: 1.2; }
  .md-link .md-link-text small { font-size: 11px; color: #6b6b6b; font-weight: 500; display: block; margin-top: 2px; }
  .md-link.featured .md-link-text small,
  .md-link.tg .md-link-text small { color: rgba(255, 248, 240, 0.75); }
  .mobile-drawer-foot {
    margin-top: auto;
    padding: 22px;
    border-top: 1px solid rgba(26, 26, 26, 0.1);
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
  }
  .md-foot-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 14px;
    min-height: 50px;
    background: #1a1a1a; color: #fcfaf4;
    border-radius: 12px;
    font-size: 14px; font-weight: 700;
    text-decoration: none;
  }
  .md-foot-btn.primary { background: #ff6b35; color: #1a1a1a; }
  .md-foot-btn iconify-icon { font-size: 18px; }
  body.drawer-open { overflow: hidden; }
  @media (max-width: 820px) { .mobile-nav-toggle { display: inline-flex; } }

  
  /* =========== MOBILE TAP TARGETS (Apple/Google min 44x44) =========== */
  @media (max-width: 768px) {
    button:not(.hamburger-line):not(.mbb-qty button),
    .btn-primary, .btn-secondary,
    .quick-add, .bundle-cta, .vault-cta,
    .apply-submit, .add-btn,
    .nav-icons a, .md-foot-btn,
    .help-cta-btn {
      min-height: 44px;
    }
    /* Larger touch target on small icons */
    .nav-icons iconify-icon { padding: 8px; }
    /* Avoid iOS zoom on form-field focus by ensuring 16px font-size */
    input, select, textarea { font-size: 16px !important; }
  }

  
  /* === Responsive nav — keep horizontal links visible at half-screen widths === */
  /* Universal: prevent nav items from wrapping or shrinking weirdly */
  .nav-links a { white-space: nowrap; }
  .logo, .nav-icons { flex-shrink: 0; }
  .nav-links { flex-wrap: nowrap; min-width: 0; }

  /* Tier 1: medium screens (981-1200px) — slight compression */
  @media (max-width: 1200px) {
    .nav-links { gap: 16px; }
    .nav-links a { padding: 6px 11px; font-size: 13.5px; }
    .nav-inner { padding: 14px 24px; }
    .logo-name { font-size: 18px; }
    .nav-icons { gap: 12px; }
    .cart-btn { padding: 9px 14px; font-size: 13px; }
  }

  /* Tier 2: narrow desktops & half-screens (821-980px) — aggressive compression */
  @media (max-width: 980px) {
    .nav-inner { padding: 12px 18px; gap: 8px; }
    .nav-links { gap: 4px; }
    .nav-links a { padding: 5px 8px; font-size: 12.5px; }
    .nav-trigger .nav-caret { font-size: 10px; margin-left: 2px; }
    .logo { padding: 6px 14px; }
    .logo-name { font-size: 16px; }
    .logo-tag { font-size: 7.5px; letter-spacing: 0.14em; }
    .nav-icons { gap: 6px; }
    /* Cart button: icon + count only (hide "Bag" label) */
    .cart-btn { padding: 8px 12px; font-size: 0; gap: 6px; }
    .cart-btn iconify-icon { font-size: 18px; }
    .cart-count { font-size: 11px; min-width: 18px; height: 18px; padding: 0 4px; }
    /* Hide the search icon — rarely used, makes room */
    .nav-icons > iconify-icon:first-child { display: none; }
    /* Dropdown: align to right edge so it doesn't overflow on narrow screens */
    .nav-item.has-dropdown:last-of-type .nav-dropdown,
    .nav-item.has-dropdown:nth-last-of-type(2) .nav-dropdown {
      left: auto; right: 0; transform: translateY(-10px);
    }
    .nav-item.has-dropdown:last-of-type:hover .nav-dropdown,
    .nav-item.has-dropdown:nth-last-of-type(2):hover .nav-dropdown {
      transform: translateY(0);
    }
    .nav-item.has-dropdown:last-of-type .nav-dropdown::after,
    .nav-item.has-dropdown:nth-last-of-type(2) .nav-dropdown::after {
      left: auto; right: 26px; transform: rotate(45deg);
    }
  }

/* ============== SHOP DROPDOWN: 3-COLUMN MEGA-MENU (Category + Feel + More) ============== */
.nav-dropdown.nav-dropdown-mega {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 20px;
  min-width: 480px;
  padding: 18px;
  align-items: start;
  /* Override base .nav-dropdown centering — anchor to left of trigger so wide panel stays on-screen */
  left: 0;
  transform: translateX(0) translateY(-10px);
}
.nav-item.has-dropdown:hover .nav-dropdown.nav-dropdown-mega,
.nav-item.has-dropdown:focus-within .nav-dropdown.nav-dropdown-mega {
  transform: translateX(0) translateY(0);
}
.nav-dropdown.nav-dropdown-mega::after {
  /* Arrow tip aligned with Shop trigger center instead of dropdown center */
  left: 32px;
  transform: rotate(45deg);
}
.nav-dropdown.nav-dropdown-mega .dd-col {
  display: flex;
  flex-direction: column;
}
.nav-dropdown.nav-dropdown-mega .dd-col-label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: #6b6b6b;
  padding: 0 12px 8px;
  text-transform: uppercase;
  border-bottom: 1px dashed #d8d2c4;
  margin-bottom: 6px;
}
.nav-dropdown.nav-dropdown-mega .dd-item { padding: 8px 12px; }
.nav-dropdown.nav-dropdown-mega .dd-item .dd-title { font-size: 13px; }
.nav-dropdown.nav-dropdown-mega .dd-item .dd-sub { font-size: 11px; }

  /* ====================================================================
     Accessibility: respect prefers-reduced-motion (WCAG 2.3.3)
     ==================================================================== */
  @media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
    .promo-track {
      animation: none !important;
      transform: translateX(0) !important;
    }
    .reveal {
      opacity: 1 !important;
      transform: none !important;
    }
  }


  /* === Logo image override (replaces .logo-stack text mark) === */
  .logo {
    background: transparent !important;
    padding: 0 !important;
    clip-path: none !important;
    color: inherit !important;
    transition: transform 0.2s;
  }
  .logo:hover { background: transparent !important; transform: translateY(-1px); }
  .logo-img {
    display: block;
    height: 52px;
    width: auto;
    max-width: 200px;
  }
  /* Footer logo: invert to light variant on dark background */
  .footer-brand .logo-img {
    filter: brightness(0) invert(1);
    opacity: 0.95;
  }
  @media (max-width: 768px) {
    .logo-img { height: 44px; max-width: 170px; }
  }
  @media (max-width: 480px) {
    .logo-img { height: 38px; max-width: 140px; }
  }


  /* ====================================================================
     MOBILE E-COMMERCE NORMALIZATION (standard phone patterns)
     ==================================================================== */

  /* ≤640px (phone) — 2-col product grids, tighter cards, compact hero */
  @media (max-width: 640px) {
    /* Product grids — 2 columns (standard e-comm on phone, NOT single col) */
    .products-grid {
      grid-template-columns: repeat(2, 1fr) !important;
      gap: 10px !important;
    }
    /* Product cards — compact, tighter */
    .product-card {
      border-radius: 14px !important;
      border-width: 2px !important;
    }
    .product-image {
      height: 130px !important;
    }
    .product-body {
      padding: 10px !important;
    }
    .product-category {
      font-size: 10px !important;
      margin-bottom: 2px !important;
    }
    .product-name {
      font-size: 13px !important;
      margin-bottom: 2px !important;
      line-height: 1.15 !important;
    }
    .product-meta {
      font-size: 10px !important;
      margin-bottom: 4px !important;
    }
    .product-meta > span {
      font-size: 10px !important;
    }
    .product-rating {
      font-size: 10px !important;
    }
    .product-price {
      font-size: 14px !important;
    }
    .quick-add,
    .related-card-add {
      font-size: 11px !important;
      padding: 5px 8px !important;
    }
    .product-footer {
      gap: 4px !important;
    }
    .product-badge {
      font-size: 9px !important;
      padding: 3px 7px !important;
      top: 6px !important;
      left: 6px !important;
    }
    .product-fav {
      top: 6px !important;
      right: 6px !important;
    }
    /* Section padding — tighter */
    section {
      padding: 32px 14px !important;
    }
    /* Page-hero — tighter */
    .page-hero,
    .contact-hero,
    .about-hero,
    .bundles-hero,
    .faq-hero,
    .reviews-hero,
    .rewards-hero,
    .category-hero,
    .post-hero,
    .blog-hero {
      padding: 28px 16px 16px !important;
    }
    /* Headlines slightly tighter on mobile but readable */
    .page-hero h1,
    .contact-hero h1,
    .about-hero h1,
    .bundles-hero h1,
    .faq-hero h1,
    .reviews-hero h1,
    .rewards-hero h1,
    .category-hero h1,
    .post-hero h1,
    .blog-hero h1 {
      font-size: clamp(28px, 9vw, 42px) !important;
    }
    /* Buttons — bigger tap targets, full-ish width */
    .btn-primary,
    .btn-secondary,
    .vault-cta,
    .hero-cta-primary,
    .welcome-cta {
      padding: 12px 18px !important;
      font-size: 14px !important;
    }
    /* Container padding */
    .container {
      padding-left: 14px !important;
      padding-right: 14px !important;
    }
  }

  /* ≤480px (small phone) — even tighter */
  @media (max-width: 480px) {
    .product-image { height: 110px !important; }
    .product-name { font-size: 12px !important; }
    .product-price { font-size: 13px !important; }
    section { padding: 28px 12px !important; }
  }

  /* ≤380px (iPhone SE) — minimum sane */
  @media (max-width: 380px) {
    .products-grid {
      gap: 8px !important;
    }
    .product-image { height: 95px !important; }
    .product-body { padding: 8px !important; }
    .product-name { font-size: 11px !important; }
    .product-price { font-size: 12px !important; }
  }


  /* Cart-specific mobile layout */
  @media (max-width: 768px) {
    .cart-layout {
      grid-template-columns: minmax(0, 1fr) !important;
      gap: 16px !important;
      padding: 20px 14px !important;
    }
    .cart-layout > * { min-width: 0; }
    .cart-line {
      grid-template-columns: 80px 1fr !important;
      gap: 12px !important;
      padding: 14px !important;
    }
    .line-thumb {
      width: 80px !important;
      height: 80px !important;
    }
    .line-info { font-size: 13px !important; }
    .line-name { font-size: 14px !important; }
    .line-controls {
      grid-column: 1 / -1 !important;
      justify-content: space-between !important;
      margin-top: 8px !important;
    }
    .cart-summary {
      position: static !important;
      padding: 18px !important;
    }
  }

/* ==========================================================================
   Shopify-style mobile normalization (appended for site-wide consistency)
   - 2-col product grids on phone (not 1-col)
   - 44px+ tap targets
   - Horizontal-scroll rails for related products / category chips / trust badges
   - Single-col forms on small screens
   - No emoji-only headings; readable type at small sizes
   ========================================================================== */
@media (max-width: 768px) {
  .products-grid,
  .product-grid,
  .related-grid,
  .related-products,
  .you-may-also-like { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
  .collections-grid,
  .categories-grid,
  .feel-grid,
  .effects-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
  .bundle-grid { grid-template-columns: repeat(3, 1fr) !important; gap: 10px !important; }
  .footer-grid { grid-template-columns: 1fr 1fr !important; gap: 36px !important; }
  /* Horizontal scroll rails — trust badges, category chips, related products on PDP */
  .badge-rail,
  .chip-rail,
  .pill-rail,
  .filter-chips,
  .trust-marquee,
  .category-chips {
    display: flex !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    gap: 10px !important;
    padding: 4px 22px 8px !important;
    margin: 0 -22px !important;
    scroll-snap-type: x mandatory !important;
  }
  .badge-rail::-webkit-scrollbar,
  .chip-rail::-webkit-scrollbar,
  .pill-rail::-webkit-scrollbar,
  .filter-chips::-webkit-scrollbar,
  .trust-marquee::-webkit-scrollbar,
  .category-chips::-webkit-scrollbar { display: none !important; }
}
@media (max-width: 640px) {
  section { padding: 40px 22px !important; }
  .nav-inner { padding: 14px 20px !important; }
  /* Tap targets — Shopify minimum is 44px */
  .btn-primary,
  .btn-secondary,
  .btn,
  button[type="submit"],
  .add-to-cart,
  .cta { min-height: 44px !important; padding: 12px 18px !important; }
  /* Product cards on phone — Shopify style */
  .product-card { border-radius: 14px !important; border-width: 2px !important; }
  .product-image,
  .product-thumb { height: 130px !important; }
  .product-body { padding: 10px !important; }
  .product-name,
  .product-title { font-size: 13px !important; line-height: 1.3 !important; }
  .product-price { font-size: 14px !important; }
  /* Single-col forms on phone */
  .form-grid,
  .form-row,
  .checkout-grid,
  .cart-grid,
  .account-grid { grid-template-columns: 1fr !important; gap: 14px !important; }
  /* Headings — keep readable on phone */
  h1, .h1 { font-size: clamp(28px, 8vw, 40px) !important; line-height: 1.05 !important; }
  h2, .h2 { font-size: clamp(22px, 6.5vw, 32px) !important; line-height: 1.1 !important; }
  .footer-grid { grid-template-columns: 1fr !important; gap: 28px !important; }
  /* Hero CTAs stack full-width on phone */
  .hero-ctas,
  .cta-group { flex-direction: column !important; }
  .hero-ctas .btn-primary,
  .hero-ctas .btn-secondary,
  .cta-group .btn { width: 100% !important; justify-content: center !important; }
}

/* ============== Mobile sticky checkout bar (Shopify pattern) ============== */
.mobile-checkout-bar {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: #fcfaf4;
  border-top: 2px solid #1a1a1a;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  box-shadow: 0 -4px 20px rgba(0,0,0,0.12);
  z-index: 9000;
  align-items: center;
  gap: 12px;
}
.mcb-total { display: flex; flex-direction: column; flex-shrink: 0; }
.mcb-total-label { font-size: 11px; color: #6b6b6b; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }
.mcb-total-value { font-size: 20px; font-weight: 900; font-style: italic; color: #1a1a1a; line-height: 1.1; }
.mcb-checkout {
  flex: 1;
  min-height: 50px;
  background: #1a1a1a; color: #fcfaf4;
  border: none; border-radius: 14px;
  font-size: 15px; font-weight: 800;
  letter-spacing: 0.02em;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  text-decoration: none;
  transition: background 0.2s, transform 0.1s;
}
.mcb-checkout:hover { background: #ff6b35; color: #1a1a1a; }
.mcb-checkout:active { transform: scale(0.98); }
.mcb-checkout iconify-icon { font-size: 18px; }
@media (max-width: 768px) {
  .mobile-checkout-bar { display: flex; }
  body { padding-bottom: 86px; }
}

/* ====================================================================
   PROMO BAR — ONE horizontal line on every viewport (no marquee, no wrap)
   Overrides the old auto-scroll animation. Long copy on desktop, short on phone.
   ==================================================================== */
.promo-bar {
  padding: 10px 12px !important;
  overflow: hidden !important;
}
.promo-track {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 24px !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
  width: auto !important;
  max-width: 1400px;
  margin: 0 auto !important;
  animation: none !important;
}
.promo-track > span,
.promo-track > a { flex-shrink: 0 !important; }
.promo-track .short { display: none; }
.promo-track .long { display: inline; }
@media (max-width: 820px) {
  .promo-bar { padding: 8px 10px !important; font-size: 11px !important; }
  .promo-track { gap: 14px !important; }
  .promo-track .promo-highlight { padding: 2px 8px !important; font-size: 11px !important; }
  .promo-track .short { display: inline; }
  .promo-track .long { display: none; }
}
@media (max-width: 480px) {
  .promo-bar { padding: 7px 6px !important; font-size: 10px !important; }
  /* Tightened: gap 10→7 + highlight pad 7→5 to fit all 3 items in 390px viewport */
  .promo-track { gap: 7px !important; overflow: hidden !important; max-width: 100% !important; }
  .promo-track .promo-highlight { padding: 2px 6px !important; font-size: 10px !important; }
  .promo-track iconify-icon { font-size: 11px !important; }
}
@media (max-width: 380px) {
  .promo-bar { padding: 6px 6px !important; font-size: 9px !important; }
  .promo-track { gap: 7px !important; }
  .promo-track .promo-highlight { padding: 2px 6px !important; font-size: 9px !important; }
}

/* MOBILE-OVERFLOW-GUARD */
@media (max-width: 820px) {
  html, body { overflow-x: hidden !important; }
}

/* =========================================================================
   CART FLOW POLISH (round 22)
   - Line-items header with clear-bag affordance
   - Toast with optional Undo action — used for remove + clear-bag + rec-add
   - Stronger Remove affordance (red on hover, not just a text link)
   - Coupon error/success state transitions cleanly when retrying
   ========================================================================= */

/* Line-items section header (count + clear bag) */
.line-items-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 4px 14px;
  border-bottom: 1px solid rgba(26, 26, 26, 0.08);
  margin-bottom: 14px;
}
.line-items-head-count {
  font-size: 13px;
  font-weight: 700;
  color: #1a1a1a;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.line-items-clear {
  background: none;
  border: none;
  padding: 0;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: #666;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color 0.15s;
}
.line-items-clear:hover { color: #c93838; }

/* Stronger Remove button — more obvious it's destructive on hover */
.line-remove {
  position: relative;
  transition: color 0.15s, background 0.15s;
}
.line-remove:hover {
  color: #c93838 !important;
}

/* Toast — bottom-center, slides up. Replaces silent line-remove. */
.cart-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translate(-50%, 24px);
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px 12px 20px;
  background: #1a1a1a;
  color: #fcfaf4;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s ease;
  z-index: 9999;
  max-width: calc(100vw - 32px);
}
.cart-toast.is-visible {
  opacity: 1;
  transform: translate(-50%, 0);
  pointer-events: auto;
}
.cart-toast-msg {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 60vw;
}
.cart-toast-action {
  background: #ff6b35;
  color: #1a1a1a;
  border: none;
  border-radius: 999px;
  padding: 6px 14px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  transition: background 0.15s;
}
.cart-toast-action:hover { background: #ff8050; }

/* Mobile: keep toast above the sticky checkout bar */
@media (max-width: 820px) {
  .cart-toast { bottom: calc(80px + 16px); font-size: 13px; }
}

/* Reduced motion — instant show/hide, no slide */
@media (prefers-reduced-motion: reduce) {
  .cart-toast { transition: opacity 0.01s; transform: translate(-50%, 0); }
}


/* Dark variant of .dd-tag — dark bg, orange text. Used on the Bulk dropdown
   item so it visually distinguishes from the Bundles tag (orange bg, dark text).
   Matches the BULK badge palette used on the bulk product cards. */
.dd-tag.dd-tag-dark {
  background: #1a1a1a;
  color: #ff6b35;
}

/* ============================================================
   V3 — OUT-OF-STOCK SUBSTITUTION (per-item inline)
   When a cart line item is sold out, show an orange inline banner
   under the regular row with [See substitutes] + [Take credit].
   - .line-item-oos: the affected line item gets muted state + banner
   - .oos-banner: orange CTA strip spanning the row width
   - .oos-substitutes: collapsible sub-row of 1-2 swap-in cards
   - .oos-credit-applied: green confirmation replacing the banner
   ============================================================ */

/* Affected line gets a faint orange edge + muted product info */
.line-item.line-item-oos {
  border-color: #ff6b35;
  position: relative;
}
.line-item.line-item-oos .line-info .line-name a,
.line-item.line-item-oos .line-info .line-category,
.line-item.line-item-oos .line-info .line-meta {
  color: #8a8a8a;
}
.line-item.line-item-oos .line-info .line-name a {
  text-decoration: line-through;
}
.line-item.line-item-oos .line-price-current,
.line-item.line-item-oos .line-price-unit {
  color: #8a8a8a;
}
.line-item.line-item-oos .line-qty button[disabled] {
  opacity: 0.4;
  cursor: not-allowed;
}

/* SOLD OUT tag on the thumbnail */
.line-item.line-item-oos .line-img {
  position: relative;
  filter: grayscale(0.35);
}
.line-img-oos-tag {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%) rotate(-6deg);
  background: #1a1a1a;
  color: #ff6b35;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
  padding: 4px 10px;
  border-radius: 999px;
  border: 2px solid #ff6b35;
  white-space: nowrap;
  pointer-events: none;
}

/* The banner sits below the existing line-item content, spanning full width */
.oos-banner {
  grid-column: 1 / -1;
  margin-top: 12px;
  padding: 12px 16px;
  background: linear-gradient(135deg, #fff1e6 0%, #ffe0c8 100%);
  border: 2px solid #ff6b35;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.oos-banner-msg {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: #1a1a1a;
  line-height: 1.45;
  flex: 1;
  min-width: 240px;
}
.oos-banner-msg iconify-icon {
  font-size: 20px;
  color: #ff6b35;
  flex-shrink: 0;
}
.oos-banner-msg strong { font-weight: 900; }

.oos-banner-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}
.oos-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 14px;
  border-radius: 999px;
  border: 2px solid #1a1a1a;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
  white-space: nowrap;
}
.oos-btn-sub {
  background: #fcfaf4;
  color: #1a1a1a;
}
.oos-btn-sub:hover {
  background: #1a1a1a;
  color: #fcfaf4;
}
.oos-btn-sub .oos-btn-chevron {
  transition: transform 0.2s ease;
}
.oos-btn-sub[aria-expanded="true"] .oos-btn-chevron {
  transform: rotate(180deg);
}
.oos-btn-credit {
  background: #1a1a1a;
  color: #ff6b35;
  box-shadow: 3px 3px 0 #ff6b35;
}
.oos-btn-credit:hover {
  transform: translate(-1px, -1px);
  box-shadow: 4px 4px 0 #ff6b35;
}

/* Substitute sub-row — collapsible, 1-2 cards */
.oos-substitutes {
  grid-column: 1 / -1;
  margin-top: 10px;
  padding: 14px 16px 16px;
  background: #fff8ef;
  border: 2px dashed #1a1a1a;
  border-radius: 14px;
}
.oos-substitutes[hidden] { display: none; }
.oos-subs-label {
  font-size: 12px;
  font-weight: 800;
  color: #1a1a1a;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.oos-sub-row {
  display: grid;
  grid-template-columns: 56px 1fr auto auto;
  align-items: center;
  gap: 14px;
  padding: 10px 0;
  border-bottom: 1px dashed #e0d8c8;
}
.oos-sub-row:last-child { border-bottom: 0; padding-bottom: 0; }
.oos-sub-img {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  border: 2px solid #1a1a1a;
  background-size: cover;
  background-position: center;
}
.oos-sub-info { min-width: 0; }
.oos-sub-name {
  font-size: 14px;
  font-weight: 800;
  color: #1a1a1a;
  letter-spacing: -0.01em;
}
.oos-sub-meta {
  font-size: 12px;
  color: #6b6b6b;
  margin-top: 2px;
}
.oos-sub-price {
  font-size: 15px;
  font-weight: 900;
  color: #1a1a1a;
  letter-spacing: -0.01em;
}
.oos-sub-swap {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 8px 14px;
  background: #1f5d3f;
  color: #fcfaf4;
  border: 2px solid #1a1a1a;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
  white-space: nowrap;
}
.oos-sub-swap:hover {
  background: #ff6b35;
  color: #1a1a1a;
  transform: translateY(-1px);
}
.oos-sub-swap iconify-icon { font-size: 14px; }

/* Credit applied confirmation — replaces banner + substitutes when chosen */
.oos-credit-applied {
  grid-column: 1 / -1;
  margin-top: 12px;
  padding: 14px 18px;
  background: #e8f5e9;
  border: 2px solid #1f5d3f;
  border-radius: 14px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.oos-credit-applied[hidden] { display: none; }
.oos-credit-applied iconify-icon {
  font-size: 26px;
  color: #1f5d3f;
  flex-shrink: 0;
}
.oos-credit-msg {
  font-size: 13px;
  color: #1a1a1a;
  line-height: 1.5;
}
.oos-credit-msg strong { font-weight: 900; }
.oos-undo {
  background: none;
  border: none;
  color: #1f5d3f;
  font-weight: 800;
  text-decoration: underline;
  cursor: pointer;
  font-size: 13px;
  padding: 0 0 0 4px;
}
.oos-undo:hover { color: #ff6b35; }

/* Mobile — stack the banner */
@media (max-width: 640px) {
  .oos-banner {
    padding: 10px 12px;
  }
  .oos-banner-msg { font-size: 12px; }
  .oos-banner-actions { width: 100%; }
  .oos-btn { flex: 1; justify-content: center; }
  .oos-sub-row {
    grid-template-columns: 48px 1fr auto;
    grid-template-areas:
      "img info price"
      "img info swap"
      ;
    grid-template-rows: auto auto;
  }
  .oos-sub-img { grid-area: img; width: 48px; height: 48px; }
  .oos-sub-info { grid-area: info; }
  .oos-sub-price { grid-area: price; align-self: start; }
  .oos-sub-swap { grid-area: swap; padding: 6px 10px; font-size: 12px; }
  .oos-credit-applied { padding: 12px 14px; }
  .oos-credit-msg { font-size: 12px; }
}

/* Fix: my .oos-banner and .oos-credit-applied rules use `display: flex`,
   which has higher specificity than the UA `[hidden] { display: none }`
   rule. Explicitly honor the hidden attribute. */
.oos-banner[hidden],
.oos-substitutes[hidden],
.oos-credit-applied[hidden] {
  display: none !important;
}
