/* =========================================================================
   Palatou Shop — hand-written styles.
   Tokens (tokens.css), fonts (fonts.css) and the site shell (shell.css: header, menu, footer, .cd-btn,
   .cd-phead, .cd-eyebrow…) are generated from the Astro site; this file styles WooCommerce with them.
   Brand rules (guidelines.json): ink text on paper, gold only as hairlines and small accents, --gold-deep
   for gold text under 24px, Commissioner for headings, Manrope for everything else. Nothing loud-red.
   ========================================================================= */

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: var(--font); font-size: 16px; line-height: 1.65; font-weight: 400;
  letter-spacing: -0.005em; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; }
a { color: var(--gold-deep); text-decoration: none; }
a:hover { color: var(--ink); }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 300; color: var(--ink); line-height: 1.15; letter-spacing: normal; margin: 0 0 .6em; }
:focus-visible { outline: 2px solid var(--gold-deep); outline-offset: 3px; }
.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.ps-skip:focus {
  clip: auto; width: auto; height: auto; margin: 0; padding: 12px 18px; top: 12px; left: 12px; z-index: 100;
  background: var(--black); color: var(--on-black); border-radius: 12px;
}

/* ---------- Page frame ---------- */
.ps-main { display: block; min-height: 50vh; }
.ps-wrap { max-width: 1440px; margin-inline: auto; padding: 0 clamp(24px, 8.334vw, 120px) 112px; }
.ps-phead { max-width: 1440px; margin-inline: auto; }
.cd-phead.ps-phead { padding-top: clamp(40px, 5vw, 80px); padding-bottom: clamp(28px, 3vw, 48px); }
.ps-phead .cd-phead__lead { color: var(--ink-soft); }
.ps-phead .cd-phead__lead p { margin: 0 0 .6em; }
.ps-phead .cd-phead__lead p:last-child { margin-bottom: 0; }

/* ---------- Header: the shop's additions to the site header ---------- */
.cd-header { position: sticky; top: 0; z-index: 30; }   /* sticky (2026-09-29): reveal-on-scroll-up; still the positioning parent of the header's panels */
.cd-header__bar > .cd-nav,
.ps-tools { margin-left: auto; }                  /* nav centred between logo and the tools group */
.ps-tools { display: flex; align-items: center; gap: 6px; }
.ps-icon {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 999px; color: var(--ink); cursor: pointer; list-style: none;
  transition: color .2s ease, background-color .2s ease;
}
.ps-icon:hover { color: var(--gold-deep); background: rgba(152, 128, 52, .06); }
summary.ps-icon::-webkit-details-marker { display: none; }
summary.ps-icon::marker { content: ""; }
.ps-svg { display: block; }
.ps-cart__count {
  position: absolute; top: 2px; right: 0; min-width: 17px; height: 17px; padding: 0 4px;
  border-radius: 999px; background: var(--black); color: var(--on-black);
  font: 600 10px/17px var(--font); text-align: center; letter-spacing: 0;
}
.ps-cart__count[data-count="0"] { display: none; }
.ps-search__form {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 40;
  display: flex; gap: 12px; justify-content: center;
  padding: 20px clamp(24px, 5vw, 72px); background: var(--bg);
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.ps-search__form input[type="search"] { flex: 1; max-width: 720px; }
.ps-search__form .cd-btn { padding: 14px 22px; }

/* Six links and three tools need more room than the site's five: fold into the burger at 1023. */
@media (min-width: 1024px) and (max-width: 1279px) {
  .cd-nav { gap: 22px; }
  .cd-header__cta { padding: 12px 16px; }
}
@media (max-width: 1023px) {
  .cd-nav, .cd-header__cta { display: none; }
  .cd-burger { display: flex; margin-left: 10px; }
  .ps-tools { gap: 2px; }
}
@media (max-width: 480px) {
  .ps-search__form { padding: 14px 24px; }
  .ps-search__form .cd-btn { padding: 12px 16px; }
}

/* ---------- Fields ---------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-ordering select,
.woocommerce div.product form.cart .variations select,
.woocommerce .quantity .qty,
.woocommerce #coupon_code,
.woocommerce-product-search input[type="search"],
.ps-search__form input[type="search"] {
  width: 100%; min-height: 48px; padding: 12px 16px;
  font: 400 15px/1.4 var(--font); color: var(--ink);
  background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce-ordering select:focus,
.woocommerce div.product form.cart .variations select:focus,
.woocommerce .quantity .qty:focus,
.woocommerce-product-search input[type="search"]:focus,
.ps-search__form input[type="search"]:focus {
  outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(152, 128, 52, .15);
}
.woocommerce-ordering select,
.woocommerce form .form-row select,
.woocommerce div.product form.cart .variations select {
  appearance: none; -webkit-appearance: none; padding-right: 40px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%232A2724' stroke-width='1.25'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center;
}
.woocommerce form .form-row { padding: 0; margin: 0 0 18px; }
.woocommerce form .form-row label { display: block; margin: 0 0 6px; font: 500 13px/1.4 var(--font); color: var(--ink-soft); }
.woocommerce form .form-row label.checkbox,
.woocommerce form .form-row label.woocommerce-form__label-for-checkbox { display: inline-flex; gap: 10px; align-items: center; font-size: 14px; color: var(--ink); cursor: pointer; }
.woocommerce form .form-row .required { color: var(--gold-deep); text-decoration: none; border: 0; }
.woocommerce form .form-row .optional { color: var(--ink-faint); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--black); }
.select2-container--default .select2-selection--single {
  height: 48px; border: 1px solid var(--line); border-radius: 12px; background: #fff;
}
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 46px; padding-left: 16px; color: var(--ink); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; right: 10px; }
.select2-dropdown { border-color: var(--line); border-radius: 12px; overflow: hidden; }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--black); color: var(--on-black); }

/* ---------- Buttons: WooCommerce and the blocks speak the site's .cd-btn ---------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce #respond input#submit,
.woocommerce-product-search button,
.wc-block-components-button:not(.is-link) {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 16px 26px; margin: 0; border-radius: 12px; border: 1px solid var(--black);
  background: var(--black); color: var(--on-black);
  font: 500 14px/1 var(--font); letter-spacing: .02em; text-transform: none; text-decoration: none;
  cursor: pointer; transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover,
.woocommerce-product-search button:hover,
.wc-block-components-button:not(.is-link):hover {
  background: #1F1D1A; border-color: #1F1D1A; color: var(--on-black);
}
.woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled],
.woocommerce button.button.alt.disabled, .woocommerce a.button.disabled {
  background: var(--black); color: var(--on-black); opacity: .45; padding: 16px 26px;
}
/* Secondary actions: the gold hairline ghost */
.woocommerce button.button[name="apply_coupon"],
.woocommerce button.button[name="update_cart"],
.woocommerce .woocommerce-message a.button,
.woocommerce .woocommerce-info a.button,
.woocommerce .woocommerce-error a.button,
.woocommerce-MyAccount-content a.button:not(.alt),
.wp-block-button__link {
  background: transparent; color: var(--ink); border: 1px solid rgba(152, 128, 52, .5);
}
.woocommerce button.button[name="apply_coupon"]:hover,
.woocommerce button.button[name="update_cart"]:hover,
.woocommerce .woocommerce-message a.button:hover,
.woocommerce .woocommerce-info a.button:hover,
.woocommerce .woocommerce-error a.button:hover,
.woocommerce-MyAccount-content a.button:not(.alt):hover,
.wp-block-button__link:hover {
  background: rgba(152, 128, 52, .06); border-color: var(--gold); color: var(--ink);
}
.wp-block-button__link { border-radius: 12px; padding: 11px 16px; font: 500 12px/1 var(--font); letter-spacing: .08em; }

/* ---------- Notices ---------- */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error,
.woocommerce .woocommerce-message, .woocommerce .woocommerce-info, .woocommerce .woocommerce-error {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
  margin: 0 0 28px; padding: 18px 22px; list-style: none;
  background: var(--surface); color: var(--ink); font-size: 15px; line-height: 1.55;
  border: 0; border-left: 2px solid var(--gold); border-radius: 12px;
}
.woocommerce-error, .woocommerce .woocommerce-error { border-left-color: var(--ink); }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }
.woocommerce-error li { margin: 0; }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button) { color: var(--gold-deep); border-bottom: 1px solid rgba(152, 128, 52, .35); }
.woocommerce-message .button, .woocommerce-info .button { order: 2; padding: 11px 16px; font-size: 12px; letter-spacing: .08em; }
.wc-block-components-notice-banner { border-radius: 12px; border-color: var(--line); background: var(--surface); color: var(--ink); }

/* ---------- Breadcrumb ---------- */
.woocommerce .woocommerce-breadcrumb.ps-crumbs {
  margin: clamp(24px, 3vw, 40px) 0 clamp(24px, 3vw, 40px);
  font: 500 12px/1.5 var(--font); letter-spacing: .02em; color: var(--ink-faint);
}
.woocommerce .ps-crumbs a { color: var(--ink-faint); }
.woocommerce .ps-crumbs a:hover { color: var(--gold-deep); }
.ps-crumbs__sep { margin: 0 8px; color: var(--gold); }

/* ---------- Archive toolbar (count + ordering), ruled like the site's filter bar ---------- */
.ps-toolbar {
  display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap;
  margin: 0 0 clamp(32px, 4vw, 56px); padding: 18px 0;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.woocommerce .ps-toolbar .woocommerce-result-count {
  margin: 0; float: none; font: 500 11px/1.4 var(--font); letter-spacing: .2em; text-transform: uppercase; color: var(--ink-faint);
}
.woocommerce .ps-toolbar .woocommerce-ordering { margin: 0; float: none; }
.woocommerce .ps-toolbar .woocommerce-ordering select { width: auto; min-width: 220px; min-height: 44px; padding-top: 10px; padding-bottom: 10px; font-size: 14px; }

/* ---------- Product grid: 2 columns at 390, 3 at 768, 4 at 1200 ---------- */
.woocommerce ul.products {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 16px;
  margin: 0; padding: 0; list-style: none;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
@media (min-width: 768px) { .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px 24px; } }
@media (min-width: 1200px) { .woocommerce ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 64px 28px; } }

.woocommerce ul.products li.product {
  position: relative; display: flex; flex-direction: column; gap: 10px;
  width: auto; margin: 0; padding: 0; float: none; text-align: left;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; gap: 8px; color: var(--ink); }
.ps-card__img {
  position: relative; aspect-ratio: 4 / 5; margin-bottom: 6px;
  display: flex; align-items: center; justify-content: center;
  background: var(--surface); border-radius: 20px; overflow: hidden;
}
.woocommerce ul.products li.product .ps-card__img img {
  width: 100%; height: 100%; margin: 0; padding: 10%;
  object-fit: contain; mix-blend-mode: multiply; box-shadow: none;
  transition: transform .5s cubic-bezier(.22, .61, .36, 1);
}
.woocommerce ul.products li.product:hover .ps-card__img img { transform: scale(1.03); }
.ps-card__brand {
  font: 500 10px/1.4 var(--font); letter-spacing: .24em; text-transform: uppercase; color: var(--ink-faint);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  margin: 0; padding: 0; font: 300 19px/1.3 var(--font-display); color: var(--ink); letter-spacing: normal;
}
.woocommerce ul.products li.product .price {
  display: block; margin: 2px 0 0; color: var(--ink); font: 500 15px/1.4 var(--font);
}
.woocommerce ul.products li.product .price del,
.woocommerce div.product p.price del, .woocommerce div.product span.price del {
  color: var(--ink-faint); opacity: 1; font-weight: 400; margin-right: 6px;
}
.woocommerce ul.products li.product .price ins,
.woocommerce div.product p.price ins, .woocommerce div.product span.price ins {
  text-decoration: none; background: none; font-weight: 600; color: var(--ink);
}
.woocommerce ul.products li.product .button {
  align-self: flex-start; margin-top: 4px; padding: 11px 16px;
  font: 500 12px/1 var(--font); letter-spacing: .08em;
  background: transparent; color: var(--ink); border: 1px solid rgba(152, 128, 52, .5);
}
.woocommerce ul.products li.product .button:hover { background: rgba(152, 128, 52, .06); border-color: var(--gold); color: var(--ink); }
.woocommerce ul.products li.product .button.loading { opacity: .6; }
.woocommerce ul.products li.product .added_to_cart { font: 500 13px/1.4 var(--font); color: var(--gold-deep); }

/* The sale mark: a small paper pill with a gold hairline, never a red disc. */
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
  position: absolute; top: 12px; left: 12px; right: auto; z-index: 2;
  min-width: 0; min-height: 0; margin: 0; padding: 7px 11px; border-radius: 999px;
  background: var(--bg); color: var(--gold-deep); border: 1px solid rgba(152, 128, 52, .45);
  font: 500 10px/1 var(--font); letter-spacing: .2em; text-transform: uppercase; text-align: left;
}
.woocommerce div.product span.onsale { top: 16px; left: 16px; }

/* ---------- Pagination ---------- */
.woocommerce nav.woocommerce-pagination { margin-top: clamp(48px, 6vw, 80px); text-align: left; }
.woocommerce nav.woocommerce-pagination ul,
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; }
.woocommerce nav.woocommerce-pagination ul li { float: none; border: 0; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 14px;
  border-radius: 999px; border: 1px solid rgba(152, 128, 52, .45); background: transparent;
  font: 500 13px/1 var(--font); color: var(--ink);
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus,
.pagination a.page-numbers:hover { background: rgba(152, 128, 52, .06); border-color: var(--gold); color: var(--ink); }
.woocommerce nav.woocommerce-pagination ul li span.current,
.pagination .page-numbers.current { background: var(--black); border-color: var(--black); color: var(--on-black); }

/* ---------- Single product ---------- */
.woocommerce div.product {
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 36px;
}
.woocommerce div.product > * { grid-column: 1 / -1; }
.woocommerce div.product div.images,
.woocommerce div.product div.summary { width: 100%; float: none; margin: 0; }
@media (min-width: 900px) {
  .woocommerce div.product {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); column-gap: clamp(40px, 5vw, 88px); align-items: start;
  }
  .woocommerce div.product > div.images { grid-column: 1; }
  .woocommerce div.product > div.summary { grid-column: 2; padding-top: 12px; }
}
.woocommerce div.product div.images .flex-viewport,
.woocommerce div.product div.images > .woocommerce-product-gallery__wrapper {
  background: var(--surface); border-radius: 24px; overflow: hidden;
}
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { margin: 0; }
/* FlexSlider transforms the slide wrapper, which isolates blending: the surface has to sit on each slide
   (and each thumbnail cell) for a white packshot to multiply into it. */
.woocommerce div.product div.images .woocommerce-product-gallery__image { background-color: var(--surface); }
.woocommerce div.product div.images img { mix-blend-mode: multiply; }
/* Before FlexSlider starts, Woo renders every gallery image stacked; the slider then collapses them to one
   and adds the thumbnail row, and the summary below jumped (CLS 0.42 on mobile). Until then the wrapper is a
   direct child of the gallery (FlexSlider wraps it in .flex-viewport), so: show only the first image and
   hold the thumbnail row's height (5 square thumbs, 10px gaps, 12px margin). */
.woocommerce div.product div.images > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:nth-child(n+2) { display: none; }
.woocommerce div.product div.images:has(> .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:nth-child(2)) > .woocommerce-product-gallery__wrapper {
  margin-bottom: calc((100% - 40px) / 5 + 12px);
}
/* And a square frame for the slider: mid-setup FlexSlider measured the gallery at ~1800px (412 wide) for a
   frame and pushed the summary off screen. With the height fixed here, nothing inside can move the page.
   Photos that are not square sit centred on the surface, like the cards. */
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
  width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain;
}
.woocommerce div.product div.images .flex-viewport { height: auto !important; aspect-ratio: 1 / 1; }
.woocommerce div.product div.images .flex-control-thumbs {
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 12px 0 0; padding: 0;
}
.woocommerce div.product div.images .flex-control-thumbs li {
  width: auto; float: none; margin: 0; list-style: none; background: var(--surface); border-radius: 12px; overflow: hidden;
}
.woocommerce div.product div.images .flex-control-thumbs li img { opacity: .55; transition: opacity .2s ease; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; }
.ps-single__brand { margin: 0 0 18px; }
.ps-single__brand a { color: inherit; border-bottom: 1px solid rgba(152, 128, 52, .35); transition: color .2s ease, border-color .2s ease; }
.ps-single__brand a:hover { color: var(--gold-deep); border-color: var(--gold); }

/* «Κατάλληλο για»: the product's concerns, each a way into the filtered shop */
.ps-concerns { margin: 20px 0 24px; }
.ps-concerns__label { margin: 0 0 10px; font: 500 11px/1.4 var(--font); letter-spacing: .2em; text-transform: uppercase; color: var(--ink-faint); }
.ps-concerns__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ps-concerns__chip {
  display: inline-flex; align-items: center; min-height: 36px; padding: 6px 14px;
  border: 1px solid rgba(152, 128, 52, .5); border-radius: 999px; color: var(--ink); font: 500 13px/1.3 var(--font);
}
.ps-concerns__chip:hover { background: rgba(152, 128, 52, .06); border-color: var(--gold); color: var(--ink); }
.woocommerce div.product .product_title {
  margin: 0 0 20px; font: 200 clamp(32px, 3.4vw, 50px)/1.08 var(--font-display); color: var(--ink); text-wrap: balance;
}
.woocommerce div.product p.price, .woocommerce div.product span.price {
  margin: 0 0 24px; color: var(--ink); font: 500 22px/1.3 var(--font);
}
.woocommerce div.product .woocommerce-product-details__short-description { margin: 0 0 28px; color: var(--ink-soft); font-size: 16px; line-height: 1.75; }
.woocommerce div.product form.cart { margin: 0 0 28px; }
.woocommerce div.product form.cart:not(.variations_form),
.woocommerce div.product .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product form.cart .quantity .qty { width: 76px; height: 52px; text-align: center; }
.woocommerce div.product form.cart .button { float: none; flex: 1 1 220px; min-height: 52px; }
.woocommerce div.product form.cart .variations { width: 100%; margin: 0 0 12px; border: 0; border-collapse: collapse; }
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td { display: block; padding: 0; text-align: left; border: 0; }
.woocommerce div.product form.cart .variations th.label label {
  display: block; margin: 0 0 8px; font: 500 11px/1.4 var(--font); letter-spacing: .2em; text-transform: uppercase; color: var(--ink-faint);
}
.woocommerce div.product form.cart .variations td.value { padding-bottom: 14px; }
.woocommerce div.product form.cart .reset_variations { display: inline-block; margin-top: 8px; font-size: 12px; color: var(--gold-deep); }
.woocommerce div.product .woocommerce-variation-price { margin-bottom: 14px; }
.woocommerce div.product .stock,
.woocommerce div.product p.stock { font: 500 13px/1.5 var(--font); color: var(--ink-soft); }
.woocommerce div.product .out-of-stock { color: var(--ink); }
.woocommerce div.product .product_meta {
  display: flex; flex-direction: column; gap: 6px; padding-top: 18px;
  border-top: 1px solid var(--line); font-size: 13px; color: var(--ink-faint);
}
.woocommerce div.product .product_meta a { color: var(--gold-deep); text-decoration: underline; text-decoration-color: rgba(152, 128, 52, .45); text-underline-offset: .2em; }

/* Tabs as plain sections */
.ps-sections { margin-top: clamp(48px, 6vw, 96px); }
.ps-section { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 36px 0; border-top: 1px solid var(--line); }
@media (min-width: 900px) { .ps-section { grid-template-columns: minmax(200px, .35fr) minmax(0, 1fr); gap: 48px; } }
.ps-section__title { margin: 0; font: 300 24px/1.2 var(--font-display); }
.ps-section__body { max-width: 760px; color: var(--ink-soft); font-size: 16px; line-height: 1.75; }
.ps-section__body > :first-child { margin-top: 0; }
.woocommerce .ps-section table.shop_attributes { border: 0; margin: 0; width: 100%; border-collapse: collapse; }
.woocommerce .ps-section table.shop_attributes th,
.woocommerce .ps-section table.shop_attributes td {
  padding: 12px 0; border: 0; border-bottom: 1px solid var(--line); text-align: left; font-style: normal; background: none;
}
.woocommerce .ps-section table.shop_attributes th { width: 40%; font-weight: 500; color: var(--ink); }
.woocommerce .ps-section table.shop_attributes td p { margin: 0; padding: 0; }
.woocommerce div.product .related,
.woocommerce div.product .upsells { margin-top: clamp(56px, 7vw, 112px); }
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 { margin: 0 0 32px; font: 300 clamp(26px, 2.6vw, 36px)/1.15 var(--font-display); }

/* ---------- Tables (order review, account orders) ---------- */
.woocommerce table.shop_table {
  width: 100%; margin: 0 0 24px; border: 0; border-collapse: collapse; border-radius: 0; text-align: left;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { padding: 12px 0; border: 0; border-top: 1px solid var(--rule-tint); line-height: 1.5; vertical-align: top; }
.woocommerce table.shop_table thead th {
  border-top: 0; font: 500 11px/1.4 var(--font); letter-spacing: .2em; text-transform: uppercase; color: var(--ink-faint);
}
.woocommerce table.shop_table td:last-child, .woocommerce table.shop_table th:last-child { text-align: right; }
.woocommerce table.shop_table tfoot .order-total th,
.woocommerce table.shop_table tfoot .order-total td { font-size: 17px; font-weight: 600; }
.woocommerce table.shop_table ul#shipping_method { margin: 0; padding: 0; list-style: none; text-align: left; }
.woocommerce table.shop_table ul#shipping_method li { margin: 0 0 8px; }
/* What woocommerce-smallscreen did for responsive tables */
@media (max-width: 768px) {
  .woocommerce table.shop_table_responsive thead,
  .woocommerce table.shop_table_responsive tbody th { display: none; }
  .woocommerce table.shop_table_responsive tr td { display: block; text-align: right; }
  .woocommerce table.shop_table_responsive tr td::before { content: attr(data-title) ": "; float: left; font-weight: 500; }
  .woocommerce table.shop_table_responsive tr td.actions::before,
  .woocommerce table.shop_table_responsive tr td.product-remove::before { display: none; }
}

/* ---------- Checkout (classic shortcode: gateways and BOX NOW need it) ---------- */
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { width: 100%; float: none; max-width: none; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; float: none; }
@media (min-width: 600px) {
  .woocommerce-billing-fields__field-wrapper,
  .woocommerce-shipping-fields__field-wrapper,
  .woocommerce-address-fields__field-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
  .woocommerce-billing-fields__field-wrapper > .form-row:not(.form-row-first):not(.form-row-last),
  .woocommerce-shipping-fields__field-wrapper > .form-row:not(.form-row-first):not(.form-row-last),
  .woocommerce-address-fields__field-wrapper > .form-row:not(.form-row-first):not(.form-row-last) { grid-column: 1 / -1; }
}
.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: clamp(40px, 5vw, 88px); align-items: start; }
.woocommerce-checkout form.checkout > * { grid-column: 1 / -1; }
@media (min-width: 1024px) {
  .woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
  .woocommerce-checkout form.checkout > #customer_details { grid-column: 1; grid-row: span 2; }
  .woocommerce-checkout form.checkout > #order_review_heading,
  .woocommerce-checkout form.checkout > #order_review { grid-column: 2; }
}
.woocommerce-checkout h3, .woocommerce-checkout #order_review_heading { margin: 0 0 22px; font: 300 26px/1.2 var(--font-display); }
.woocommerce-checkout #order_review {
  background: var(--surface); border-radius: 24px; padding: clamp(20px, 3vw, 36px); margin-bottom: 24px;
}
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { margin: 0 0 16px; padding: 0; border: 0; border-bottom: 1px solid var(--rule-tint); }
.woocommerce-checkout #payment ul.payment_methods li { padding: 14px 0; list-style: none; border-top: 1px solid var(--rule-tint); line-height: 1.5; }
.woocommerce-checkout #payment ul.payment_methods li label { font-weight: 500; cursor: pointer; }
.woocommerce-checkout #payment ul.payment_methods li img { max-height: 26px; width: auto; margin: -2px 0 0 8px; vertical-align: middle; }
.woocommerce-checkout #payment div.payment_box {
  margin: 12px 0 0; padding: 14px 16px; border-radius: 12px;
  background: var(--bg); color: var(--ink-soft); font-size: 14px;
}
.woocommerce-checkout #payment div.payment_box::before { border-color: transparent transparent var(--bg); }
.woocommerce-checkout #payment div.form-row.place-order { padding: 16px 0 0; margin: 0; }
.woocommerce-checkout #payment #place_order { width: 100%; float: none; min-height: 56px; }
.woocommerce-terms-and-conditions-wrapper,
.woocommerce-privacy-policy-text { font-size: 13px; line-height: 1.6; color: var(--ink-faint); }
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register {
  margin: 0 0 32px; padding: clamp(22px, 3.5vw, 40px); border: 0; border-radius: 24px; background: var(--surface); text-align: left;
}

/* ---------- Cart block ---------- */
.wp-block-woocommerce-cart, .wp-block-woocommerce-empty-cart-block { font-family: var(--font); color: var(--ink); }
.wc-block-cart .wc-block-cart__submit-button { min-height: 56px; }
.wc-block-cart__sidebar { background: var(--surface); border-radius: 24px; padding: 8px 24px 24px !important; }
.wc-block-cart .wc-block-cart__totals-title,
.wc-block-cart .wc-block-cart-items__header {
  font: 500 11px/1.4 var(--font) !important; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-faint);
}
.wc-block-components-product-name { font: 300 18px/1.3 var(--font-display); color: var(--ink); text-decoration: none; }
.wc-block-cart-item__image img { border-radius: 12px; background: var(--surface); mix-blend-mode: multiply; }
.wc-block-components-quantity-selector { border-radius: 12px; }
.wc-block-components-quantity-selector::after { border-color: var(--line) !important; border-radius: 12px !important; }
.wc-block-components-product-badge,
.wc-block-components-sale-badge { background: transparent; color: var(--gold-deep); border-color: rgba(152, 128, 52, .45); border-radius: 999px; }
.wc-block-components-totals-item__label, .wc-block-components-totals-item__value { font-family: var(--font); }
.wp-block-woocommerce-empty-cart-block h2 { font-family: var(--font-display); font-weight: 300; }
.wc-block-grid__product-title { font-family: var(--font-display); font-weight: 300; color: var(--ink); }

/* ---------- My account ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { width: auto; float: none; }
@media (min-width: 900px) {
  .woocommerce-account.logged-in .ps-woo-page > .woocommerce { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 64px; }
}
.woocommerce-MyAccount-navigation ul { margin: 0 0 32px; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.woocommerce-MyAccount-navigation li a { display: block; padding: 14px 0; border-bottom: 1px solid var(--line); color: var(--ink); font-size: 15px; }
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover { color: var(--gold-deep); }
#customer_login { display: grid; gap: 40px; }
@media (min-width: 900px) { #customer_login.col2-set { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.woocommerce form.login, .woocommerce form.register { max-width: 560px; }
.woocommerce form .woocommerce-form-login__rememberme { display: inline-flex; gap: 8px; align-items: center; margin: 0 16px 0 0; font-size: 14px; color: var(--ink); }
.woocommerce-LostPassword a, .lost_password a { font-size: 14px; color: var(--gold-deep); }
.woocommerce-account h2 { font: 300 26px/1.2 var(--font-display); }

/* ---------- Search form, prose pages, empty states ---------- */
.woocommerce-product-search { display: flex; gap: 12px; max-width: 560px; margin: 0 0 32px; }
.ps-woo-page { font-size: 15px; }
.ps-prose { font-size: 17px; line-height: 1.75; color: var(--ink-soft); }
.ps-prose > * { max-width: 760px; }
.ps-prose h2 { margin: 1.6em 0 .6em; font: 300 28px/1.2 var(--font-display); color: var(--ink); }
.ps-prose h3 { margin: 1.4em 0 .5em; font: 400 20px/1.3 var(--font-display); color: var(--ink); }
.ps-prose a:not(.cd-btn) { color: var(--gold-deep); border-bottom: 1px solid rgba(152, 128, 52, .35); }
.ps-prose ul, .ps-prose ol { padding-left: 1.2em; }
.ps-empty { font-size: 16px; color: var(--ink-soft); }

/* ---------- Mobile ---------- */
@media (max-width: 768px) {
  .ps-wrap { padding-bottom: 72px; }
  .ps-card__img { border-radius: 16px; }
  .ps-card__brand { font-size: 9px; letter-spacing: .22em; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 15px; }
  .woocommerce ul.products li.product .price { font-size: 14px; }
  .woocommerce ul.products li.product .button { padding: 10px 12px; font-size: 11px; letter-spacing: .06em; }
  .ps-toolbar { flex-direction: column; align-items: flex-start; gap: 12px; }
  .woocommerce .ps-toolbar .woocommerce-ordering,
  .woocommerce .ps-toolbar .woocommerce-ordering select { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .woocommerce ul.products li.product .ps-card__img img { transition: none; }
  .woocommerce ul.products li.product:hover .ps-card__img img { transform: none; }
}

/* ==================================================================================
   S5 — add-to-cart drawer. Folded into theme.css rather than shipped as its own
   stylesheet: a separate file is a render-blocking request on EVERY page for UI that
   is invisible until someone interacts, and it cost measurable LCP on /shop/.
   ================================================================================== */

.ps-drawer-root {
  position: fixed;
  inset: 0;
  z-index: 200;
}
.ps-drawer-root[hidden] { display: none; }

.ps-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(31, 26, 18, .38);
  opacity: 0;
  transition: opacity .28s ease;
}
.ps-drawer-root.is-open .ps-drawer__backdrop { opacity: 1; }

.ps-drawer {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: min(420px, 100%);
  display: flex;
  flex-direction: column;
  background: var(--bg);
  box-shadow: -18px 0 48px rgba(31, 26, 18, .16);
  transform: translateX(100%);
  transition: transform .28s cubic-bezier(.22, .61, .36, 1);
}
.ps-drawer-root.is-open .ps-drawer { transform: none; }
.ps-drawer:focus { outline: none; }

/* Mobile: a full-width sheet. */
@media (max-width: 560px) {
  .ps-drawer { width: 100%; }
}

body.ps-drawer-open { overflow: hidden; }

/* ---------------------------------------------------------------- head */

.ps-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 20px 22px 16px;
  border-bottom: 1px solid var(--line);
}
.ps-drawer__title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font: 400 17px/1.3 var(--font);
  color: var(--ink);
}
.ps-drawer__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex: none;
  border-radius: 50%;
  background: rgba(152, 128, 52, .12);
  color: var(--gold-deep);
}
.ps-drawer__check[hidden] { display: none; }
.ps-drawer__close {
  flex: none;
  background: none;
  border: 0;
  padding: 0 4px;
  font: 200 28px/1 var(--font-display);
  color: var(--ink-muted);
  cursor: pointer;
}
.ps-drawer__close:hover { color: var(--ink); }
.ps-drawer__close:focus-visible,
.ps-qty__btn:focus-visible,
.ps-ci__remove:focus-visible { outline: 2px solid var(--gold-deep); outline-offset: 2px; }

/* ---------------------------------------------------------------- body */

.ps-drawer__body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 18px 22px;
  -webkit-overflow-scrolling: touch;
}
.ps-drawer__empty {
  margin: 28px 0;
  text-align: center;
  color: var(--ink-muted);
  font-size: 14px;
}

/* free-shipping nudge */
.ps-ship { margin: 0 0 18px; }
.ps-ship__text {
  margin: 0 0 8px;
  font: 400 13px/1.5 var(--font);
  color: var(--ink-muted-2);
}
.ps-ship__text .woocommerce-Price-amount { color: var(--ink); font-weight: 500; }
.ps-ship__bar {
  height: 4px;
  border-radius: 2px;
  background: rgba(152, 128, 52, .16);
  overflow: hidden;
}
.ps-ship__bar > span {
  display: block;
  height: 100%;
  background: var(--gold);
  transition: width .35s ease;
}
.ps-ship.is-free .ps-ship__bar > span { background: var(--gold-deep); }

/* line items */
.ps-drawer__items { list-style: none; margin: 0; padding: 0; }
.ps-ci {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line-soft, var(--line));
}
.ps-ci.is-busy { opacity: .5; pointer-events: none; }
.ps-ci__img img {
  width: 64px;
  height: 80px;
  object-fit: cover;
  border-radius: 8px;
  display: block;
}
.ps-ci__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ps-ci__name { font: 400 14px/1.4 var(--font); color: var(--ink); }
.ps-ci__name a { color: inherit; }
.ps-ci__meta { font-size: 12px; color: var(--ink-muted); }
.ps-ci__meta p { margin: 0; }
.ps-ci__price { font-size: 13px; color: var(--ink-muted-2); }

.ps-ci__qty {
  grid-column: 2;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 6px;
}
.ps-qty__btn {
  width: 26px;
  height: 26px;
  line-height: 1;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-size: 15px;
}
.ps-qty__btn:hover { border-color: var(--gold); }
.ps-qty__n { min-width: 1.4em; text-align: center; font-size: 14px; font-variant-numeric: tabular-nums; }
.ps-ci__qtyfixed { font-size: 14px; color: var(--ink-muted); }
.ps-ci__remove {
  margin-left: auto;
  background: none;
  border: 0;
  padding: 0;
  font: 400 12px/1 var(--font);
  color: var(--ink-muted);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.ps-ci__remove:hover { color: var(--ink); }

.ps-drawer__totals {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-top: 16px;
  font: 400 14px/1.4 var(--font);
  color: var(--ink-muted-2);
}
.ps-drawer__totals strong { font-size: 17px; font-weight: 500; color: var(--ink); }

/* ---------------------------------------------------------------- foot */

.ps-drawer__foot {
  flex: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 22px calc(18px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--line);
  background: var(--bg);
}
.ps-drawer__foot .cd-btn { text-align: center; padding: 16px 24px; }
.ps-drawer__cartlink {
  text-align: center;
  font-size: 13px;
  color: var(--ink-muted);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ps-drawer__cartlink:hover { color: var(--ink); }

@media (prefers-reduced-motion: reduce) {
  .ps-drawer, .ps-drawer__backdrop, .ps-ship__bar > span { transition: none; }
}

/* ==================================================================================
   S5 — thank-you page (/checkout/agora/<id>/).
   Woo prints the bank block as h2 + an h3 per account; untouched, those h3s inherit
   the display face and dwarf the section labels beside them. They are section labels
   too, so they get the same treatment, and the two address boxes get a real gap.
   ================================================================================== */

.woocommerce-order .wc-bacs-bank-details-heading,
.woocommerce-order .woocommerce-order-details__title,
.woocommerce-order .woocommerce-column__title {
  margin: 0 0 12px;
  font: 300 24px/1.2 var(--font-display);
  color: var(--ink);
}

/* The bank names sit one level below those, at the size of a field label. */
.woocommerce-order .wc-bacs-bank-details-account-name {
  margin: 22px 0 8px;
  font: 500 11px/1.3 var(--font);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--gold-deep);
}
.woocommerce-order .wc-bacs-bank-details {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 14px;
}
.woocommerce-order .wc-bacs-bank-details li {
  padding: 3px 0;
  color: var(--ink-muted-2);
}
.woocommerce-order .wc-bacs-bank-details li strong { color: var(--ink); font-weight: 500; }

/* Billing and shipping were two columns with no gutter between them. */
.woocommerce-order .woocommerce-columns--addresses {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px 48px;
  margin-top: 34px;
}
.woocommerce-order .woocommerce-columns--addresses .col-1,
.woocommerce-order .woocommerce-columns--addresses .col-2 {
  width: 100%;
  float: none;
  margin: 0;
  padding: 22px 24px;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.woocommerce-order .woocommerce-columns--addresses address {
  font-style: normal;
  font-size: 14px;
  line-height: 1.7;
  color: var(--ink-muted-2);
}
@media (max-width: 720px) {
  .woocommerce-order .woocommerce-columns--addresses { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}

/* Reveal-on-scroll-up header (2026-09-29). The sticky/hide rules come from the Astro theme.css via
   shell.css and the behaviour from assets/menu.js (both generated). Shop-only additions: */
/* Logged-in admins: sit below the WP admin bar (fixed above 600px, 32px / 46px tall). */
.admin-bar .cd-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .cd-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .cd-header { top: 0; } }
/* In-page jumps (filters' results, account tabs) land below the header. */
[id] { scroll-margin-top: calc(var(--cd-header-h, 101px) + 16px); }
