/*
Theme Name: Molly's Direct
Theme URI: https://mollysdirect.co.uk
Author: Together Tech Labs
Description: Bespoke shop theme for Molly's Direct, Holmes Chapel. The parcel and the skein: damson wool ground, haberdashery ticket cards, stitched thread.
Version: 1.2.1
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mollysdirect
*/

:root {
  --md-damson: #331F30;
  --md-damson-deep: #241522;
  --md-paper: #F5EDDF;
  --md-oat: #E8DCC6;
  --md-raspberry: #D6486B;
  --md-ochre: #E0A63C;
  --md-teal: #3E8F8A;
  --md-string: #C29E6F;
  --md-ink: #2C1A28;
  --md-raspberry-deep: #A8324F;
  --md-teal-deep: #2E6F6B;
  --md-ticket-shadow: 0 1px 0 rgba(36, 21, 34, .35), 0 10px 24px rgba(20, 10, 18, .35);
}

/* Wool-grain texture over the damson ground */
body {
  background-color: var(--md-damson);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 0.93 0 0 0 0 0.87 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

::selection { background: var(--md-ochre); color: var(--md-damson-deep); }

a:focus-visible, button:focus-visible, select:focus-visible, input:focus-visible,
textarea:focus-visible, .wp-block-button__link:focus-visible {
  outline: 3px solid var(--md-ochre);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ---------- Ticker strip (shop-window vinyl) ---------- */
.md-ticker {
  background: var(--md-damson-deep);
  border-bottom: 1px solid rgba(194, 158, 111, .35);
  font-family: var(--wp--preset--font-family--ticket);
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--md-oat);
  text-align: center;
  padding: .5rem 1rem;
}
.md-ticker strong { color: var(--md-ochre); font-weight: 700; }

/* ---------- Header ---------- */
.md-header { padding: 1.4rem 0 1.2rem; }
.md-wordmark {
  font-family: var(--wp--preset--font-family--display);
  font-weight: 600;
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  line-height: 1;
  color: var(--md-paper);
  text-decoration: none;
  display: inline-block;
}
.md-wordmark em {
  font-style: normal;
  color: var(--md-raspberry);
}
.md-wordmark-sub {
  display: block;
  font-family: var(--wp--preset--font-family--ticket);
  font-size: .62rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--md-string);
  margin-top: .45rem;
}
.md-nav { display: flex; flex-wrap: wrap; gap: 1.4rem; align-items: center; justify-content: flex-end; }
.md-nav a {
  font-weight: 700;
  font-size: .95rem;
  text-decoration: none;
  color: var(--md-paper);
  border-bottom: 2px dashed transparent;
  padding-bottom: 2px;
}
.md-nav a:hover { color: var(--md-ochre); border-bottom-color: var(--md-string); }

/* ---------- Stitched thread divider (signature) ---------- */
.md-stitch { display: block; width: min(520px, 72vw); margin: 0 auto; overflow: visible; }
.md-stitch path {
  fill: none;
  stroke: var(--md-string);
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-dasharray: 9 8;
}
.md-stitch circle { fill: var(--md-string); }
@media (prefers-reduced-motion: no-preference) {
  .md-stitch[data-sew] path {
    stroke-dasharray: 900;
    stroke-dashoffset: 900;
    transition: stroke-dashoffset 1.6s ease-out;
  }
  .md-stitch[data-sew].is-sewn path {
    stroke-dashoffset: 0;
    stroke-dasharray: 9 8;
    transition: stroke-dashoffset 1.6s ease-out, stroke-dasharray 0s 1.6s;
  }
}

/* ---------- Ticket cards ---------- */
.md-ticket-card {
  position: relative;
  background: var(--md-paper);
  color: var(--md-ink);
  border-radius: 10px;
  padding: 1.4rem 1.3rem 1.2rem;
  box-shadow: var(--md-ticket-shadow);
  text-decoration: none;
  display: block;
  transition: transform .2s ease, box-shadow .2s ease;
}
/* punched hole and string */
.md-ticket-card::before {
  content: "";
  position: absolute;
  top: .8rem; left: .9rem;
  width: 11px; height: 11px;
  border-radius: 50%;
  background: var(--md-damson);
  box-shadow: inset 0 1px 2px rgba(0,0,0,.5), 0 0 0 3px var(--md-oat);
}
.md-ticket-card::after {
  content: "";
  position: absolute;
  top: 1.05rem; left: -14px;
  width: 26px; height: 2px;
  background: var(--md-string);
  transform: rotate(-24deg);
}
.md-ticket-card .md-ticket-label {
  font-family: var(--wp--preset--font-family--ticket);
  font-weight: 700;
  font-size: .74rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--md-ink);
  display: block;
  margin: 0 0 .35rem 1.4rem;
}
.md-ticket-card h3 {
  font-family: var(--wp--preset--font-family--display);
  font-size: 1.25rem;
  margin: .2rem 0 .3rem;
  color: var(--md-ink);
}
.md-ticket-card p { margin: 0; font-size: .92rem; color: #5A4652; }
.md-ticket-card .md-dot {
  position: absolute; top: 1.25rem; right: 1.2rem;
  width: 14px; height: 14px; border-radius: 50%;
}
.md-dot--raspberry { background: var(--md-raspberry); }
.md-dot--ochre { background: var(--md-ochre); }
.md-dot--teal { background: var(--md-teal); }
.md-dot--string { background: var(--md-string); }
.md-ticket-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1.6rem 1.4rem;
}
.md-ticket-grid .md-ticket-card:nth-child(3n+1) { transform: rotate(-1.1deg); }
.md-ticket-grid .md-ticket-card:nth-child(3n+2) { transform: rotate(.7deg); }
.md-ticket-grid .md-ticket-card:nth-child(3n) { transform: rotate(-.4deg); }
.md-ticket-card:hover, .md-ticket-card:focus-visible {
  transform: rotate(0deg) translateY(-5px);
  box-shadow: 0 2px 0 rgba(36,21,34,.35), 0 18px 34px rgba(20,10,18,.5);
}

/* Hero fan of tickets */
.md-fan { position: relative; }
.md-fan .md-ticket-card { max-width: 300px; }
.md-fan .md-fan-1 { transform: rotate(-5deg); z-index: 1; }
.md-fan .md-fan-2 { transform: rotate(2.5deg) translate(-34px, 26px); z-index: 2; }
.md-fan .md-fan-3 { transform: rotate(-1.5deg) translate(18px, 54px); z-index: 3; }
.md-fan .md-ticket-card:hover { transform: translateY(-6px); z-index: 9; }

/* Eyebrow */
.md-eyebrow {
  font-family: var(--wp--preset--font-family--ticket);
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--md-ochre);
}

/* Opening-soon ribbon */
.md-ribbon {
  display: inline-block;
  background: var(--md-ochre);
  color: var(--md-damson-deep);
  font-family: var(--wp--preset--font-family--ticket);
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: .45rem .9rem;
  border-radius: 6px;
  transform: rotate(-1.2deg);
  box-shadow: 0 4px 12px rgba(20,10,18,.4);
}

/* Paper sections (counter, heritage) */
.md-paper-panel {
  background: var(--md-paper);
  color: var(--md-ink);
  border-radius: 14px;
  box-shadow: var(--md-ticket-shadow);
}
.md-paper-panel :is(h2, h3) { color: var(--md-ink); }
.md-paper-panel a { color: var(--md-ink); text-decoration-color: var(--md-raspberry); text-decoration-thickness: 2px; }
.md-paper-panel a:hover { color: var(--md-raspberry); }
.md-panel--teal { background: var(--md-teal-deep); color: var(--md-paper); }
.md-nav .md-basket {
  border: 2px solid var(--md-string);
  border-radius: 8px;
  padding: .35rem .8rem;
}
.md-nav .md-basket:hover { border-color: var(--md-ochre); border-bottom-color: var(--md-ochre); }
.md-panel--teal :is(h2, h3, p) { color: var(--md-paper); }
.md-panel--teal .md-eyebrow { color: var(--md-damson-deep); }

/* Stamp mark for heritage */
.md-stamp {
  display: inline-block;
  font-family: var(--wp--preset--font-family--ticket);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--md-raspberry);
  border: 2px solid var(--md-raspberry);
  border-radius: 8px;
  padding: .35rem .7rem;
  transform: rotate(-2deg);
  opacity: .85;
}

/* ---------- Footer ---------- */
.md-footer { background: var(--md-damson-deep); border-top: 1px solid rgba(194,158,111,.3); }
.md-footer a { text-decoration: none; }
.md-footer a:hover { color: var(--md-ochre); }
.md-footer .md-foot-head {
  font-family: var(--wp--preset--font-family--ticket);
  font-weight: 700;
  font-size: .74rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--md-string);
}
.md-footer-fine { color: var(--md-string); font-size: .85rem; }

/* ---------- Buttons ---------- */
.wp-block-button.is-style-outline .wp-block-button__link,
.md-btn-ghost {
  background: transparent;
  color: var(--md-paper);
  border: 2px solid var(--md-string);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--md-ochre); color: var(--md-ochre); background: transparent; }

/* ==================================================================
   SHOP — classic Woo markup restyled as the haberdashery counter
   ================================================================== */

/* --- Archive header --- */
.md-shop .woocommerce-products-header__title {
  font-size: clamp(1.9rem, 3.5vw, 2.6rem);
  margin: 0 0 .6rem;
}
.md-shop .term-description,
.md-shop .term-description p { max-width: 44rem; margin: 0 0 .5rem; color: var(--md-oat); }
.md-shop .woocommerce-breadcrumb,
.woocommerce .woocommerce-breadcrumb {
  font-family: var(--wp--preset--font-family--ticket);
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--md-string);
  margin: 0 0 1.6rem;
}
.md-shop .woocommerce-breadcrumb a { color: var(--md-string); text-decoration: none; }
.md-shop .woocommerce-breadcrumb a:hover { color: var(--md-ochre); }

/* Result count + sort row */
.woocommerce-result-count {
  font-family: var(--wp--preset--font-family--ticket);
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--md-string);
  margin: .6rem 0 1.8rem;
}
.woocommerce-ordering { margin: 0 0 1.8rem; }
.woocommerce-ordering select {
  background: var(--md-damson-deep);
  color: var(--md-oat);
  border: 2px solid var(--md-string);
  border-radius: 8px;
  padding: .45rem .7rem;
  font-family: var(--wp--preset--font-family--ticket);
  font-size: .8rem;
  letter-spacing: .06em;
}

/* --- Product cards: tickets off the shelf --- */
.md-shop ul.products,
.md-single .related ul.products,
.md-single .up-sells ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(225px, 1fr));
  gap: 1.7rem 1.4rem;
  margin: 0 0 2.5rem;
  padding: 0;
  list-style: none;
}
.woocommerce ul.products::before, .woocommerce ul.products::after,
ul.products::before, ul.products::after { display: none; content: none; }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  position: relative;
  background: var(--md-paper);
  color: var(--md-ink);
  border-radius: 10px;
  padding: 2.1rem 1.1rem 1.2rem;
  box-shadow: var(--md-ticket-shadow);
  transition: transform .2s ease, box-shadow .2s ease;
}
/* punched hole and string, same as the shelf tickets */
.woocommerce ul.products li.product::before {
  content: "";
  position: absolute;
  top: .7rem; left: .9rem;
  width: 11px; height: 11px;
  border-radius: 50%;
  background: var(--md-damson);
  box-shadow: inset 0 1px 2px rgba(0,0,0,.5), 0 0 0 3px var(--md-oat);
  z-index: 1;
}
.woocommerce ul.products li.product::after {
  content: "";
  position: absolute;
  top: .95rem; left: -14px;
  width: 26px; height: 2px;
  background: var(--md-string);
  transform: rotate(-24deg);
}
.md-shop ul.products li.product:nth-child(3n+1) { transform: rotate(-1.1deg); }
.md-shop ul.products li.product:nth-child(3n+2) { transform: rotate(.7deg); }
.md-shop ul.products li.product:nth-child(3n) { transform: rotate(-.4deg); }
.woocommerce ul.products li.product:hover,
.woocommerce ul.products li.product:focus-within {
  transform: rotate(0deg) translateY(-5px);
  box-shadow: 0 2px 0 rgba(36,21,34,.35), 0 18px 34px rgba(20,10,18,.5);
  z-index: 2;
}
.woocommerce ul.products li.product a { text-decoration: none; color: var(--md-ink); }
.woocommerce ul.products li.product img,
.woocommerce ul.products li.product a img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  border-radius: 6px;
  background: var(--md-oat);
  margin: 0 0 .8rem;
  display: block;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--wp--preset--font-family--display);
  font-size: 1.12rem;
  line-height: 1.25;
  color: var(--md-ink);
  padding: 0;
  margin: 0 0 .45rem;
}
/* price-gun label */
.woocommerce ul.products li.product .price,
.woocommerce div.product .md-summary-price,
.woocommerce div.product p.price {
  display: inline-block;
  font-family: var(--wp--preset--font-family--ticket);
  font-weight: 700;
  color: var(--md-ink);
  background: #FFFDF3;
  border: 1px dashed var(--md-string);
  border-radius: 4px;
  padding: .12rem .55rem;
  transform: rotate(-1.4deg);
  box-shadow: 0 1px 2px rgba(36,21,34,.18);
}
.woocommerce ul.products li.product .price { font-size: .95rem; margin: 0 0 .8rem; color: var(--md-ink); }
.price del { color: #6B5663; font-weight: 400; margin-right: .4rem; }
.price ins { text-decoration: none; color: var(--md-raspberry-deep); }
/* sale sticker */
.woocommerce span.onsale {
  position: absolute;
  top: .55rem; right: .8rem;
  left: auto;
  min-height: 0; min-width: 0;
  line-height: 1;
  background: var(--md-ochre);
  color: var(--md-damson-deep);
  font-family: var(--wp--preset--font-family--ticket);
  font-weight: 700;
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: .35rem .55rem;
  border-radius: 6px;
  transform: rotate(2.5deg);
  margin: 0;
  z-index: 1;
}
/* add-to-basket button on cards */
.woocommerce ul.products li.product .button {
  display: inline-block;
  background: var(--md-raspberry);
  color: var(--md-damson-deep);
  font-family: var(--wp--preset--font-family--body);
  font-weight: 700;
  font-size: .88rem;
  border: 0;
  border-radius: 8px;
  padding: .55rem 1.05rem;
  margin: 0;
  transition: background .15s ease;
}
.woocommerce ul.products li.product .button:hover { background: var(--md-ochre); }
.woocommerce ul.products li.product .added_to_cart {
  display: inline-block;
  margin-left: .6rem;
  font-family: var(--wp--preset--font-family--ticket);
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--md-teal-deep);
}

/* pagination */
.woocommerce-pagination { text-align: center; }
.woocommerce nav.woocommerce-pagination ul,
.woocommerce-pagination ul.page-numbers {
  display: inline-flex;
  gap: .4rem;
  border: 0;
  margin: 0;
}
.woocommerce nav.woocommerce-pagination ul li,
.woocommerce-pagination ul.page-numbers li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.woocommerce-pagination .page-numbers {
  font-family: var(--wp--preset--font-family--ticket);
  font-weight: 700;
  color: var(--md-oat);
  background: transparent;
  border: 2px solid transparent;
  border-radius: 8px;
  padding: .35rem .75rem;
}
.woocommerce-pagination a.page-numbers:hover { color: var(--md-ochre); background: transparent; }
.woocommerce-pagination span.page-numbers.current { border-color: var(--md-string); color: var(--md-paper); background: transparent; }

/* --- Single product: the counter board --- */
.md-single .woocommerce-breadcrumb { margin-bottom: 1.4rem; }
.md-single div.product {
  background: var(--md-paper);
  color: var(--md-ink);
  border-radius: 14px;
  box-shadow: var(--md-ticket-shadow);
  padding: clamp(1.5rem, 4vw, 3rem);
}
.md-single div.product :is(h1, h2, h3) { color: var(--md-ink); }
.md-single .product_title { font-size: clamp(1.7rem, 3vw, 2.3rem); margin: 0 0 .8rem; }
.woocommerce .md-single div.product p.price { font-size: 1.35rem; margin: 0 0 1.1rem; color: var(--md-ink); }
.md-single .woocommerce-product-details__short-description { color: #4A3844; }
.md-single .woocommerce-product-gallery img { border-radius: 10px; background: var(--md-oat); }
.md-single form.cart { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; margin: 1.4rem 0; }
.md-single form.cart .quantity .qty {
  width: 4.6rem;
  padding: .62rem .4rem;
  text-align: center;
  font-weight: 700;
  font-family: var(--wp--preset--font-family--ticket);
  color: var(--md-ink);
  background: #fff;
  border: 2px solid var(--md-string);
  border-radius: 8px;
}
.md-single form.cart .single_add_to_cart_button {
  background: var(--md-raspberry);
  color: var(--md-damson-deep);
  font-weight: 700;
  border: 0;
  border-radius: 10px;
  padding: .8rem 1.6rem;
}
.md-single form.cart .single_add_to_cart_button:hover { background: var(--md-ochre); }
.md-single .product_meta {
  font-family: var(--wp--preset--font-family--ticket);
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #6B5663;
  border-top: 1px dashed var(--md-string);
  padding-top: 1rem;
}
.md-single .product_meta a { color: var(--md-raspberry); text-decoration: none; }
.md-single .stock.in-stock { color: var(--md-teal-deep); font-weight: 700; }
.md-single .stock.out-of-stock { color: var(--md-raspberry); font-weight: 700; }
/* tabs as ticket dividers */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  display: flex;
  gap: 1.2rem;
  padding: 0;
  margin: 1.8rem 0 1rem;
  border-bottom: 1px dashed var(--md-string);
  overflow-x: auto;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: none; border: 0; margin: 0; padding: 0; border-radius: 0; box-shadow: none;
}
.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 a {
  display: inline-block;
  font-family: var(--wp--preset--font-family--ticket);
  font-weight: 700;
  font-size: .8rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #6B5663;
  padding: .5rem 0;
  border-bottom: 3px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--md-ink); border-bottom-color: var(--md-raspberry); }
.md-single .woocommerce-tabs .panel :is(h2, h3) { font-size: 1.2rem; }
/* the tab already names the panel */
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }

/* --- Empty-basket "new in store" grid (wc-block-grid markup) --- */
.md-cartpage .wp-block-woocommerce-cart :is(h1, h2, h3) { color: var(--md-ink); }
.wc-block-grid__products { list-style: none; padding-left: 0; }
.wc-block-grid__product {
  background: #FBF5E9;
  border: 1px solid var(--md-oat);
  border-radius: 10px;
  padding: 1rem;
}
.wc-block-grid__product a { color: var(--md-ink); text-decoration: none; }
.wc-block-grid__product img { border-radius: 6px; }
.wc-block-grid__product .wc-block-grid__product-title { font-family: var(--wp--preset--font-family--display); color: var(--md-ink); font-size: 1.05rem; }
.wc-block-grid__product .wc-block-grid__product-onsale {
  background: var(--md-ochre);
  color: var(--md-damson-deep);
  border: 0;
  border-radius: 6px;
  font-family: var(--wp--preset--font-family--ticket);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
}
/* related / upsell shelves inside the board */
.md-single :is(.related, .up-sells) { border-top: 1px dashed var(--md-string); margin-top: 2.2rem; padding-top: 1.6rem; }
.md-single :is(.related, .up-sells) > h2 { font-size: 1.4rem; margin: 0 0 1.4rem; }
.md-single :is(.related, .up-sells) ul.products li.product {
  box-shadow: none;
  border: 1px solid var(--md-oat);
  background: #FBF5E9;
}

/* --- Notices --- */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error,
.md-shop .woocommerce-info,
.wc-block-components-notice-banner {
  background: var(--md-paper);
  color: var(--md-ink);
  border: 0;
  border-left: 6px solid var(--md-teal);
  border-radius: 10px;
  box-shadow: var(--md-ticket-shadow);
  padding: 1rem 1.2rem;
  margin: 0 0 1.6rem;
}
.woocommerce-notices-wrapper .woocommerce-error { border-left-color: var(--md-raspberry); }
.woocommerce-notices-wrapper :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before { color: var(--md-teal); }
.woocommerce-notices-wrapper .woocommerce-error::before { color: var(--md-raspberry); }
.woocommerce-notices-wrapper a.button { background: var(--md-raspberry); color: var(--md-damson-deep); border-radius: 8px; }

/* --- Mini-basket in the header --- */
.wp-block-woocommerce-mini-cart { display: flex; align-items: center; }
.wc-block-mini-cart__button {
  color: var(--md-paper);
  border: 2px solid var(--md-string);
  border-radius: 8px;
  padding: .35rem .7rem;
  font-weight: 700;
}
.wc-block-mini-cart__button:hover { color: var(--md-ochre); border-color: var(--md-ochre); opacity: 1; }
.wc-block-mini-cart__quantity-badge { border: 0; }
.wc-block-mini-cart__badge {
  background: var(--md-raspberry);
  color: var(--md-damson-deep);
  border: 0;
  font-weight: 700;
}
.wc-block-mini-cart__drawer, .wc-block-mini-cart__drawer :is(h2, h3) { color: var(--md-ink); }

/* --- Basket & checkout pages (wc-blocks on the paper panel) --- */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { color: var(--md-ink); }
.wc-block-components-product-name, .wc-block-components-totals-item__label { color: var(--md-ink); }
.wc-block-cart__empty-cart__title { color: var(--md-ink); }

/* ---------- Small screens ---------- */
@media (max-width: 900px) {
  .md-hero { grid-template-columns: 1fr !important; padding-top: 3rem !important; }
  .md-fan { min-height: 300px; padding-bottom: 3rem; }
}
@media (max-width: 781px) {
  .md-nav { justify-content: flex-start; gap: 1rem; }
  .md-fan .md-fan-2 { transform: rotate(2.5deg) translate(-12px, 18px); }
  .md-fan .md-fan-3 { transform: rotate(-1.5deg) translate(8px, 36px); }
}

@media (prefers-reduced-motion: reduce) {
  .md-ticket-card, .md-ticket-card:hover,
  .woocommerce ul.products li.product,
  .woocommerce ul.products li.product:hover { transition: none; }
}

/* --- Reviews form on the paper board --- */
.md-single .comment-form :is(input[type="text"], input[type="email"], textarea) {
  width: 100%;
  background: #fff;
  color: var(--md-ink);
  border: 2px solid var(--md-string);
  border-radius: 8px;
  padding: .6rem .8rem;
}
.md-single .comment-form .submit {
  background: var(--md-raspberry);
  color: var(--md-damson-deep);
  font-weight: 700;
  border: 0;
  border-radius: 10px;
  padding: .8rem 1.6rem;
}
.md-single .comment-reply-title, .md-single .woocommerce-Reviews-title { font-size: 1.2rem; }

/* --- Small screens: shop surfaces --- */
@media (max-width: 600px) {
  .woocommerce-result-count { margin-bottom: .6rem; }
  .woocommerce-result-count, .woocommerce-ordering { float: none; }
  .md-shop ul.products { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 1.2rem 1rem; }
  .md-single div.product { padding: 1.25rem; }
  .md-nav a { padding-top: .3rem; padding-bottom: .3rem; }
}

/* ---------- Page gutters on narrow screens ---------- */
@media (max-width: 1280px) {
  main.wp-block-group, .md-header, .md-footer {
    padding-left: clamp(1.1rem, 4vw, 2rem);
    padding-right: clamp(1.1rem, 4vw, 2rem);
  }
}

/* Header at phone widths: wordmark left, basket pinned top-right, nav below */
@media (max-width: 781px) {
  .md-header { position: relative; }
  .md-wordmark { max-width: calc(100% - 76px); }
  .md-header .wp-block-woocommerce-mini-cart {
    position: absolute;
    top: 1.4rem;
    right: clamp(1.1rem, 4vw, 2rem);
  }
  .md-ticker { font-size: .68rem; letter-spacing: .08em; }
}
