/*
 * shop-home.css — Nature's 360 Custom Storefront Styles
 * Registered via resources/views/vendor/shop/base.blade.php
 *
 * Conventions:
 *  - All custom classes are prefixed n360- (avoids conflict with Aimeos)
 *  - Aimeos classes (.catalog-home, .basket, .btn-action, etc.) are only
 *    augmented with extra rules, never removed/renamed.
 *  - Logical CSS properties used throughout (margin-inline, padding-block, etc.)
 *    so RTL (dir="rtl") works without extra rule overrides.
 *  - Mobile-first: base rules target 360 px, @media for wider viewports.
 */

/* ============================================================
   1. DESIGN TOKENS
   ============================================================ */
:root {
  /* Brand palette - Synced with admin dashboard */
  --n360-green:        #1c5e39;
  --n360-green-mid:    #237547;
  --n360-green-light:  #B7E4C7;
  --n360-green-pale:   #D8F3DC;
  --n360-gold:         #E9C46A;
  --n360-red:          #DC2626;

  /* Neutrals */
  --n360-text:         #1B1B1B;
  --n360-text-muted:   #6B7280;
  --n360-bg:           #f2efe8;
  --n360-card:         #FFFFFF;
  --n360-border:       #E5EDE9;

  /* Geometry */
  --n360-radius:       12px;
  --n360-radius-sm:    6px;
  --n360-radius-pill:  999px;
  --n360-shadow:       0 2px 12px rgba(45,106,79,.08);
  --n360-shadow-lg:    0 8px 32px rgba(45,106,79,.16);
  --n360-shadow-card:  0 1px 4px rgba(0,0,0,.06);

  /* Motion */
  --n360-ease:         .22s cubic-bezier(.4,0,.2,1);

  /* Typography */
  --n360-font:         'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
}

/* ============================================================
   2. BASE RESETS
   ============================================================ */
html {
  overflow-x: hidden; /* Prevent horizontal scroll from any overflowing element */
}
body {
  font-family: var(--n360-font) !important;
  background-color: var(--n360-bg) !important;
  background-image: none !important; /* Override Aimeos dark GIF background that creates black section */
  color: var(--n360-text) !important;
  overflow-x: hidden;
}

/* Override Aimeos default content margin that assumes a fixed 6rem/10rem navbar */
body > .content,
body .main-section {
  margin-top: 0 !important; /* We use static positioning, not fixed navbar */
}

/* Accessible hidden utility */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* ============================================================
   3. SECTION 1 — ANNOUNCEMENT BAR
   ============================================================ */
.n360-announce {
  position: relative !important;
  z-index: 9999 !important;
  background-color: #1c5e39 !important; /* Hardcoded fallback */
  background-color: var(--n360-green) !important;
  color: #fff !important;
  text-align: center;
  padding-block: .45rem;
  padding-inline: 1rem;
  font-size: .8rem;
  font-weight: 500;
  letter-spacing: .02em;
  line-height: 1.5;
  display: block !important;
  width: 100% !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.n360-announce a {
  color: var(--n360-green-light);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.n360-announce strong { color: var(--n360-green-light); }

/* ============================================================
   4. SECTION 2 — HEADER ENHANCEMENTS
   ============================================================ */
.navbar.navbar-top {
  background: #ffffff !important;
  border-block-end: 1px solid #e5ede9;
  box-shadow: 0 1px 8px rgba(0,0,0,.08);
  font-family: var(--n360-font) !important;
  height: 80px !important;
  min-height: 80px !important;
  max-height: 80px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  display: flex;
  align-items: center;
  /* Override Aimeos default fixed positioning */
  position: relative !important;
  top: auto !important;
}
/* ============================================================
   MOBILE NAVBAR ≤767px
   Layout: [ Logo ] ————————————— [ 🛒 ] [ ☰ ]
            (collapse hidden by default, shown when ☰ is tapped)
   NOTE: !important overrides needed to win against Aimeos's app.css
   ============================================================ */
@media (max-width: 767px) {

  /* Navbar container */
  .navbar.navbar-top {
    height: auto !important;
    max-height: none !important;
    min-height: 60px !important;
    padding: 0.4rem 1rem !important;
    align-items: center;
    flex-wrap: wrap;
  }

  /* 1 — Logo (left) */
  .navbar.navbar-top .navbar-brand {
    order: 1;
    flex-shrink: 1;
    min-width: 0;
    margin-right: 0;
  }

  /* 2 — Cart icon (right of logo, pushed by margin-left:auto) */
  .navbar.navbar-top .basket-mini {
    order: 2;
    margin-left: auto;
    flex-shrink: 0;
  }

  /* 3 — Hamburger button (always visible, right of cart) */
  .navbar.navbar-top .navbar-toggler {
    display: flex !important;          /* force visible — Aimeos may hide it */
    align-items: center;
    justify-content: center;
    order: 3;
    margin-left: 0.5rem;
    flex-shrink: 0;
    border: 1.5px solid #d1d5db !important;
    border-radius: 8px !important;
    padding: 0.35rem 0.5rem !important;
    background: transparent !important;
  }

  /* 4 — Collapse: HIDDEN by default (force override Aimeos CSS) */
  .navbar.navbar-top .navbar-collapse {
    order: 4;
    flex-basis: 100%;
    width: 100%;
    display: none !important;          /* hidden until .show added by Bootstrap */
    padding: 0.75rem 0 0.5rem;
    border-top: 1px solid var(--n360-border);
    margin-top: 0.3rem;
  }

  /* 4b — Collapse: VISIBLE when Bootstrap toggles .show class */
  .navbar.navbar-top .navbar-collapse.show {
    display: flex !important;
    flex-direction: column;
    gap: 0.5rem;
  }

  /* Inside the open collapse: search full width */
  .navbar.navbar-top .navbar-collapse.show .n360-header-search-container {
    width: 100%;
    max-width: 100%;
    margin: 0;
  }

  /* Inside the open collapse: nav links and auth buttons stack vertically */
  .navbar.navbar-top .navbar-collapse.show .navbar-nav {
    flex-direction: column;
    margin-left: 0 !important;
    padding-top: 0.5rem;
  }
  
  .n360-auth-buttons {
    display: flex !important;
    width: 100% !important;
    margin-top: 0.5rem;
    padding-bottom: 0.5rem;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 0.5rem !important;
  }
  .n360-auth-btn {
    flex: 1 1 50% !important;
    width: 100% !important;
    justify-content: center !important;
    padding-inline: 0.25rem !important; /* Make sure text fits on small screens */
    margin: 0 !important;
  }

  .n360-auth-buttons .dropdown {
    width: 100%;
  }

  .n360-auth-buttons .dropdown-menu {
    position: static !important;
    transform: none !important;
    margin-top: 0.5rem !important;
    border: 1px solid var(--n360-border) !important;
  }

  /* Logo size on small phones */
  .n360-logo-text { font-size: 1.25rem; }
  .navbar-brand img { height: 38px !important; }
}

/* ============================================================
   DESKTOP NAVBAR ≥992px
   Layout: [ Logo ]  [🔍 search centered ]  [ Account ] [ 🛒 ]
   ============================================================ */
@media (min-width: 992px) {
  .navbar.navbar-top .navbar-brand    { order: 1; }
  .navbar.navbar-top .navbar-toggler  { display: none !important; }  /* hidden on desktop */
  .navbar.navbar-top .navbar-collapse {
    order: 3;
    flex-grow: 1;
    display: flex !important;          /* always visible on desktop */
  }
  .navbar.navbar-top .basket-mini     { order: 5; }  /* after account links */
  
  .n360-auth-buttons {
    flex-direction: row !important;
    align-items: center;
    margin-left: auto !important;
    width: auto !important; /* Prevent it from taking 100% of navbar space */
  }
  .n360-auth-buttons .dropdown { width: auto !important; }
  .n360-auth-btn {
    width: auto !important;
    flex: none !important; /* Prevent them from stretching */
  }
}

.n360-auth-btn {
  padding: 0.5rem 1.1rem !important;
  font-size: 0.85rem !important;
  white-space: nowrap;
}
.navbar.navbar-top .nav-link, 
.navbar.navbar-top .navbar-brand,
.navbar.navbar-top .basket-mini,
.navbar.navbar-top .nav-icon,
.navbar.navbar-top .aimeos {
  color: #1B1B1B !important;
}
.navbar.navbar-top .basket-mini::before,
.navbar.navbar-top .nav-icon::before,
.navbar.navbar-top .basket-mini .menu::after,
.navbar.navbar-top .basket-mini-main::after,
.navbar.navbar-top .catalog-filter-search .btn-search,
.navbar.navbar-top .catalog-filter-search .btn-search::after,
.navbar.navbar-top .locale-select .menu::after,
.navbar.navbar-top .locale-select ul.select-menu > li > a,
.navbar.navbar-top .locale-select ul.select-menu > li > a::before,
.navbar.navbar-top .nav-link::before,
.navbar.navbar-top .nav-link::after {
  color: #1B1B1B !important;
}

/* Ensure search box is transparent when collapsed, but visible when expanded */
.navbar.navbar-top .catalog-filter-search .value {
  background-color: transparent !important;
  border: none !important;
  color: #1B1B1B !important;
}
.navbar.navbar-top .catalog-filter-search .input-group:hover .value,
.navbar.navbar-top .catalog-filter-search .input-group .value:focus {
  background-color: #f8f9fa !important;
  border: 1px solid #ced4da !important;
}

/* Force hamburger menu to be dark on white background */
.navbar.navbar-top .navbar-toggler-icon {
  filter: invert(1) grayscale(100%) brightness(0);
}

/* ============================================================
   FOOTER ENHANCEMENTS
   ============================================================ */
footer,
footer *,
footer h2,
footer p,
footer a,
footer .footer-block h2,
footer .footer-block a,
footer .social a {
  color: #ffffff !important;
}
footer a:hover,
footer a:hover * {
  color: var(--n360-green-light) !important;
}
.navbar-brand,
footer a.logo {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none !important;
}
.navbar-brand img,
footer a.logo img { 
  height: 52px !important; 
  width: 100% !important; 
}
.n360-logo-text {
  font-family: "Playfair Display", "Georgia", "Times New Roman", serif;
  font-style: italic;
  font-size: 1.75rem;
  font-weight: 500;
  color: #005a49;
}

/* Fix navbar layout overlapping */
.navbar.navbar-top .locale-select {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.navbar.navbar-top .locale-select .dropdown {
  margin-bottom: 0; /* Prevent vertical stacking */
}



/* ============================================================
   5. SHARED: SECTION WRAPPER & HEADINGS
   ============================================================ */
.n360-home { background: var(--n360-bg); }

/* Inner width-constrained container used in every section */
.n360-section-wrap {
  max-width: 1400px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
}

/* Section headings */
.n360-section-heading {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-block-end: 2rem;
  flex-wrap: wrap; /* Allows heading to wrap on 320px; overridden at 576px+ */
}
.n360-section-heading h2 {
  font-size: clamp(1.3rem, 2.8vw, 1.9rem);
  font-weight: 800;
  color: var(--n360-text);
  margin: 0;
  white-space: normal; /* Allow wrap on small screens; nowrap reapplied at 576px+ */
}
@media (min-width: 576px) {
  .n360-section-heading h2 { white-space: nowrap; }
  .n360-section-heading { flex-wrap: nowrap; }
}
.n360-section-heading__line {
  flex: 1;
  height: 2px;
  background: linear-gradient(to inline-end, var(--n360-green-pale), transparent);
  border-radius: 2px;
}
.n360-section-heading a {
  font-size: .85rem;
  color: var(--n360-green);
  font-weight: 700;
  white-space: nowrap;
  text-decoration: none;
  transition: color var(--n360-ease);
}
.n360-section-heading a:hover { color: var(--n360-green-mid); }

/* ============================================================
   6. SECTION 3 — HERO SLIDER
   ============================================================ */
.n360-hero-section {
  position: relative;
  overflow: hidden;
  /* Max height prevents giant hero on ultra-wide displays */
  max-height: 620px;
  background: #0d2a1a; /* fallback while image loads */
}

/* Swiffy-slider wrapper is full-width inside the section */
.n360-hero__slider {
  width: 100%;
}

/* Individual slide */
.n360-hero__slide {
  min-block-size: 400px;
  max-block-size: 620px;
  position: relative;
  flex: 0 0 100%;
  width: 100%;
}
.n360-hero__link {
  display: block;
  block-size: 100%;
  line-height: 0;
}
.n360-hero__img {
  width: 100%;
  block-size: 100%;
  object-fit: cover;
  display: block;
}

/* Gradient overlay — logical property so RTL flips correctly */
.n360-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  pointer-events: none; /* let slider nav buttons remain clickable */
}
.n360-hero__content {
  pointer-events: auto;
  padding-inline: clamp(1.25rem, 6vw, 3rem);
  padding-block: 2.5rem;
  max-inline-size: 560px;
}
.n360-hero__title {
  font-size: clamp(1.75rem, 4.5vw, 3.2rem);
  font-weight: 800;
  color: #ffffffe6 !important;
  line-height: 1.12;
  margin-block-end: .85rem;
  text-shadow: 0 2px 10px rgba(0,0,0,.25);
}
.n360-hero__sub {
  font-size: clamp(.95rem, 1.8vw, 1.15rem);
  color: #ffffffe6 !important;
  margin-block-end: 1.75rem;
  line-height: 1.55;
  font-weight: 500;
  text-shadow: 0 1px 6px rgba(0,0,0,.25);
}

/* Swiffy slider nav stays above overlay */
.n360-hero-section .slider-nav {
  z-index: 6 !important;
}

/* ============================================================
   7. BUTTON SYSTEM
   ============================================================ */
.n360-btn {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .75rem 1.75rem;
  border-radius: var(--n360-radius-pill);
  font-family: var(--n360-font);
  font-weight: 700;
  font-size: .9rem;
  text-decoration: none;
  border: 2px solid transparent;
  cursor: pointer;
  transition: background var(--n360-ease), color var(--n360-ease),
              transform var(--n360-ease), box-shadow var(--n360-ease);
  line-height: 1;
}
.n360-btn:focus-visible {
  outline: 3px solid var(--n360-green-light);
  outline-offset: 3px;
}

/* Hero CTA */
.n360-btn--hero {
  background: var(--n360-green-light);
  color: var(--n360-green);
  border-color: transparent;
}
.n360-btn--hero:hover,
.n360-btn--hero:focus-visible {
  background: #fff;
  color: var(--n360-green);
  transform: translateY(-2px);
  box-shadow: var(--n360-shadow-lg);
}

/* Primary green */
.n360-btn--primary {
  background: var(--n360-green) !important;
  color: #fff !important;
}
.n360-btn--primary:hover,
.n360-btn--primary:active { background: #1e5038 !important; transform: translateY(-2px); color: #fff !important; }
.n360-btn--primary:hover span,
.n360-btn--primary:active span,
.n360-btn--primary:hover svg,
.n360-btn--primary:active svg { color: #fff !important; }

/* ============================================================
   GLOBAL PRIMARY ACTION BUTTONS (Add to Cart, View Options)
   ============================================================ */
.btn.btn-primary.btn-action,
.n360-btn--detail,
.n360-btn--outline {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.35rem !important;

  min-height: 44px !important;
  padding: 0.5rem 1rem !important;

  font-family: var(--n360-font) !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-align: center !important;
  text-decoration: none !important;
  white-space: normal !important;

  border-radius: var(--n360-radius-pill) !important;
  border: 2px solid var(--n360-green) !important;
  background: var(--n360-green) !important;
  color: #fff !important;
  
  box-sizing: border-box !important;
  cursor: pointer !important;
  transition: all var(--n360-ease) !important;
}

/* Icons inside these buttons */
.btn.btn-primary.btn-action svg,
.n360-btn--detail svg,
.n360-btn--outline svg {
  color: #fff !important;
  width: 16px !important;
  height: 16px !important;
  flex-shrink: 0;
}

/* Hover States */
.n360-btn--detail:hover,
.n360-btn--detail:active,
.n360-btn--outline:hover,
.n360-btn--outline:active,
.btn.btn-primary.btn-action:hover:not([disabled]),
.btn.btn-primary.btn-action:active:not([disabled]) {
  background: var(--n360-green-mid) !important;
  border-color: var(--n360-green-mid) !important;
  color: #fff !important;
}

/* Disabled State */
.btn.btn-primary.btn-action[disabled],
.n360-btn--detail[disabled],
.n360-btn--outline[disabled] {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
}

/* ============================================================
   8. SECTION 4 — CATEGORY TILES
   ============================================================ */
/* Outline specific overrides */
.n360-btn--outline {
  background: transparent !important;
  color: var(--n360-green) !important;
}
.n360-btn--outline svg {
  color: var(--n360-green) !important;
}
.n360-btn--outline:hover,
.n360-btn--outline:active {
  background: var(--n360-green-pale, #e5f2eb) !important;
  border-color: var(--n360-green) !important;
  color: var(--n360-green) !important;
}
.n360-btn--outline:hover svg,
.n360-btn--outline:active svg {
  color: var(--n360-green) !important;
}

.n360-cats {
  padding-block: 4rem;
}
.n360-cats__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* default mobile */
  gap: clamp(0.75rem, 2vw, 1.25rem);
}

@media (min-width: 576px) { .n360-cats__grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 768px) { .n360-cats__grid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1024px) { .n360-cats__grid { grid-template-columns: repeat(6, 1fr); } }

/* Category Slider Item Counts (Matches Featured Products) */
.n360-cats .swiffy-slider { --swiffy-slider-item-count: 2; }
@media (min-width: 576px) { .n360-cats .swiffy-slider { --swiffy-slider-item-count: 3; } }
@media (min-width: 992px) { .n360-cats .swiffy-slider { --swiffy-slider-item-count: 4; } }

/* Hide arrows on mobile */
@media (max-width: 767px) {
  .swiffy-slider .slider-nav { display: none !important; }
}
.n360-cat-tile {
  border-radius: var(--n360-radius);
  overflow: hidden;
  background: var(--n360-card);
  box-shadow: var(--n360-shadow-card);
  text-decoration: none;
  display: flex;
  flex-direction: column;
  transition: transform var(--n360-ease), box-shadow var(--n360-ease);
  border: 1px solid var(--n360-border);
}
.n360-cat-tile:hover,
.n360-cat-tile:focus-visible {
  transform: translateY(-5px);
  box-shadow: var(--n360-shadow-lg);
  outline: none;
}
.n360-cat-tile__img-wrap {
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--n360-green-pale);
}
.n360-cat-tile__img {
  width: 100%;
  block-size: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}
.n360-cat-tile:hover .n360-cat-tile__img { transform: scale(1.07); }
.n360-cat-tile__placeholder {
  width: 100%;
  block-size: 100%;
  display: grid;
  place-items: center;
  color: var(--n360-green-mid);
}
.n360-cat-tile__name {
  font-size: .83rem;
  font-weight: 700;
  color: var(--n360-text);
  text-align: center;
  padding-inline: .75rem;
  padding-block: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
}

/* ============================================================
   9. SECTIONS 5, 7, 8 — PRODUCT CARD (shared)
   ============================================================ */
.n360-products { padding-block: 4rem; scroll-margin-top: 100px; }

.n360-products--featured { background: var(--n360-bg); }

.n360-products__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

@media (min-width: 360px) {
  .n360-products__grid { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; }
}

@media (min-width: 768px) {
  .n360-products__grid { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
}

@media (min-width: 1024px) {
  .n360-products__grid { grid-template-columns: repeat(4, 1fr); }
}



.n360-product-card {
  height: 100% !important;
  background: var(--n360-card);
  border-radius: calc(var(--n360-radius) + 4px);
  box-shadow: 0 4px 20px rgba(0,0,0,0.05);
  overflow: visible; /* FIXED: Was hidden, which clipped the Add to Cart button on mobile */
  display: flex;
  flex-direction: column;
  border: 1px solid var(--n360-border);
  transition: transform var(--n360-ease), box-shadow var(--n360-ease);
  position: relative;
}
.n360-product-card:hover,
.n360-product-card:focus-within {
  transform: translateY(-6px);
  box-shadow: 0 12px 32px rgba(45,106,79,.12);
}

/* Image */
.n360-product-card__img-wrap {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  background: #f8faf9;
}
.n360-product-card__img {
  width: 100%;
  block-size: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
  transition: transform .4s ease;
  padding: 1rem;
}
.n360-product-card:hover .n360-product-card__img { transform: scale(1.08); }
.n360-product-card__no-img {
  width: 100%; block-size: 100%;
  background: #f8faf9;
}

/* Badges (absolute, on top of image) */
.n360-badge {
  position: absolute;
  inset-block-start: .65rem;
  inset-inline-start: .65rem;
  z-index: 2;
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: .25rem .6rem;
  border-radius: var(--n360-radius-pill);
  background: var(--n360-green);
  color: #fff;
  pointer-events: none;
}
.n360-badge--deal { background: #e11d48; box-shadow: 0 2px 8px rgba(225,29,72,0.4); }
.n360-badge--new  { background: var(--n360-green-mid); box-shadow: 0 2px 8px rgba(35,117,71,0.3); }

/* Card body */
.n360-product-card__body {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: .45rem;
  text-align: center;
  align-items: center;
}
.n360-product-card__supplier {
  font-size: .7rem;
  font-weight: 700;
  color: var(--n360-green-mid);
  text-transform: uppercase;
  letter-spacing: .07em;
  margin: 0;
  min-height: 1rem;
  display: block;
}
.n360-product-card__name {
  font-size: .92rem;
  font-weight: 700;
  color: var(--n360-text);
  line-height: 1.3;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(1.3 * 0.92rem * 2);
}
.n360-product-card__name-link {
  color: inherit;
  text-decoration: none;
}
.n360-product-card__name-link:hover { color: var(--n360-green); }
.n360-product-card__desc {
  font-size: .78rem;
  color: var(--n360-text-muted);
  line-height: 1.45;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.n360-product-card .offer { margin-top: auto; width: 100%; }
.n360-product-card__actions { padding-block-start: .5rem; }

/* Star rating */
.n360-stars {
  display: flex;
  align-items: center;
  gap: 1px;
  font-size: .82rem;
  line-height: 1;
}
.n360-stars__filled { color: #F59E0B; }
.n360-stars__empty  { color: #D1D5DB; }
.n360-stars__count  { color: var(--n360-text-muted); font-size: .73rem; margin-inline-start: .3rem; }

/* ── Aimeos price overrides inside cards ── */
.n360-product-card .price-list { margin-top: auto !important; margin-bottom: 0; padding-top: 0.35rem; }
.n360-product-card .price-actual .value {
  font-size: 1rem;
  font-weight: 800;
  color: var(--n360-green);
}
.n360-product-card .price-deleted .value {
  text-decoration: line-through;
  color: var(--n360-text-muted);
  font-size: .78rem;
  font-weight: 400;
}
/* Tier / block prices */
.n360-product-card .price-block { font-size: .75rem; color: var(--n360-text-muted); }

.n360-product-card__actions {
  margin-top: 0;
  display: flex;
  width: 100%;
}

/* ── Basket form inside cards ── */
.n360-product-card form.basket { width: 100%; display: flex; margin: 0 !important; padding: 0 !important; }
.n360-product-card .addbasket {
  display: flex;
  flex-wrap: wrap; /* CRITICAL: allows wrapping to next line if width is tight */
  width: 100%;
  gap: 8px;
  align-items: stretch;
  margin: 0 !important;
  padding: 0 !important;
}
.n360-product-card .addbasket input[type="number"] {
  width: 52px;
  flex-shrink: 0;
  border: 1px solid var(--n360-border);
  border-radius: var(--n360-radius-sm);
  text-align: center;
  font-size: .85rem;
  padding-inline: .25rem;
  padding-block: .45rem;
  font-family: var(--n360-font);
  -moz-appearance: textfield;
}
.n360-product-card .addbasket input[type="number"]::-webkit-inner-spin-button,
.n360-product-card .addbasket input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
}
/* Card specific overrides for 100% width */
.n360-product-card .btn.btn-action,
.n360-product-card .btn.btn-primary.btn-action,
.n360-product-card .n360-btn--detail {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

.n360-btn--full {
  width: 100%;
  min-width: 100%;
  justify-content: center;
}

@media (max-width: 600px) {
  .n360-product-card .addbasket {
    flex-wrap: wrap !important; /* Let the 100% width button wrap naturally instead of forcing strict column */
  }
}

/* Deal card accent */
.n360-product-card--deal {
  border-color: rgba(220,38,38,.25);
}
.n360-product-card--deal .n360-product-card__img-wrap::after {
  content: '';
  position: absolute;
  inset-block-end: 0;
  inset-inline: 0;
  block-size: 3px;
  background: var(--n360-red);
}

/* ============================================================
   LIST VIEW OVERRIDES (Horizontal Card)
   ============================================================ */
.n360-products__list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.n360-product-card--list {
    height: auto !important; /* Overrides grid's 100% height */
    flex-direction: row;
    align-items: stretch;
    padding: 0;
}
.n360-product-card--list .n360-product-card__img-wrap {
    width: 180px;
    flex-shrink: 0;
    border-right: 1px solid var(--n360-border);
    display: flex;
    align-items: center;
    justify-content: center;
}
/* Use CSS Grid for the body to perfectly align details vs price/actions */
.n360-product-card--list .offer {
    display: contents; /* Unwraps .offer so stock and price can be placed independently */
}
.n360-product-card--list .n360-product-card__body {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 240px;
    grid-template-rows: auto auto auto auto 1fr;
    gap: 0.25rem 2rem;
    align-items: start;
    text-align: left;
    padding: 1.5rem;
    align-content: center;
}
.n360-product-card--list .n360-product-card__supplier {
    grid-column: 1;
    grid-row: 1;
    min-height: 0; /* Overrides grid min-height */
}
.n360-product-card--list .n360-product-card__name {
    grid-column: 1;
    grid-row: 2;
    min-height: 0;
}
.n360-product-card--list .n360-product-card__desc {
    grid-column: 1;
    grid-row: 3;
    -webkit-line-clamp: 2;
}
.n360-product-card--list .stock-list {
    grid-column: 1;
    grid-row: 4;
    margin-top: 0.75rem;
}
.n360-product-card--list .price-list {
    grid-column: 2;
    grid-row: 1 / 4;
    text-align: right;
    align-self: end;
    margin: 0;
}
.n360-product-card--list .price-list .n360-price-simple {
    justify-content: flex-end;
}
.n360-product-card--list .n360-product-card__actions {
    grid-column: 2;
    grid-row: 4 / 6;
    margin-top: 0.75rem;
    padding: 0;
    align-items: flex-end;
}
.n360-product-card--list .basket {
    width: 100%;
    justify-content: flex-end;
}
.n360-product-card--list .addbasket {
    justify-content: flex-end;
}

/* TABLET (768px - 1023px) */
@media (min-width: 768px) and (max-width: 1023px) {
    .n360-product-card--list .n360-product-card__img-wrap {
        width: 140px;
    }
    .n360-product-card--list .n360-product-card__body {
        grid-template-columns: 1fr 180px;
        gap: 0.25rem 1rem;
        padding: 1rem;
    }
}

/* MOBILE (Below 768px) */
@media (max-width: 767px) {
    .n360-product-card--list {
        flex-direction: row; /* Keep horizontal */
        align-items: stretch;
    }
    .n360-product-card--list .n360-product-card__img-wrap {
        width: 110px;
        height: auto;
        border-right: 1px solid var(--n360-border);
        border-bottom: none;
    }
    
    /* Fix overlap between Option badge and Favorite pin by placing badge at the bottom of the image */
    .n360-product-card--list .n360-badge {
        inset-block-start: auto;
        inset-block-end: 0.5rem;
        inset-inline-start: 0.5rem;
    }
    .n360-product-card--list .n360-product-card__pin-wrap {
        inset-block-start: 0.5rem;
        inset-inline-end: 0.5rem;
    }
    .n360-product-card--list .n360-product-card__body {
        display: flex;
        flex-direction: column;
        padding: 0.75rem;
        gap: 0.25rem;
        text-align: left;
    }
    .n360-product-card--list .n360-product-card__supplier,
    .n360-product-card--list .n360-product-card__name,
    .n360-product-card--list .n360-product-card__desc,
    .n360-product-card--list .stock-list,
    .n360-product-card--list .price-list,
    .n360-product-card--list .n360-product-card__actions {
        grid-column: auto;
        grid-row: auto;
        margin: 0;
    }
    .n360-product-card--list .n360-product-card__desc {
        -webkit-line-clamp: 1; /* Less text on mobile */
    }
    .n360-product-card--list .price-list {
        text-align: left;
        margin-top: 0.25rem;
    }
    .n360-product-card--list .price-list .n360-price-simple {
        justify-content: flex-start;
    }
    .n360-product-card--list .n360-product-card__actions {
        margin-top: 0.5rem;
    }
}

/* VERY NARROW (Below 360px) */
@media (max-width: 359px) {
    .n360-product-card--list {
        flex-direction: column;
    }
    .n360-product-card--list .n360-product-card__img-wrap {
        width: 100%;
        height: 180px;
        border-right: none;
        border-bottom: 1px solid var(--n360-border);
    }
    .n360-product-card--list .price-list .n360-price-simple {
        justify-content: center;
    }
    .n360-product-card--list .n360-product-card__body {
        text-align: center;
    }
    .n360-product-card--list .price-list {
        text-align: center;
    }
}

/* ============================================================
   10. SECTION 6 — TRUST / USP ROW
   ============================================================ */
.n360-usp {
  background: var(--n360-green);
  padding-block: 2.5rem;
}
.n360-usp__grid {
  max-inline-size: 1400px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 1.5rem;
}
@media (max-width: 767px) {
  .n360-usp__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 575px) {
  .n360-usp__grid {
    grid-template-columns: 1fr !important;
  }
}
.n360-usp__item {
  display: flex;
  align-items: center;
  gap: 1rem;
  color: #fff;
}
.n360-usp__icon {
  inline-size: 48px;
  block-size: 48px;
  background: rgba(255,255,255,.15);
  border-radius: 50%;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.n360-usp__icon svg {
  inline-size: 22px;
  block-size: 22px;
  fill: #fff;
}
.n360-usp__title { font-size: .92rem; font-weight: 700; line-height: 1.2; }
.n360-usp__sub   { font-size: .76rem; opacity: .8; margin-block-start: .15rem; }

/* ============================================================
   11. SECTION 7 — DEALS
   ============================================================ */
.n360-deals {
  padding-block: 4rem;
  background: linear-gradient(135deg, #fff0f0 0%, #ffdfdf 100%);
  border-block: 1px solid #ffcdcd;
  scroll-margin-top: 100px;
}
.n360-deals__grid {
  /* Inherits columns from .n360-products__grid to show 5 products */
}
.n360-deals__fire { font-style: normal; }
.n360-deals__note {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin-block-start: 1.25rem;
  font-size: .8rem;
  color: var(--n360-text-muted);
}
.n360-deals__note svg { flex-shrink: 0; stroke: var(--n360-green-mid); }

/* ============================================================
   12. SECTION 8 — SOCIAL PROOF / TOP-RATED
   ============================================================ */
.n360-reviews {
  padding-block: 4rem;
  background: var(--n360-bg);
  scroll-margin-top: 100px;
}
.n360-reviews__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr));
  gap: 1.25rem;
}
.n360-review-card {
  background: var(--n360-card);
  border: 1px solid var(--n360-border);
  border-radius: var(--n360-radius);
  box-shadow: 0 4px 16px rgba(0,0,0,0.04);
  padding: 1.75rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  transition: transform var(--n360-ease), box-shadow var(--n360-ease);
  position: relative;
}
.n360-review-card::before {
  content: '“';
  position: absolute;
  top: 10px;
  right: 20px;
  font-family: Georgia, serif;
  font-size: 5rem;
  color: var(--n360-green-pale);
  line-height: 1;
  opacity: 0.5;
  pointer-events: none;
}
.n360-review-card:hover { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(45,106,79,.08); }
.n360-review-card__product-row {
  display: flex;
  align-items: center;
  gap: .85rem;
}
.n360-review-card__img-link { flex-shrink: 0; }
.n360-review-card__img {
  inline-size: 72px;
  block-size: 72px;
  object-fit: cover;
  border-radius: var(--n360-radius-sm);
  background: var(--n360-green-pale);
}
.n360-review-card__info { flex: 1; min-inline-size: 0; }
.n360-review-card__name {
  font-size: .9rem;
  font-weight: 700;
  margin: 0 0 .35rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.n360-review-card__name a { color: var(--n360-text); text-decoration: none; }
.n360-review-card__name a:hover { color: var(--n360-green); }
.n360-review-card__text {
  font-size: .95rem;
  color: var(--n360-text);
  line-height: 1.6;
  margin: 0;
  font-style: italic;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  position: relative;
  z-index: 2;
}
.n360-review-card__footer { 
  margin-block-start: auto; 
  flex-shrink: 0; 
  background: transparent !important; 
  padding: 0 !important;
}

/* ============================================================
   13. SECTION 9 — BRAND / SUPPLIER STRIP
   ============================================================ */
.n360-brands {
  padding-block: 3rem;
  background: var(--n360-card);
  border-block: 1px solid var(--n360-border);
}
.n360-brands__heading { margin-block-end: 1.5rem; }
.n360-brands__track {
  display: flex;
  align-items: center;
  gap: 3rem;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-block: .5rem;
}
.n360-brands__track::-webkit-scrollbar { display: none; }
.n360-brand-item {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: .75rem;
  text-decoration: none;
}
.n360-brand-item img {
  block-size: 40px;
  inline-size: auto;
  filter: grayscale(1) opacity(.55);
  transition: filter var(--n360-ease);
}
.n360-brand-item:hover img,
.n360-brand-item:focus-visible img { filter: none; }
.n360-brand-item__name {
  font-size: .9rem;
  font-weight: 700;
  color: var(--n360-text-muted);
  white-space: nowrap;
  transition: color var(--n360-ease);
}
.n360-brand-item:hover .n360-brand-item__name { color: var(--n360-green); }

/* ============================================================
   14. SECTION 10 — RECENTLY VIEWED (catalog/session)
   Aimeos renders .catalog-session; we just tighten the wrapper.
   ============================================================ */
.aimeos.catalog-session {
  max-inline-size: 1400px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
  padding-block: 3rem;
}
.aimeos.catalog-session .header-middle h2 {
  font-family: var(--n360-font);
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--n360-text);
}

/* ============================================================
   15. SECTION 11 — NEWSLETTER
   ============================================================ */
.n360-newsletter {
  background: linear-gradient(135deg, var(--n360-green) 0%, #1B4332 100%);
  padding-block: 5rem;
}
.n360-newsletter__inner {
  max-inline-size: 580px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
  text-align: center;
}
.n360-newsletter__eyebrow {
  display: inline-block;
  background: rgba(255,255,255,.13);
  color: var(--n360-green-light);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  padding: .35rem .9rem;
  border-radius: var(--n360-radius-pill);
  margin-block-end: 1.25rem;
}
.n360-newsletter h2 {
  font-size: clamp(1.5rem, 3.5vw, 2.2rem);
  font-weight: 800;
  color: #fff;
  margin: 0 0 .7rem;
  line-height: 1.2;
}
.n360-newsletter p {
  color: rgba(255,255,255,.78);
  font-size: .93rem;
  margin: 0 0 2rem;
  line-height: 1.55;
}
.n360-newsletter__form {
  display: flex;
  gap: .5rem;
  max-inline-size: 440px;
  margin-inline: auto;
}
.n360-newsletter__input {
  flex: 1;
  min-inline-size: 0; /* prevents flex overflow */
  padding: .875rem 1.2rem;
  border-radius: var(--n360-radius-pill);
  border: 2px solid transparent;
  font-size: .9rem;
  font-family: var(--n360-font);
  color: var(--n360-text);
  outline: none;
  transition: border-color var(--n360-ease), box-shadow var(--n360-ease);
}
.n360-newsletter__input:focus {
  border-color: var(--n360-green-light);
  box-shadow: 0 0 0 3px rgba(183,228,199,.4);
}
.n360-newsletter__submit {
  padding: .875rem 1.5rem;
  background: var(--n360-green-light);
  color: var(--n360-green);
  border: none;
  border-radius: var(--n360-radius-pill);
  font-weight: 700;
  font-size: .9rem;
  font-family: var(--n360-font);
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--n360-ease), transform var(--n360-ease), box-shadow var(--n360-ease);
}
.n360-newsletter__submit:hover {
  background: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,.15);
}
.n360-newsletter__submit:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
}
.n360-newsletter__note {
  font-size: .7rem;
  color: rgba(255,255,255,.5);
  margin-block-start: 1.1rem;
}

/* ============================================================
   16. CMS PAGE BLOCKS (cms/page component output)
   ============================================================ */
/* Wraps whatever cms/page renders on the home page */
.aimeos.cms-page { margin: 0; }

/* ============================================================
   17. FOOTER ENHANCEMENTS
   ============================================================ */
footer {
  background: #0f1a10 !important;
  color: rgba(255,255,255,.65) !important;
  font-family: var(--n360-font) !important;
  margin-block-start: 0 !important;
}
footer h2 {
  font-family: var(--n360-font) !important;
  font-size: .68rem !important;
  letter-spacing: .12em !important;
  color: rgba(255,255,255,.35) !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
}
footer a {
  color: rgba(255,255,255,.62) !important;
  text-decoration: none;
  transition: color var(--n360-ease);
}
footer a:hover { color: var(--n360-green-light) !important; }
footer p { color: rgba(255,255,255,.62); line-height: 1.8; }
footer .logo img { 
  /* Removed aggressive brightness filter so the logo displays correctly */
}
footer .social a {
  display: inline-block;
  font-size: .82rem;
  padding: .2rem 0;
}

/* ============================================================
   18. RESPONSIVE — MOBILE-FIRST BREAKPOINTS
   ============================================================ */

/* 600px — 2 columns for products, 3 for cats */
@media (min-width: 600px) {
  .n360-hero__slide { min-block-size: 460px; }
}

/* 768px — tablet */
@media (min-width: 768px) {
  .n360-hero__slide { min-block-size: 500px; }
  .n360-newsletter__form { gap: .6rem; }
}

/* 1024px — desktop */
@media (min-width: 1024px) {
  .n360-products__grid { grid-template-columns: repeat(3, 1fr); }
  .n360-deals__grid    { grid-template-columns: repeat(3, 1fr); }
  .n360-reviews__grid  { grid-template-columns: repeat(3, 1fr); }
}

/* 1200px — large desktop */
@media (min-width: 1200px) {
  .n360-products__grid { grid-template-columns: repeat(4, 1fr); }
  .n360-deals__grid    { grid-template-columns: repeat(4, 1fr); }
  .n360-reviews__grid  { grid-template-columns: repeat(4, 1fr); }
}

/* NARROW — 480px */
@media (max-width: 480px) {
  /* .n360-cats__grid mobile handled by min-width queries */
  .n360-usp__grid  { grid-template-columns: 1fr; }
  .n360-hero__slide { min-block-size: 300px; }
}

/* NEWSLETTER STACK — at 520px phones the row form overflows; stack earlier */
@media (max-width: 520px) {
  .n360-newsletter__form { flex-direction: column; gap: .75rem; }
  .n360-newsletter__input { width: 100%; }
  .n360-newsletter__submit { width: 100%; justify-content: center; }
}

/* HERO content guard on very narrow phones */
@media (max-width: 480px) {
  .n360-hero__content {
    padding-inline: 1rem;
    max-inline-size: 100%;
  }
  .n360-hero__title {
    overflow-wrap: break-word;
    word-break: break-word;
  }
}

/* MINIMUM — 360px */
@media (max-width: 360px) {
  .n360-products__grid   { grid-template-columns: 1fr; }
  .n360-usp__grid        { grid-template-columns: 1fr; }
  .n360-hero__slide      { min-block-size: 240px; }
  .n360-hero__title      { font-size: 1.5rem; }
}

/* ============================================================
   19. RTL SUPPORT
   ============================================================ */
/* Hero overlay gradient flips automatically via logical 'to inline-end' */
/* Star rating row */
[dir="rtl"] .n360-stars { flex-direction: row-reverse; }
/* Back-to-top button */
[dir="rtl"] .back-to-top { inset-inline-end: 1.5rem; inset-inline-start: auto; }
/* Review card quote border */
[dir="rtl"] .n360-review-card__text {
  border-inline-start: none;
  border-inline-end: 3px solid var(--n360-green-pale);
  padding-inline-start: 0;
  padding-inline-end: .75rem;
}

/* Custom Header Search */
/* Search bar — inside collapse div for mobile hamburger toggling.
   On desktop (>=768px) it is pulled out of flex flow and centered
   absolutely within the navbar (which has position: relative). */
.n360-header-search-container {
    flex-grow: 1;
    max-width: 600px;
    margin: 0 1.5rem;
}

/* DESKTOP: Flex centering within the navbar-collapse */
@media (min-width: 992px) {
    .navbar.navbar-top {
        position: relative;
    }
    .n360-header-search-container {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        width: 100%;
        max-width: 650px;
        margin: 0;
        padding: 0;
    }
}

/* SMALL DESKTOP: shrink elements to prevent collision */
@media (min-width: 992px) and (max-width: 1199px) {
    .n360-header-search-container {
        max-width: 380px;
    }
    .navbar-brand img { height: 42px !important; margin-right: 0 !important; }
    .n360-auth-buttons { gap: 0.25rem !important; }
}

/* MOBILE/TABLET: search fills the full collapsed-menu width */
@media (max-width: 991px) {
    .n360-header-search-container {
        position: static;
        transform: none;
        width: 100%;
        max-width: 100%;
        margin: 0.5rem 0;
    }
    .n360-header-search-form {
        height: 40px;
    }
    .n360-search-input { font-size: 13px; }
    .n360-search-dropdown-btn { padding: 0 10px 0 12px; font-size: 13px; }
}
@media (max-width: 480px) {
    #n360-search-cat-text { display: none !important; }
}
.n360-header-search-form {
    display: flex;
    align-items: center;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    background: #fff;
    height: 44px;
}
.n360-header-search-form:focus-within {
    border-color: #1c5e39;
    box-shadow: 0 0 0 2px rgba(28,94,57,0.2);
}
.n360-search-dropdown-btn {
    background: transparent;
    border: none;
    height: 100%;
    padding: 0 16px 0 20px;
    color: #495057;
    font-size: 14px;
    font-weight: 500;
}
.n360-search-dropdown-btn:hover,
.n360-search-dropdown-btn:focus {
    background: transparent;
    color: #1c5e39;
    box-shadow: none;
}
.n360-search-dropdown-btn::after {
    display: none;
}
.n360-search-dropdown-menu {
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    border: 1px solid #e0e0e0;
    padding: 8px 0;
    margin-top: 4px !important;
}
.n360-search-cat-option {
    padding: 8px 16px;
    font-size: 14px;
    color: #333;
}
.n360-search-cat-option:hover {
    background-color: #f8f9fa;
    color: #1c5e39;
}
.n360-search-divider {
    width: 1px;
    height: 24px;
    background-color: #e0e0e0;
}
.n360-search-input {
    flex-grow: 1;
    border: none;
    height: 100%;
    padding: 0 16px;
    font-size: 14px;
    color: #333;
    outline: none;
}
.n360-search-input::placeholder {
    color: #6c757d;
}
.n360-search-btn {
    background: transparent;
    border: none;
    height: 100%;
    padding: 0 16px;
    color: #6c757d;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.n360-search-btn:hover {
    color: #1c5e39;
}


.n360-search-dropdown {
    position: relative;
}
.n360-search-dropdown-menu.show {
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 6px !important;
}


.n360-search-dropdown-menu {
    min-width: max-content;
}
.n360-search-cat-option {
    white-space: nowrap;
}

/* ============================================================
   14. CUSTOM FOOTER 
   ============================================================ */

.n360-footer-wrap {
    background-color: #1c5e39 !important;
    color: #ffffff;
    font-family: var(--n360-font);
}

.n360-footer-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 768px) {
    .n360-footer-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 992px) {
    .n360-footer-grid {
        grid-template-columns: 2fr 1fr 1fr 1fr;
    }
}

.n360-footer-brand img {
    height: 40px;
    width: auto;
    margin-right: 0.75rem;
}

.n360-logo-text-footer {
    font-family: "Playfair Display", "Georgia", serif;
    font-style: italic;
    font-size: 1.5rem;
    font-weight: 500;
    color: #ffffff;
}

.n360-footer-text {
    font-size: 0.9rem;
    line-height: 1.5;
    color: #ffffff;
    margin: 1.5rem 0 !important;
}

.n360-footer-socials {
    display: flex !important;
    flex-direction: row !important;
    gap: 0.5rem;
}

.n360-social-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    transition: all 0.2s ease;
}

.n360-social-btn:hover {
    background-color: rgba(255, 255, 255, 0.2);
    color: #ffffff;
    transform: translateY(-2px);
}

.n360-footer-title {
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 1.25rem;
    color: #ffffff;
}

.n360-footer-links,
.n360-footer-contact {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
}

.n360-footer-links li,
.n360-footer-contact li {
    margin-bottom: 1rem;
    line-height: 1.5;
}

.n360-footer-links a,
.n360-footer-contact span {
    color: #ffffff !important;
    text-decoration: none;
    font-size: 0.9rem;
    transition: color 0.2s ease;
}

.n360-footer-links a:hover {
    color: var(--n360-gold, #E9C46A);
}

.n360-footer-bottom-bar {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.7);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* Instagram Banner */
.n360-footer-ig-section {
    background: #f8faf9;
    padding-bottom: 0;
}

.n360-footer-ig-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
}

.n360-footer-ig-item {
    aspect-ratio: 1;
    overflow: hidden;
}

.n360-footer-ig-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.n360-footer-ig-item:hover img {
    transform: scale(1.05);
}

.n360-footer-ig-btn-wrap {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
}

.n360-footer-ig-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(4px);
    color: #005a49;
    padding: 0.75rem 1.5rem;
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.9rem;
    transition: all 0.2s ease;
}

.n360-footer-ig-btn:hover {
    transform: translateY(-2px);
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 10px 25px rgba(0,0,0,0.1) !important;
    color: #123c27;
}

@media (max-width: 768px) {
    .n360-footer-ig-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.n360-footer-bottom-bar-inner {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding-top: 20px;
}

@media (max-width: 768px) {
    .n360-footer-bottom-bar-inner {
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 0.5rem;
        text-align: center;
    }
    .n360-footer-copy,
    .n360-footer-legal {
        width: 100%;
        text-align: center;
    }
}

.n360-footer-legal,
.n360-footer-legal a {
    color: #ffffff !important;
}

/* ============================================================
   HEADER DROPDOWN FIX (Profile / Account Menu)
   ============================================================ */
.navbar.navbar-top .dropdown-menu {
    background-color: #ffffff !important;
    border: 1px solid var(--n360-border) !important;
    box-shadow: var(--n360-shadow-lg) !important;
}

.navbar.navbar-top .dropdown-menu .dropdown-item a,
.navbar.navbar-top .dropdown-menu .dropdown-item button,
.navbar.navbar-top .dropdown-menu .dropdown-item span,
.navbar.navbar-top .dropdown-menu .dropdown-item {
    color: #1B1B1B !important;
    background: transparent !important;
}

.navbar.navbar-top .dropdown-menu .dropdown-item:hover {
    background-color: #f8f9fa !important;
}

.navbar.navbar-top .dropdown-menu .dropdown-item:hover a,
.navbar.navbar-top .dropdown-menu .dropdown-item:hover button,
.navbar.navbar-top .dropdown-menu .dropdown-item:hover span {
    color: var(--n360-green) !important;
}

/* ============================================================
   CATEGORY HEAD IMAGE (Shop List)
   ============================================================ */
.aimeos.catalog-list .head-image {
    width: 100%;
    max-height: 280px;
    overflow: hidden;
    border-radius: var(--n360-radius, 12px);
    margin-bottom: 2rem;
    box-shadow: var(--n360-shadow-card, 0 1px 4px rgba(0,0,0,.06));
    background: var(--n360-green-pale);
    display: flex;
    align-items: center;
    justify-content: center;
}

.aimeos.catalog-list .head-image img {
    width: 100%;
    height: 100%;
    max-height: 280px;
    object-fit: contain; /* Changed from cover to contain to prevent cropping */
    object-position: center;
}

@media (max-width: 768px) {
    .aimeos.catalog-list .head-image,
    .aimeos.catalog-list .head-image img {
        max-height: 160px;
        border-radius: var(--n360-radius-sm, 6px);
        margin-bottom: 1.5rem;
    }
}

/* ============================================================
   HIDE DEFAULT AIMEOS BASKET ICON
   ============================================================ */
.btn-action::before,
.addbasket::before,
.btn-primary.btn-action::before {
    display: none !important;
}

/* ============================================================
   PINNED PRODUCT BUTTON
   ============================================================ */
.n360-product-card__pin-wrap {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 10;
}

.n360-product-card__pin-wrap form {
    margin: 0;
    padding: 0;
}

.n360-btn-pin {
    background: #ffffff;
    border: 1px solid var(--n360-border, #E5EDE9);
    border-radius: 50%;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--n360-text-muted, #6c757d);
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,0.08);
    transition: all 0.2s ease;
    padding: 0;
}

.n360-btn-pin:hover {
    color: var(--n360-green, #1c5e39);
    transform: scale(1.05);
    border-color: var(--n360-green, #1c5e39);
}

.n360-btn-pin svg {
    pointer-events: none;
}

.n360-btn-pin--active {
    background: var(--n360-green, #1c5e39);
    color: #ffffff;
    border-color: var(--n360-green, #1c5e39);
}

.n360-btn-pin--active:hover {
    background: #154529; /* Darker green */
    border-color: #154529;
    color: #ffffff;
}

/* ============================================================
   10. AIMEOS SIDEBAR FILTER ENHANCEMENTS (V3 - MATCHING REQS)
   ============================================================ */

/* A. Global Container & Sticky Desktop */
.catalog-filter {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
}

/* Mobile Filter Drawer Toggle Button */
.n360-filter-toggle {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--n360-green);
    color: #fff;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: var(--n360-radius-sm);
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 0;
    width: 100%;
    justify-content: center;
}

@media (max-width: 991px) {
    .aimeos.catalog-filter {
        margin-bottom: 1rem !important; /* Override large default margin */
    }
}

@media (min-width: 1024px) {
    .n360-filter-toggle, .n360-filter-backdrop, .n360-filter-close { display: none !important; }
}

/* Filter Drawer (Mobile/Tablet) */
@media (max-width: 1023px) {
    .n360-filter-drawer {
        position: fixed;
        top: 0;
        left: -100%;
        width: 320px;
        max-width: 85vw;
        height: 100vh;
        height: 100dvh;
        background: #f8faf9;
        z-index: 1050;
        overflow-y: auto;
        padding: 1.5rem !important;
        transition: left 0.3s ease;
        box-shadow: 2px 0 12px rgba(0,0,0,0.15);
    }
    .n360-filter-drawer.is-open {
        left: 0;
    }
    .n360-filter-backdrop {
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        height: 100dvh;
        background: rgba(0,0,0,0.5);
        z-index: 1040;
        display: none;
    }
    .n360-filter-backdrop.is-open {
        display: block;
    }
    .n360-filter-close {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 1.5rem;
        font-size: 1.2rem;
        font-weight: 700;
        color: var(--n360-text);
        padding-bottom: 1rem;
        border-bottom: 1px solid var(--n360-border);
    }
    .n360-close-btn {
        background: none;
        border: none;
        padding: 0;
        color: var(--n360-text-muted);
    }
}

@media (min-width: 1024px) {
    .catalog-filter {
        position: sticky;
        top: 80px;
        width: 100%;
        /* The container takes up the col-lg-3 width automatically from Bootstrap */
    }
}

.catalog-filter-actions {
    text-align: right;
    margin-bottom: 16px;
}
.catalog-filter-actions .clear-all-filters {
    display: inline-block;
    padding: 6px 16px;
    background: #fff;
    border: 1px solid var(--n360-green);
    border-radius: 20px;
    color: var(--n360-green);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    transition: all 150ms ease;
    box-shadow: 0 2px 4px rgba(28,94,57,0.05);
}
.catalog-filter-actions .clear-all-filters:hover {
    background: var(--n360-green) !important;
    color: #ffffff !important;
}

.catalog-filter .section {
    background: #ffffff !important;
    border: 1px solid rgba(28,94,57,0.08) !important;
    border-radius: 12px !important;
    padding: 16px 20px !important;
    margin-bottom: 16px !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.03) !important;
}

/* Base header for all filter cards */
.catalog-filter .header-name,
.catalog-filter-tree .header .name {
    font-family: var(--n360-font) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--n360-text) !important;
    margin: 0 0 16px 0 !important;
    padding: 0 0 10px 0 !important;
    text-transform: none !important;
    text-align: left !important;
    border: none !important;
    border-bottom: 1px solid #f0f0f0 !important;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    width: 100% !important;
}

/* Ensure tree header behaves like other headers */
.catalog-filter-tree .header {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}
.catalog-filter-tree .header > div {
    display: none !important; /* hide default cols */
}
.catalog-filter-tree .header .name {
    display: inline-block !important; /* show only the name col */
}

/* Base input focus ring for all filters */
.catalog-filter input:focus {
    outline: none !important;
    box-shadow: 0 0 0 2px var(--n360-green-pale) !important;
    border-color: var(--n360-green) !important;
}

/* B. Search Inputs */
.catalog-filter-search .input-group .form-control,
.catalog-filter-search .form-control,
.catalog-filter-supplier .search {
    height: 44px !important;
    border: 1px solid rgba(28,94,57,0.15) !important;
    border-radius: 8px !important;
    padding: 8px 36px 8px 12px !important;
    font-size: 14px;
    color: var(--n360-text);
    background-color: #fdfdfd !important;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%236B7280" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>') !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    background-size: 16px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    transition: all 200ms ease;
    box-shadow: none !important;
}
.catalog-filter-search .form-control::placeholder,
.catalog-filter-supplier .search::placeholder {
    color: var(--n360-text-muted);
}
.catalog-filter-search .form-control:hover,
.catalog-filter-supplier .search:hover {
    border-color: var(--n360-green);
    background-color: var(--n360-green-pale) !important;
}

.catalog-filter-search .search-lists,
.catalog-filter-supplier .supplier-lists {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.catalog-filter-search .input-group {
    display: flex;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
.catalog-filter-search .btn-search,
.catalog-filter-search .reset {
    display: none !important;
}

/* Force filter sections to always remain open on mobile */
@media (max-width: 991px) {
    .catalog-filter-attribute .attribute-lists,
    .catalog-filter-supplier .supplier-lists,
    .catalog-filter-search .search-lists,
    .catalog-filter-price .price-lists,
    .catalog-filter-tree .cat-list {
        display: block !important;
    }
}

/* C. Price Filter */
.catalog-filter-price .price-lists {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.catalog-filter-price .price-input {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 8px;
    align-items: center;
    width: 100% !important;
}
.catalog-filter-price .price-input::before {
    content: "-";
    grid-column: 2;
    grid-row: 1;
    color: var(--n360-text-muted);
}
.catalog-filter-price .price-low { grid-column: 1; grid-row: 1; }
.catalog-filter-price .price-high { grid-column: 3; grid-row: 1; }

.catalog-filter-price .price-low,
.catalog-filter-price .price-high {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    height: 44px !important;
    border: 1px solid rgba(28,94,57,0.15) !important;
    background-color: #fdfdfd !important;
    border-radius: 8px !important;
    padding: 8px !important;
    text-align: center;
    font-size: 14px;
    color: var(--n360-text);
    transition: all 200ms ease;
}
.catalog-filter-price .price-low:hover,
.catalog-filter-price .price-high:hover {
    border-color: var(--n360-green);
    background-color: var(--n360-green-pale);
}

.catalog-filter-price .price-slider {
    grid-column: span 3;
    width: 100%;
    margin-top: 8px;
    accent-color: var(--n360-green);
}

.catalog-filter-price .btn-primary {
    background-color: var(--n360-green) !important;
    border: none !important;
    border-radius: 25px !important;
    padding: 10px 16px !important;
    font-size: 14px;
    font-weight: 600;
    color: #fff !important;
    transition: all 200ms ease;
    width: 100%;
    margin-top: 10px;
    cursor: pointer;
}
.catalog-filter-price .btn-primary:hover {
    background-color: var(--n360-green-mid) !important;
}
.catalog-filter-price .btn:not(.btn-primary) {
    background-color: transparent !important;
    border: none !important;
    padding: 8px 16px !important;
    font-weight: 500;
    color: var(--n360-text-muted) !important;
    width: 100%;
    text-align: center;
    text-decoration: underline;
    margin-top: -5px;
    display: block !important;
}
.catalog-filter-price .btn:not(.btn-primary):hover {
    color: var(--n360-green) !important;
}

/* D. Suppliers */
.catalog-filter-supplier .supplier-lists {
    display: flex;
    flex-direction: column;
}
.catalog-filter-supplier .search {
    margin-bottom: 16px;
}
.catalog-filter-supplier .attr-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    max-height: 220px;
    overflow-y: auto;
}
.catalog-filter-supplier .attr-list::-webkit-scrollbar {
    width: 6px;
}
.catalog-filter-supplier .attr-list::-webkit-scrollbar-thumb {
    background-color: var(--n360-border);
    border-radius: 4px;
}

.catalog-filter-supplier li {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 6px 8px;
    border-radius: 4px;
    transition: background-color 150ms ease;
}
.catalog-filter-supplier li:hover {
    background-color: var(--n360-green-pale);
}

.catalog-filter-supplier input[type="checkbox"] {
    appearance: none;
    background-color: #fff;
    margin: 0 12px 0 0;
    width: 18px;
    height: 18px;
    border: 1.5px solid rgba(28,94,57,0.3); /* Subtle green border */
    border-radius: 4px;
    display: grid;
    place-content: center;
    cursor: pointer;
    transition: all 150ms ease;
    flex-shrink: 0;
}
.catalog-filter-supplier input[type="checkbox"]:hover {
    border-color: var(--n360-green);
}
.catalog-filter-supplier input[type="checkbox"]::before {
    content: "";
    width: 10px;
    height: 10px;
    transform: scale(0);
    transition: 120ms transform ease-in-out;
    background-color: #fff;
    clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}
.catalog-filter-supplier input[type="checkbox"]:checked {
    background-color: var(--n360-green);
    border-color: var(--n360-green);
}
.catalog-filter-supplier input[type="checkbox"]:checked::before {
    transform: scale(1);
}

.catalog-filter-supplier .attr-name {
    margin: 0;
    font-size: 14px;
    font-weight: 400;
    color: var(--n360-text);
    flex-grow: 1;
    cursor: pointer;
}
.catalog-filter-supplier .count {
    font-size: 12px;
    color: var(--n360-text-muted);
    background: var(--n360-bg);
    padding: 2px 8px;
    border-radius: 10px;
    margin-left: 8px;
}

/* E. Categories Tree */
.catalog-filter-tree .list-container {
    border: none !important;
    padding: 0 !important;
}
.catalog-filter-tree .cat-item {
    margin: 0;
    border: none !important;
}
.catalog-filter-tree .item-links {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.catalog-filter-tree .cat-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px !important;
    font-size: 14px;
    color: var(--n360-text) !important;
    text-decoration: none;
    border-left: 3px solid transparent;
    transition: all 150ms ease;
    width: 100%;
}
.catalog-filter-tree .cat-link:hover {
    background-color: var(--n360-green-pale) !important;
    color: var(--n360-green) !important;
}
.catalog-filter-tree .cat-link.active {
    background-color: var(--n360-green-pale) !important;
    color: var(--n360-green) !important;
    font-weight: 600 !important;
    border-left-color: var(--n360-green);
}
.catalog-filter-tree .cat-list .cat-list .cat-link {
    padding-left: 24px !important;
}
.catalog-filter-tree .cat-list .cat-list .cat-list .cat-link {
    padding-left: 36px !important;
}
.catalog-filter-tree .next {
    display: none !important; /* Hide Aimeos default +/- toggles */
}

/* ============================================================
   11. MOBILE TOOLBAR FIX (Sorting & Toggles)
   ============================================================ */
@media (max-width: 767px) {
    .aimeos.catalog-list .list-head {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        margin-bottom: 1.25rem;
        padding: 0;
    }
    .aimeos.catalog-list .list-sort, 
    .aimeos.catalog-list .list-type {
        margin: 0 !important;
        flex: 0 0 auto;
    }
    .aimeos.catalog-list .list-sort select.form-select {
        width: 100% !important;
        max-width: 200px;
        height: 38px !important;
        min-height: 38px !important;
        padding: 0.25rem 2rem 0.25rem 0.75rem !important;
        font-size: 0.85rem !important;
    }
    .aimeos.catalog-list .list-type .btn {
        padding: 0.4rem 0.6rem !important;
    }
}

/* ============================================================
   12. FOOTER MOBILE TAP TARGETS
   ============================================================ */
@media (max-width: 767px) {
    .n360-footer-links a {
        display: inline-block;
        padding: 0.5rem 0;
        min-height: 44px;
        line-height: 28px;
    }
    .n360-footer-links li {
        margin-bottom: 0.25rem;
    }
}

/* ============================================================
   13. BASKET MINI DRAWER (REFINED & COMPACT)
   ============================================================ */
.basket-mini .zeynep {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    bottom: 0 !important;
    width: 390px !important;
    max-width: 100vw !important;
    background: #ffffff !important;
    z-index: 1050 !important;
    transform: translateX(100%) !important;
    transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.28s ease !important;
    display: flex !important;
    flex-direction: column !important;
    box-shadow: none !important;
    height: 100vh !important;
    max-height: 100vh !important;
    overflow: hidden !important;
}
.basket-mini .zeynep.opened {
    transform: translateX(0) !important;
    box-shadow: -10px 0 40px rgba(0,0,0,0.18) !important;
}

/* Backdrop */
.basket-mini .aimeos-overlay-offscreen {
    background: rgba(0,0,0,0.45) !important;
    backdrop-filter: blur(3px) !important;
    z-index: 1040 !important;
    transition: opacity 0.28s ease !important;
}

/* Drawer Header */
.n360-basket-drawer__header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0.85rem 1.15rem !important;
    border-bottom: 1px solid var(--n360-border) !important;
    background: #ffffff !important;
    margin: 0 !important;
    height: auto !important;
    flex-shrink: 0 !important;
}
.n360-basket-drawer__title {
    font-size: 1.1rem !important;
    font-weight: 800 !important;
    color: var(--n360-text) !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    padding: 0 !important;
    margin: 0 !important;
    letter-spacing: -0.01em !important;
}
.n360-basket-drawer__count {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--n360-green-pale) !important;
    color: var(--n360-green) !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    padding: 0.15rem 0.55rem !important;
    border-radius: 999px !important;
    line-height: 1.2 !important;
}
.n360-basket-drawer__close {
    color: var(--n360-text-muted) !important;
    padding: 0.35rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    transition: background 0.15s, color 0.15s, transform 0.15s !important;
    text-decoration: none !important;
    background: transparent !important;
    cursor: pointer !important;
}
.n360-basket-drawer__close:hover {
    background: #f3f4f6 !important;
    color: var(--n360-text) !important;
    transform: rotate(90deg) !important;
}
.n360-basket-drawer__close::before {
    display: none !important;
}

/* Drawer Content & Items Container */
.n360-basket-drawer__content {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
    background: #ffffff !important;
}
.n360-basket-drawer__items {
    flex: 1 1 auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    min-height: 0 !important;
    scrollbar-width: thin !important;
    scrollbar-color: #cbd5e1 transparent !important;
}
.n360-basket-drawer__items::-webkit-scrollbar {
    width: 5px !important;
}
.n360-basket-drawer__items::-webkit-scrollbar-track {
    background: transparent !important;
}
.n360-basket-drawer__items::-webkit-scrollbar-thumb {
    background: #cbd5e1 !important;
    border-radius: 4px !important;
}
.n360-basket-drawer__items::-webkit-scrollbar-thumb:hover {
    background: #9ca3af !important;
}

/* Compact Horizontal Item Row */
.n360-basket-item {
    display: flex !important;
    align-items: center !important;
    gap: 0.85rem !important;
    padding: 0.75rem 1.15rem !important;
    background: #ffffff !important;
    border: none !important;
    border-bottom: 1px solid #f1f5f9 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transition: background 0.15s ease !important;
    margin: 0 !important;
    position: relative !important;
}
.n360-basket-item.prototype {
    display: none !important;
}
.n360-basket-item:hover {
    background: #fafbfb !important;
}

/* Thumbnail */
.n360-basket-item__img-wrap {
    width: 54px !important;
    height: 54px !important;
    flex-shrink: 0 !important;
    background: #f8fafc !important;
    border: 1px solid #edf2f7 !important;
    border-radius: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--n360-green-mid) !important;
    overflow: hidden !important;
    padding: 3px !important;
}
.n360-basket-item__img {
    max-width: 100% !important;
    max-height: 100% !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
}
.n360-basket-item__placeholder {
    color: #cbd5e1 !important;
}

/* Item Body */
.n360-basket-item__body {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.35rem !important;
}
.n360-basket-item__top-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 0.5rem !important;
}
.n360-basket-item__name {
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    color: var(--n360-text) !important;
    line-height: 1.25 !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 1 1 auto !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
.n360-basket-item__price {
    font-weight: 700 !important;
    color: var(--n360-green) !important;
    font-size: 0.9rem !important;
    padding: 0 !important;
    text-align: right !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
}
.n360-basket-item__bottom-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}
.n360-basket-item__stepper-wrap {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
}

/* Stepper (crisp, tactile pill matching basket page .modern-qty-group) */
.n360-mini-qty-group {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    justify-content: space-between !important;
    gap: 0 !important;
    background: #ffffff !important;
    border: 1px solid #d1d5db !important;
    border-radius: var(--n360-radius-pill, 999px) !important;
    height: 28px !important;
    width: 86px !important;
    min-width: 86px !important;
    max-width: 86px !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}
.n360-mini-qty-group:hover {
    border-color: #9ca3af !important;
}
.n360-mini-qty-btn {
    flex: 0 0 26px !important;
    width: 26px !important;
    min-width: 26px !important;
    max-width: 26px !important;
    height: 100% !important;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    color: var(--n360-green, #154d2e) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    padding: 0 !important;
    margin: 0 !important;
    text-decoration: none !important;
    transition: background-color 0.15s ease, color 0.15s ease, transform 0.1s ease !important;
}
.n360-mini-qty-btn:hover:not(.disabled) {
    background-color: var(--n360-green-pale, #f0faf3) !important;
    color: var(--n360-green, #154d2e) !important;
}
.n360-mini-qty-btn:active:not(.disabled) {
    background-color: #dcf2e3 !important;
    transform: scale(0.92) !important;
}
.n360-mini-qty-btn.disabled {
    opacity: 0.4 !important;
    color: #9ca3af !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}
.n360-mini-qty-btn svg {
    display: block !important;
    width: 10px !important;
    height: 10px !important;
    stroke: currentColor !important;
    pointer-events: none !important;
}
.n360-mini-qty-val {
    flex: 0 0 34px !important;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 100% !important;
    border: none !important;
    border-left: 1px solid #e5e7eb !important;
    border-right: 1px solid #e5e7eb !important;
    background: #ffffff !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    font-size: 0.825rem !important;
    font-weight: 700 !important;
    color: #111827 !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
}
.n360-mini-qty-static {
    font-size: 0.825rem !important;
    font-weight: 700 !important;
    color: #111827 !important;
}
.n360-basket-item__unit-price {
    font-size: 0.725rem !important;
    color: var(--n360-text-muted, #6b7280) !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
}

/* Delete Action (Red Icon matching Basket Page .minibutton.delete) */
.n360-basket-item__action {
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
}
.n360-basket-item__delete-btn,
.n360-basket-item__action .delete {
    background-color: transparent !important;
    border: 1px solid transparent !important;
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    padding: 0 !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #ef4444 !important;
    cursor: pointer !important;
    border-radius: 6px !important;
    text-decoration: none !important;
    transition: all 0.15s ease !important;
    box-shadow: none !important;
}
.n360-basket-item__delete-btn:hover,
.n360-basket-item__action .delete:hover {
    background-color: #fee2e2 !important;
    border-color: #fecaca !important;
    color: #dc2626 !important;
    transform: scale(1.08) !important;
}
.n360-basket-item__delete-btn::before,
.n360-basket-item__delete-btn::after,
.n360-basket-item__action .delete::before,
.n360-basket-item__action .delete::after {
    display: none !important;
    content: none !important;
}
.n360-basket-item__delete-btn svg,
.n360-basket-item__action .delete svg {
    width: 15px !important;
    height: 15px !important;
    stroke: currentColor !important;
    display: block !important;
    pointer-events: none !important;
}

/* Empty State */
.n360-basket-drawer__empty {
    display: none;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 3rem 1.5rem !important;
    color: var(--n360-text-muted) !important;
}
.n360-basket-drawer__empty.show,
.n360-basket-drawer.is-empty .n360-basket-drawer__empty,
.n360-basket-drawer--empty .n360-basket-drawer__empty {
    display: flex !important;
}
.n360-basket-drawer:not(.is-empty) .n360-basket-drawer__empty:not(.show) {
    display: none !important;
}
.n360-basket-drawer.is-empty .n360-basket-drawer__footer {
    display: none !important;
}
.n360-basket-drawer__empty-icon {
    width: 68px !important;
    height: 68px !important;
    border-radius: 50% !important;
    background: #f3f4f6 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #9ca3af !important;
    margin-bottom: 1rem !important;
}
.n360-basket-drawer__empty-title {
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    color: var(--n360-text) !important;
    margin: 0 0 0.4rem 0 !important;
}
.n360-basket-drawer__empty-subtitle {
    font-size: 0.85rem !important;
    color: var(--n360-text-muted) !important;
    margin: 0 0 1.25rem 0 !important;
    max-width: 250px !important;
    line-height: 1.4 !important;
}
.n360-basket-drawer__empty-btn {
    min-height: 40px !important;
    padding: 0.5rem 1.35rem !important;
    font-size: 0.85rem !important;
}

/* Footer Totals & Summary */
.n360-basket-drawer__footer {
    padding: 0.85rem 1.15rem 0.5rem !important;
    background: #ffffff !important;
    border-top: 1px solid var(--n360-border) !important;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.04) !important;
    margin-top: auto !important;
    flex-shrink: 0 !important;
}
.n360-basket-drawer__summary-title {
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
    color: var(--n360-text-muted, #6b7280) !important;
    margin-bottom: 0.65rem !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
}
.n360-basket-drawer__summary-title::after {
    content: "" !important;
    flex: 1 !important;
    height: 1px !important;
    background: #e5e7eb !important;
}
.n360-basket-drawer__summary-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 0.35rem !important;
    background: transparent !important;
}
.n360-basket-drawer__summary-label {
    color: var(--n360-text-muted) !important;
    font-size: 0.85rem !important;
    font-weight: 500 !important;
    padding: 0 !important;
    text-align: left !important;
}
.n360-basket-drawer__summary-val {
    font-weight: 600 !important;
    color: var(--n360-text) !important;
    font-size: 0.875rem !important;
    padding: 0 !important;
    text-align: right !important;
}

/* Subtle clean divider for drawer total (replaces harsh green bar) */
.aimeos.basket-mini .n360-basket-drawer__total,
.basket-mini .n360-basket-drawer__total,
.basket-mini .total,
.basket-mini-product .total {
    margin-top: 0.5rem !important;
    margin-bottom: 0.35rem !important;
    padding-top: 0.65rem !important;
    padding-bottom: 0 !important;
    border-top: 1px solid #e5e7eb !important;
    background: transparent !important;
    box-shadow: none !important;
}
.aimeos.basket-mini .n360-basket-drawer__total .n360-basket-drawer__summary-label,
.basket-mini .total .name {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
}
.aimeos.basket-mini .n360-basket-drawer__total .n360-basket-drawer__summary-val,
.basket-mini .total .price {
    font-size: 1.15rem !important;
    font-weight: 800 !important;
    color: var(--n360-green, #154d2e) !important;
}
.n360-basket-drawer__note {
    font-size: 0.725rem !important;
    color: var(--n360-text-muted) !important;
    text-align: center !important;
    margin: 0.25rem 0 0.65rem 0 !important;
}

/* Action Buttons (Side-by-Side Compact) */
.n360-basket-drawer__actions {
    display: grid !important;
    grid-template-columns: 1fr 1.25fr !important;
    gap: 0.65rem !important;
    align-items: center !important;
}
.n360-btn--cart-outline {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    padding: 0.45rem 0.85rem !important;
    border-radius: var(--n360-radius-pill) !important;
    border: 1.5px solid var(--n360-green) !important;
    background: transparent !important;
    color: var(--n360-green) !important;
    font-family: var(--n360-font) !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    transition: all 0.18s ease !important;
    cursor: pointer !important;
    white-space: nowrap !important;
}
.n360-btn--cart-outline:hover {
    background: var(--n360-green-pale) !important;
    color: var(--n360-green) !important;
}
.n360-btn--cart-checkout {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.4rem !important;
    min-height: 42px !important;
    padding: 0.45rem 1rem !important;
    border-radius: var(--n360-radius-pill) !important;
    border: 1.5px solid var(--n360-green) !important;
    background: var(--n360-green) !important;
    color: #ffffff !important;
    font-family: var(--n360-font) !important;
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    transition: all 0.18s ease !important;
    box-shadow: 0 3px 10px rgba(28, 94, 57, 0.22) !important;
    cursor: pointer !important;
    white-space: nowrap !important;
}
.n360-btn--cart-checkout:hover {
    background: #15462a !important;
    border-color: #15462a !important;
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(28, 94, 57, 0.32) !important;
    transform: translateY(-1px) !important;
}
.n360-btn--cart-checkout svg {
    transition: transform 0.18s ease !important;
}
.n360-btn--cart-checkout:hover svg {
    transform: translateX(2px) !important;
}

/* Mobile & Narrow Screen Support */
@media (max-width: 480px) {
    .basket-mini .zeynep {
        width: 100vw !important;
    }
    .n360-basket-drawer__footer {
        padding-bottom: max(1.15rem, env(safe-area-inset-bottom)) !important;
    }
}
@media (max-width: 350px) {
    .n360-basket-drawer__actions {
        grid-template-columns: 1fr !important;
    }
}

/* Reset Aimeos Defaults */
.basket-mini-product .delivery .name::before,
.basket-mini-product .total::before,
.basket-mini-product .total .name::before { display: none !important; content: none !important; }
.basket-mini-product .total { background: transparent !important; }
.n360-basket-drawer__title::before { display: none !important; }
.basket-mini .zeynep .header.n360-basket-drawer__header {
    flex-direction: row !important;
}
.basket-mini .zeynep .header .close,
.basket-mini .zeynep .header .name {
    padding: 0 !important;
    line-height: inherit !important;
    text-align: left !important;
}

.n360-basket-item__action .delete svg { pointer-events: none !important; }

/* ============================================================
   BASKET POPUP REDESIGN (AIMEOS)
   ============================================================ */

/* Popup wrapper styling (only apply when NOT on the full basket page) */
.aimeos-container .aimeos.basket-standard {
    background: rgba(255, 255, 255, 0.95) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-radius: 16px !important;
    box-shadow: 0 15px 35px rgba(0,0,0,0.1), 0 0 0 1px rgba(255,255,255,0.6) !important;
    padding: 1.25rem 1.5rem !important;
    position: relative;
    margin: 0;
    max-width: 100%;
}

/* General basket font (applies everywhere) */
.aimeos.basket-standard {
    font-family: var(--n360-font);
}

/* Close button */
.aimeos.basket-standard .n360-basket-modal-close {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    color: var(--n360-text-muted);
    z-index: 10;
    transition: color var(--n360-ease);
}
.aimeos.basket-standard .n360-basket-modal-close:hover {
    color: var(--n360-red);
}

/* Headings */
.aimeos.basket-standard h2 {
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: 0;
    margin-bottom: 0;
    color: var(--n360-green);
    text-transform: uppercase;
}

.aimeos.basket-standard .row.header,
.aimeos.basket-standard .basket-standard-coupon .header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: none !important;
}

.aimeos.basket-standard .basket-save {
    display: flex;
    justify-content: flex-end;
}

/* Modern pill-shaped input group for Save Basket */
.aimeos.basket-standard .modern-save-group {
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    border-radius: var(--n360-radius-pill);
    overflow: hidden;
    border: 1px solid var(--n360-border);
    max-width: 350px;
    margin-left: auto;
}

/* Inputs */
.aimeos.basket-standard .form-control {
    border: 1px solid var(--n360-border) !important;
    border-radius: var(--n360-radius-sm) !important;
    padding: 0.5rem 1rem !important;
    font-family: inherit;
}

.aimeos.basket-standard .modern-save-group .modern-input {
    border: none !important;
    border-radius: 0 !important;
    padding: 0.5rem 1.25rem !important;
    box-shadow: none !important;
    outline: none !important;
    width: auto;
    flex: 1;
}

.aimeos.basket-standard .modern-save-group .modern-btn {
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0.5rem 1.5rem !important;
}

/* Remove default Aimeos bottom borders from Coupon input group */
.aimeos.basket-standard .basket-standard-coupon .input-group,
.aimeos.basket-standard .basket-standard-coupon .header,
.aimeos.basket-standard .basket-save.input-group {
    border-bottom: none !important;
}

/* Buttons */
.aimeos.basket-standard .btn,
.aimeos.basket-standard .btn-primary,
.aimeos.basket-standard .btn-update,
.aimeos.basket-standard .btn-action {
    background-color: var(--n360-green) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--n360-radius-pill) !important;
    padding: 0.5rem 1.5rem !important;
    font-weight: 600 !important;
    transition: background-color var(--n360-ease) !important;
    text-transform: none !important;
    text-decoration: none !important;
}
.aimeos.basket-standard .btn:hover,
.aimeos.basket-standard .btn-primary:hover,
.aimeos.basket-standard .btn-update:hover,
.aimeos.basket-standard .btn-action:hover {
    background-color: var(--n360-green-mid) !important;
}

/* Specific Checkout btn */
.aimeos.basket-standard .button-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-top: 1.5rem;
}
.aimeos.basket-standard .button-group .btn-action,
.aimeos.basket-standard .button-group .btn-back,
.aimeos.basket-standard .button-group .btn-update,
.aimeos.basket-standard .button-group .btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .45rem !important;
    width: auto !important;
    min-width: 170px !important;
    max-width: 250px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
    padding: 0 1.4rem !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    border-radius: var(--n360-radius-pill) !important;
    white-space: nowrap !important;
}
@media (max-width: 576px) {
    .aimeos.basket-standard .button-group {
        flex-direction: column-reverse;
        align-items: stretch;
    }
    .aimeos.basket-standard .button-group .btn-action,
    .aimeos.basket-standard .button-group .btn-back,
    .aimeos.basket-standard .button-group .btn-update,
    .aimeos.basket-standard .button-group .btn {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }
}

/* Table / Grid list */
.aimeos .common-summary-detail {
    margin-top: 1rem;
    margin-bottom: 2rem;
}

/* Table Header Row (Quantity, Unit price, Total) */
.aimeos .common-summary-detail .headline {
    background: transparent !important;
    border-bottom: 2px solid var(--n360-green) !important;
    padding-bottom: 0.75rem !important;
    padding-left: calc(1.25rem + 1px) !important;
    padding-right: calc(1.25rem + 1px) !important;
    margin-bottom: 1.5rem !important;
    border-top: none !important;
    display: flex !important;
    align-items: center !important;
}
.aimeos .common-summary-detail .headline > div,
.aimeos .common-summary-detail .headline .col-10,
.aimeos .common-summary-detail .headline .col-sm-5,
.aimeos .common-summary-detail .headline .quantity,
.aimeos .common-summary-detail .headline .unitprice,
.aimeos .common-summary-detail .headline .price {
    color: var(--n360-green) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.05em !important;
}

/* Align totals block with padded product items */
.aimeos .common-summary-detail .subtotal,
.aimeos .common-summary-detail .delivery,
.aimeos .common-summary-detail .payment,
.aimeos .common-summary-detail .total,
.aimeos .common-summary-detail .tax,
.aimeos .common-summary-detail .rebate {
    padding-left: calc(1.25rem + 1px) !important;
    padding-right: calc(1.25rem + 1px) !important;
    padding-block: 0.35rem !important;
    font-size: 0.95rem !important;
    color: var(--n360-text) !important;
}

/* Brand Total row styling (matches checkout summary) */
.aimeos .common-summary-detail .total {
    background: transparent !important;
    font-weight: 800 !important;
    font-size: 1.25rem !important;
    border-top: 2px solid var(--n360-green) !important;
    padding-top: 0.85rem !important;
    padding-bottom: 0.85rem !important;
    margin-top: 0.5rem !important;
    color: var(--n360-green) !important;
}
.aimeos .common-summary-detail .total .quantity {
    color: var(--n360-text-muted) !important;
    font-weight: 600 !important;
    font-size: 0.92rem !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
}
.aimeos .common-summary-detail .total .total-text {
    color: var(--n360-green) !important;
    font-weight: 800 !important;
    font-size: 1.25rem !important;
}
.aimeos .common-summary-detail .total .price {
    color: var(--n360-green) !important;
    font-weight: 800 !important;
    font-size: 1.25rem !important;
}
.aimeos .common-summary-detail .tax {
    font-size: 0.95rem !important;
    padding-block: 0.35rem !important;
}
.aimeos .common-summary-detail .tax .total-label {
    color: var(--n360-text-muted) !important;
}
.aimeos .common-summary-detail .tax .price {
    font-weight: 700 !important;
    color: var(--n360-text) !important;
}

/* Center quantity column contents for perfect alignment */
.aimeos .common-summary-detail .headline .quantity,
.aimeos .common-summary-detail .order .quantity {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
}

/* Center action / trash column contents for perfect alignment */
.aimeos .common-summary-detail .headline .action,
.aimeos .common-summary-detail .order .action,
.aimeos .common-summary-detail .subtotal .action,
.aimeos .common-summary-detail .delivery .action,
.aimeos .common-summary-detail .payment .action,
.aimeos .common-summary-detail .tax .action,
.aimeos .common-summary-detail .total .action,
.aimeos .common-summary-detail .rebate .action {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
}

/* Right-align price columns */
.aimeos .common-summary-detail .headline .unitprice,
.aimeos .common-summary-detail .order .unitprice,
.aimeos .common-summary-detail .headline .price,
.aimeos .common-summary-detail .order .price,
.aimeos .common-summary-detail .subtotal .price,
.aimeos .common-summary-detail .delivery .price,
.aimeos .common-summary-detail .payment .price,
.aimeos .common-summary-detail .tax .price,
.aimeos .common-summary-detail .total .price,
.aimeos .common-summary-detail .rebate .price {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    text-align: right !important;
}

/* Right-align all total labels consistently right before the price column on desktop */
@media (min-width: 768px) {
    .aimeos .common-summary-detail .total-label,
    .aimeos .common-summary-detail .subtotal .col-8,
    .aimeos .common-summary-detail .subtotal .col-md-8,
    .aimeos .common-summary-detail .delivery .col-8,
    .aimeos .common-summary-detail .delivery .col-md-8,
    .aimeos .common-summary-detail .payment .col-8,
    .aimeos .common-summary-detail .payment .col-md-8,
    .aimeos .common-summary-detail .tax .col-8,
    .aimeos .common-summary-detail .tax .col-md-8,
    .aimeos .common-summary-detail .total .total-text,
    .aimeos .common-summary-detail .rebate .quantity {
        display: flex !important;
        justify-content: flex-end !important;
        align-items: center !important;
        text-align: right !important;
        padding-right: 0 !important;
    }
}

/* Mobile totals alignment: standardized 2-column mobile receipt */
@media (max-width: 767.98px) {
    .aimeos .common-summary-detail .headline {
        display: none !important;
    }
    .aimeos .common-summary-detail .subtotal,
    .aimeos .common-summary-detail .delivery,
    .aimeos .common-summary-detail .payment,
    .aimeos .common-summary-detail .tax,
    .aimeos .common-summary-detail .rebate {
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
    }
    .aimeos .common-summary-detail .total-label,
    .aimeos .common-summary-detail .subtotal .col-6,
    .aimeos .common-summary-detail .delivery .col-6,
    .aimeos .common-summary-detail .payment .col-6,
    .aimeos .common-summary-detail .tax .col-6,
    .aimeos .common-summary-detail .rebate .col-6 {
        display: flex !important;
        justify-content: flex-start !important;
        align-items: center !important;
        text-align: left !important;
        padding-right: 0 !important;
        font-weight: 600 !important;
    }
    .aimeos .common-summary-detail .subtotal .price,
    .aimeos .common-summary-detail .delivery .price,
    .aimeos .common-summary-detail .payment .price,
    .aimeos .common-summary-detail .tax .price,
    .aimeos .common-summary-detail .rebate .price {
        display: flex !important;
        justify-content: flex-end !important;
        align-items: center !important;
        text-align: right !important;
    }
    .aimeos .common-summary-detail .total {
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
        padding-top: 0.85rem !important;
        padding-bottom: 0.85rem !important;
        border-top: 2px solid var(--n360-green) !important;
        margin-top: 0.5rem !important;
    }
    .aimeos .common-summary-detail .total .col-12.col-md-6 {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
        padding: 0 !important;
    }
    .aimeos .common-summary-detail .total .price-total,
    .aimeos .common-summary-detail .total .row.g-0 {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        justify-content: space-between !important;
        align-items: baseline !important;
        width: 100% !important;
    }
    .aimeos .common-summary-detail .total .total-label.total-text,
    .aimeos .common-summary-detail .total .total-text {
        order: 1 !important;
        display: block !important;
        width: auto !important;
        max-width: 50% !important;
        flex: 0 0 auto !important;
        text-align: left !important;
        font-size: 1.25rem !important;
        font-weight: 800 !important;
        color: var(--n360-green) !important;
        line-height: 1.2 !important;
        padding: 0 !important;
    }
    .aimeos .common-summary-detail .total .price {
        order: 2 !important;
        display: block !important;
        width: auto !important;
        max-width: 50% !important;
        flex: 0 0 auto !important;
        text-align: right !important;
        margin-left: auto !important;
        font-size: 1.25rem !important;
        font-weight: 800 !important;
        color: var(--n360-green) !important;
        line-height: 1.2 !important;
        padding: 0 !important;
    }
    .aimeos .common-summary-detail .total .quantity {
        order: 3 !important;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
        text-align: left !important;
        font-size: 0.82rem !important;
        font-weight: 500 !important;
        color: var(--n360-text-muted) !important;
        margin-top: 0.2rem !important;
        line-height: 1.2 !important;
        padding: 0 !important;
    }
    .aimeos .common-summary-detail .total .action {
        display: none !important;
    }
}

/* Modern Quantity Pill */
.aimeos.basket-standard .common-summary-detail .modern-qty-group {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--n360-border);
    border-radius: var(--n360-radius-pill);
    overflow: hidden;
    height: 38px;
    background-color: #f7f9fa;
    margin: 0 auto; /* Center the block itself within the column */
}

.aimeos.basket-standard .common-summary-detail .modern-qty-group .minibutton.change {
    background: transparent;
    border: none;
    height: 100%;
    width: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    color: var(--n360-green);
    cursor: pointer;
    transition: background-color 0.2s;
    padding: 0;
}

.aimeos.basket-standard .common-summary-detail .modern-qty-group .minibutton.change:hover:not(:disabled) {
    background-color: rgba(0, 0, 0, 0.05);
}

.aimeos.basket-standard .common-summary-detail .modern-qty-group .minibutton.change:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.aimeos.basket-standard .common-summary-detail .modern-qty-group input.value {
    background: transparent !important;
    border: none !important;
    height: 100%;
    width: 45px;
    text-align: center;
    font-weight: 600;
    color: #333;
    padding: 0;
    -moz-appearance: textfield;
}

.aimeos.basket-standard .common-summary-detail .modern-qty-group input.value::-webkit-outer-spin-button,
.aimeos.basket-standard .common-summary-detail .modern-qty-group input.value::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Static Quantity Badge (matches Basket Pill) */
.aimeos .common-summary-detail .modern-qty-static {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 52px !important;
    height: 38px !important;
    padding: 0 0.85rem !important;
    background-color: #f7f9fa !important;
    border: 1px solid var(--n360-border) !important;
    border-radius: var(--n360-radius-pill) !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    color: var(--n360-text) !important;
}

.aimeos .common-summary-detail .product-item,
.aimeos.basket-standard .product-item {
    background: #ffffff !important;
    border: 1px solid var(--n360-border) !important;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03) !important;
    border-radius: var(--n360-radius) !important;
    padding: 1.25rem !important;
    margin-bottom: 1rem !important;
    align-items: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.aimeos.basket-standard .product-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 15px rgba(0,0,0,0.06);
}

.aimeos.basket-standard .product-item .image img {
    border-radius: var(--n360-radius-sm);
    max-width: 60px; /* restrict width slightly */
}

.aimeos.basket-standard .product-item .product-name {
    font-weight: 600;
    margin-bottom: 0.25rem;
    color: var(--n360-text);
}

.aimeos.basket-standard .product-item .code {
    color: var(--n360-text-muted);
    font-size: 0.85rem;
    margin-bottom: 0;
}
.aimeos.basket-standard .product-item a {
    text-decoration: none;
}

/* Quantity controls */
.aimeos.basket-standard .quantity {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.aimeos.basket-standard .minibutton.change {
    background: #fff;
    border: 1px solid var(--n360-border);
    border-radius: var(--n360-radius-sm);
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-weight: bold;
    color: var(--n360-text);
    padding: 0;
}
.aimeos.basket-standard .minibutton.change:hover {
    background: var(--n360-border);
}

.aimeos.basket-standard .quantity input.value {
    width: 45px;
    text-align: center;
    border: 1px solid var(--n360-border);
    border-radius: var(--n360-radius-sm);
    padding: 0.25rem;
    height: 32px;
}

/* Trash */
.aimeos.basket-standard .minibutton.delete {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="none" stroke="%23EF4444" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M3 6h18M19 6v14a2 2 0 01-2 2H7a2 2 0 01-2-2V6m3 0V4a2 2 0 012-2h4a2 2 0 012 2v2M10 11v6M14 11v6"/></svg>') !important;
    background-size: 18px 18px !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    width: 32px;
    height: 32px;
    border: none;
    background-color: transparent !important;
    cursor: pointer;
    transition: opacity var(--n360-ease), transform var(--n360-ease);
    opacity: 0.7;
    position: relative;
}
/* Hide Aimeos default trash pseudo-elements to fix overlap */
.aimeos.basket-standard .minibutton.delete::before,
.aimeos.basket-standard .minibutton.delete::after {
    display: none !important;
    content: none !important;
    background: none !important;
}
.aimeos.basket-standard .minibutton.delete:hover {
    opacity: 1;
    transform: scale(1.1);
}

/* Prices */
.aimeos.basket-standard .unitprice,
.aimeos.basket-standard .product-item .price {
    color: var(--n360-green);
    font-weight: 700;
}

/* Coupon section */
.aimeos.basket-standard .basket-standard-coupon {
    border-top: 1px solid var(--n360-border);
    padding-top: 1rem;
}
.aimeos.basket-standard .basket-standard-coupon .header {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}
.aimeos.basket-standard .coupon-new {
    display: flex;
    gap: 0.5rem;
}
.aimeos.basket-standard .coupon-new input {
    flex-grow: 1;
}



/* Mobile and Tablet responsive */
@media (max-width: 991px) {
    .aimeos.basket-standard .common-summary-detail .headline {
        display: none !important;
    }
    
    .aimeos.basket-standard .product-item {
        position: relative !important;
        flex-direction: column;
        align-items: stretch;
    }
    
    .aimeos.basket-standard .product-item > div,
    .aimeos.basket-standard .product-item .order {
        position: static !important;
    }
    
    .aimeos.basket-standard .product-item .col-5,
    .aimeos.basket-standard .product-item .col-7,
    .aimeos.basket-standard .product-item .col-12.col-md-6 {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
    
    .aimeos.basket-standard .product-item .image.col-11 {
        width: 60px !important;
        flex: 0 0 60px !important;
        margin-right: 1rem;
    }
    .aimeos.basket-standard .product-item .details.col-12 {
        width: calc(100% - 75px) !important;
        flex: 0 0 calc(100% - 75px) !important;
        padding-right: 2.5rem !important; /* Prevent text overlap with top-right delete button */
    }
    
    .aimeos.basket-standard .order {
        flex-direction: column;
        gap: 0.75rem;
        margin-top: 1rem;
        padding-top: 1rem;
        border-top: 1px dashed var(--n360-border);
    }
    
    .aimeos.basket-standard .common-summary-detail .order > div:not(.action),
    .aimeos.basket-standard .common-summary-detail .order .quantity,
    .aimeos.basket-standard .common-summary-detail .order .unitprice,
    .aimeos.basket-standard .common-summary-detail .order .price {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }
    
    .aimeos.basket-standard .order > div[data-label]::before {
        content: attr(data-label) ": ";
        font-weight: 600;
        color: var(--n360-text-muted);
        margin-right: 0.5rem;
    }
    
    /* Mobile Quantity Stepper Right-Alignment */
    .aimeos.basket-standard .common-summary-detail .order .quantity .modern-qty-group,
    .aimeos.basket-standard .common-summary-detail .order .quantity .modern-qty-static {
        margin: 0 0 0 auto !important;
    }
    
    /* Mobile Delete Action repositioned to top right corner of product card */
    .aimeos.basket-standard .product-item .order .action {
        position: absolute !important;
        top: 0.85rem !important;
        right: 0.85rem !important;
        width: auto !important;
        min-width: unset !important;
        max-width: unset !important;
        height: auto !important;
        flex: none !important;
        margin: 0 !important;
        padding: 0 !important;
        z-index: 5 !important;
        display: block !important;
    }
    .aimeos.basket-standard .order > .action::before {
        content: none !important;
    }
    .aimeos.basket-standard .product-item .order .action .minibutton.delete {
        width: 32px !important;
        height: 32px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 !important;
        background-color: #fee2e2 !important;
        border-radius: 50% !important;
        opacity: 0.85 !important;
        transition: all 0.2s ease !important;
    }
    .aimeos.basket-standard .product-item .order .action .minibutton.delete:hover,
    .aimeos.basket-standard .product-item .order .action .minibutton.delete:active {
        background-color: #fecaca !important;
        opacity: 1 !important;
        transform: scale(1.08) !important;
    }
    
    .aimeos.basket-standard .basket-save {
        justify-content: flex-start;
        margin-top: 0.5rem;
    }
}

/* === MODERNIZE MODAL WRAPPER === */
/* Target Aimeos native overlay container globally to strip the white box, 
   ensuring compatibility with browsers that don't support :has() */
.aimeos.aimeos-container {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* User requested to remove the close button from the container */
.aimeos.aimeos-container > .btn-close,
.aimeos.aimeos-container > .close {
    display: none !important;
}

/* Also handle Bootstrap modal wrappers just in case */
.modal-content.aimeos, 
.modal-content {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}
.modal-body {
    padding: 0 !important;
}


/* === BASKET RESPONSIVE ENHANCEMENTS === */

/* 1. Ensure modern quantity group stays horizontal */
.modern-qty-group {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.5rem;
    min-width: 110px;
}
.modern-qty-group .value {
    width: 60px;
    text-align: center;
}

/* 2. Mini Basket Scoped Overrides */
.aimeos.basket-mini .n360-basket-item {
    flex-direction: row !important;
    align-items: center !important;
}
.aimeos.basket-mini .product-item .col-12 {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
}
.aimeos.basket-mini .order {
    flex-direction: column !important;
    gap: 0.75rem !important;
    margin-top: 1rem !important;
    padding-top: 1rem !important;
    border-top: 1px dashed var(--n360-border) !important;
}
.aimeos.basket-mini .order > div {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
}
.aimeos.basket-mini .order > div::before {
    content: attr(data-label) ": ";
    font-weight: 600;
    color: var(--n360-text-muted);
}
.aimeos.basket-mini .headline {
    display: none !important;
}

/* 3. Basket Drawer Height and Overflow Fix */
.n360-basket-drawer {
    display: flex !important;
    flex-direction: column !important;
    height: 100vh !important;
    max-height: 100vh !important;
    overflow: hidden !important;
}
.n360-basket-drawer .basket {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
    padding-bottom: 0 !important;
}

/* 4. Basket Bulk (Order Section) Responsiveness */
@media (max-width: 991px) {
    .aimeos.basket-bulk .headline {
        display: none !important;
    }
    .aimeos.basket-bulk .details {
        flex-direction: column;
        gap: 1rem;
    }
    .aimeos.basket-bulk .details .product-item {
        width: 100% !important;
    }
    .aimeos.basket-bulk .details .col-sm-6 > .row {
        flex-direction: column;
        gap: 1rem;
    }
    .aimeos.basket-bulk .details .quantity,
    .aimeos.basket-bulk .details .price,
    .aimeos.basket-bulk .details .buttons {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    .aimeos.basket-bulk .details .quantity::before {
        content: "Quantity: ";
        font-weight: 600;
    }
    .aimeos.basket-bulk .details .price::before {
        content: "Price: ";
        font-weight: 600;
    }
}

/* ==========================================================================
   Nature's 360 SweetAlert2 Custom Toast (Option A)
   ========================================================================== */
body.swal2-toast-shown .swal2-container {
    width: auto !important;
    max-width: 100vw !important;
    overflow: visible !important;
    pointer-events: none !important;
}

body.swal2-toast-shown .swal2-container.swal2-top-end,
body.swal2-toast-shown .swal2-container.swal2-top-right {
    inset: 20px 20px auto auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    padding: 0 !important;
    width: auto !important;
    z-index: 999999 !important;
}

.swal2-popup.swal2-toast.n360-swal-toast {
    box-sizing: border-box !important;
    display: block !important;
    width: 370px !important;
    max-width: calc(100vw - 32px) !important;
    padding: 14px 16px !important;
    margin: 0 !important;
    background: #ffffff !important;
    border-radius: 14px !important;
    border: 1px solid rgba(27, 67, 50, 0.14) !important;
    box-shadow: 0 16px 36px -4px rgba(0, 0, 0, 0.16), 0 4px 12px rgba(0, 0, 0, 0.08) !important;
    font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif !important;
    overflow: hidden !important;
    position: relative !important;
    pointer-events: auto !important;
}

.swal2-popup.swal2-toast.n360-swal-toast .swal2-html-container {
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    text-align: left !important;
    color: inherit !important;
    font-size: 14px !important;
    line-height: normal !important;
    display: block !important;
    width: 100% !important;
}

.swal2-popup.swal2-toast.n360-swal-toast .swal2-close {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    width: 24px !important;
    height: 24px !important;
    color: #9ca3af !important;
    font-size: 18px !important;
    line-height: 1 !important;
    transition: all 0.15s ease !important;
    outline: none !important;
    box-shadow: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border-radius: 50% !important;
    padding: 0 !important;
    z-index: 10 !important;
}

.swal2-popup.swal2-toast.n360-swal-toast .swal2-close:hover {
    color: #111827 !important;
    background: #f3f4f6 !important;
}

.swal2-popup.swal2-toast.n360-swal-toast .swal2-timer-progress-bar-container {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 3px !important;
    overflow: hidden !important;
    border-bottom-left-radius: 14px !important;
    border-bottom-right-radius: 14px !important;
}

.swal2-popup.swal2-toast.n360-swal-toast .swal2-timer-progress-bar {
    background: #2d6a4f !important;
    height: 100% !important;
}

.swal2-popup.swal2-toast.n360-swal-toast--error {
    border-color: rgba(220, 38, 38, 0.2) !important;
    box-shadow: 0 16px 36px -4px rgba(220, 38, 38, 0.18), 0 4px 12px rgba(0, 0, 0, 0.08) !important;
}

.swal2-popup.swal2-toast.n360-swal-toast--error .swal2-timer-progress-bar {
    background: #dc2626 !important;
}

