/*
Theme Name:   Soul925
Theme URI:    https://soul925.com
Description:  Soul925 sterling silver storefront. Child of Storefront (WooCommerce). Editorial design system — Fraunces + Jost, Ground/Ink/Champagne palette — matching the hero and the /browse/ storefront so the whole site reads as one boutique.
Author:       Soul925
Template:     storefront
Version:      1.1.0
License:      GNU General Public License v2 or later
Text Domain:  soul925
*/

/* ============================================================
   SOUL925 DESIGN TOKENS — EDITORIAL
   Mirrors the plugin storefront (S925_Storefront .s925sf) so the
   theme chrome and the /browse/ page share one design language.
   ============================================================ */

:root {
  /* Editorial palette */
  --s925-ground:      #F4F0E9;            /* page background */
  --s925-ink:         #221C18;            /* primary text / solid buttons */
  --s925-champ:       #B79C74;            /* accent (price, hover, hairline accents) */
  --s925-champ-dark:  #9c8259;            /* accent hover */
  --s925-muted:       #8a7d6a;            /* secondary text */
  --s925-line:        rgba(90, 72, 45, 0.18); /* hairline dividers/borders */
  --s925-panel:       #FBF9F4;            /* cards / surfaces */

  /* Back-compat aliases — the WooCommerce/component rules below and any
     inherited markup reference these older token names. Pointing them at
     the editorial palette re-skins everything token-driven at once. */
  --s925-bg:            var(--s925-ground);
  --s925-surface:       var(--s925-panel);
  --s925-text:          var(--s925-ink);
  --s925-charcoal:      var(--s925-ink);
  --s925-charcoal-text: var(--s925-ground);
  --s925-btn-bg:        var(--s925-ink);
  --s925-btn-label:     var(--s925-ground);
  --s925-sale-bg:       var(--s925-ink);
  --s925-sale-text:     var(--s925-ground);
  --s925-soldout-bg:    var(--s925-muted);
  --s925-soldout-text:  var(--s925-ground);
  --s925-sale-accent:       var(--s925-champ);
  --s925-sale-accent-hover: var(--s925-champ-dark);

  /* Layout */
  --s925-page-width:    1280px;
  --s925-grid-gap:      22px;
  --s925-btn-radius:    4px;
  --s925-pill-radius:   40px;

  /* Type */
  --s925-font:       'Jost', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --s925-font-serif: 'Fraunces', Georgia, 'Times New Roman', serif;
}

/* Legacy dark-mode hook is a no-op now (switcher retired), but keep the
   selector inert so any stored data-attribute cannot flip the palette. */
[data-soul925-theme="charcoal"] {
  --s925-bg:      var(--s925-ground);
  --s925-surface: var(--s925-panel);
  --s925-text:    var(--s925-ink);
}

/* ============================================================
   BASE
   ============================================================ */

body {
  background-color: var(--s925-ground);
  color: var(--s925-ink);
  font-family: var(--s925-font);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Editorial headings — Fraunces, balanced wrapping. */
h1, h2, h3,
.entry-title,
.page-title,
.product__title,
.woocommerce-loop-product__title,
.card__heading,
.featured-collection__heading,
.product-recommendations__heading,
.woocommerce-products-header__title {
  font-family: var(--s925-font-serif);
  font-weight: 400;
  color: var(--s925-ink);
  text-wrap: balance;
}

a { color: var(--s925-ink); }
a:hover { color: var(--s925-champ-dark); }

.site .col-full,
.storefront-full-width-content .col-full {
  max-width: var(--s925-page-width);
}

.tabular-nums,
.price,
.woocommerce-Price-amount,
.amount { font-variant-numeric: tabular-nums; }

/* SALE menu item — carried over, retuned to the champagne accent. */
.header__inline-menu a[href*="/sale"],
.main-navigation a[href*="product-category/sale"],
.site-header a[href*="/sale"] {
  color: var(--s925-champ-dark) !important;
  font-weight: 500 !important;
}
.header__inline-menu a[href*="/sale"]:hover,
.main-navigation a[href*="product-category/sale"]:hover,
.site-header a[href*="/sale"]:hover {
  color: var(--s925-ink) !important;
}

/* ============================================================
   STOREFRONT PRODUCT-LOOP NEUTRALISATION
   We emit Dawn-style card markup (woocommerce/content-product.php)
   and style it below, so Storefront's own loop styling is reset.
   ============================================================ */

ul.products li.product {
  background: none;
  padding: 0;
  margin: 0;
  text-align: left;
}

ul.products li.product .button,
ul.products li.product .price,
ul.products li.product .woocommerce-loop-product__title {
  all: unset;
}

/* ============================================================
   HEADER
   ============================================================ */

.page-width {
  max-width: var(--s925-page-width);
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* --- Announcement bar --- */
.announcement-bar {
  position: relative;
  background: var(--s925-ink);
  color: var(--s925-ground);
  text-align: center;
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 0.55rem 0;
}
.announcement-bar__message { margin: 0; }
.ornaments-anchor { display: none; }

/* --- Header --- */
.header-wrapper {
  position: relative;
  z-index: 20;
  background: var(--s925-ground);
  border-bottom: 1px solid var(--s925-line);
}

.header {
  display: grid;
  grid-template-columns: minmax(150px, auto) 1fr minmax(120px, auto);
  align-items: center;
  gap: 1.5rem;
  padding: 1.25rem 1.5rem;
}
.header__inline-menu { min-width: 0; }
.list-menu { flex-wrap: wrap; }

.header__heading { margin: 0; line-height: 0; }
.header__heading-link { display: inline-block; }

.soul925-logo-container {
  position: relative;
  display: inline-block;
  overflow: visible;
}

.header__heading-logo {
  display: block;
  width: 150px;
  height: auto;
  max-width: none;
  object-fit: contain;
}

.header__inline-menu { justify-self: center; }

.list-menu {
  display: flex;
  align-items: center;
  gap: 1.9rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.list-menu a {
  color: var(--s925-ink);
  text-decoration: none;
  font-family: var(--s925-font);
  font-size: 0.8rem;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: color 0.2s ease;
}
.list-menu a:hover { color: var(--s925-champ-dark); opacity: 1; }

.header__icons {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  justify-self: end;
}
.header__icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--s925-ink);
  background: none;
  border: 0;
  cursor: pointer;
  padding: 0.35rem;
  transition: color 0.2s ease;
}
.header__icon:hover { color: var(--s925-champ-dark); }
.header__icon svg { width: 22px; height: 22px; }
.header__icon--cart svg { width: 26px; height: 26px; }

.header__search details { position: relative; }
.header__search summary { list-style: none; cursor: pointer; }
.header__search summary::-webkit-details-marker { display: none; }
.search-modal__content {
  position: absolute;
  right: 0;
  top: 100%;
  z-index: 30;
  background: var(--s925-panel);
  border: 1px solid var(--s925-line);
  padding: 1rem;
  min-width: 280px;
  box-shadow: 0 12px 34px rgba(34, 28, 24, 0.12);
}

.cart-count-bubble {
  position: absolute;
  top: 0;
  right: 0;
  min-width: 17px;
  height: 17px;
  border-radius: 50%;
  background: var(--s925-champ);
  color: var(--s925-ground);
  font-size: 0.65rem;
  line-height: 17px;
  text-align: center;
}

/* --- Footer --- */
.footer {
  margin-top: 4.5rem;
  padding: 3.5rem 0 1.75rem;
  background: var(--s925-panel);
  color: var(--s925-ink);
  border-top: 1px solid var(--s925-line);
}
.footer__content-top {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2.5rem;
}
.footer-block__heading {
  font-family: var(--s925-font);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--s925-muted);
  margin: 0 0 1rem;
}
.footer__logo { height: 40px; width: auto; margin-bottom: 0.85rem; }
.footer-block__details-content { color: var(--s925-muted); line-height: 1.7; font-size: 0.92rem; }
.list-unstyled { list-style: none; margin: 0; padding: 0; }
.list-unstyled li { margin-bottom: 0.5rem; }
.footer a { color: var(--s925-ink); text-decoration: none; }
.footer a:hover { color: var(--s925-champ-dark); opacity: 1; }
.footer__content-bottom {
  margin-top: 2.75rem;
  padding-top: 1.35rem;
  border-top: 1px solid var(--s925-line);
  text-align: center;
  color: var(--s925-muted);
  font-size: 0.82rem;
  letter-spacing: 0.04em;
}

@media screen and (max-width: 749px) {
  .header { grid-template-columns: 1fr auto; gap: 1rem; }
  .header__inline-menu { display: none; }
}

/* ============================================================
   PRODUCT CARDS — EDITORIAL
   Matches the /browse/ storefront cards: panel surface, hairline
   border, Fraunces name, quiet price, gentle hover-raise.
   ============================================================ */

ul.products {
  list-style: none;
  margin: 0;
  padding: 0;
}

ul.products.grid,
.product-recommendations ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: var(--s925-grid-gap);
  row-gap: calc(var(--s925-grid-gap) * 1.9);
}

/* Storefront lays its loop out with floats + percentage widths — reset. */
ul.products.grid > li.product,
.product-recommendations ul.products > li.product {
  float: none !important;
  clear: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
}
ul.products.grid > li.product::before,
ul.products.grid > li.product::after { content: none; }

/* The card itself. */
li.product .card,
li.product > .card {
  position: relative;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--s925-panel);
  border: 1px solid var(--s925-line);
  border-radius: var(--s925-btn-radius);
  overflow: hidden;
  opacity: 1;
  transform: none;
  transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}
li.product .card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(34, 28, 24, 0.10);
  border-color: var(--s925-champ);
}

.card__inner { position: relative; display: flex; flex-direction: column; flex-grow: 1; }

/* Square media so the grid reads as an even rhythm. */
.card__media,
.card__media .media {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--s925-panel);
}
.card__media .media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
li.product .card:hover .card__media .media img { transform: scale(1.04); }

/* Single-image cards: hide the hover-swap second image. */
.card__media .media img:nth-child(2) { display: none; }

.card__content { padding: 0; background: var(--s925-panel); }
.card__information,
.card-information {
  padding: 0.95rem 1.05rem 1.2rem;
  text-align: left;
}
.card__heading {
  margin: 0 0 0.4rem;
  font-family: var(--s925-font-serif);
  font-weight: 400;
  font-size: 1.05rem;
  line-height: 1.25;
}
.card__heading a {
  color: var(--s925-ink);
  text-decoration: none;
}
.card__heading a:hover { color: var(--s925-champ-dark); }

.price,
.card-information .price {
  margin: 0;
  padding: 0;
  font-family: var(--s925-font);
  font-size: 0.9rem;
  color: var(--s925-ink);
  font-variant-numeric: tabular-nums;
}
.price__container { display: flex; flex-direction: row; align-items: baseline; gap: 0.5rem; }
.price__sale { display: flex; align-items: baseline; gap: 0.5rem; }
.price__regular .price-item--sale,
.price__sale .price-item--sale { color: var(--s925-ink); font-weight: 500; }
.price__sale .price-item--regular {
  color: var(--s925-muted);
  text-decoration: line-through;
  font-size: 0.82rem;
}

/* Badges (sale / sold-out) — quiet, ink chips. */
.card__badge { position: absolute; top: 10px; left: 10px; z-index: 2; }
.card__badge .badge {
  display: inline-block;
  padding: 3px 9px;
  border-radius: 2px;
  font-family: var(--s925-font);
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.badge--sale { background: var(--s925-ink); color: var(--s925-ground); }
.badge--sold-out { background: var(--s925-muted); color: var(--s925-ground); }

@media screen and (max-width: 989px) {
  ul.products.grid,
  .product-recommendations ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media screen and (max-width: 480px) {
  ul.products.grid,
  .product-recommendations ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card__heading { font-size: 0.95rem; }
}

/* ============================================================
   BUTTONS — global editorial primary
   ============================================================ */

.button--solid,
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button,
.woocommerce #respond input#submit,
.woocommerce button.button.alt,
.woocommerce .checkout-button,
.woocommerce #place_order,
button.single_add_to_cart_button {
  display: inline-block;
  background: var(--s925-ink);
  color: var(--s925-ground);
  border: 1px solid var(--s925-ink);
  border-radius: var(--s925-btn-radius);
  padding: 0.95rem 2.25rem;
  font-family: var(--s925-font);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}
.button--solid:hover,
.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button.alt:hover,
.woocommerce .checkout-button:hover,
.woocommerce #place_order:hover,
button.single_add_to_cart_button:hover {
  background: transparent;
  color: var(--s925-ink);
}

/* ============================================================
   HOME PAGE SECTIONS
   Slideshow -> featured products -> newsletter. Layout preserved,
   colours re-skinned. (Hero content owned elsewhere.)
   ============================================================ */

.soul925-home { background: var(--s925-ground); }

.slideshow { position: relative; width: 100%; overflow: hidden; }
.slideshow__slides { position: relative; }
.slideshow__slide { display: none; }
.slideshow__slide.is-active { display: block; }
.slideshow__image { display: block; width: 100%; height: auto; }

.slideshow__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 58vh;
  background: linear-gradient(135deg, #2a231d 0%, #3a3128 55%, #201a15 100%);
}
.slideshow__caption { text-align: center; color: var(--s925-ground); padding: 2rem; }
.slideshow__wordmark {
  display: block;
  font-family: var(--s925-font-serif);
  font-size: clamp(2.75rem, 8vw, 6rem);
  font-weight: 300;
  letter-spacing: 0.02em;
  line-height: 1;
}
.slideshow__tagline {
  display: block;
  margin-top: 0.75rem;
  font-family: var(--s925-font);
  font-size: clamp(1rem, 2.2vw, 1.6rem);
  font-weight: 300;
  letter-spacing: 0.04em;
  opacity: 0.9;
}

.slideshow__dots {
  position: absolute;
  bottom: 1.1rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.5rem;
}
.slideshow__dot {
  width: 9px; height: 9px;
  padding: 0;
  border: 1px solid rgba(244, 240, 233, 0.85);
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
}
.slideshow__dot.is-active { background: var(--s925-ground); }

.featured-collection { padding: 4rem 1.5rem 1rem; }
.featured-collection__heading {
  font-size: clamp(1.6rem, 3vw, 2.3rem);
  font-weight: 400;
  margin: 0 0 2rem;
}
.featured-collection__view-all { text-align: center; margin: 3rem 0 1rem; }

.newsletter { padding: 4.5rem 0 5.5rem; background: var(--s925-panel); border-top: 1px solid var(--s925-line); }
.newsletter__inner { text-align: center; }
.newsletter__heading {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 400;
  margin: 0 0 1.75rem;
}
.newsletter__form {
  display: flex;
  align-items: center;
  max-width: 460px;
  margin: 0 auto;
  border: 1px solid var(--s925-ink);
  border-radius: var(--s925-btn-radius);
  overflow: hidden;
  background: #fff;
}
.newsletter__form input[type="email"] {
  flex: 1;
  border: 0;
  background: transparent;
  padding: 0.95rem 1.1rem;
  font-family: var(--s925-font);
  font-size: 0.95rem;
  color: var(--s925-ink);
}
.newsletter__form input[type="email"]:focus { outline: none; }
.newsletter__form button {
  border: 0;
  background: var(--s925-ink);
  color: var(--s925-ground);
  padding: 0 1.2rem;
  align-self: stretch;
  cursor: pointer;
  display: flex;
  align-items: center;
}
.newsletter__form button:hover { background: var(--s925-champ-dark); }

/* ============================================================
   SINGLE PRODUCT
   ============================================================ */

.product.grid.grid--two-column {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 3.5rem;
  align-items: start;
  padding: 3rem 1.5rem 1.5rem;
}

.product__media-list { display: flex; flex-direction: column; gap: 1rem; }
.product__media-item { overflow: hidden; border-radius: 6px; background: var(--s925-panel); border: 1px solid var(--s925-line); }
.product__media-image { display: block; width: 100%; height: auto; }

.product__title {
  font-size: clamp(1.7rem, 3.4vw, 2.5rem);
  font-weight: 400;
  line-height: 1.15;
  margin: 0 0 1rem;
}

.price--large { color: var(--s925-ink); }
.price--large .price-item { font-size: 1.35rem; }
.price--large .price__sale .price-item--regular {
  text-decoration: line-through;
  color: var(--s925-muted);
  margin-right: 0.5rem;
}

.product__description { margin: 1.35rem 0; line-height: 1.7; color: var(--s925-ink); }

.product__accordion {
  border-top: 1px solid var(--s925-line);
  padding: 0.25rem 0;
}
.product__accordion:last-of-type { border-bottom: 1px solid var(--s925-line); }
.product__accordion summary {
  cursor: pointer;
  list-style: none;
  padding: 1rem 0;
  font-family: var(--s925-font);
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--s925-ink);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.product__accordion summary::-webkit-details-marker { display: none; }
.product__accordion summary::after {
  content: "+";
  font-size: 1.15rem;
  line-height: 1;
  color: var(--s925-champ);
}
.product__accordion[open] summary::after { content: "\2013"; }
.product__accordion-content { padding: 0 0 1.15rem; line-height: 1.75; font-size: 0.92rem; color: var(--s925-ink); }
.product__meta-list { list-style: none; margin: 0; padding: 0; }
.product__meta-list li { margin-bottom: 0.45rem; color: var(--s925-ink); }

/* Add-to-cart region. */
.product__column-sticky form.cart { margin: 1.75rem 0; }
.product__column-sticky .quantity input {
  width: 4.5rem;
  padding: 0.75rem 0.5rem;
  text-align: center;
  border: 1px solid var(--s925-line);
  border-radius: var(--s925-btn-radius);
  background: #fff;
  color: var(--s925-ink);
}
.product__column-sticky button.single_add_to_cart_button {
  width: 100%;
  margin-top: 0.85rem;
  padding: 1.05rem 2rem;
}
.product__column-sticky .variations { width: 100%; margin-bottom: 1rem; }
.product__column-sticky .variations td { padding: 0.35rem 0; }
.product__column-sticky .variations select {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid var(--s925-line);
  border-radius: var(--s925-btn-radius);
  background: #fff;
  color: var(--s925-ink);
}

.product-recommendations-wrapper { padding: 3.5rem 1.5rem 1rem; border-top: 1px solid var(--s925-line); margin-top: 2rem; }
.product-recommendations__heading {
  font-size: clamp(1.4rem, 2.6vw, 1.9rem);
  font-weight: 400;
  margin: 0 0 2rem;
}

@media screen and (max-width: 989px) {
  .product.grid.grid--two-column { grid-template-columns: 1fr; gap: 1.75rem; }
}

/* Single product — layout corrections (Storefront floats these onto our grid). */
.woocommerce div.product .product__media-wrapper,
.woocommerce div.product .product__info-wrapper {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  clear: none !important;
}
.product.grid.grid--two-column > .product__media-wrapper { grid-column: 1; grid-row: 1; }
.product.grid.grid--two-column > .product__info-wrapper { grid-column: 2; grid-row: 1; }

@media screen and (min-width: 990px) {
  .product__column-sticky { position: sticky; top: 1.5rem; }
}

/* Gallery: first image leads, the rest a quiet grid beneath it. */
.product__media-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}
.product__media-item:first-child { grid-column: 1 / -1; }
.product__media-item {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 6px;
  background: var(--s925-panel);
}
.product__media-item img { width: 100%; height: 100%; object-fit: cover; display: block; }

@media screen and (max-width: 989px) {
  .product__media-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product__column-sticky { position: static; }
}

/* ============================================================
   CART & CHECKOUT
   ============================================================ */

.woocommerce-cart .site-main,
.woocommerce-checkout .site-main {
  max-width: var(--s925-page-width);
  margin: 0 auto;
  padding: 2.5rem 1.5rem 4rem;
}

.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 400;
  margin: 0 0 2rem;
}

/* --- Cart table --- */
.woocommerce table.shop_table {
  border: 0;
  border-collapse: collapse;
  width: 100%;
}
.woocommerce table.shop_table th {
  font-family: var(--s925-font);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--s925-muted);
  border-bottom: 1px solid var(--s925-line);
  padding: 0 0 0.9rem;
  text-align: left;
}
.woocommerce table.shop_table td {
  border: 0;
  border-bottom: 1px solid var(--s925-line);
  padding: 1.35rem 0;
  vertical-align: middle;
}
.woocommerce table.shop_table img {
  width: 84px;
  height: 84px;
  object-fit: cover;
  border-radius: 6px;
  background: var(--s925-panel);
}
.woocommerce td.product-name a {
  color: var(--s925-ink);
  text-decoration: none;
  font-size: 0.98rem;
}
.woocommerce td.product-name a:hover { color: var(--s925-champ-dark); }

.woocommerce a.remove {
  color: var(--s925-muted) !important;
  font-size: 1.15rem;
  line-height: 1;
}
.woocommerce a.remove:hover {
  background: transparent !important;
  color: var(--s925-ink) !important;
}

.woocommerce .quantity .qty {
  width: 4.5rem;
  padding: 0.65rem 0.4rem;
  text-align: center;
  border: 1px solid var(--s925-line);
  border-radius: var(--s925-btn-radius);
  background: #fff;
  color: var(--s925-ink);
}

/* Secondary actions read as outlines, not solid blocks. */
.woocommerce button[name="update_cart"],
.woocommerce .coupon .button {
  background: transparent;
  color: var(--s925-ink);
  border: 1px solid var(--s925-line);
}
.woocommerce button[name="update_cart"]:hover,
.woocommerce .coupon .button:hover {
  background: var(--s925-ink);
  color: var(--s925-ground);
  border-color: var(--s925-ink);
}

.woocommerce .coupon input[type="text"] {
  padding: 0.9rem;
  border: 1px solid var(--s925-line);
  border-radius: var(--s925-btn-radius);
  background: #fff;
  color: var(--s925-ink);
  min-width: 210px;
}

/* --- Totals --- */
.cart_totals,
.woocommerce-checkout-review-order {
  background: var(--s925-panel);
  border: 1px solid var(--s925-line);
  border-radius: 8px;
  padding: 1.85rem;
}
.cart_totals h2,
.woocommerce-checkout-review-order h3,
#order_review_heading {
  font-family: var(--s925-font);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--s925-muted);
  margin: 0 0 1.15rem;
}
.cart_totals table.shop_table td,
.cart_totals table.shop_table th,
.woocommerce-checkout-review-order table td,
.woocommerce-checkout-review-order table th {
  border-bottom: 1px solid var(--s925-line);
  padding: 0.8rem 0;
  font-size: 0.92rem;
  color: var(--s925-ink);
}
.cart_totals .order-total td,
.woocommerce-checkout-review-order .order-total td,
.cart_totals .order-total th,
.woocommerce-checkout-review-order .order-total th {
  border-bottom: 0;
  font-size: 1.05rem;
  font-weight: 500;
  padding-top: 1.1rem;
}
.woocommerce .checkout-button,
#place_order {
  display: block;
  width: 100%;
  text-align: center;
  margin-top: 1.35rem;
}

/* --- Checkout form --- */
.woocommerce-checkout .col2-set { display: grid; grid-template-columns: 1fr; gap: 0; }
.woocommerce form .form-row { padding: 0 0 1.1rem; margin: 0; }
.woocommerce form .form-row label {
  display: block;
  font-family: var(--s925-font);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--s925-muted);
  margin-bottom: 0.45rem;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
  width: 100%;
  padding: 0.85rem 0.9rem;
  border: 1px solid var(--s925-line);
  border-radius: var(--s925-btn-radius);
  background: #fff;
  color: var(--s925-ink);
  font-family: var(--s925-font);
  font-size: 0.95rem;
  height: auto;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
  outline: none;
  border-color: var(--s925-champ);
}
.woocommerce form.checkout h3 {
  font-size: 1.15rem;
  font-weight: 400;
  margin: 0 0 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--s925-line);
}

.woocommerce-checkout #payment {
  background: transparent;
  border-radius: 0;
}
.woocommerce-checkout #payment ul.payment_methods {
  border-bottom: 1px solid var(--s925-line);
  padding: 0 0 1rem;
}
.woocommerce-checkout #payment div.payment_box {
  background: #fff;
  border: 1px solid var(--s925-line);
  border-radius: 6px;
  color: var(--s925-ink);
  font-size: 0.9rem;
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }

/* --- Notices --- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-top: 0;
  border-left: 3px solid var(--s925-champ);
  background: var(--s925-panel);
  color: var(--s925-ink);
  border-radius: 0 6px 6px 0;
  padding: 1.1rem 1.4rem;
  font-size: 0.92rem;
}
.woocommerce-error { border-left-color: #b0483a; }
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }

/* --- Empty cart --- */
.cart-empty {
  font-size: 1.1rem;
  text-align: center;
  padding: 3rem 0 1rem;
  border: 0;
  background: transparent;
  color: var(--s925-ink);
}
.return-to-shop { text-align: center; padding-bottom: 2rem; }

@media screen and (min-width: 992px) {
  .woocommerce-cart .woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
    gap: 3rem;
    align-items: start;
  }
  .woocommerce-cart .woocommerce form.woocommerce-cart-form { grid-column: 1; }
  .woocommerce-cart .cart-collaterals { grid-column: 2; width: auto; float: none; }
  .woocommerce-cart .cart-collaterals .cart_totals { width: auto; float: none; }

  .woocommerce-checkout form.checkout {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 3rem;
    align-items: start;
  }
  .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; }
}

/* ============================================================
   CATEGORY / COLLECTION ARCHIVES
   ============================================================ */

.tax-product_cat .site-main,
.post-type-archive-product .site-main {
  max-width: var(--s925-page-width);
  margin: 0 auto;
  padding: 0 1.5rem 3rem;
}

.woocommerce-products-header {
  text-align: center;
  padding: 3.5rem 0 2.5rem;
  max-width: 680px;
  margin: 0 auto;
}
.woocommerce-products-header__title {
  font-size: clamp(1.9rem, 3.4vw, 2.6rem);
  font-weight: 400;
  letter-spacing: 0.005em;
  margin: 0 0 0.9rem;
}
.woocommerce-products-header .term-description,
.tax-product_cat .term-description {
  font-size: 1rem;
  line-height: 1.75;
  color: var(--s925-muted);
  margin: 0;
}
.tax-product_cat .term-description p:last-child { margin-bottom: 0; }

/* Sorting row: quiet, hairline separated. */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
  font-size: 0.85rem;
  color: var(--s925-muted);
  margin: 0 0 1.5rem;
}
.woocommerce .woocommerce-ordering select {
  border: 1px solid var(--s925-line);
  border-radius: var(--s925-btn-radius);
  background: #fff;
  padding: 0.5rem 0.7rem;
  font-size: 0.85rem;
  color: var(--s925-ink);
}
.storefront-sorting {
  border-bottom: 1px solid var(--s925-line);
  padding-bottom: 0.9rem;
  margin-bottom: 2rem;
}

/* Subcategory tiles. */
.woocommerce ul.products li.product-category { text-align: center; }
.woocommerce ul.products li.product-category h2 {
  font-size: 1rem;
  font-weight: 400;
  margin: 0.75rem 0 0;
}
.woocommerce ul.products li.product-category mark {
  background: none;
  color: var(--s925-muted);
}

/* Pagination */
.woocommerce nav.woocommerce-pagination { margin: 3rem 0 1rem; }
.woocommerce nav.woocommerce-pagination ul {
  border: 0;
  display: flex;
  justify-content: center;
  gap: 0.35rem;
}
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  min-width: 2.4rem;
  padding: 0.55rem 0.4rem;
  border: 1px solid transparent;
  border-radius: var(--s925-btn-radius);
  font-size: 0.9rem;
  color: var(--s925-ink);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--s925-ink);
  color: var(--s925-ground);
}
.woocommerce nav.woocommerce-pagination ul li a:hover {
  background: var(--s925-panel);
  color: var(--s925-ink);
}

.woocommerce-no-products-found { text-align: center; padding: 3rem 0; }

/* ============================================================
   FULL-WIDTH WC PAGES — reclaim Storefront's reserved sidebar
   ============================================================ */

.woocommerce.right-sidebar .content-area,
.woocommerce-page.right-sidebar .content-area {
  width: 100%;
  float: none;
  margin: 0;
}
.woocommerce #secondary,
.woocommerce-page #secondary { display: none; }

/* Neutralise Storefront's float-grid inside our CSS grid. */
.woocommerce ul.products.grid li.product,
.woocommerce-page ul.products.grid li.product {
  width: auto !important;
  margin: 0 !important;
  clear: none !important;
  float: none !important;
}
.woocommerce ul.products.grid li.product.first,
.woocommerce ul.products.grid li.product.last {
  clear: none !important;
  margin: 0 !important;
}
.woocommerce ul.products.grid::before,
.woocommerce ul.products.grid::after { content: none !important; display: none !important; }

/* ============================================================
   HERO FULL-BLEED (home) + overflow guard
   ============================================================ */

.home .col-full,
.page-template-front-page .col-full { max-width: none !important; padding-left: 0 !important; padding-right: 0 !important; }
.slideshow--full-bleed { width: 100%; }
.slideshow--full-bleed .slideshow__image { width: 100%; height: auto; max-height: none; object-fit: contain; display: block; }

html, body { overflow-x: hidden; max-width: 100%; }
