.sticky { position: sticky; }
.top-0 { top: 0px; } .top-16 { top: 4rem; } .top-20 { top: 5rem; } .top-24 { top: 6rem; } @media (min-width: 768px) { .md\:top-20 { top: 5rem; } .md\:top-24 { top: 6rem; } } @media (min-width: 1024px) { .lg\:top-40 { top: 10rem; } }
.pt-20 { padding-top: 5rem; }
.pb-28 { padding-bottom: 7rem; }
@media (min-width: 768px) {
    .md\:pt-20 { padding-top: 5rem; }
}
html { scroll-behavior: smooth; }

/* Fix: Tailwind's .collapse sets visibility:collapse which hides content even when Bootstrap opens it.
   Also ensure proper collapse/show behaviour for the faceted-search filter accordion. */
#search_filters .collapse {
  visibility: visible;   /* override Tailwind's visibility:collapse */
  display: none;         /* hidden by default */
  overflow: hidden;
}
#search_filters .collapse.in,
#search_filters .collapse.show {
  display: block;        /* visible when toggled open */
}
/* Slider facet uses a div, not a ul, so must also be block */
#search_filters .faceted-slider.collapse.in,
#search_filters .faceted-slider.collapse.show {
  display: block;
}
/* Disabled filter option: shown but grayed out when it has 0 matching products */
#search_filters .facet-filter-empty {
  opacity: 0.55;
  pointer-events: none;
  user-select: none;
}
#search_filters .facet-filter-empty span {
  cursor: not-allowed;
}

fieldset {
    margin: 0 !important; 
    padding: 0 !important;
}

/* ── Order Confirmation Page ─────────────────────────────────────────────── */
/* Account transformation form (inside hook) */
.page-order-confirmation #content-hook_order_confirmation,
.page-order-confirmation #content.page-order-confirmation { all: unset; display: block; }

.page-order-confirmation form label {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  color: hsl(var(--secondary));
  margin-bottom: 0.35rem;
}
.page-order-confirmation form input[type="text"],
.page-order-confirmation form input[type="email"],
.page-order-confirmation form input[type="password"] {
  width: 100%;
  padding: 0.5rem 0.75rem;
  border: 1px solid hsl(var(--border));
  border-radius: 0.375rem;
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  font-size: 0.875rem;
  line-height: 1.5;
  outline: none;
  transition: border-color 0.15s;
}
.page-order-confirmation form input[type="text"]:focus,
.page-order-confirmation form input[type="email"]:focus,
.page-order-confirmation form input[type="password"]:focus {
  border-color: hsl(var(--primary));
  box-shadow: 0 0 0 2px hsl(var(--primary) / 0.15);
}
.page-order-confirmation form button[type="submit"],
.page-order-confirmation form .btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.5rem 1.5rem;
  background: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
  border: none;
  border-radius: 0.375rem;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.15s;
}
.page-order-confirmation form button[type="submit"]:hover,
.page-order-confirmation form .btn-primary:hover {
  opacity: 0.9;
}
/* Payment return hook — ensure any tables from payment modules look decent */
#content-hook_payment_return table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}
#content-hook_payment_return td,
#content-hook_payment_return th {
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid hsl(var(--border));
  text-align: left;
}

/* ══════════════════════════════════════════════════════════════════════════
   CHECKOUT PAGE  (body#checkout / body.page-order)
   Scoped Bootstrap-compatible CSS — does NOT affect any other page.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Bootstrap 4-compatible container & grid ── */
.container {
  width: 100%;
  max-width: 1200px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 15px;
  padding-left: 15px;
}
.row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}
[class*="col-"] {
  position: relative;
  width: 100%;
  min-height: 1px;
  padding-right: 15px;
  padding-left: 15px;
}
/* xs columns (always applied) */
.col-xs-12 { flex: 0 0 100%; max-width: 100%; }
.col-xs-4  { flex: 0 0 33.3333%; max-width: 33.3333%; }
.col-xs-3  { flex: 0 0 25%; max-width: 25%; }
.col-xs-9  { flex: 0 0 75%; max-width: 75%; }
/* sm columns (≥576px) */
@media (min-width: 576px) {
  .col-sm-2  { flex: 0 0 16.6667%; max-width: 16.6667%; }
  .col-sm-4  { flex: 0 0 33.3333%; max-width: 33.3333%; }
  .col-sm-6  { flex: 0 0 50%; max-width: 50%; }
}
/* md columns (≥768px) */
@media (min-width: 768px) {
  .col-md-3  { flex: 0 0 25%; max-width: 25%; }
  .col-md-4  { flex: 0 0 33.3333%; max-width: 33.3333%; }
  .col-md-6  { flex: 0 0 50%; max-width: 50%; }
  .col-md-8  { flex: 0 0 66.6667%; max-width: 66.6667%; }
  .col-md-12 { flex: 0 0 100%; max-width: 100%; }
}
/* lg columns (≥992px) */
@media (min-width: 992px) {
  .col-lg-4  { flex: 0 0 33.3333%; max-width: 33.3333%; }
  .col-lg-8  { flex: 0 0 66.6667%; max-width: 66.6667%; }
  .col-lg-12 { flex: 0 0 100%; max-width: 100%; }
}
/* clearfix */
.clearfix::after,
.row::after {
  content: ""; display: table; clear: both;
}


/* ── 3. Checkout wrapper / section ID ── */
body#checkout #wrapper,
body.page-order #wrapper {
  padding-top: 1.5rem;
  padding-bottom: 3rem;
}
body#checkout #content-wrapper,
body.page-order #content-wrapper {
  width: 100%;
}
body#checkout #content,
body.page-order #content {
  display: block;
}
body#checkout .cart-grid-body,
body.page-order .cart-grid-body {
  padding-right: 1rem;
}

/* ── 4. Checkout step UI ── */
body#checkout .checkout-step,
body.page-order .checkout-step {
  background: hsl(var(--background));
  border: 1px solid hsl(var(--border));
  border-radius: 0.5rem;
  margin-bottom: 1rem;
  overflow: hidden;
}
body#checkout .step-title,
body.page-order .step-title {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  font-family: "Space Grotesk", "DM Sans", system-ui, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: hsl(var(--secondary));
  margin: 0;
  cursor: default;
  background: hsl(var(--surface));
  border-bottom: 1px solid hsl(var(--border));
}
body#checkout .checkout-step.-current .step-title,
body.page-order .checkout-step.-current .step-title {
  background: hsl(var(--background));
  border-bottom-color: hsl(var(--border));
}
body#checkout .checkout-step.-unreachable .step-title,
body.page-order .checkout-step.-unreachable .step-title {
  color: hsl(var(--muted-foreground));
}
body#checkout .step-number,
body.page-order .step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
  font-size: 0.8rem;
  font-weight: 700;
  flex-shrink: 0;
}
body#checkout .checkout-step.-unreachable .step-number,
body.page-order .checkout-step.-unreachable .step-number {
  background: hsl(var(--muted));
  color: hsl(var(--muted-foreground));
}
body#checkout .step-edit,
body.page-order .step-edit {
  margin-left: auto;
  font-size: 0.8rem;
  font-weight: 400;
  color: hsl(var(--primary));
  cursor: pointer;
}
body#checkout .checkout-step .content,
body.page-order .checkout-step .content {
  padding: 1.25rem;
}
body#checkout .checkout-step.-unreachable .content,
body.page-order .checkout-step.-unreachable .content {
  display: none;
}
/* done checkmark */
body#checkout .material-icons.done,
body.page-order .material-icons.done {
  color: hsl(var(--primary));
  font-size: 1.25rem;
}

/* ── 5. Form controls ── */
body#checkout .form-group,
body.page-order .form-group {
  margin-bottom: 1rem;
}
body#checkout .form-group.row,
body.page-order .form-group.row {
  align-items: flex-start;
}
body#checkout .form-control-label,
body.page-order .form-control-label {
  display: flex;
  align-items: center;
  padding-top: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: hsl(var(--secondary));
}
body#checkout .form-control-label.required::after,
body.page-order .form-control-label.required::after {
  content: " *";
  color: hsl(var(--primary));
}
body#checkout .form-control,
body.page-order .form-control {
  display: block;
  width: 100%;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: hsl(var(--foreground));
  background-color: hsl(var(--background));
  border: 1px solid hsl(var(--border));
  border-radius: 0.375rem;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
body#checkout .form-control:focus,
body.page-order .form-control:focus {
  border-color: hsl(var(--primary));
  box-shadow: 0 0 0 2px hsl(var(--primary) / 0.2);
}
body#checkout .form-control-comment,
body.page-order .form-control-comment {
  font-size: 0.75rem;
  color: hsl(var(--muted-foreground));
  margin-top: 0.25rem;
}
body#checkout .form-informations,
body.page-order .form-informations {
  padding: 0.75rem 0;
  font-size: 0.875rem;
  color: hsl(var(--muted-foreground));
  border-top: 1px solid hsl(var(--border));
  border-bottom: 1px solid hsl(var(--border));
  margin: 0.5rem 0 1rem;
}
body#checkout .form-informations-title,
body.page-order .form-informations-title {
  font-weight: 700;
  color: hsl(var(--secondary));
}
body#checkout .form-footer,
body.page-order .form-footer {
  display: flex;
  justify-content: flex-end;
  padding-top: 1rem;
  border-top: 1px solid hsl(var(--border));
  margin-top: 1rem;
}

/* ── 6. Custom radio / checkbox ── */
body#checkout .radio-inline,
body.page-order .radio-inline {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-right: 1rem;
  font-size: 0.875rem;
  cursor: pointer;
}
body#checkout .custom-radio,
body.page-order .custom-radio {
  position: relative;
  display: inline-flex;
  align-items: center;
}
body#checkout .custom-radio input[type="radio"],
body.page-order .custom-radio input[type="radio"] {
  accent-color: hsl(var(--primary));
  width: 1rem;
  height: 1rem;
}
body#checkout .custom-checkbox,
body.page-order .custom-checkbox {
  display: block;
}
body#checkout .custom-checkbox label,
body.page-order .custom-checkbox label {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: hsl(var(--foreground));
  cursor: pointer;
  line-height: 1.5;
}
body#checkout .custom-checkbox input[type="checkbox"],
body.page-order .custom-checkbox input[type="checkbox"] {
  accent-color: hsl(var(--primary));
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  margin-top: 0.125rem;
}
body#checkout .custom-checkbox .material-icons,
body.page-order .custom-checkbox .material-icons { display: none; }

/* ── 7. Password input group ── */
body#checkout .input-group,
body.page-order .input-group {
  display: flex;
  width: 100%;
}
body#checkout .input-group .form-control,
body.page-order .input-group .form-control {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  flex: 1;
}
body#checkout .input-group-btn,
body.page-order .input-group-btn {
  display: flex;
}
body#checkout .input-group-btn .btn,
body.page-order .input-group-btn .btn {
  padding: 0.5rem 0.75rem;
  border: 1px solid hsl(var(--border));
  border-left: none;
  border-top-right-radius: 0.375rem;
  border-bottom-right-radius: 0.375rem;
  background: hsl(var(--muted));
  color: hsl(var(--secondary));
  font-size: 0.8rem;
  cursor: pointer;
  white-space: nowrap;
}

/* ── 8. Tabs (guest/login) ── */
body#checkout .nav-inline,
body.page-order .nav-inline {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0;
  margin-bottom: 1.25rem;
  border-bottom: 1px solid hsl(var(--border));
  list-style: none;
}
body#checkout .nav-item,
body.page-order .nav-item { display: flex; align-items: center; }
body#checkout .nav-link,
body.page-order .nav-link {
  display: block;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: hsl(var(--muted-foreground));
  text-decoration: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
}
body#checkout .nav-link:hover,
body.page-order .nav-link:hover { color: hsl(var(--secondary)); }
body#checkout .nav-link.active,
body.page-order .nav-link.active {
  color: hsl(var(--secondary));
  border-bottom-color: hsl(var(--primary));
  font-weight: 700;
}
body#checkout .nav-separator,
body.page-order .nav-separator { color: hsl(var(--border)); }
body#checkout .tab-content .tab-pane,
body.page-order .tab-content .tab-pane { display: none; }
body#checkout .tab-content .tab-pane.active,
body.page-order .tab-content .tab-pane.active { display: block; }
body#checkout .forgot-password,
body.page-order .forgot-password {
  margin-top: 0.5rem;
  font-size: 0.8rem;
}
body#checkout .forgot-password a,
body.page-order .forgot-password a {
  color: hsl(var(--primary));
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ── 9. Buttons ── */
body#checkout .btn,
body.page-order .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  border-radius: 0.375rem;
  border: 1px solid transparent;
  cursor: pointer;
  transition: opacity 0.15s, background 0.15s;
  text-decoration: none;
  white-space: nowrap;
}
body#checkout .btn-primary,
body.page-order .btn-primary {
  background: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
  border-color: hsl(var(--primary));
}
body#checkout .btn-primary:hover,
body.page-order .btn-primary:hover { opacity: 0.88; }
body#checkout .btn-outline-secondary,
body.page-order .btn-outline-secondary {
  background: transparent;
  color: hsl(var(--secondary));
  border-color: hsl(var(--secondary));
}
body#checkout .continue.btn-primary,
body.page-order .continue.btn-primary {
  padding: 0.6rem 1.75rem;
  font-size: 0.9rem;
}

/* ── 10. Cart summary sidebar ── */
body#checkout .cart-grid-right,
body.page-order .cart-grid-right {
  padding-left: 0.5rem;
}
body#checkout .card,
body.page-order .card {
  background: hsl(var(--surface));
  border: 1px solid hsl(var(--border));
  border-radius: 0.5rem;
  overflow: hidden;
  margin-bottom: 1rem;
}
body#checkout .card-block,
body.page-order .card-block {
  padding: 1rem 1.25rem;
}
body#checkout .cart-summary-top,
body.page-order .cart-summary-top { padding-bottom: 0.75rem; }
body#checkout .cart-summary-products p,
body.page-order .cart-summary-products p {
  font-size: 0.875rem;
  color: hsl(var(--secondary));
  font-weight: 600;
  margin: 0.25rem 0;
}
body#checkout .cart-summary-products a,
body.page-order .cart-summary-products a {
  font-size: 0.8rem;
  color: hsl(var(--primary));
  text-decoration: underline;
  text-underline-offset: 3px;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
/* Product list in cart sidebar */
body#checkout .media-list,
body.page-order .media-list { list-style: none; padding: 0; margin: 0.75rem 0 0; }
body#checkout .media,
body.page-order .media {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-top: 1px solid hsl(var(--border));
}
body#checkout .media-left,
body.page-order .media-left { flex-shrink: 0; }
body#checkout .media-object,
body.page-order .media-object {
  width: 3.5rem;
  height: 3.5rem;
  object-fit: cover;
  border-radius: 0.25rem;
  border: 1px solid hsl(var(--border));
}
body#checkout .media-body,
body.page-order .media-body { flex: 1; min-width: 0; font-size: 0.8rem; }
body#checkout .product-name a,
body.page-order .product-name a {
  font-weight: 600;
  color: hsl(var(--secondary));
  text-decoration: none;
  font-size: 0.85rem;
}
body#checkout .product-quantity,
body.page-order .product-quantity {
  color: hsl(var(--muted-foreground));
  margin-left: 0.25rem;
}
body#checkout .product-price,
body.page-order .product-price {
  font-weight: 700;
  color: hsl(var(--secondary));
  float: right;
}
body#checkout .product-line-info,
body.page-order .product-line-info {
  color: hsl(var(--muted-foreground));
  font-size: 0.75rem;
  line-height: 1.4;
}
body#checkout .product-line-info .label,
body.page-order .product-line-info .label { font-weight: 500; }
/* Subtotals */
body#checkout .cart-summary-subtotals-container,
body.page-order .cart-summary-subtotals-container {
  border-top: 1px solid hsl(var(--border));
  padding-top: 0.75rem;
}
body#checkout .cart-summary-line,
body.page-order .cart-summary-line {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.25rem 0;
  font-size: 0.875rem;
}
body#checkout .cart-summary-line .label,
body.page-order .cart-summary-line .label { color: hsl(var(--muted-foreground)); }
body#checkout .cart-summary-line .value,
body.page-order .cart-summary-line .value { font-weight: 600; color: hsl(var(--secondary)); }
body#checkout .cart-summary-totals,
body.page-order .cart-summary-totals {
  border-top: 2px solid hsl(var(--secondary) / 0.15);
  padding-top: 0.75rem;
}
body#checkout .cart-total .label,
body.page-order .cart-total .label {
  font-weight: 700;
  color: hsl(var(--secondary));
  text-transform: uppercase;
  font-size: 0.8rem;
  letter-spacing: 0.05em;
}
body#checkout .cart-total .value,
body.page-order .cart-total .value {
  font-weight: 800;
  font-size: 1.1rem;
  color: hsl(var(--secondary));
}

/* ── 11. "show details" collapse ── */
body#checkout #cart-summary-product-list,
body.page-order #cart-summary-product-list { display: none; }
body#checkout #cart-summary-product-list.show,
body.page-order #cart-summary-product-list.show { display: block; }
body#checkout [data-toggle="collapse"],
body.page-order [data-toggle="collapse"] { cursor: pointer; }

/* ── 12. Blockreassurance module ── */
body#checkout .blockreassurance_product,
body.page-order .blockreassurance_product {
  background: hsl(var(--surface));
  border: 1px solid hsl(var(--border));
  border-radius: 0.5rem;
  padding: 1rem 1.25rem;
  margin-top: 0.5rem;
}
body#checkout .blockreassurance_product > div,
body.page-order .blockreassurance_product > div {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid hsl(var(--border));
}
body#checkout .blockreassurance_product > div:last-child,
body.page-order .blockreassurance_product > div:last-child { border-bottom: none; }
body#checkout .item-product svg,
body.page-order .item-product svg { width: 1.5rem; height: 1.5rem; flex-shrink: 0; }
body#checkout .block-title,
body.page-order .block-title {
  display: block;
  font-weight: 700;
  font-size: 0.875rem;
  color: hsl(var(--secondary)) !important;
}
body#checkout .blockreassurance_product p,
body.page-order .blockreassurance_product p {
  font-size: 0.75rem;
  color: hsl(var(--muted-foreground)) !important;
  margin: 0.2rem 0 0;
}

/* ── 13. Float helpers ── */
body#checkout .float-xs-right, body.page-order .float-xs-right { float: right; }
body#checkout .float-xs-left,  body.page-order .float-xs-left  { float: left; }
body#checkout .text-xs-right,  body.page-order .text-xs-right  { text-align: right; }
body#checkout .text-sm-center, body.page-order .text-sm-center { text-align: center; }
body#checkout .font-weight-bold, body.page-order .font-weight-bold { font-weight: 700; }
body#checkout .text-muted, body.page-order .text-muted { color: hsl(var(--muted-foreground)); }

/* ── 15. Address & shipping step (appears after personal info) ── */
body#checkout .address-selector,
body.page-order .address-selector {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
body#checkout .address-item,
body.page-order .address-item {
  flex: 1;
  min-width: 250px;
  border: 2px solid hsl(var(--border));
  border-radius: 0.5rem;
  padding: 1rem;
  cursor: pointer;
  transition: border-color 0.15s;
}
body#checkout .address-item.selected,
body.page-order .address-item.selected { border-color: hsl(var(--primary)); }
body#checkout .delivery-options,
body.page-order .delivery-options { list-style: none; padding: 0; margin: 0; }
body#checkout .delivery-option,
body.page-order .delivery-option {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid hsl(var(--border));
  border-radius: 0.5rem;
  margin-bottom: 0.5rem;
  cursor: pointer;
  transition: border-color 0.15s;
}
body#checkout .delivery-option:has(input:checked),
body.page-order .delivery-option:has(input:checked) { border-color: hsl(var(--primary)); }

/* ── 16. Payment options ── */
body#checkout .payment-options,
body.page-order .payment-options { margin-top: 1rem; }
body#checkout .payment-option,
body.page-order .payment-option {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.875rem;
  border: 1px solid hsl(var(--border));
  border-radius: 0.5rem;
  margin-bottom: 0.5rem;
  cursor: pointer;
}
body#checkout .payment-option:has(input:checked),
body.page-order .payment-option:has(input:checked) { border-color: hsl(var(--primary)); background: hsl(var(--primary) / 0.04); }
body#checkout #conditions-to-approve,
body.page-order #conditions-to-approve {
  padding: 0.75rem;
  background: hsl(var(--surface));
  border-radius: 0.375rem;
  font-size: 0.875rem;
}

/* ── 17. Responsive hidden helpers (Bootstrap 4 compatible) ── */
@media (min-width: 576px) {
  .hidden-sm-up { display: none !important; }
}
/* @media (max-width: 767px) {
  .hidden-sm-down { display: none !important; }
} */
@media (min-width: 768px) {
  .hidden-md-up { display: none !important; }
}
@media (max-width: 991px) {
  .hidden-md-down { display: none !important; }
}
@media (min-width: 992px) {
  .hidden-lg-up { display: none !important; }
}


/* CMS Content Styling to match Theme */

.cms-rich-content h1, .cms-rich-content h2, .cms-rich-content h3, .cms-rich-content h4 {
    font-family: "Space Grotesk", "DM Sans", system-ui, sans-serif;
    font-weight: 700;
    color: hsl(var(--secondary));
    margin-top: 2rem;
    margin-bottom: 1rem;
    line-height: 1.2;
    letter-spacing: -0.025em;
}
.cms-rich-content h1 { font-size: 2.25rem; }
.cms-rich-content h2 { font-size: 1.875rem; }
.cms-rich-content h3 { font-size: 1.5rem; }

.cms-rich-content p {
    margin-bottom: 1.25rem;
    line-height: 1.7;
    color: hsl(var(--muted-foreground));
}

.cms-rich-content ul {
    list-style-type: disc;
    padding-left: 1.5rem;
    margin-bottom: 1.25rem;
    color: hsl(var(--muted-foreground));
}
.cms-rich-content li { margin-bottom: 0.5rem; }

.cms-rich-content a:not(.btn) {
    color: hsl(var(--primary));
    text-decoration: underline;
    text-underline-offset: 4px;
    font-weight: 500;
}
.cms-rich-content a:not(.btn):hover {
    color: hsl(var(--secondary));
}

.cms-rich-content .btn,
.cms-rich-content a.btn.btn-default,
.cms-rich-content .btn.btn-default {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    white-space: nowrap;
    font-weight: 600;
    letter-spacing: -0.025em;
    transition: all 0.2s ease-in-out;
    background-color: hsl(var(--primary)) !important;
    color: hsl(var(--primary-foreground)) !important;
    height: 3rem;
    border-radius: 0.375rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    text-decoration: none !important;
    margin-top: 1rem;
    border: none !important;
    font-size: 0.875rem;
}
.cms-rich-content .btn:hover,
.cms-rich-content a.btn.btn-default:hover,
.cms-rich-content .btn.btn-default:hover {
    filter: brightness(1.05);
    transform: translateY(-2px);
    box-shadow: 0 1px 0 hsla(0, 0%, 0%, 0.08);
    color: hsl(var(--primary-foreground)) !important;
    text-decoration: none !important;
}

/* Card clickability with absolute overlay */
.card-link-overlay::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
}

/* ==========================================================================
   WISHLIST BUTTONS DESIGN SYSTEM
   ========================================================================== */

.wishlist-button {
    display: block !important;
}

.wishlist-button-add {
    display: flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease-in-out !important;
}

/* Thumbnail container button (miniatures) */
.thumbnail-container .wishlist-button {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    z-index: 20;
}

.thumbnail-container .wishlist-button-add {
    width: 2.25rem !important;
    height: 2.25rem !important;
    min-width: 2.25rem !important;
    border-radius: 9999px !important;
    background-color: hsl(var(--background) / 0.85) !important;
    backdrop-filter: blur(4px);
    border: 1px solid hsl(var(--border)) !important;
    color: hsl(var(--secondary)) !important;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.05), 0 2px 4px -2px rgb(0 0 0 / 0.05) !important;
    padding: 0 !important;
}

.thumbnail-container .wishlist-button-add:hover {
    background-color: hsl(var(--background)) !important;
    color: hsl(var(--primary)) !important;
    transform: scale(1.05);
}

.thumbnail-container .wishlist-button-add i {
    font-size: 1.125rem !important;
    color: inherit !important;
    line-height: 1;
}

/* Product cover image button (product detail page) */
.product-cover .wishlist-button {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 20;
}

.product-cover .wishlist-button-add {
    width: 2.5rem !important;
    height: 2.5rem !important;
    min-width: 2.5rem !important;
    border-radius: 9999px !important;
    background-color: hsl(var(--background) / 0.85) !important;
    backdrop-filter: blur(4px);
    border: 1px solid hsl(var(--border)) !important;
    color: hsl(var(--secondary)) !important;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.05), 0 2px 4px -2px rgb(0 0 0 / 0.05) !important;
    padding: 0 !important;
    margin: 15px !important;
    position: absolute  !important;
    right: 0;
    z-index: 9999;
}

.products article .wishlist-button-add{
    position: absolute  !important;
}
.product-cover .wishlist-button-add:hover {
    background-color: hsl(var(--background)) !important;
    color: hsl(var(--primary)) !important;
    transform: scale(1.05);
}

.product-cover .wishlist-button-add i {
    font-size: 1.25rem !important;
    color: inherit !important;
    line-height: 1;
}

/* Active checked states (filled red heart) */
.wishlist-button-add.is-active i {
    color: #ef4444 !important;
}

/* ==========================================================================
   CUSTOM ACCORDION & CORE ACCOUNT PAGES CSS (NO PARENT CSS INHERITANCE)
   ========================================================================== */

/* Card layout for authentication, registration, password pages */
body#authentication #main,
body#registration #main,
body#password #main {
    max-width: 45rem;
    margin: 4rem auto;
    padding: 2.5rem;
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: var(--radius);
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.05), 0 2px 4px -2px rgb(0 0 0 / 0.05);
}
@media (max-width: 640px) {
    body#authentication #main,
    body#registration #main,
    body#password #main {
        margin: 2rem 1rem;
        padding: 1.5rem;
    }
}

/* Compact form cards for single edits */
body#identity #main,
body#address #main {
    max-width: 40rem;
    margin: 4rem auto;
    padding: 2.5rem;
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: var(--radius);
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.05), 0 2px 4px -2px rgb(0 0 0 / 0.05);
}
@media (max-width: 640px) {
    body#identity #main,
    body#address #main {
        margin: 2rem 1rem;
        padding: 1.5rem;
    }
}

/* Dashboard & wider grid pages */
body#my-account #main,
body#history #main,
body#addresses #main,
body#discount #main,
body#order-slip #main,
body#order-follow #main,
body#order-return #main,
body#order-detail #main,
body#module-psgdpr-gdpr #main,
body#module-psgdpr-customer #main,
body[id*="psgdpr"] #main,
body#module-blockwishlist-lists #main,
body#module-blockwishlist-view #main,
body#module-ps_emailalerts-account #main {
    max-width: 80rem;
    margin: 3rem auto;
    padding: 0 1.25rem;
}
@media (min-width: 768px) {
    body#my-account #main,
    body#history #main,
    body#addresses #main,
    body#discount #main,
    body#order-slip #main,
    body#order-follow #main,
    body#order-return #main,
    body#order-detail #main,
    body#module-psgdpr-gdpr #main,
    body#module-psgdpr-customer #main,
    body[id*="psgdpr"] #main,
    body#module-blockwishlist-lists #main,
    body#module-blockwishlist-view #main,
    body#module-ps_emailalerts-account #main {
        padding: 0 2rem;
    }
}

/* Typography & Titles */
.page-header {
    border-bottom: none;
    margin-bottom: 2rem;
    padding-bottom: 0;
    text-align: center;
}
.page-header h1 {
    font-family: "Space Grotesk", sans-serif;
    font-size: 1.75rem;
    font-weight: 700;
    color: hsl(var(--secondary));
    letter-spacing: -0.025em;
    margin: 0;
}

/* Form Styles & Grid Flex Fallback */
.form-group {
    display: flex;
    flex-direction: column;
    margin-bottom: 1.25rem;
    align-items: stretch;
}
@media (min-width: 768px) {
    .form-group.row {
        flex-direction: row;
        align-items: center;
        gap: 1.5rem;
    }
    .form-group .col-md-3 {
        width: 20%;
        flex-shrink: 0;
        text-align: right;
    }
    .form-group .col-md-6 {
        flex-grow: 1;
        max-width: 40rem;
    }
    .form-group .col-md-9 {
        flex-grow: 1;
        max-width: 40rem;
    }
    .form-group .offset-md-3 {
        margin-left: calc(20% + 1.5rem);
    }
}

.form-control-label {
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--secondary));
    margin-bottom: 0.5rem;
}
@media (min-width: 768px) {
    .form-control-label {
        margin-bottom: 0;
    }
}

.form-control-comment {
    font-size: 0.75rem;
    color: hsl(var(--muted-foreground));
    margin-top: 0.25rem;
}
@media (min-width: 768px) {
    .form-control-comment {
        margin-top: 0;
        width: auto;
        flex-shrink: 0;
        text-align: left;
    }
    .form-control-comment:empty {
        display: none;
    }
}

/* Form Controls styling */
.form-control {
    display: block;
    width: 100%;
    height: 2.75rem;
    padding: 0.625rem 0.875rem;
    font-size: 0.875rem;
    line-height: 1.5;
    color: hsl(var(--foreground));
    background-color: hsl(var(--background));
    border: 1px solid hsl(var(--border));
    border-radius: var(--radius);
    outline: none;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.form-control:focus {
    border-color: hsl(var(--ring));
    box-shadow: 0 0 0 2px hsl(var(--ring) / 0.15);
}
select.form-control {
    background-color: hsl(var(--background));
    cursor: pointer;
}

/* Password Toggle Field */
.input-group {
    position: relative;
    display: flex;
    width: 100%;
}
.input-group .form-control {
    flex-grow: 1;
}
.input-group-btn {
    display: flex;
}
.input-group-btn .btn[data-action="show-password"] {
    background-color: hsl(var(--muted));
    color: hsl(var(--muted-foreground));
    border: 1px solid hsl(var(--border));
    border-left: none;
    border-radius: 0 var(--radius) var(--radius) 0;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0 1rem;
    height: 2.75rem;
    transition: all 0.2s ease;
    cursor: pointer;
}
.input-group-btn .btn[data-action="show-password"]:hover {
    background-color: hsl(var(--border));
    color: hsl(var(--secondary));
}
.input-group .js-visible-password {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

/* Buttons */
.btn-primary,
button[type="submit"].btn,
.form-footer button[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    border-radius: var(--radius) !important;
    font-size: 0.875rem !important; /* text-sm */
    font-weight: 500 !important; /* font-medium */
    transition: all 0.2s ease-in-out !important;
    background-color: hsl(var(--primary)) !important;
    color: hsl(var(--primary-foreground)) !important;
    height: 2.25rem !important; /* h-9 is 36px */
    padding: 0.5rem 1rem !important; /* px-4 py-2 */
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important; /* shadow-sm */
    border: none !important;
    cursor: pointer !important;
}
.btn-primary:hover,
button[type="submit"].btn:hover,
.form-footer button[type="submit"]:hover {
    background-color: hsl(var(--primary) / 0.9) !important;
    transform: none !important;
    filter: none !important;
}
.btn-primary:active,
button[type="submit"].btn:active,
.form-footer button[type="submit"]:active {
    transform: none !important;
}
.form-footer {
    display: flex;
    justify-content: center;
    margin: 1.5rem 0;
    clear: both;
}
@media (max-width: 767px) {
    .form-footer {
        justify-content: center;
    }
    .form-footer button[type="submit"] {
        width: 100%;
    }
}

/* Checkboxes and Radios */
.custom-checkbox,
.custom-radio {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    cursor: pointer;
}
.custom-checkbox input[type="checkbox"],
.custom-radio input[type="radio"] {
    accent-color: hsl(var(--primary));
    width: 1rem;
    height: 1rem;
    margin-top: 0.125rem;
    cursor: pointer;
}
.custom-checkbox label,
.custom-radio label {
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
    font-weight: 400;
    cursor: pointer;
}
.custom-checkbox span.custom-checkbox,
.custom-radio span.custom-radio {
    display: inline-flex;
}
/* Hide classic checkbox mark graphic since accent-color natively draws it */
.custom-checkbox span.custom-checkbox i.checkbox-checked,
.custom-radio span.custom-radio span {
    display: none !important;
}
.custom-checkbox span.custom-checkbox input,
.custom-radio span.custom-radio input {
    position: static !important;
    opacity: 1 !important;
    width: 1rem !important;
    height: 1rem !important;
}

/* Auth links */
.forgot-password,
.no-account,
.register-form p {
    text-align: center;
    margin-top: 0.5rem;
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
}
.forgot-password a,
.no-account a,
.register-form p a,
#content a:not(.inline-flex):not(.block) {
    color: hsl(var(--primary));
    font-weight: 500;
    transition: color 0.2s ease;
}
.forgot-password a:hover,
.no-account a:hover,
.register-form p a:hover,
#content a:not(.inline-flex):not(.block):hover {
    color: hsl(var(--secondary));
    text-decoration: underline;
    text-underline-offset: 4px;
}

/* Alerts and Help Blocks */
.alert,
.help-block,
.alert-danger,
.alert-warning,
.alert-success {
    padding: 0.75rem 1rem;
    margin-bottom: 1.25rem;
    border-radius: var(--radius);
    font-size: 0.875rem;
}
.alert-danger,
.help-block,
.has-error .form-control {
    background-color: hsl(var(--destructive) / 0.08);
    border: 1px solid hsl(var(--destructive) / 0.3);
    color: hsl(var(--destructive));
}
.alert-success {
    background-color: hsl(var(--success) / 0.08);
    border: 1px solid hsl(var(--success) / 0.3);
    color: hsl(var(--success));
}
.help-block ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.help-block li {
    margin-bottom: 0.5rem;
}
.help-block li:last-child {
    margin-bottom: 0;
}

/* My Account Dashboard Links Grid */
#my-account .links {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 2rem;
}
@media (min-width: 640px) {
    #my-account .links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 1024px) {
    #my-account .links {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
#my-account .links a {
    text-decoration: none;
}
#my-account .links [class*="col-"] {
    flex: none !important;
    max-width: none !important;
    width: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

#my-account .links .link-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    height: 8rem;
    padding: 1.5rem;
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: var(--radius);
    text-align: center;
    color: hsl(var(--secondary));
    font-weight: 600;
    font-size: 0.95rem;
    transition: all 0.2s ease-in-out;
}
#my-account .links .link-item i {
    font-size: 2rem;
    color: hsl(var(--primary));
    transition: transform 0.2s ease;
}
#my-account .links a:hover .link-item {
    border-color: hsl(var(--primary));
    transform: translateY(-2px);
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.05), 0 2px 4px -2px rgb(0 0 0 / 0.05);
}
#my-account .links a:hover .link-item i {
    transform: scale(1.05);
}

/* Account Footer Navigation Links */
.account-link {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
    color: hsl(var(--secondary) / 0.6);
    text-decoration: none;
    margin-right: 1.5rem;
    transition: color 0.2s ease;
    font-weight: 500;
}
.account-link:hover {
    color: hsl(var(--primary));
}
.account-link i {
    font-size: 1.125rem;
}
.text-sm-center {
    margin-top: 2.5rem;
    text-align: center;
}
.text-sm-center a[href*="logout"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 2.25rem;
    padding: 0.5rem 1.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: hsl(var(--muted-foreground));
    border: 1px solid hsl(var(--border));
    background-color: hsl(var(--card));
    border-radius: var(--radius);
    text-decoration: none;
    transition: all 0.2s ease;
    cursor: pointer;
}
.text-sm-center a[href*="logout"]:hover {
    color: hsl(var(--destructive));
    border-color: hsl(var(--destructive) / 0.3);
    background-color: hsl(var(--destructive) / 0.05);
}
footer.page-footer {
    border-top: 1px solid hsl(var(--border));
    margin-top: 0.5rem;
    padding-top: 1.5rem;
}

/* Dashboard Tables (Orders History) */
table {
    width: 100%;
    margin-bottom: 1.5rem;
    background-color: transparent;
    border-collapse: collapse;
}
th,
td {
    padding: 0.875rem 1rem;
    vertical-align: middle;
    border-top: 1px solid hsl(var(--border));
    text-align: left;
    font-size: 0.875rem;
    color: hsl(var(--secondary));
}
thead th {
    vertical-align: bottom;
    border-bottom: 2px solid hsl(var(--border));
    font-weight: 600;
    color: hsl(var(--secondary));
    background-color: hsl(var(--muted) / 0.5);
    border-top: none;
}
tbody tr:hover {
    background-color: hsl(var(--muted) / 0.3);
}
.label.label-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.25rem 0.625rem;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 9999px;
    text-transform: uppercase;
    letter-spacing: 0.025em;
}
/* Override specific order status background colors (like #34209E/e from DB) to match theme's primary color */
.label.label-pill[style*="background-color:#34209E"],
.label.label-pill[style*="background-color:#34209e"],
.label.label-pill[style*="background-color: #34209E"],
.label.label-pill[style*="background-color: #34209e"] {
    background-color: #68d43a !important;
    color: #1f1f1f !important;
}


/* Action Links inside Tables */
.order-actions a {
    display: inline-flex;
    align-items: center;
    padding: 0.375rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 600;
    border-radius: var(--radius);
    margin-right: 0.5rem;
    transition: all 0.2s ease-in-out;
    text-decoration: none;
}
.order-actions .view-order-details-link {
    background-color: hsl(var(--muted));
    color: hsl(var(--secondary));
    border: 1px solid hsl(var(--border));
}
.order-actions .view-order-details-link:hover {
    background-color: hsl(var(--border));
}
.order-actions .reorder-link {
    background-color: hsl(var(--primary));
    color: hsl(var(--primary-foreground)) !important;
}
.order-actions .reorder-link:hover {
    filter: brightness(0.92);
}

/* Mobile Orders Layout List */
.orders .order {
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: var(--radius);
    padding: 1.25rem;
    margin-bottom: 1rem;
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.02);
}
.orders .order h3 {
    font-size: 1rem;
    font-weight: 700;
    color: hsl(var(--secondary));
    margin: 0 0 0.5rem 0;
}
.orders .order .date,
.orders .order .total {
    font-size: 0.875rem;
    color: hsl(var(--muted-foreground));
    margin-bottom: 0.25rem;
}
.orders .order .status {
    margin-top: 0.5rem;
}

/* Addresses page layout grid */
body#addresses .page-content {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 1.5rem;
    margin-top: 2rem;
}
@media (min-width: 640px) {
    body#addresses .page-content {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 1024px) {
    body#addresses .page-content {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
body#addresses .page-content > div[class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    padding: 0 !important;
}

/* Addresses Blocks */
.address {
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: var(--radius);
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    display: flex;
    flex-direction: column;
    height: calc(100% - 1.5rem);
}
.address h4 {
    font-size: 1.125rem;
    font-weight: 700;
    color: hsl(var(--secondary));
    margin-bottom: 1rem;
}
.address address {
    font-style: normal;
    font-size: 0.875rem;
    line-height: 1.6;
    color: hsl(var(--muted-foreground));
    margin-bottom: 1.5rem;
    flex-grow: 1;
}
.address-footer {
    display: flex;
    gap: 1rem;
    border-top: 1px solid hsl(var(--border));
    padding-top: 1rem;
    margin-top: auto;
}
.address-footer a {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--secondary));
    text-decoration: none;
    transition: color 0.2s ease;
}
.address-footer a:hover {
    color: hsl(var(--primary));
}
.addresses-footer {
    margin-top: 1rem;
    margin-bottom: 2rem;
}
.addresses-footer a {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: hsl(var(--primary-foreground)) !important;
    background-color: hsl(var(--primary)) !important;
    padding: 0.625rem 1.25rem;
    border-radius: var(--radius);
    text-decoration: none;
    transition: all 0.2s ease;
}
.addresses-footer a:hover {
    filter: brightness(0.92);
    transform: translateY(-1px);
}

/* ==========================================================================
   WISHLIST / FAVOURITES DESIGN (blockwishlist module)
   ========================================================================== */



/* Wishlist lists page: Header */
.wishlist-container-header,
.wishlist-products-container-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 2rem;
}
.wishlist-container-header h1,
.wishlist-products-container-header h1 {
    font-family: "Space Grotesk", sans-serif;
    font-size: 1.75rem;
    font-weight: 700;
    color: hsl(var(--secondary));
    letter-spacing: -0.025em;
    margin: 0;
}
.wishlist-products-count {
    color: hsl(var(--muted-foreground));
    font-size: 1.25rem;
    font-weight: 400;
    margin-left: 0.5rem;
}

/* Add Wishlist CTA */
.wishlist-add-to-new {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: hsl(var(--primary)) !important;
    text-decoration: none;
    cursor: pointer;
    transition: color 0.2s ease;
}
.wishlist-add-to-new:hover {
    color: hsl(var(--secondary)) !important;
    text-decoration: none;
}
.wishlist-add-to-new i {
    font-size: 1.25rem;
}

/* Sorting in product lists */
.wishlist-products-container-header .sort-by-row {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
}
.wishlist-products-container-header .sort-by-row .sort-by {
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--muted-foreground));
}
.wishlist-products-container-header .sort-by-row .products-sort-order .select-title {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: var(--radius);
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    color: hsl(var(--secondary));
    cursor: pointer;
    font-weight: 500;
    transition: all 0.2s ease;
}
.wishlist-products-container-header .sort-by-row .products-sort-order .select-title:hover {
    border-color: hsl(var(--ring));
}
.wishlist-products-container-header .sort-by-row .products-sort-order .dropdown-menu {
    border: 1px solid hsl(var(--border)) !important;
    border-radius: var(--radius) !important;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1) !important;
    padding: 0.25rem 0 !important;
}
.wishlist-products-container-header .sort-by-row .products-sort-order .dropdown-menu a {
    display: block;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    color: hsl(var(--secondary));
    cursor: pointer;
}
.wishlist-products-container-header .sort-by-row .products-sort-order .dropdown-menu a:hover {
    background-color: hsl(var(--muted));
    text-decoration: none;
}

/* Card wrappers for Lists Content */
.wishlist-container #content.page-content.card,
.wishlist-products-container #content.page-content.card {
    background-color: hsl(var(--card)) !important;
    border: 1px solid hsl(var(--border)) !important;
    border-radius: var(--radius) !important;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.02) !important;
    padding: 0 !important;
    margin-bottom: 2rem !important;
    overflow: hidden;
}

/* Lists styling */
.wishlist-list-container {
    padding: 0;
}
.wishlist-list {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    list-style: none;
}
.wishlist-list-item {
    border-bottom: 1px solid hsl(var(--border));
    transition: background-color 0.2s ease;
}
.wishlist-list-item:last-child {
    border-bottom: none;
}
.wishlist-list-item:hover {
    background-color: hsl(var(--muted) / 0.3);
}
.wishlist-list-item-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.25rem 1.5rem;
    text-decoration: none;
    color: hsl(var(--foreground));
    cursor: pointer;
}
.wishlist-list-item-title {
    font-family: "Space Grotesk", sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: hsl(var(--secondary));
    margin: 0;
}
.wishlist-list-item-title span {
    color: hsl(var(--muted-foreground));
    font-weight: 400;
    margin-left: 0.5rem;
}

/* Dropdown actions menu in lists */
.wishlist-list-item-right {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.wishlist-list-item-right button {
    cursor: pointer;
    border: none;
    background: transparent;
    padding: 0.25rem;
    border-radius: 9999px;
    color: hsl(var(--muted-foreground));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}
.wishlist-list-item-right button:hover {
    color: hsl(var(--secondary));
    background-color: hsl(var(--muted));
}
.wishlist-list-item-right .dropdown-menu {
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 50;
    display: flex;
    flex-direction: column;
    min-width: 8rem;
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: var(--radius);
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
    padding: 0.25rem 0;
    overflow: hidden;
}
.wishlist-list-item-right .dropdown-menu button {
    width: 100%;
    text-align: left;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    color: hsl(var(--secondary));
    border-radius: 0;
    justify-content: flex-start;
}
.wishlist-list-item-right .dropdown-menu button:hover {
    background-color: hsl(var(--muted) / 0.8);
    color: hsl(var(--secondary));
}

/* Wishlist Products Grid */
.wishlist-products-list {
    display: grid !important;
    grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
    gap: 2rem !important;
    padding: 2rem !important;
    margin: 0 !important;
    list-style: none !important;
}
@media (min-width: 640px) {
    .wishlist-products-list {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (min-width: 1024px) {
    .wishlist-products-list {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}
@media (min-width: 1280px) {
    .wishlist-products-list {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}
.wishlist-products-item {
    margin: 0 !important;
    display: flex;
}

/* Individual Saved Product Card */
.wishlist-product {
    background-color: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: var(--radius);
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    width: 100%;
    position: relative;
    transition: all 0.2s ease-in-out;
}
.wishlist-product:hover {
    border-color: hsl(var(--primary));
    transform: translateY(-2px);
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.05), 0 2px 4px -2px rgb(0 0 0 / 0.05);
}
.wishlist-product-image {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    position: relative;
    overflow: hidden;
    border-radius: calc(var(--radius) - 2px);
    background-color: hsl(var(--muted) / 0.2);
}
.wishlist-product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}
.wishlist-product:hover .wishlist-product-image img {
    /* transform: scale(1.05); */
}
.wishlist-product-right {
    margin-top: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex-grow: 1;
}
.wishlist-product-title {
    font-family: "Space Grotesk", sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: hsl(var(--secondary));
    margin: 0;
    line-height: 1.25;
}
.wishlist-product-price {
    font-size: 1.125rem;
    font-weight: 700;
    color: hsl(var(--secondary));
    margin: 0;
}
.wishlist-product-price-promo {
    font-size: 0.875rem;
    font-weight: 500;
    color: hsl(var(--muted-foreground));
    text-decoration: line-through;
    margin-right: 0.5rem;
}
.wishlist-product-combinations {
    font-size: 0.8125rem;
    color: hsl(var(--muted-foreground));
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 0.5rem;
}
.wishlist-product-combinations-text {
    margin: 0;
}
.wishlist-product-combinations a {
    color: hsl(var(--muted-foreground));
    transition: color 0.2s ease;
}
.wishlist-product-combinations a:hover {
    color: hsl(var(--primary));
}
.wishlist-product-bottom {
    margin-top: 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.wishlist-product-addtocart {
    flex-grow: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    height: 2.5rem !important;
    font-size: 0.875rem !important;
    font-weight: 600;
    border-radius: var(--radius);
    transition: all 0.2s ease;
    cursor: pointer;
}
.wishlist-product-addtocart i {
    font-size: 1.125rem;
}

/* Delete product button from wishlist card */
.wishlist-product-bottom .wishlist-button-add {
    position: static !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 2.5rem;
    width: 2.5rem;
    border-radius: var(--radius);
    background-color: hsl(var(--muted) / 0.5);
    color: hsl(var(--destructive));
    border: 1px solid hsl(var(--border));
    cursor: pointer;
    box-shadow: none;
    transition: all 0.2s ease;
}
.wishlist-product-bottom .wishlist-button-add:hover {
    background-color: hsl(var(--destructive) / 0.1);
    border-color: hsl(var(--destructive) / 0.3);
    color: hsl(var(--destructive));
    opacity: 1;
}
.wishlist-product-bottom .wishlist-button-add i {
    color: inherit;
    font-size: 1.25rem;
}

/* Modals Styling */
.wishlist-modal {
    display: none;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1050;
    overflow-x: hidden;
    overflow-y: auto;
    transition: opacity 0.15s linear;
}
.wishlist-modal.show {
    display: block;
    opacity: 1;
    pointer-events: auto;
    background-color: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(4px);
}
.wishlist-modal .modal-dialog {
    position: relative;
    width: auto;
    margin: 1.75rem auto;
    max-width: 28rem;
    pointer-events: none;
}
@media (max-width: 576px) {
    .wishlist-modal .modal-dialog {
        margin: 1rem;
    }
}
.wishlist-modal .modal-content {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    pointer-events: auto;
    background-color: hsl(var(--card));
    background-clip: padding-box;
    border: 1px solid hsl(var(--border));
    border-radius: var(--radius);
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
    outline: 0;
}
.wishlist-modal .modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid hsl(var(--border));
}
.wishlist-modal .modal-title {
    font-family: "Space Grotesk", sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    color: hsl(var(--secondary));
    margin: 0;
}
.wishlist-modal button.close {
    cursor: pointer;
    background: transparent;
    border: none;
    font-size: 1.5rem;
    font-weight: 500;
    color: hsl(var(--muted-foreground));
    padding: 0.25rem;
    display: inline-flex;
    line-height: 1;
}
.wishlist-modal button.close:hover {
    color: hsl(var(--secondary));
}
.wishlist-modal .modal-body {
    position: relative;
    flex: 1 1 auto;
    padding: 1.5rem;
}
.wishlist-modal .modal-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 1rem 1.5rem;
    border-top: 1px solid hsl(var(--border));
    gap: 0.75rem;
}
.wishlist-modal .modal-footer button {
    margin: 0;
}

/* Wishlist empty states and footer navigation links */
.wishlist-list-empty {
    font-family: "Space Grotesk", sans-serif;
    font-size: 1.25rem;
    text-align: center;
    padding: 3rem 1.5rem;
    font-weight: 600;
    color: hsl(var(--muted-foreground));
    margin: 0;
}
.wishlist-footer-links {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    margin-top: 2.5rem;
    border-top: 1px solid hsl(var(--border));
    padding-top: 1.5rem;
}
.wishlist-footer-links a {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
    color: hsl(var(--secondary) / 0.6);
    text-decoration: none;
    transition: color 0.2s ease;
    font-weight: 500;
}
.wishlist-footer-links a:hover {
    color: hsl(var(--primary));
    text-decoration: none;
}
.wishlist-footer-links a i {
    font-size: 1.125rem;
}

/* ==========================================================================
   PRODUCT CARD MINIATURE WISHLIST BUTTON
   ========================================================================== */
.thumbnail-container .wishlist-button {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 30;
}
.thumbnail-container .wishlist-button-add {
    position: static !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 2.25rem;
    width: 2.25rem;
    min-width: 2.25rem;
    border-radius: 9999px;
    background-color: hsl(var(--card)) !important;
    border: 1px solid hsl(var(--border)) !important;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.05) !important;
    color: hsl(var(--muted-foreground)) !important;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    padding: 0 !important;
}
.thumbnail-container .wishlist-button-add:hover {
    color: hsl(var(--destructive)) !important;
    transform: scale(1.05);
    background-color: hsl(var(--muted) / 0.2) !important;
}
.thumbnail-container .wishlist-button-add i {
    font-size: 1.125rem !important;
    color: inherit !important;
}
.thumbnail-container .wishlist-button-add.is-active {
    color: hsl(var(--destructive)) !important;
    background-color: hsl(var(--destructive) / 0.05) !important;
    border-color: hsl(var(--destructive) / 0.2) !important;
}

/* Global rule to show asterisks (*) on mandatory form fields */
.form-control-label.required::after {
    content: " *";
    color: hsl(var(--primary)) !important;
}

/* Container for default theme pages wrapper */
.container-tightss {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    max-width: 80rem; /* 1280px / max-w-7xl */
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

@media (min-width: 768px) {
    .container-tightss {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

/* Force wishlist products list sort dropdown menu toggle display */
.products-sort-order .dropdown-menu {
    display: none !important;
}
.products-sort-order.show .dropdown-menu,
.products-sort-order.open .dropdown-menu,
.products-sort-order .dropdown-menu.show {
    display: block !important;
}

/* ==========================================================================
   GDPR PERSONAL DATA PAGE BUTTONS & CONTAINER STYLING
   ========================================================================== */
/* Align page container cards */
body[id*="psgdpr"] .psgdprinfo17 {
    background-color: hsl(var(--card)) !important;
    border: 1px solid hsl(var(--border)) !important;
    border-radius: var(--radius) !important;
    padding: 1.5rem !important;
    margin-bottom: 2rem !important;
    display: block !important; /* Keep block display on desktop so floats work */
}

/* Clear floated buttons on desktop to prevent box overlap */
body[id*="psgdpr"] .psgdprinfo17::after {
    content: "" !important;
    display: table !important;
    clear: both !important;
}

/* Ensure paragraph has proper margin on desktop */
body[id*="psgdpr"] .psgdprinfo17 p {
    margin-bottom: 1rem !important;
    line-height: 1.6 !important;
}

/* Mobile specific: Stack buttons vertically and center them */
@media (max-width: 639px) {
    body[id*="psgdpr"] .psgdprinfo17 p {
        margin-bottom: 1.5rem !important;
    }
    body[id*="psgdpr"] .psgdprinfo17 .psgdprgetdatabtn17 {
        float: none !important; /* Revert float on mobile */
        display: flex !important; /* Stack above each other */
        align-items: center !important;
        justify-content: center !important;
        height: 2.75rem !important;
        padding: 0.5rem 1.5rem !important;
        font-size: 0.875rem !important;
        font-weight: 600 !important;
        border-radius: var(--radius) !important;
        margin: 0.5rem auto !important; /* Center horizontally and space vertically */
        width: 100% !important;
        max-width: max-content !important; /* Content width fitting */
        text-align: center !important;
    }
}



@media (max-width: 767px) {
  div#search_filter_controls { display: none !important; }
}

/* ═══════════════════════════════════════════════════════════════
   PREVENTIVO MODAL — Cart Quote Request Form
   ═══════════════════════════════════════════════════════════════ */

/* Modal overlay */
.preventivo-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

.preventivo-modal.is-open {
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
}

/* Backdrop */
.preventivo-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

/* Card */
.preventivo-modal__card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 540px;
  max-height: 90vh;
  overflow-y: auto;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  border-radius: 0.75rem;
  padding: 2rem;
  box-shadow:
    0 25px 50px -12px rgba(0, 0, 0, 0.25),
    0 0 0 1px rgba(0, 0, 0, 0.05);
  transform: translateY(16px) scale(0.97);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.preventivo-modal.is-open .preventivo-modal__card {
  transform: translateY(0) scale(1);
}

/* Close button */
.preventivo-modal__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.375rem;
  border: none;
  background: transparent;
  color: hsl(var(--muted-foreground));
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.preventivo-modal__close:hover {
  background: hsl(var(--muted));
  color: hsl(var(--secondary));
}

/* Header */
.preventivo-modal__header {
  margin-bottom: 1.5rem;
  padding-right: 2rem;
}

/* Form grid */
.preventivo-form-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}

@media (min-width: 480px) {
  .preventivo-form-grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* Form field */
.preventivo-form-field {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.preventivo-form-label {
  font-size: 0.8125rem;
  font-weight: 500;
  color: hsl(var(--secondary));
}

.preventivo-form-input {
  display: flex;
  height: 2.5rem;
  width: 100%;
  border-radius: 0.5rem;
  border: 1px solid hsl(var(--border));
  background: hsl(var(--background));
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  color: hsl(var(--secondary));
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  outline: none;
}

.preventivo-form-input::placeholder {
  color: hsl(var(--muted-foreground));
}

.preventivo-form-input:focus {
  border-color: hsl(var(--primary));
  box-shadow: 0 0 0 3px hsla(var(--primary), 0.15);
}

.preventivo-form-textarea {
  height: auto;
  min-height: 5rem;
  resize: vertical;
}

/* Error message */
.preventivo-form-error {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.75rem;
  padding: 0.625rem 0.75rem;
  border-radius: 0.5rem;
  background: hsl(0 84% 60% / 0.1);
  border: 1px solid hsl(0 84% 60% / 0.2);
  color: hsl(0 84% 40%);
  font-size: 0.8125rem;
  font-weight: 500;
}

.preventivo-form-error.hidden {
  display: none;
}

/* Submit button */
.preventivo-form-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  height: 2.75rem;
  margin-top: 1.25rem;
  border-radius: 0.5rem;
  border: none;
  background: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: filter 0.15s ease, transform 0.1s ease;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}

.preventivo-form-submit:hover {
  filter: brightness(1.05);
  transform: translateY(-1px);
}

.preventivo-form-submit:active {
  transform: translateY(0);
}

.preventivo-form-submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

.preventivo-submit-loading {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.preventivo-submit-loading.hidden,
.preventivo-submit-label.hidden {
  display: none;
}

/* Success state */
.preventivo-modal__success {
  text-align: center;
  padding: 2rem 1rem;
}

.preventivo-modal__success.hidden {
  display: none;
}

.preventivo-success-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 50%;
  background: hsl(var(--primary) / 0.1);
  color: hsl(var(--primary));
}

/* Spin animation for loading */
@keyframes preventivo-spin {
  to { transform: rotate(360deg); }
}

.preventivo-form-submit .animate-spin {
  animation: preventivo-spin 1s linear infinite;
}

/* Scrollbar styling for the modal card */
.preventivo-modal__card::-webkit-scrollbar {
  width: 6px;
}

.preventivo-modal__card::-webkit-scrollbar-track {
  background: transparent;
}

.preventivo-modal__card::-webkit-scrollbar-thumb {
  background: hsl(var(--border));
  border-radius: 3px;
}

/* Mobile fullscreen */
@media (max-width: 479px) {
  .preventivo-modal {
    padding: 0;
    align-items: flex-end;
  }

  .preventivo-modal__card {
    max-width: 100%;
    max-height: 95vh;
    border-radius: 1rem 1rem 0 0;
    padding: 1.5rem;
    transform: translateY(100%);
  }

  .preventivo-modal.is-open .preventivo-modal__card {
    transform: translateY(0);
  }
}

/* Richiedi Preventivo (full page form): more breathing room between the
   "Chi sei" and "Di cosa hai bisogno" fieldsets */
#preventivo-form > fieldset + fieldset {
  margin-top: 4.5rem;
}

.blockreassurance_product span,
.blockreassurance_product p {
    font-size: 14px !IMPORTANT;
}
.blockreassurance_product .item-product svg {
    width:28px;
}