/*
Theme Name: MberryTW Shop
Theme URI: https://mberrytw.org/tw/shop/
Author: Glory Forest Web
Description: Lightweight WooCommerce theme matching the existing MberryTW website.
Version: 1.0.2
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: mberrytw-shop
*/

:root {
  --cream: #fdf6ec;
  --cream-2: #f5ecd8;
  --cream-3: #ede0c8;
  --green: #2d6a4f;
  --green-2: #40916c;
  --green-light: #d8f3dc;
  --green-pale: #f0faf2;
  --berry: #c0392b;
  --berry-2: #e74c3c;
  --berry-light: #fadbd8;
  --berry-pale: #fff0ee;
  --text: #1a1a1a;
  --text-2: #4a4a4a;
  --text-3: #888;
  --muted: var(--text-2);
  --white: #fff;
  --radius: 20px;
  --radius-sm: 12px;
  --shadow: 0 4px 24px rgba(45, 106, 79, 0.12);
  --shadow-lg: 0 12px 48px rgba(45, 106, 79, 0.18);
  --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--cream);
  color: var(--text);
  font-family: "Plus Jakarta Sans", "Noto Sans TC", sans-serif;
  line-height: 1.65;
}

a { color: var(--green); }
a:hover { color: var(--green-2); }
img { max-width: 100%; height: auto; }

h1, h2, h3, h4, h5, h6,
.woocommerce-loop-product__title,
.wc-block-grid__product-title {
  font-family: "Playfair Display", "Noto Serif TC", serif;
  line-height: 1.2;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.mberry-site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  border-bottom: 1px solid rgba(45, 106, 79, 0.1);
  background: rgba(253, 246, 236, 0.96);
  backdrop-filter: blur(14px);
}

.mberry-nav {
  display: flex;
  width: min(1180px, calc(100% - 40px));
  min-height: 78px;
  margin: 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.mberry-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--text);
  font-family: "Playfair Display", serif;
  font-size: 1.3rem;
  font-weight: 900;
  text-decoration: none;
  white-space: nowrap;
}

.mberry-logo img { width: 44px; height: 44px; object-fit: contain; }
.mberry-logo em { color: var(--green); font-style: normal; }

.mberry-nav-links {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.mberry-nav-links a {
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
  transition: color var(--transition);
}

.mberry-nav-links a:hover,
.mberry-nav-links .current-menu-item > a { color: var(--green); }

.mberry-nav-links .mberry-nav-cta,
.mberry-mobile-menu .mberry-nav-cta {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  border-radius: 999px;
  padding: 0 18px;
  background: var(--green);
  color: var(--white);
}

.mberry-mobile-menu { display: none; }
.mberry-mobile-menu summary { cursor: pointer; font-weight: 800; }

.mberry-store-hero {
  padding: 70px 20px 52px;
  background:
    radial-gradient(circle at 90% 12%, rgba(192, 57, 43, 0.12), transparent 32%),
    radial-gradient(circle at 7% 80%, rgba(45, 106, 79, 0.14), transparent 30%),
    var(--cream);
  text-align: center;
}

.mberry-store-hero span {
  display: inline-flex;
  border: 1px solid rgba(45, 106, 79, 0.2);
  border-radius: 999px;
  padding: 7px 14px;
  background: var(--green-pale);
  color: var(--green);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.mberry-store-hero h1 {
  max-width: 820px;
  margin: 18px auto 12px;
  font-size: clamp(2.25rem, 5vw, 4.4rem);
}

.mberry-store-hero p {
  max-width: 680px;
  margin: 0 auto;
  color: var(--muted);
  font-size: 1.05rem;
}

.mberry-store-main { min-height: 55vh; padding: 56px 20px 88px; }
.mberry-store-shell { width: min(1180px, 100%); margin: 0 auto; }

.woocommerce .woocommerce-breadcrumb {
  margin-bottom: 24px;
  color: var(--muted);
  font-size: 0.86rem;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { margin-bottom: 28px; }

.woocommerce .woocommerce-ordering select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input {
  min-height: 48px;
  border: 2px solid var(--cream-3);
  border-radius: var(--radius-sm);
  background: var(--white);
  color: var(--text);
  font: inherit;
}

.woocommerce ul.products,
.wc-block-grid__products { gap: 26px; }

.woocommerce ul.products li.product,
.wc-block-grid__product {
  overflow: hidden;
  border: 1px solid rgba(45, 106, 79, 0.09);
  border-radius: var(--radius);
  padding: 18px 18px 22px;
  background: var(--white);
  box-shadow: var(--shadow);
  transition: transform var(--transition), box-shadow var(--transition);
}

.woocommerce ul.products li.product:hover,
.wc-block-grid__product:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }

.woocommerce ul.products li.product img,
.wc-block-grid__product-image img {
  border-radius: calc(var(--radius) - 6px);
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.wc-block-grid__product-price { color: var(--berry); font-weight: 800; }

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-button,
.wp-element-button {
  min-height: 46px;
  border: 0;
  border-radius: 999px;
  padding: 12px 22px;
  background: var(--green);
  color: var(--white);
  font-family: "Plus Jakarta Sans", "Noto Sans TC", sans-serif;
  font-weight: 800;
  transition: transform var(--transition), background var(--transition);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.wc-block-components-button:hover,
.wp-element-button:hover { background: var(--green-2); color: var(--white); transform: translateY(-2px); }

/* WooCommerce core ships its own brand-purple ".alt" button style (e.g. the
   single-product Add to cart button) at higher selector specificity than the
   rules above, so it wins the cascade even though it loads first. Match that
   specificity explicitly to keep every WooCommerce button on brand. */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt { background: var(--green); color: var(--white); }

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover { background: var(--green-2); color: var(--white); }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border: 0;
  border-left: 5px solid var(--green);
  border-radius: var(--radius-sm);
  background: var(--white);
  box-shadow: var(--shadow);
}

.woocommerce-error { border-left-color: var(--berry); }

.woocommerce table.shop_table,
.wc-block-cart-items,
.wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-components-sidebar {
  border: 0;
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: var(--shadow);
}

.woocommerce table.shop_table { overflow: hidden; }
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { padding: 16px; }
.woocommerce div.product div.images img { border-radius: var(--radius); box-shadow: var(--shadow); }
.woocommerce div.product .summary { padding: 10px 0; }
.woocommerce-tabs { margin-top: 50px; }

.mberry-site-footer { padding: 64px 20px 28px; background: #173c2d; color: var(--white); }
.mberry-footer-grid { display: grid; width: min(1180px, 100%); margin: 0 auto 46px; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 42px; }
.mberry-footer-brand { font-family: "Playfair Display", serif; font-size: 1.4rem; font-weight: 900; }
.mberry-footer-brand em { color: #a8d5b5; font-style: normal; }
.mberry-footer-copy { max-width: 280px; color: rgba(255, 255, 255, 0.7); font-size: 0.88rem; }
.mberry-footer-title { color: rgba(255, 255, 255, 0.55); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; }
.mberry-footer-links { margin: 0; padding: 0; list-style: none; }
.mberry-footer-links li { margin: 0.55rem 0; }
.mberry-footer-links a { color: rgba(255, 255, 255, 0.78); font-size: 0.88rem; text-decoration: none; }
.mberry-footer-links a:hover { color: var(--white); }
.mberry-footer-bottom { display: flex; width: min(1180px, 100%); margin: 0 auto; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255, 255, 255, 0.15); padding-top: 24px; color: rgba(255, 255, 255, 0.55); font-size: 0.8rem; }

@media (max-width: 960px) {
  .mberry-nav-links { display: none; }
  .mberry-mobile-menu { display: block; position: relative; }
  .mberry-mobile-menu[open] ul {
    position: absolute;
    right: 0;
    display: grid;
    width: min(320px, calc(100vw - 40px));
    gap: 12px;
    margin: 12px 0 0;
    padding: 20px;
    border-radius: var(--radius-sm);
    background: var(--white);
    box-shadow: var(--shadow-lg);
    list-style: none;
  }
  .mberry-mobile-menu a { color: var(--text); font-weight: 700; text-decoration: none; }
  .mberry-footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
  .mberry-nav { width: min(100% - 28px, 1180px); min-height: 68px; }
  .mberry-logo { font-size: 1.05rem; }
  .mberry-logo img { width: 38px; height: 38px; }
  .mberry-store-hero { padding: 52px 18px 40px; }
  .mberry-store-main { padding: 36px 14px 64px; }
  .mberry-footer-grid { grid-template-columns: 1fr; }
  .mberry-footer-bottom { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}

/* Phase 1 storefront system ------------------------------------------------ */

[hidden] { display: none !important; }

button,
input,
select,
textarea { font: inherit; }

a,
button,
input,
select,
textarea,
summary {
  -webkit-tap-highlight-color: transparent;
}

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--berry);
  outline-offset: 3px;
}

.mberry-skip-link:focus {
  position: fixed;
  z-index: 1000;
  top: 12px;
  left: 12px;
  width: auto;
  height: auto;
  clip: auto;
  margin: 0;
  border-radius: 8px;
  padding: 10px 16px;
  background: var(--white);
  color: var(--green);
  box-shadow: var(--shadow-lg);
}

/* Header */

.mberry-site-header { background: rgba(253, 246, 236, 0.97); }

.mberry-nav {
  width: min(1280px, calc(100% - 48px));
  min-height: 72px;
  gap: 22px;
}

.mberry-logo { color: var(--green); }
.mberry-logo:hover { color: var(--green); }
.mberry-logo-image { width: 38px; height: 38px; object-fit: contain; }
.mberry-logo-text { color: var(--green); }
.mberry-logo-text em { color: var(--berry); }

.mberry-desktop-navigation {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: clamp(14px, 2vw, 28px);
}

.mberry-nav-links { gap: clamp(14px, 1.5vw, 25px); }
.mberry-nav-links a { color: var(--text-2); font-size: 0.86rem; white-space: nowrap; }
.mberry-nav-links a:hover,
.mberry-nav-links a:focus-visible,
.mberry-nav-links .current-menu-item > a { color: var(--green); }

.mberry-commerce-links {
  display: flex;
  align-items: center;
  gap: 9px;
  white-space: nowrap;
}

.mberry-shop-link,
.mberry-cart-link {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 0 15px;
  font-size: 0.84rem;
  font-weight: 800;
  text-decoration: none;
}

.mberry-shop-link { border: 1.5px solid var(--green); color: var(--green); }
.mberry-shop-link:hover { background: var(--green-pale); color: var(--green); }
.mberry-shop-link[aria-current="page"] { background: var(--green-pale); }

.mberry-cart-link { gap: 7px; background: var(--green); color: var(--white); }
.mberry-cart-link:hover { background: var(--green-2); color: var(--white); }
.mberry-cart-link svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.mberry-cart-count {
  display: inline-grid;
  min-width: 23px;
  height: 23px;
  place-items: center;
  border-radius: 50%;
  padding: 0 5px;
  background: var(--white);
  color: var(--green);
  font-size: 0.72rem;
  line-height: 1;
}

.mberry-cart-status { display: inline-flex; align-items: center; }

.mberry-menu-toggle {
  display: none;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(45, 106, 79, 0.14);
  border-radius: 50%;
  background: var(--white);
  cursor: pointer;
}

.mberry-menu-toggle > span[aria-hidden="true"] {
  display: block;
  width: 20px;
  height: 2px;
  margin: 4px auto;
  border-radius: 2px;
  background: var(--green);
  transition: transform var(--transition), opacity var(--transition);
}

.mberry-menu-toggle[aria-expanded="true"] > span:nth-of-type(2) { transform: translateY(6px) rotate(45deg); }
.mberry-menu-toggle[aria-expanded="true"] > span:nth-of-type(3) { opacity: 0; }
.mberry-menu-toggle[aria-expanded="true"] > span:nth-of-type(4) { transform: translateY(-6px) rotate(-45deg); }

.mberry-mobile-panel {
  border-top: 1px solid rgba(45, 106, 79, 0.1);
  background: var(--cream);
  box-shadow: var(--shadow);
}

.mberry-mobile-navigation {
  width: min(100% - 32px, 720px);
  margin: 0 auto;
  padding: 18px 0 24px;
}

.mberry-mobile-links {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
}

.mberry-mobile-links a,
.mberry-mobile-commerce-links a {
  display: flex;
  min-height: 47px;
  align-items: center;
  border-bottom: 1px solid rgba(45, 106, 79, 0.1);
  color: var(--text);
  font-weight: 700;
  text-decoration: none;
}

.mberry-mobile-commerce-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  padding-top: 18px;
}

.mberry-mobile-commerce-links a {
  min-height: 44px;
  justify-content: center;
  border: 1px solid var(--green);
  border-radius: 999px;
  padding: 8px 12px;
  color: var(--green);
  font-size: 0.83rem;
  text-align: center;
}

.mberry-mobile-commerce-links .mberry-cart-link { border: 0; color: var(--white); }

/* Storefront */

.mberry-storefront-main { overflow: hidden; }

.mberry-storefront-hero {
  position: relative;
  isolation: isolate;
  border-bottom: 1px solid rgba(45, 106, 79, 0.08);
  background:
    radial-gradient(circle at 86% 18%, rgba(216, 243, 220, 0.78), transparent 30%),
    radial-gradient(circle at 63% 82%, rgba(250, 219, 216, 0.55), transparent 26%),
    var(--cream);
}

.mberry-storefront-hero-inner {
  display: grid;
  width: min(1180px, calc(100% - 48px));
  min-height: 600px;
  margin: 0 auto;
  padding: 66px 0 60px;
  align-items: center;
  grid-template-columns: minmax(0, 0.9fr) minmax(440px, 1.1fr);
  gap: clamp(44px, 7vw, 94px);
}

.mberry-eyebrow {
  display: inline-flex;
  width: fit-content;
  margin: 0 0 18px;
  border: 1px solid rgba(45, 106, 79, 0.18);
  border-radius: 999px;
  padding: 7px 14px;
  background: var(--green-pale);
  color: var(--green);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.09em;
}

.mberry-storefront-copy h1 {
  max-width: 640px;
  margin: 0;
  font-size: clamp(2.8rem, 5.1vw, 5rem);
  letter-spacing: -0.035em;
}

.mberry-storefront-copy h1 span {
  color: var(--mberry-green);
}

.mberry-storefront-lead {
  max-width: 620px;
  margin: 25px 0 0;
  color: var(--text-2);
  font-size: 1.06rem;
  line-height: 1.85;
}

.mberry-hero-actions,
.mberry-store-help-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 31px; }

.mberry-button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  border: 2px solid transparent;
  border-radius: 999px;
  padding: 12px 25px;
  font-weight: 800;
  text-decoration: none;
  transition: transform var(--transition), background var(--transition), color var(--transition), box-shadow var(--transition);
}

.mberry-button:hover { transform: translateY(-2px); }
.mberry-button-primary { background: var(--green); color: var(--white); box-shadow: 0 6px 20px rgba(45, 106, 79, 0.25); }
.mberry-button-primary:hover { background: var(--green-2); color: var(--white); box-shadow: 0 10px 26px rgba(45, 106, 79, 0.3); }
.mberry-button-secondary { border-color: var(--green); color: var(--green); }
.mberry-button-secondary:hover { background: var(--green); color: var(--white); }

.mberry-storefront-visual { position: relative; min-width: 0; padding: 32px 38px; }
.mberry-storefront-visual::before,
.mberry-storefront-visual::after {
  position: absolute;
  z-index: -1;
  border: 1px dashed rgba(45, 106, 79, 0.2);
  border-radius: 50%;
  content: "";
  inset: 3% 2%;
}
.mberry-storefront-visual::after { inset: 12% 10%; border-style: solid; border-color: rgba(192, 57, 43, 0.1); }

.mberry-storefront-image-frame {
  overflow: hidden;
  width: min(100%, 520px);
  margin: 0 auto;
  border: 12px solid rgba(255, 255, 255, 0.7);
  border-radius: 45% 55% 52% 48% / 42% 40% 60% 58%;
  background: var(--white);
  box-shadow: 0 24px 65px rgba(45, 106, 79, 0.18), 0 10px 30px rgba(192, 57, 43, 0.11);
  aspect-ratio: 1 / 1;
}

.mberry-storefront-image-frame img { display: block; width: 100%; height: 100%; object-fit: cover; }

.mberry-floating-note {
  position: absolute;
  display: grid;
  min-width: 132px;
  border: 1px solid rgba(45, 106, 79, 0.08);
  border-radius: 16px;
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--text);
  font-size: 0.85rem;
  font-weight: 800;
  box-shadow: var(--shadow);
}
.mberry-floating-note small { color: var(--text-2); font-size: 0.7rem; font-weight: 600; }
.mberry-floating-note-quality { top: 24%; right: -4%; }
.mberry-floating-note-origin { bottom: 14%; left: -2%; }

.mberry-trust-strip {
  display: grid;
  width: min(1180px, calc(100% - 48px));
  margin: -1px auto 0;
  border-radius: 0 0 var(--radius) var(--radius);
  background: var(--green);
  grid-template-columns: repeat(4, 1fr);
  box-shadow: var(--shadow);
}
.mberry-trust-strip a {
  display: flex;
  min-height: 76px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-right: 1px solid rgba(255, 255, 255, 0.16);
  color: var(--white);
  font-size: 0.91rem;
  font-weight: 800;
  text-decoration: none;
}
.mberry-trust-strip a:last-child { border-right: 0; }
.mberry-trust-strip span { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, 0.16); }

.mberry-products-section { padding: 96px 20px 108px; }
.mberry-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 30px; }
.mberry-section-heading .mberry-eyebrow { margin-bottom: 12px; }
.mberry-section-heading h2 { margin: 0; font-size: clamp(2.2rem, 4vw, 3.5rem); }
.mberry-education-link { font-weight: 800; text-decoration: none; }

.mberry-category-filters { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 36px; }
.mberry-category-filters a {
  border: 1.5px solid var(--green-light);
  border-radius: 999px;
  padding: 9px 16px;
  background: var(--white);
  color: var(--green);
  font-size: 0.85rem;
  font-weight: 700;
  text-decoration: none;
}
.mberry-category-filters a:hover,
.mberry-category-filters a.is-active { border-color: var(--green); background: var(--green); color: var(--white); }

.mberry-empty-storefront {
  border: 1px solid var(--green-light);
  border-radius: var(--radius);
  padding: 48px 28px;
  background: var(--white);
  text-align: center;
  box-shadow: var(--shadow);
}
.mberry-empty-storefront h3 { margin: 0 0 8px; }
.mberry-empty-storefront p { margin: 0; color: var(--text-2); }

.mberry-store-help {
  display: flex;
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto 108px;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
  border-radius: calc(var(--radius) + 8px);
  padding: clamp(36px, 6vw, 66px);
  background: linear-gradient(135deg, var(--green), var(--green-2));
  color: var(--white);
  box-shadow: var(--shadow-lg);
}
.mberry-store-help > div:first-child { max-width: 700px; }
.mberry-store-help .mberry-eyebrow { border-color: rgba(255, 255, 255, 0.23); background: rgba(255, 255, 255, 0.12); color: var(--white); }
.mberry-store-help h2 { margin: 0; color: var(--white); font-size: clamp(2rem, 4vw, 3.1rem); }
.mberry-store-help p:not(.mberry-eyebrow) { margin: 18px 0 0; color: rgba(255, 255, 255, 0.82); }
.mberry-store-help-actions { flex-shrink: 0; margin-top: 0; }
.mberry-button-light { background: var(--white); color: var(--green); }
.mberry-button-light:hover { color: var(--green); }
.mberry-button-outline-light { border-color: rgba(255, 255, 255, 0.65); color: var(--white); }
.mberry-button-outline-light:hover { background: var(--white); color: var(--green); }

/* WooCommerce catalogue */

.mberry-store-main { min-height: 60vh; padding: 54px 20px 100px; }
.mberry-store-shell { width: min(1180px, 100%); }

.woocommerce .woocommerce-breadcrumb { margin: 0 0 30px; color: var(--text-2); }
.woocommerce .woocommerce-breadcrumb a { font-weight: 700; text-decoration: none; }
.mberry-breadcrumb-separator { padding: 0 7px; color: var(--text-3); }

.woocommerce-products-header__title.page-title,
.woocommerce div.product .product_title { margin-top: 0; font-size: clamp(2.25rem, 4vw, 3.6rem); letter-spacing: -0.025em; }

.woocommerce .woocommerce-result-count { color: var(--text-2); }
.woocommerce .woocommerce-ordering select { min-width: 210px; padding: 10px 38px 10px 14px; }

.woocommerce ul.products,
.wc-block-grid__products {
  display: grid;
  clear: both;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.wc-block-grid__product {
  display: flex;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  float: none !important;
  flex-direction: column;
  padding: 16px 16px 22px;
}

.woocommerce ul.products li.product a.woocommerce-loop-product__link { display: block; color: inherit; text-decoration: none; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 14px 4px 5px; color: var(--text); font-size: 1.34rem; }
.woocommerce ul.products li.product .price { min-height: 28px; margin: 9px 4px 6px; font-size: 1.05rem; }
.woocommerce ul.products li.product .price del { color: var(--text-3); font-size: 0.86rem; opacity: 1; }
.woocommerce ul.products li.product .price ins { color: var(--berry); text-decoration: none; }
.woocommerce ul.products li.product .star-rating { margin: 8px 4px 0; color: var(--berry); }
.woocommerce ul.products li.product img,
.wc-block-grid__product-image img { margin: 0; background: var(--green-pale); aspect-ratio: 1 / 1; }
.woocommerce ul.products li.product .button { width: calc(100% - 8px); margin: auto 4px 0; text-align: center; }

.mberry-product-excerpt { min-height: 3.4em; margin: 4px 4px 10px; color: var(--text-2); font-size: 0.88rem; line-height: 1.7; }
.mberry-stock-status { display: flex; align-items: center; gap: 7px; margin: 0 4px 15px; color: var(--green); font-size: 0.8rem; font-weight: 800; }
.mberry-stock-status span { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.mberry-stock-status.out-of-stock { color: var(--berry); }
.mberry-stock-status.available-on-backorder { color: #7a5a16; }

.woocommerce span.onsale {
  z-index: 2;
  min-width: 0;
  min-height: 0;
  top: 28px;
  left: 28px;
  border-radius: 999px;
  padding: 7px 12px;
  background: var(--berry);
  color: var(--white);
  font-size: 0.74rem;
  line-height: 1;
}

.woocommerce nav.woocommerce-pagination ul { border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0 3px; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { display: grid; min-width: 42px; min-height: 42px; place-items: center; border-radius: 50%; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--green); color: var(--white); }

/* Product detail */

.woocommerce div.product {
  display: grid;
  align-items: start;
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.92fr);
  gap: 52px 60px;
}
.woocommerce div.product div.images,
.woocommerce-page div.product div.images,
.woocommerce div.product div.summary,
.woocommerce-page div.product div.summary { width: auto; margin: 0; float: none; }
.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product .summary { min-width: 0; }
.woocommerce div.product div.images img { background: var(--white); }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; margin-top: 14px; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; float: none; }
.woocommerce div.product div.images .flex-control-thumbs img { border: 2px solid transparent; border-radius: var(--radius-sm); box-shadow: none; }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active { border-color: var(--green); }

.woocommerce div.product .summary {
  border-radius: var(--radius);
  padding: clamp(24px, 4vw, 40px);
  background: var(--white);
  box-shadow: var(--shadow);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price { margin: 16px 0; font-size: clamp(1.45rem, 3vw, 2rem); }
.woocommerce div.product p.price del { color: var(--text-3); font-size: 0.65em; opacity: 1; }
.woocommerce div.product p.price ins { color: var(--berry); text-decoration: none; }
.woocommerce-product-details__short-description { color: var(--text-2); line-height: 1.85; }
.woocommerce div.product p.stock { display: flex; align-items: center; gap: 8px; margin: 17px 0; color: var(--green); font-weight: 800; }
.woocommerce div.product p.stock.out-of-stock { color: var(--berry); }
.woocommerce .quantity .qty { min-height: 48px; border: 2px solid var(--cream-3); border-radius: var(--radius-sm); background: var(--cream); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.woocommerce div.product form.cart .button { min-height: 50px; flex: 1; }
.woocommerce div.product .product_meta { display: grid; gap: 6px; border-top: 1px solid var(--cream-3); padding-top: 20px; color: var(--text-2); font-size: 0.83rem; }
.woocommerce div.product .product_meta a { font-weight: 700; }

.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells { min-width: 0; grid-column: 1 / -1; }
.woocommerce div.product .woocommerce-tabs { margin-top: 20px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; overflow-x: auto; gap: 8px; margin: 0 0 16px; padding: 0 2px 2px; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { flex: 0 0 auto; margin: 0; border: 1.5px solid var(--green-light); border-radius: 999px; padding: 0; background: var(--white); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-color: var(--green); background: var(--green); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 10px 17px; color: var(--green); font-size: 0.86rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--white); }
.woocommerce div.product .woocommerce-tabs .panel { margin: 0; border-radius: var(--radius); padding: clamp(25px, 5vw, 48px); background: var(--white); color: var(--text-2); box-shadow: var(--shadow); }
.woocommerce div.product .woocommerce-tabs .panel h2 { margin-top: 0; color: var(--text); font-size: clamp(1.55rem, 3vw, 2.15rem); }
.woocommerce table.shop_attributes { border: 0; }
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td { border: 0; border-bottom: 1px solid var(--cream-3); padding: 14px; }
.woocommerce table.shop_attributes th { background: var(--green-pale); color: var(--green); }
.mberry-inline-link { font-weight: 800; }
.related.products > h2,
.upsells.products > h2 { margin: 0 0 28px; font-size: clamp(1.9rem, 3vw, 2.6rem); }

/* Notices and fields */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  margin: 0 0 26px;
  padding: 18px 20px 18px 56px;
  color: var(--text);
}
.woocommerce-message::before,
.woocommerce-info::before { color: var(--green); }
.woocommerce-error::before { color: var(--berry); }

.woocommerce form .form-row { padding: 4px 0; }
.woocommerce form .form-row label { margin-bottom: 7px; color: var(--text); font-size: 0.86rem; font-weight: 800; }
.woocommerce form .form-row .required { color: var(--berry); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
  width: 100%;
  min-height: 50px;
  padding: 11px 14px;
  border-color: var(--cream-3);
  background: var(--cream);
}
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 26px; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 48px; }
.woocommerce form .form-row textarea { min-height: 130px; resize: vertical; }
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select,
.wc-block-components-validation-error input { border-color: var(--berry); background: var(--berry-pale); }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: var(--green-2); }

/* Cart */

.woocommerce-cart-form,
.cart_totals,
.woocommerce-checkout-review-order,
.woocommerce-checkout .col2-set,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: var(--shadow);
}
.woocommerce-cart-form { padding: 12px; }
.woocommerce table.shop_table { margin: 0; border-collapse: separate; border-spacing: 0; }
.woocommerce table.shop_table th { color: var(--green); font-size: 0.78rem; letter-spacing: 0.04em; }
.woocommerce table.shop_table td { border-color: var(--cream-3); }
.woocommerce-cart table.cart img { width: 88px; border-radius: var(--radius-sm); background: var(--green-pale); }
.woocommerce a.remove { display: grid; width: 34px; height: 34px; place-items: center; color: var(--berry) !important; line-height: 1; }
.woocommerce a.remove:hover { background: var(--berry); color: var(--white) !important; }
.woocommerce table.cart td.actions .coupon { display: flex; gap: 8px; }
.woocommerce table.cart td.actions .coupon .input-text { width: 180px; min-height: 46px; border: 2px solid var(--cream-3); border-radius: 999px; padding: 8px 15px; }
.woocommerce .cart-collaterals { margin-top: 30px; }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals { width: min(100%, 480px); padding: clamp(24px, 4vw, 38px); }
.cart_totals h2 { margin-top: 0; }
.wc-proceed-to-checkout .checkout-button { width: 100%; }
.woocommerce .return-to-shop { text-align: center; }
.woocommerce .cart-empty { padding: 50px 24px 10px; background: transparent; box-shadow: none; color: var(--text); font-family: "Playfair Display", "Noto Serif TC", serif; font-size: clamp(1.6rem, 4vw, 2.5rem); text-align: center; }

.mberry-checkout-note { margin-top: 20px; border: 1px solid var(--green-light); border-radius: var(--radius-sm); padding: 16px 18px; background: var(--green-pale); color: var(--text-2); }
.mberry-checkout-note strong { color: var(--green); }
.mberry-checkout-note p { margin: 5px 0 0; font-size: 0.85rem; }

/* Checkout */

.woocommerce-checkout form.checkout {
  display: grid;
  align-items: start;
  grid-template-columns: minmax(0, 1.18fr) minmax(360px, 0.82fr);
  gap: 30px;
}
.woocommerce-checkout form.checkout > #customer_details { grid-column: 1; }
.woocommerce-checkout form.checkout > #order_review_heading,
.woocommerce-checkout form.checkout > #order_review { grid-column: 2; }
.woocommerce-checkout form.checkout > #order_review_heading { margin: 0 0 -12px; }
.woocommerce-checkout .col2-set { width: 100%; padding: clamp(22px, 4vw, 38px); }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { width: 100%; float: none; }
.woocommerce-checkout .col2-set .col-2 { margin-top: 30px; }
.woocommerce-checkout-review-order { padding: clamp(20px, 3vw, 32px); }
.woocommerce-checkout #payment { border-radius: var(--radius-sm); background: var(--green-pale); }
.woocommerce-checkout #payment ul.payment_methods { border-color: var(--green-light); }
.woocommerce-checkout #payment div.payment_box { background: var(--white); color: var(--text-2); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--white); }
.woocommerce-checkout #payment .place-order .button { width: 100%; min-height: 54px; }

/* Account */

.woocommerce-account .woocommerce { display: grid; align-items: start; grid-template-columns: 250px minmax(0, 1fr); gap: 28px; }
.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after { display: none; }
.woocommerce-account .woocommerce-MyAccount-navigation { width: auto; padding: 16px; float: none; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li + li { border-top: 1px solid var(--cream-3); }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: 12px 13px; color: var(--text-2); font-weight: 700; text-decoration: none; }
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { border-radius: 8px; background: var(--green-pale); color: var(--green); }
.woocommerce-account .woocommerce-MyAccount-content { width: auto; min-width: 0; padding: clamp(22px, 4vw, 38px); float: none; }
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register { border: 0; border-radius: var(--radius); padding: clamp(22px, 4vw, 36px); background: var(--white); box-shadow: var(--shadow); }

/* WooCommerce blocks */

.wc-block-cart,
.wc-block-checkout { color: var(--text); }
.wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-components-sidebar { padding: clamp(18px, 3vw, 30px); }
.wc-block-components-product-name { color: var(--text); font-family: "Playfair Display", "Noto Serif TC", serif; font-weight: 800; text-decoration: none; }
.wc-block-components-product-price { color: var(--berry); font-weight: 800; }
.wc-block-components-quantity-selector { border: 2px solid var(--cream-3); border-radius: 999px; }
.wc-block-components-totals-wrapper { border-color: var(--cream-3); }
.wc-block-components-checkout-step__heading h2 { font-family: "Playfair Display", "Noto Serif TC", serif; }
.wc-block-components-button { text-decoration: none; }

/* Page shell and footer */

.mberry-page-shell { max-width: 1000px; }
.mberry-content-page { border-radius: var(--radius); padding: clamp(25px, 5vw, 52px); background: var(--white); box-shadow: var(--shadow); }
.mberry-page-header { margin-bottom: 30px; }
.mberry-page-header .mberry-eyebrow { margin-bottom: 12px; }
.mberry-page-header h1 { margin: 0; font-size: clamp(2.2rem, 4vw, 3.5rem); }

.mberry-site-footer { background: var(--green); }
.mberry-footer-grid { width: min(1180px, calc(100% - 40px)); }
.mberry-footer-intro { padding-right: 20px; }
.mberry-footer-brand { display: inline-block; color: var(--white); text-decoration: none; }
.mberry-footer-brand:hover { color: var(--white); }
.mberry-footer-brand em { color: #c8ead0; }
.mberry-footer-title { color: rgba(255, 255, 255, 0.62); }
.mberry-footer-bottom { width: min(1180px, calc(100% - 40px)); }

@media (max-width: 1160px) {
  .mberry-nav-optional { display: none; }
  .mberry-nav-links { gap: 16px; }
}

@media (max-width: 1024px) {
  .mberry-storefront-hero-inner { min-height: 540px; grid-template-columns: minmax(0, 0.95fr) minmax(360px, 1.05fr); gap: 34px; }
  .mberry-floating-note-quality { right: -1%; }
  .mberry-floating-note-origin { left: 0; }
  .woocommerce ul.products,
  .wc-block-grid__products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .woocommerce div.product { gap: 40px; }
}

@media (max-width: 960px) {
  .mberry-desktop-navigation { display: none; }
  .mberry-menu-toggle { display: block; }
  .mberry-nav { width: min(100% - 34px, 1180px); }
  .mberry-nav-optional { display: list-item; }
  body.mberry-menu-open { overflow: hidden; }

  .mberry-storefront-hero-inner { min-height: 0; padding: 60px 0; grid-template-columns: 1fr; }
  .mberry-storefront-copy { max-width: 720px; }
  .mberry-storefront-visual { width: min(100%, 650px); margin: 0 auto; }
  .mberry-storefront-image-frame { width: min(82vw, 500px); }
  .mberry-floating-note-quality { right: 4%; }
  .mberry-floating-note-origin { left: 5%; }
  .mberry-trust-strip { grid-template-columns: repeat(2, 1fr); }
  .mberry-trust-strip a:nth-child(2) { border-right: 0; }
  .mberry-trust-strip a:nth-child(-n + 2) { border-bottom: 1px solid rgba(255, 255, 255, 0.16); }
  .mberry-store-help { align-items: flex-start; flex-direction: column; }

  .woocommerce div.product { grid-template-columns: 1fr; }
  .woocommerce div.product .woocommerce-tabs,
  .woocommerce div.product .related,
  .woocommerce div.product .upsells { grid-column: 1; }
  .woocommerce-checkout form.checkout { grid-template-columns: 1fr; }
  .woocommerce-checkout form.checkout > #customer_details,
  .woocommerce-checkout form.checkout > #order_review_heading,
  .woocommerce-checkout form.checkout > #order_review { grid-column: 1; }
  .woocommerce-account .woocommerce { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  .mberry-storefront-hero-inner,
  .mberry-trust-strip,
  .mberry-store-help { width: min(100% - 30px, 1180px); }
  .mberry-storefront-hero-inner { padding-top: 46px; }
  .mberry-storefront-copy h1 { font-size: clamp(2.5rem, 11vw, 4rem); }
  .mberry-storefront-lead { font-size: 0.98rem; }
  .mberry-storefront-visual { padding-inline: 16px; }
  .mberry-floating-note { min-width: 118px; padding: 10px 12px; font-size: 0.78rem; }
  .mberry-products-section { padding: 72px 15px 82px; }
  .mberry-section-heading { align-items: flex-start; flex-direction: column; gap: 14px; }
  .mberry-category-filters { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 8px; }
  .mberry-category-filters a { flex: 0 0 auto; }
  .mberry-store-help { margin-bottom: 82px; }
  .mberry-footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
  .mberry-nav { min-height: 66px; }
  .mberry-logo-image { width: 34px; height: 34px; }
  .mberry-mobile-navigation { width: min(100% - 28px, 720px); }
  .mberry-mobile-commerce-links { grid-template-columns: 1fr; }
  .mberry-mobile-commerce-links a { min-height: 46px; }

  .mberry-storefront-hero-inner { padding: 38px 0 46px; }
  .mberry-storefront-copy h1 { font-size: clamp(2.3rem, 12vw, 3.3rem); }
  .mberry-hero-actions { align-items: stretch; flex-direction: column; }
  .mberry-button { width: 100%; }
  .mberry-storefront-visual { padding: 22px 6px 38px; }
  .mberry-storefront-image-frame { width: min(84vw, 420px); border-width: 8px; }
  .mberry-floating-note-quality { top: 9%; right: 0; }
  .mberry-floating-note-origin { bottom: 4%; left: 0; }
  .mberry-trust-strip a { min-height: 65px; padding: 10px; font-size: 0.78rem; }
  .mberry-trust-strip a span { display: none; }
  .mberry-products-section { padding-inline: 14px; }
  .woocommerce ul.products,
  .wc-block-grid__products { grid-template-columns: 1fr; gap: 20px; }
  .woocommerce ul.products li.product,
  .woocommerce-page ul.products li.product { padding: 14px 14px 20px; }
  .mberry-product-excerpt { min-height: 0; }
  .mberry-store-help { padding: 34px 24px; }
  .mberry-store-help-actions { width: 100%; }

  .mberry-store-main { padding: 34px 12px 72px; }
  .woocommerce div.product .summary { padding: 24px 19px; }
  .woocommerce div.product form.cart { align-items: stretch; flex-direction: column; }
  .woocommerce div.product form.cart .quantity,
  .woocommerce div.product form.cart .quantity .qty { width: 100%; }
  .woocommerce div.product .woocommerce-tabs .panel { padding: 24px 19px; }
  .woocommerce div.product .woocommerce-tabs ul.tabs { margin-right: -12px; padding-right: 12px; }
  .woocommerce table.shop_table th,
  .woocommerce table.shop_table td { padding: 12px 8px; }
  .woocommerce-cart-form { padding: 4px; }
  .woocommerce table.cart td.actions .coupon { align-items: stretch; flex-direction: column; }
  .woocommerce table.cart td.actions .coupon .input-text,
  .woocommerce table.cart td.actions .coupon .button { width: 100%; }
  .woocommerce table.cart td.actions > .button { width: 100%; margin-top: 10px; }
  .woocommerce-checkout .col2-set,
  .woocommerce-checkout-review-order { padding: 19px 15px; }
  .mberry-content-page { padding: 24px 17px; }
  .mberry-footer-grid { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
  .mberry-logo-text { font-size: 0.98rem; }
  .mberry-trust-strip { grid-template-columns: 1fr 1fr; }
  .mberry-trust-strip a { justify-content: flex-start; }
  .mberry-floating-note { min-width: 105px; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.25rem; }
}
