/* =============================================================
   ABZY AROMA — Clean rebuild layer
============================================================= */
:root {
  --fresh-bg: #0a0a0b;
  --fresh-bg-panel: #0e1628;
  --fresh-bg-accent: #0b2a22;
  --fresh-line: rgba(201, 162, 75, 0.14);
  --fresh-line-strong: rgba(201, 162, 75, 0.24);
  --fresh-text: #ede7d9;
  --fresh-dim: #9a9385;
  --fresh-gold: #c9a24b;
  --fresh-gold-soft: #e2c079;
  --fresh-teal: #001d19;
  --fresh-teal-light: #0f2420;
}

html,
body,
body.page-id-28,
body.page-about-premium-fragrances,
body.page-id-29,
body.page-contact,
body.page-id-7,
body.page-cart,
body.woocommerce-shop,
body.post-type-archive-product,
body.woocommerce-cart {
  background:
    radial-gradient(circle at 12% 8%, rgba(11, 42, 34, 0.42), transparent 30%),
    radial-gradient(circle at 86% 12%, rgba(14, 22, 40, 0.45), transparent 34%),
    radial-gradient(circle at 74% 82%, rgba(0, 29, 25, 0.36), transparent 40%),
    radial-gradient(
      circle at 20% 76%,
      rgba(201, 162, 75, 0.08),
      transparent 34%
    ),
    var(--fresh-bg);
  color: var(--fresh-text);
}

.fresh-shell {
  position: relative;
  z-index: 5;
  max-width: 1400px;
  margin: 0 auto;
  padding: clamp(30px, 6vw, 76px) clamp(18px, 4vw, 62px)
    clamp(72px, 10vw, 132px);
}

.fresh-hero {
  padding: clamp(54px, 8vw, 104px) 0 clamp(26px, 4vw, 42px);
}

.fresh-kicker,
.fresh-label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--fresh-gold);
}

.fresh-title {
  margin: 16px 0 0;
  font-family: var(--serif);
  font-size: clamp(50px, 6.5vw, 96px);
  font-weight: 300;
  line-height: 0.94;
  letter-spacing: -0.04em;
  color: var(--fresh-text);
}

.fresh-lead {
  max-width: 760px;
  margin-top: 18px;
  color: var(--fresh-dim);
  font-size: 16px;
  line-height: 1.85;
}

.fresh-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(290px, 0.9fr);
  gap: clamp(18px, 3vw, 34px);
  align-items: start;
}

.fresh-stack {
  display: grid;
  gap: 18px;
}

.fresh-panel {
  background: linear-gradient(
    135deg,
    rgba(18, 18, 20, 0.38),
    rgba(8, 8, 10, 0.28)
  );
  border: 1px solid rgba(201, 162, 75, 0.26);
  border-radius: var(--r);
  backdrop-filter: blur(18px) saturate(120%);
  -webkit-backdrop-filter: blur(18px) saturate(120%);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.24);
}

.fresh-panel--solid {
  background: linear-gradient(
    135deg,
    rgba(20, 20, 22, 0.48),
    rgba(10, 10, 12, 0.36)
  );
  backdrop-filter: blur(16px) saturate(115%);
  -webkit-backdrop-filter: blur(16px) saturate(115%);
}

.fresh-panel__inner {
  padding: clamp(22px, 3vw, 34px);
}

.fresh-copy,
.fresh-copy p {
  color: var(--fresh-dim);
  font-size: 15px;
  line-height: 1.9;
}

.fresh-copy p + p {
  margin-top: 16px;
}

.fresh-copy h2,
.fresh-copy h3 {
  margin: 30px 0 12px;
  font-family: var(--serif);
  font-weight: 300;
  letter-spacing: -0.02em;
  color: var(--fresh-text);
}

.fresh-copy h2 {
  font-size: clamp(28px, 4vw, 46px);
}

.fresh-copy h3 {
  font-size: clamp(22px, 3vw, 28px);
}

.fresh-quote {
  padding: 24px;
  border-left: 1px solid var(--fresh-line-strong);
  background: rgba(255, 255, 255, 0.02);
}

.fresh-quote p {
  font-family: var(--serif);
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.4;
  color: var(--fresh-text);
  font-style: italic;
}

.fresh-quote small {
  display: block;
  margin-top: 12px;
  color: var(--fresh-dim);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-size: 10px;
}

.fresh-metrics,
.fresh-benefits,
.fresh-links,
.fresh-contact-grid {
  display: grid;
  gap: 16px;
}

.fresh-metrics {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fresh-metric,
.fresh-feature,
.fresh-link,
.fresh-contact-card,
.fresh-product-card,
.fresh-cart-card,
.fresh-form-card {
  padding: 18px;
  border-radius: var(--r);
  background: linear-gradient(
    135deg,
    rgba(20, 20, 22, 0.4),
    rgba(10, 10, 12, 0.3)
  );
  border: 1px solid rgba(201, 162, 75, 0.18);
  backdrop-filter: blur(12px) saturate(110%);
  -webkit-backdrop-filter: blur(12px) saturate(110%);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.fresh-metric span,
.fresh-feature span,
.fresh-link span,
.fresh-contact-card span {
  display: block;
}

.fresh-metric .num {
  font-family: var(--serif);
  font-size: 22px;
  color: var(--fresh-gold-soft);
  margin-bottom: 6px;
}

.fresh-metric .label,
.fresh-feature .label,
.fresh-contact-card .label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fresh-gold);
  margin-bottom: 8px;
}

.fresh-section {
  margin-top: 28px;
}

.fresh-section__head {
  margin-bottom: 18px;
}

.fresh-section__title {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(30px, 4vw, 52px);
  line-height: 1.02;
  letter-spacing: -0.03em;
  color: var(--fresh-text);
}

.fresh-section__copy {
  margin-top: 10px;
  max-width: 700px;
  color: var(--fresh-dim);
  line-height: 1.8;
}

.fresh-feature-grid,
.fresh-product-grid {
  display: grid;
  gap: 18px;
}

.fresh-feature-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fresh-feature h4,
.fresh-contact-card h4,
.fresh-product-card h3,
.fresh-cart-card h3 {
  margin: 0 0 10px;
  font-family: var(--serif);
  font-weight: 300;
  letter-spacing: -0.02em;
  color: var(--fresh-text);
}

.fresh-feature p,
.fresh-contact-card p,
.fresh-product-card p,
.fresh-cart-card p {
  color: var(--fresh-dim);
  line-height: 1.75;
}

.fresh-aside {
  display: grid;
  gap: 18px;
}

.fresh-aside .fresh-panel__inner {
  padding: 22px;
}

.fresh-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: var(--fresh-text);
  transition:
    transform 0.25s ease,
    border-color 0.25s ease;
}

.fresh-link:hover {
  transform: translateY(-2px);
  border-color: rgba(226, 192, 121, 0.38);
}

.fresh-link strong {
  display: block;
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 300;
}

.fresh-form {
  display: grid;
  gap: 14px;
}

.fresh-form .wpforms-container,
.fresh-form form,
.fresh-form .wpcf7,
.fresh-form .wp-block-woocommerce-checkout,
.fresh-form .woocommerce {
  color: var(--fresh-text);
}

.fresh-form input[type="text"],
.fresh-form input[type="email"],
.fresh-form input[type="tel"],
.fresh-form input[type="url"],
.fresh-form input[type="password"],
.fresh-form input[type="search"],
.fresh-form textarea,
.fresh-form select,
.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container input[type="tel"],
.wpforms-container input[type="url"],
.wpforms-container textarea,
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 textarea,
.wpcf7 select {
  width: 100%;
  background: #121213 !important;
  color: var(--fresh-text) !important;
  border: 1px solid var(--fresh-line-strong) !important;
  border-radius: var(--r) !important;
  padding: 14px 16px !important;
  outline: none;
}

.fresh-form textarea,
.wpforms-container textarea,
.wpcf7 textarea {
  min-height: 160px;
  resize: vertical;
}

.fresh-form input::placeholder,
.fresh-form textarea::placeholder {
  color: rgba(154, 147, 133, 0.84);
}

.fresh-form input:focus,
.fresh-form textarea:focus,
.fresh-form select:focus,
.wpforms-container input:focus,
.wpforms-container textarea:focus,
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
  border-color: var(--fresh-line-strong) !important;
  box-shadow: inset 0 0 0 2px rgba(226, 192, 121, 0.16);
}

.fresh-form .wpforms-submit,
.fresh-form .wpcf7-submit,
.fresh-form button[type="submit"],
.fresh-form input[type="submit"],
.fresh-button,
.fresh-actions a,
.fresh-product-card .button,
.fresh-cart-card .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.wc-proceed-to-checkout a.checkout-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 22px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fresh-gold-soft) !important;
  background: rgba(201, 162, 75, 0.18) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border: none !important;
  border-radius: var(--r) !important;
  box-shadow: none !important;
}

.fresh-actions,
.fresh-button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.fresh-product-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fresh-product-meta,
.fresh-cart-meta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}

.fresh-price {
  font-family: var(--serif);
  color: var(--fresh-gold-soft);
  font-size: 18px;
}

.fresh-cart-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.8fr);
  gap: 22px;
  align-items: start;
}

.fresh-cart-card table.shop_table,
.woocommerce-cart .shop_table,
.woocommerce-cart .cart_totals,
.woocommerce-cart .woocommerce-shipping-calculator {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.fresh-cart-card table.shop_table th,
.fresh-cart-card table.shop_table td,
.woocommerce-cart table.shop_table th,
.woocommerce-cart table.shop_table td,
.woocommerce-cart .cart_totals th,
.woocommerce-cart .cart_totals td {
  color: var(--fresh-text);
  border-color: rgba(255, 255, 255, 0.08);
}

.fresh-cart-empty {
  text-align: center;
  padding: clamp(30px, 5vw, 60px);
}

.fresh-bag {
  width: 88px;
  height: 88px;
  margin: 0 auto 18px;
  border-radius: var(--r);
  border: 1px solid var(--fresh-line-strong);
  position: relative;
}

.fresh-bag::before,
.fresh-bag::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(201, 162, 75, 0.28);
}

.fresh-bag::before {
  width: 30px;
  height: 18px;
  border-bottom: none;
  border-radius: 0;
  left: 50%;
  top: 14px;
  transform: translateX(-50%);
}

.fresh-bag::after {
  inset: 24px 20px 18px;
  border-radius: 0;
}

.fresh-cart-note {
  color: var(--fresh-dim);
  line-height: 1.8;
}

@media (max-width: 1100px) {
  .fresh-grid,
  .fresh-cart-layout {
    grid-template-columns: 1fr;
  }

  .fresh-feature-grid,
  .fresh-product-grid,
  .fresh-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .fresh-shell {
    padding: 18px 18px 88px;
  }

  .fresh-hero {
    padding-top: 34px;
  }

  .fresh-title {
    font-size: clamp(40px, 13vw, 66px);
  }

  .fresh-feature-grid,
  .fresh-product-grid,
  .fresh-metrics {
    grid-template-columns: 1fr;
  }
}

/* WooCommerce Messages and Notices */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info,
.wp-block-woocommerce-notice .components-notice__content {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 22px;
  background: var(--fresh-bg-panel);
  border-left: 4px solid var(--fresh-gold-soft);
  color: var(--fresh-text);
  border-radius: var(--r);
  box-shadow: none;
  margin: 0 0 20px 0;
}

.woocommerce-error {
  border-left-color: #e74c3c;
}

.woocommerce-info {
  border-left-color: #3498db;
}

.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before {
  content: "";
  display: none;
}

.woocommerce-message a.button,
.woocommerce-message .button {
  margin-left: auto;
  padding: 10px 16px;
  font-size: 12px;
  background: var(--fresh-gold) !important;
  color: var(--fresh-bg) !important;
  border: none !important;
  border-radius: var(--r) !important;
}

.woocommerce-message a.button:hover,
.woocommerce-message .button:hover {
  background: var(--fresh-gold-soft) !important;
}

/* Add to cart button specific styling */
.single-product .product .product_title + * .single_add_to_cart_button,
.single-product form.cart .single_add_to_cart_button,
.woocommerce-variation-add-to-cart .single_add_to_cart_button {
  padding: 16px 32px !important;
  font-family: var(--mono) !important;
  font-size: 12px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  background: var(--fresh-gold) !important;
  color: var(--fresh-bg) !important;
  border: none !important;
  border-radius: var(--r) !important;
  display: inline-block;
  cursor: pointer;
  transition: all 0.25s ease;
}

.single-product .product .product_title + * .single_add_to_cart_button:hover,
.single-product form.cart .single_add_to_cart_button:hover,
.woocommerce-variation-add-to-cart .single_add_to_cart_button:hover {
  background: var(--fresh-gold-soft) !important;
  transform: translateY(-2px);
}

/* Quantity selector styling */
.woocommerce .quantity,
.woocommerce-page .quantity {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--fresh-line-strong);
  background: transparent;
  border-radius: var(--r);
}

.woocommerce .quantity input.qty,
.woocommerce-page .quantity input.qty {
  width: 60px;
  padding: 8px 12px;
  background: transparent;
  border: none;
  border-right: 1px solid var(--fresh-line-strong);
  color: var(--fresh-text);
  text-align: center;
  font-family: var(--mono);
  font-size: 12px;
}

.woocommerce .quantity button,
.woocommerce-page .quantity button {
  width: 40px;
  height: 34px;
  padding: 0;
  background: transparent;
  border: none;
  color: var(--fresh-gold);
  font-size: 18px;
  cursor: pointer;
  transition: color 0.25s ease;
}

.woocommerce .quantity button:hover,
.woocommerce-page .quantity button:hover {
  color: var(--fresh-gold-soft);
}

/* Cart notice styling */
.woocommerce-cart-notice {
  margin-bottom: 20px;
}

/* Product meta styling in single product page */
.woocommerce-page .product_meta,
.product_meta {
  border-top: 1px solid var(--fresh-line);
  border-bottom: 1px solid var(--fresh-line);
  padding: 16px 0;
  margin: 20px 0;
  font-size: 13px;
}

.product_meta > span {
  display: block;
  margin: 12px 0;
}

.product_meta a {
  color: var(--fresh-gold-soft);
  text-decoration: none;
  transition: color 0.25s ease;
}

.product_meta a:hover {
  color: var(--fresh-text);
}

/* Full-width product grid for shop page */
.fresh-product-grid-wide {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 24px;
  width: 100%;
}

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

@media (max-width: 768px) {
  .fresh-product-grid-wide {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .fresh-product-grid-wide {
    grid-template-columns: 1fr;
  }
}

.fresh-product-card {
  display: flex;
  flex-direction: column;
  background: linear-gradient(
    135deg,
    rgba(18, 18, 20, 0.42),
    rgba(8, 8, 10, 0.3)
  );
  border: 1px solid rgba(201, 162, 75, 0.18);
  border-radius: var(--r);
  backdrop-filter: blur(14px) saturate(115%);
  -webkit-backdrop-filter: blur(14px) saturate(115%);
  overflow: hidden;
  transition: all 0.3s ease;
}
.fresh-product-card:hover {
  border-color: rgba(201, 162, 75, 0.36);
  background: linear-gradient(
    135deg,
    rgba(20, 20, 22, 0.5),
    rgba(10, 10, 12, 0.38)
  );
}

.fresh-product-thumb {
  display: block;
  width: 100%;
  aspect-ratio: 3/4;
  overflow: hidden;
  border-radius: 15px 15px 0 0;
  background: rgba(5, 15, 14, 0.5);
}

.fresh-product-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.fresh-product-card:hover .fresh-product-thumb img {
  transform: scale(1.05);
}

/* Footer and site-wide background coverage */
.site-footer,
.footer,
#colophon,
.wp-site-blocks,
.site-header-row-layout-contained {
  background:
    radial-gradient(circle at 88% 0%, rgba(14, 22, 40, 0.34), transparent 38%),
    radial-gradient(circle at 6% 100%, rgba(11, 42, 34, 0.34), transparent 42%),
    var(--fresh-bg) !important;
  background-color: var(--fresh-bg) !important;
  color: var(--fresh-text) !important;
}

/* Ambient glows for visual depth */
.amb1 {
  position: fixed;
  top: 0;
  left: -15vw;
  width: 55vw;
  height: 55vw;
  background: radial-gradient(
    circle,
    rgba(201, 162, 75, 0.09) 0%,
    transparent 58%
  );
  pointer-events: none;
  filter: blur(60px);
  z-index: 0;
}

.amb2 {
  position: fixed;
  bottom: -15%;
  right: -10vw;
  width: 58vw;
  height: 58vw;
  background: radial-gradient(
    circle,
    rgba(11, 42, 34, 0.12) 0%,
    transparent 58%
  );
  pointer-events: none;
  filter: blur(80px);
  z-index: 0;
}

/* WooCommerce styling for cart */
.woocommerce-cart,
.woocommerce-page .cart,
.woocommerce table.shop_table {
  background: transparent;
  color: var(--fresh-text);
}

.woocommerce table.shop_table td,
.woocommerce table.shop_table th {
  border-color: var(--fresh-line-strong);
  background: rgba(14, 22, 40, 0.5);
  color: var(--fresh-text);
}

.woocommerce-cart-totals {
  background: transparent;
}

.woocommerce .cart-collaterals h2,
.woocommerce .woocommerce-cart-totals h2 {
  color: var(--fresh-text);
}

/* Cart subtotal and total */
.woocommerce .woocommerce-cart-totals table tr td,
.woocommerce .woocommerce-cart-totals table tr th {
  color: var(--fresh-text);
  border-color: var(--fresh-line-strong);
}

.woocommerce .woocommerce-cart-totals .order-total .woocommerce-Price-amount {
  color: var(--fresh-gold-soft);
}

/* Cart buttons */
.woocommerce
  .woocommerce-cart-totals
  .wc-proceed-to-checkout
  a.checkout-button {
  background: var(--fresh-gold) !important;
  color: #0a0a0b !important;
  border-radius: var(--r) !important;
}

.woocommerce a.button.checkout {
  background: var(--fresh-gold) !important;
  color: #0a0a0b !important;
  border-radius: var(--r) !important;
}

.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
  background: rgba(14, 22, 40, 0.7);
  border-left-color: var(--fresh-gold);
  color: var(--fresh-text);
}

/* ── Pagination ── */
.woocommerce-pagination ul,
.woocommerce nav.woocommerce-pagination ul {
  list-style: none;
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
  padding: 0;
  margin: 0;
}
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span,
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 14px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--dim);
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.02);
  transition:
    color 0.28s,
    border-color 0.28s,
    background 0.28s;
}
.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:hover {
  color: var(--gold);
  border-color: rgba(201, 162, 75, 0.32);
  background: rgba(201, 162, 75, 0.06);
}
.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li span.current {
  color: var(--gold2);
  border-color: rgba(201, 162, 75, 0.42);
  background: rgba(201, 162, 75, 0.1);
}

/* ── Related products ── */
.woocommerce .related h2,
.woocommerce .upsells h2 {
  font-family: var(--serif);
  font-size: clamp(28px, 4vw, 52px);
  font-weight: 300;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 64px 0 32px;
  padding-top: 48px;
  border-top: 1px solid var(--line);
}
.woocommerce .related > p,
.woocommerce .related .products,
.woocommerce .upsells .products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.woocommerce .related .products li.product,
.woocommerce .upsells .products li.product {
  background: linear-gradient(
    145deg,
    rgba(18, 18, 20, 0.45),
    rgba(8, 8, 10, 0.32)
  );
  border: 1px solid rgba(201, 162, 75, 0.16);
  border-radius: 15px;
  overflow: hidden;
  transition:
    border-color 0.32s,
    transform 0.32s;
  padding: 0;
}
.woocommerce .related .products li.product:hover,
.woocommerce .upsells .products li.product:hover {
  border-color: rgba(201, 162, 75, 0.38);
  transform: translateY(-4px);
}
.woocommerce .related .products li.product a img,
.woocommerce .upsells .products li.product a img {
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
  object-fit: contain;
  padding: 10px;
  display: block;
  transition: transform 0.5s;
}
.woocommerce .related .products li.product:hover a img,
.woocommerce .upsells .products li.product:hover a img {
  transform: scale(1.05);
}
.woocommerce .related .products li.product .woocommerce-loop-product__title,
.woocommerce .upsells .products li.product .woocommerce-loop-product__title {
  font-family: var(--serif);
  font-weight: 300;
  font-size: 18px;
  color: var(--ink);
  padding: 14px 16px 4px;
  margin: 0;
}
.woocommerce .related .products li.product .price,
.woocommerce .upsells .products li.product .price {
  font-family: var(--serif);
  font-size: 16px;
  color: var(--gold2);
  padding: 0 16px 14px;
  display: block;
}
.woocommerce .related .products li.product a.button,
.woocommerce .upsells .products li.product a.button {
  margin: 0 16px 16px;
  display: block;
  text-align: center;
}
@media (max-width: 768px) {
  .woocommerce .related .products,
  .woocommerce .upsells .products {
    grid-template-columns: 1fr !important;
  }
  .woocommerce .related .products li.product,
  .woocommerce .upsells .products li.product {
    margin-left: 20px !important;
    margin-right: 20px !important;
  }
  .woocommerce .related .products li.product .woocommerce-loop-product__title,
  .woocommerce .upsells .products li.product .woocommerce-loop-product__title {
    font-size: 16px !important;
    padding: 12px 16px 4px !important;
  }
  .woocommerce .related .products li.product .price,
  .woocommerce .upsells .products li.product .price {
    font-size: 15px !important;
    padding: 0 16px 12px !important;
  }
  .woocommerce .related .products li.product a.button,
  .woocommerce .upsells .products li.product a.button {
    margin: 0 16px 16px !important;
  }
}

/* ── Cart table inside glass wrapper ── */
.woocommerce-cart .woocommerce {
  background: transparent;
}
.woocommerce-cart .woocommerce-cart-form,
.woocommerce-cart .cart-collaterals {
  background: transparent;
  border: none;
  box-shadow: none;
}
.woocommerce-cart table.shop_table {
  border: none;
  border-collapse: collapse;
  width: 100%;
}
.woocommerce-cart table.shop_table th,
.woocommerce-cart table.shop_table td {
  padding: 16px 12px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-size: 14px;
}
.woocommerce-cart table.shop_table th {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  border-bottom-color: rgba(201, 162, 75, 0.22);
}
.woocommerce-cart .cart_totals {
  width: 100%;
  max-width: 100%;
  float: none;
}
.woocommerce-cart .cart_totals h2 {
  font-family: var(--serif);
  font-weight: 300;
  font-size: 26px;
  color: var(--ink);
  margin: 28px 0 14px;
}
.woocommerce-cart .cart_totals table {
  width: 100%;
  border-collapse: collapse;
}
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-size: 14px;
}
.woocommerce-cart .wc-proceed-to-checkout {
  padding: 0;
  margin-top: 20px;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  width: 100%;
  text-align: center;
  display: block;
  padding: 16px !important;
  font-size: 11px !important;
  letter-spacing: 0.22em !important;
}

/* ── Single product add-to-cart area ── */
.single-product form.cart {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}
.single-product form.cart .qty {
  width: 70px;
  padding: 10px;
  background: transparent;
  border: 1px solid var(--line);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 14px;
  text-align: center;
  -moz-appearance: textfield;
}
.single-product .product_meta span {
  display: block;
  margin: 8px 0;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--dim);
}
.single-product .product_meta a {
  color: var(--gold2);
}

/* ═══════════════════════════════════════════════════════════════════════════
   ABZY MOBILE OPTIMISATION LAYER  —  appended to clean-rebuild.css
   Covers: general page shell, nav, cart, checkout, product pages
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Prevent horizontal scroll on all pages ──────────────────────────── */
html, body {
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

/* ── 2. Page shell — safe padding on every page ─────────────────────────── */
.page-shell {
  padding-top: 80px; /* clear fixed nav */
}
@media (max-width: 768px) {
  .page-shell {
    padding-top: 64px;
  }
}

/* ── 3. Hero shell responsive padding ───────────────────────────────────── */
.hero-shell {
  padding: clamp(40px, 7vw, 80px) clamp(20px, 5vw, 80px);
}
@media (max-width: 480px) {
  .hero-shell {
    padding: 32px 18px;
  }
}

/* ── 4. Nav — fix overflow on narrow screens ────────────────────────────── */
@media (max-width: 400px) {
  #nav {
    padding: 14px 14px !important;
  }
  .nb-t { font-size: 15px !important; }
  .bag-count { font-size: 11px !important; }
}

/* ── 5. Tap-target minimum size for all buttons/links ───────────────────── */
@media (max-width: 768px) {
  .btng, .btn,
  button, [role="button"],
  .woocommerce button.button,
  .woocommerce-cart-form .button,
  .single_add_to_cart_button {
    min-height: 48px;
    min-width: 48px;
  }
}

/* ── 6. WooCommerce notices — mobile ────────────────────────────────────── */
@media (max-width: 640px) {
  .woocommerce-message,
  .woocommerce-error,
  .woocommerce-info {
    font-size: 13px !important;
    padding: 12px 14px !important;
    flex-wrap: wrap;
  }
  .woocommerce-message a.button {
    float: none !important;
    display: inline-block !important;
    margin-top: 10px !important;
  }
}

/* ── 7. Checkout — mobile form layout ───────────────────────────────────── */
@media (max-width: 480px) {
  /* Stack all form rows full-width */
  .woocommerce-checkout .form-row,
  .woocommerce-checkout .form-row-first,
  .woocommerce-checkout .form-row-last {
    width: 100% !important;
    float: none !important;
    margin-right: 0 !important;
    clear: both !important;
  }
  /* Bigger tap targets on form inputs */
  .woocommerce-checkout input[type="text"],
  .woocommerce-checkout input[type="email"],
  .woocommerce-checkout input[type="tel"],
  .woocommerce-checkout input[type="password"],
  .woocommerce-checkout select,
  .woocommerce form .form-row input.input-text,
  .woocommerce form .form-row select {
    padding: 15px 14px !important;
    font-size: 16px !important; /* prevents iOS zoom on focus */
  }
  /* Payment methods comfortable on mobile */
  #payment .wc_payment_methods li {
    padding: 16px 16px !important;
  }
  #payment #place_order, #place_order {
    padding: 18px !important;
    font-size: 12px !important;
    width: calc(100% - 32px) !important;
    margin: 4px 16px 16px !important;
  }
}

/* ── 8. Order review table — mobile (checkout sidebar) ──────────────────── */
@media (max-width: 640px) {
  table.woocommerce-checkout-review-order-table thead {
    display: none;
  }
  table.woocommerce-checkout-review-order-table tbody tr.cart_item {
    display: flex;
    flex-direction: column;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
  }
  table.woocommerce-checkout-review-order-table tbody .product-total {
    text-align: left !important;
    color: var(--gold2);
    font-size: 14px;
    margin-top: 4px;
  }
  table.woocommerce-checkout-review-order-table tfoot tr th,
  table.woocommerce-checkout-review-order-table tfoot tr td {
    font-size: 12px !important;
    padding: 10px 0 !important;
  }
  table.woocommerce-checkout-review-order-table tfoot .order-total td .woocommerce-Price-amount {
    font-size: 20px !important;
  }
}

/* ── 9. Cart page — general mobile polish ───────────────────────────────── */
@media (max-width: 480px) {
  .abzy-cart-wrap {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
  .abzy-cart-card {
    padding: 14px !important;
  }
  .abzy-cart-hero h1 {
    font-size: clamp(40px, 13vw, 64px) !important;
  }
  /* Totals sidebar: more compact on small screens */
  .cart_totals table th,
  .cart_totals table td {
    padding: 10px 0 !important;
    font-size: 13px !important;
  }
  .cart_totals .order-total .woocommerce-Price-amount {
    font-size: 20px !important;
  }
  .cart_totals .wc-proceed-to-checkout a.checkout-button {
    padding: 16px !important;
    font-size: 11px !important;
  }
}

/* ── 10. Single product — mobile ────────────────────────────────────────── */
@media (max-width: 640px) {
  .single-product form.cart {
    flex-direction: column;
    align-items: stretch;
  }
  .single-product form.cart .qty {
    width: 100% !important;
    font-size: 16px !important; /* prevent iOS zoom */
    padding: 13px !important;
    text-align: center;
  }
  .single_add_to_cart_button {
    width: 100% !important;
    text-align: center !important;
    padding: 16px !important;
  }
}

/* ── 11. Shop archive — grid on mobile ──────────────────────────────────── */
@media (max-width: 640px) {
  .woocommerce ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
  }
}
@media (max-width: 360px) {
  .woocommerce ul.products {
    grid-template-columns: 1fr !important;
  }
}

/* ── 12. Shipping calculator — mobile ───────────────────────────────────── */
@media (max-width: 480px) {
  .shipping-calculator-form {
    padding: 14px !important;
  }
  .shipping-calculator-form input.input-text,
  .shipping-calculator-form select {
    font-size: 16px !important; /* prevent iOS zoom */
    padding: 13px 12px !important;
  }
}

/* ── 13. Select2 dropdowns — mobile fix ─────────────────────────────────── */
@media (max-width: 480px) {
  .select2-container .select2-selection--single {
    padding: 14px 36px 14px 14px !important;
  }
  .select2-container--default .select2-selection--single .select2-selection__rendered {
    font-size: 16px !important; /* prevent iOS zoom */
  }
}

/* ── 14. My Account — mobile ────────────────────────────────────────────── */
@media (max-width: 640px) {
  .woocommerce-MyAccount-navigation {
    margin-bottom: 24px;
  }
  .woocommerce-MyAccount-navigation ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0;
    list-style: none;
  }
  .woocommerce-MyAccount-navigation ul li {
    flex: 1 1 auto;
  }
  .woocommerce-MyAccount-navigation a {
    display: block;
    text-align: center;
    padding: 12px 10px !important;
    font-size: 10px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   PATCH 2 — Footer centring, border-radius consistency,
              hamburger fix, iOS arrow fix
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── A. CSS custom property for unified border-radius ───────────────────── */
/* Images use 15px. Every bordered/rounded UI element now matches. */
:root {
  --r: 15px;       /* standard card / element radius  */
  --r-sm: 10px;    /* small: inputs, pills, chips      */
  --r-pill: 999px; /* full pill — circular items only  */
}

/* ── B. Hamburger button — fix min-height override ──────────────────────── */
/* The tap-target rule above set min-height:48px on all buttons.
   The .ham button must keep its own 18px height; we give it a
   larger invisible touch area using padding instead. */
.ham {
  min-height: unset !important;
  min-width:  unset !important;
  width:  24px !important;
  height: 18px !important;
  padding: 15px 10px !important;  /* invisible touch target around it */
  box-sizing: content-box !important;
  display: none !important;       /* stays hidden until media query below */
  flex-direction: column !important;
  justify-content: space-between !important;
  align-items: stretch !important;
  background: none !important;
  border: none !important;
  cursor: pointer !important;
}
@media (max-width: 768px) {
  .ham {
    display: flex !important;
  }
  .ham-li {
    display: flex !important;
    align-items: center !important;
  }
}
/* Make sure the three spans stay as thin lines, not stretched */
.ham span {
  display: block !important;
  width: 24px !important;
  height: 2px !important;
  min-height: unset !important;
  background: var(--ink) !important;
  border-radius: 2px !important;
  flex-shrink: 0 !important;
}

/* ── C. iOS: remove blue highlight / circle on tappable elements ─────────── */
/* iOS Safari wraps links that contain only an SVG in a blue touch callout.
   Disabling -webkit-tap-highlight-color and forcing color fixes it. */
a, button, [role="button"] {
  -webkit-tap-highlight-color: transparent;
}
/* Specifically target nav icon links and any SVG-only anchor */
#nav a,
#mob-menu a,
.nr a,
.nr li a,
footer a,
.ft-soc a,
.ft-col a {
  -webkit-tap-highlight-color: transparent;
  color: inherit; /* prevent iOS from overriding link colour */
}
/* SVGs inside links — pointer-events only, never override fill */
#nav svg,
.nr svg,
.ft-soc svg,
a svg {
  pointer-events: none;
}
/* Arrow icons specifically (polyline/path SVGs in anchors) */
a > svg,
button > svg {
  display: block;
  flex-shrink: 0;
}
/* Back-to-top button */
#btt {
  -webkit-tap-highlight-color: transparent;
}

/* ── D. Mobile footer — centre everything ───────────────────────────────── */
@media (max-width: 768px) {
  /* Quote banner */
  .ft-quote-banner {
    text-align: center !important;
  }

  /* Nav grid: 1 column, centred */
  .ft-grid {
    grid-template-columns: 1fr !important;
    text-align: center !important;
  }

  /* Column headings */
  .ft-ct {
    text-align: center !important;
  }

  /* Link lists */
  .ft-col ul {
    align-items: center !important;
  }
  .ft-col a {
    display: inline-block !important;
  }

  /* Bottom bar: stack and centre */
  .ft-bot {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 14px !important;
  }
  .ft-bot .mono {
    text-align: center !important;
  }

  /* Social icons: centre */
  .ft-soc {
    justify-content: center !important;
  }

  /* Watermark wordmark: already centred, ensure it stays */
  .ft-wm {
    text-align: center !important;
  }
}

/* ── E. Border-radius consistency — everything matches product images (15px) */

/* Buttons */
.btng,
.btn,
.wc-proceed-to-checkout a.checkout-button,
.single_add_to_cart_button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
#place_order, #payment #place_order,
.abzy-update-btn,
.abzy-coupon button,
.checkout_coupon .button,
.shipping-calculator-form button[type=submit] {
  border-radius: var(--r) !important;
}

/* Coupon input + button pair — match so they look joined */
.abzy-coupon input#coupon_code,
.woocommerce-cart-form .coupon input#coupon_code {
  border-radius: var(--r) 0 0 var(--r) !important;
}
.abzy-coupon button,
.woocommerce-cart-form .coupon .button {
  border-radius: 0 var(--r) var(--r) 0 !important;
}

/* Input fields */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout select,
.shipping-calculator-form input.input-text,
.shipping-calculator-form select,
input.input-text,
.checkout_coupon input,
.woocommerce-cart-form .coupon input#coupon_code {
  border-radius: var(--r) !important;
}

/* Cart / checkout layout cards */
.abzy-cart-card,
.abzy-chk-box,
.wc-cart-box,
.wc-chk-box,
.fresh-cart-card {
  border-radius: var(--r) !important;
}

/* Notices */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info,
.woocommerce-form-coupon-toggle .woocommerce-info,
.checkout_coupon {
  border-radius: var(--r) !important;
}

/* Payment block */
#payment {
  border-radius: var(--r) !important;
  overflow: hidden !important;
}

/* Select2 */
.select2-container .select2-selection--single,
.select2-container--default .select2-selection--single {
  border-radius: var(--r) !important;
}
.select2-dropdown {
  border-radius: var(--r) !important;
}

/* Qty wrapper */
.abzy-qty-wrap,
.qty-wrap,
.woocommerce-cart-form .quantity {
  border-radius: var(--r) !important;
  overflow: hidden !important;
}

/* Shipping method rows */
#shipping_method li {
  border-radius: var(--r) !important;
}

/* Shipping calculator form box */
.shipping-calculator-form {
  border-radius: var(--r) !important;
}

/* Product cards in shop archive */
.fresh-product-card,
.product-card,
ul.products li.product,
.woocommerce ul.products li.product a img,
.woocommerce-loop-product__link img {
  border-radius: var(--r) !important;
}

/* Product thumbnails */
.product-thumbs .thumb,
.woocommerce-product-gallery__image,
.woocommerce-product-gallery figure {
  border-radius: var(--r) !important;
  overflow: hidden !important;
}

/* My Account nav */
.woocommerce-MyAccount-navigation a {
  border-radius: var(--r) !important;
}

/* Back-to-top button — stays circular */
#btt {
  border-radius: var(--r-pill) !important;
}

/* Cart thumbnail */
.woocommerce-cart-form .product-thumbnail a,
.abzy-items .col-img a {
  border-radius: var(--r) !important;
  overflow: hidden !important;
}

/* Hamburger snap — no radius override needed, but reset any rogue one */
.ham, .ham span {
  border-radius: 2px !important;  /* thin bar pill only */
}

/* ═══════════════════════════════════════════════════════════════════════════
   PATCH 3 — iOS arrows, fill fix, remaining border-radius, footer alignment
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── A. iOS blue-circle arrow fix — thorough ────────────────────────────── */
/*
  iOS Safari renders <a> tags containing only an SVG as blue tappable
  circles. The fix requires ALL of the following simultaneously:
  1. -webkit-tap-highlight-color: transparent (already set above)
  2. The SVG must NOT have fill applied by CSS (stroke SVGs break if filled)
  3. The link must have display:inline-flex or inline-block, not bare inline
  4. The SVG should have pointer-events:none
*/

/* Stroke-based SVGs (cart, instagram, back-to-top arrow) must NEVER get fill */
svg[fill="none"] {
  fill: none !important;
}

/* Filled SVGs (tiktok, youtube, snapchat) stay as-is — their fill="currentColor" is correct */
/* Do NOT apply fill:currentColor globally */

/* All icon-only links: make sure they render as flex containers, not bare inline */
.ft-soc a,
.nr a,
#nav a[aria-label],
a[aria-label]:has(svg) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  -webkit-tap-highlight-color: transparent !important;
  text-decoration: none !important;
}

/* iOS: force colour inheritance on all link SVGs so iOS can't override to blue */
.ft-soc a svg,
.nr a svg,
#nav a svg,
#btt svg {
  color: inherit;
  flex-shrink: 0;
  display: block;
}

/* ── B. Border-radius — all remaining boxes that still have sharp corners ── */

/* Single product page */
.sp-main {
  border-radius: var(--r) !important;
  overflow: hidden !important;
}
.sp-thumb {
  border-radius: var(--r) !important;
  overflow: hidden !important;
}
.sp-note {
  border-radius: var(--r) !important;
}
.sp-meta-item {
  border-radius: var(--r) !important;
}
/* The "Ask us" box and any other inline-bordered boxes on single product */
.woocommerce-product-gallery__image {
  border-radius: var(--r) !important;
  overflow: hidden !important;
}

/* FAQ + Contact page bordered boxes */
.faq-item,
.faq-wrap > div,
[style*="border:1px solid var(--line)"],
[style*="border: 1px solid var(--line)"] {
  border-radius: var(--r);
}

/* My Account */
.acc-panel {
  border-radius: var(--r) !important;
}
.woocommerce-MyAccount-navigation {
  border-radius: var(--r) !important;
  overflow: hidden !important;
}
.woocommerce-MyAccount-navigation ul {
  border-radius: var(--r) !important;
}

/* Order / account status boxes */
.woocommerce-order-details,
.woocommerce-customer-details,
.woocommerce table.shop_table,
.woocommerce-account .woocommerce {
  border-radius: var(--r) !important;
}

/* Textarea (Image 2 — order notes) */
textarea,
.woocommerce form .form-row textarea,
.woocommerce-checkout textarea {
  border-radius: var(--r) !important;
}

/* Inline style boxes that appear on product/contact/faq pages —
   we can't select by inline style reliably, so target by their parent classes */
.sp-below,
.fresh-form,
.fresh-cart-card,
.glass {
  border-radius: var(--r) !important;
}

/* Any div with class "glass" and a border */
.glass[style],
div.glass {
  border-radius: var(--r) !important;
}

/* Cart and checkout notice banners */
ul.woocommerce-error,
.woocommerce-message,
.woocommerce-notice {
  border-radius: var(--r) !important;
}

/* Coupon form in checkout */
.checkout_coupon {
  border-radius: var(--r) !important;
}

/* The individual payment method containers */
#payment .wc_payment_methods {
  border-radius: var(--r) !important;
  overflow: hidden !important;
}

/* ── C. Footer mobile alignment — fix white text not centring ────────────── */
/*
  The issue: .ft-col ul has align-items:center (centering the flex children = li)
  but the <li> elements themselves are block-level and stretch full width.
  The <a> tags inside are inline so text-align must be set on the li or a.
  Also the first grid column (no .ft-col class) also needs centring.
*/
@media (max-width: 768px) {

  /* Centre the first column (brand quote, no ft-col class) */
  .ft-grid > div:first-child {
    text-align: center !important;
  }
  .ft-grid > div:first-child .ft-bc {
    text-align: center !important;
    max-width: 100% !important;
    margin: 0 auto !important;
  }

  /* Column headings — gold labels */
  .ft-ct {
    text-align: center !important;
    display: block !important;
  }

  /* The <ul> list itself */
  .ft-col ul {
    align-items: center !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* The <li> items — must be centered too */
  .ft-col ul li {
    text-align: center !important;
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
  }

  /* The <a> links inside */
  .ft-col a {
    display: block !important;
    text-align: center !important;
    width: 100% !important;
  }

  /* Bottom bar copyright text */
  .ft-bot {
    flex-direction: column !important;
    align-items: center !important;
    gap: 14px !important;
  }
  .ft-bot > div,
  .ft-bot .mono {
    text-align: center !important;
    width: 100% !important;
  }

  /* Social icons row */
  .ft-soc {
    justify-content: center !important;
    width: 100% !important;
  }

  /* The quote banner at the very top of the footer */
  .ft-quote-banner {
    text-align: center !important;
  }
  .ft-quote-banner p {
    text-align: center !important;
    margin: 0 auto !important;
  }
  .ft-quote-banner .ft-mono-tag {
    text-align: center !important;
  }

  /* Watermark */
  .ft-wm {
    text-align: center !important;
    display: block !important;
  }
}
