/* ==========================================================================
   AuGaGa — commerce layer (WooCommerce)
   Product cards · catalog · product detail · cart · checkout · account
   ========================================================================== */

/* Notices ---------------------------------------------------------------- */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
  list-style: none;
  margin: 0 0 1.75rem;
  padding: 1.1rem 1.35rem;
  border: 1px solid var(--ag-line);
  background: var(--ag-bone-2);
  color: var(--ag-ink);
  font-size: 0.875rem;
  line-height: 1.55;
  border-radius: var(--ag-radius);
  display: flex;
  align-items: center;
  gap: 0.85rem 1.25rem;
  flex-wrap: wrap;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { content: none; display: none; }
.woocommerce-error { border-color: #a3341f; color: #7d2716; }
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
  order: 2;
  margin-left: auto;
  padding: 0.8em 1.3em;
  font-size: var(--ag-micro);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-radius: 999px;
  border: 1px solid var(--ag-ink);
  background: transparent;
  color: var(--ag-ink);
}
.woocommerce-message .button:hover,
.woocommerce-info .button:hover { background: var(--ag-ink); color: var(--ag-bone); }

/* Catalog toolbar -------------------------------------------------------- */
.ag-catalog { padding-block: clamp(1.5rem, 3vw, 2.5rem) var(--ag-section); }
.ag-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}
.ag-toolbar__count { font-size: var(--ag-micro); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ag-muted); }
.ag-toolbar__right { display: flex; align-items: center; gap: 0.6rem; }
.woocommerce-result-count { margin: 0; font-size: var(--ag-micro); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ag-muted); }
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select {
  font-size: var(--ag-micro);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.72em 2.2em 0.72em 1em;
  border-radius: 999px;
  border-color: var(--ag-line-strong);
  width: auto;
  min-width: 190px;
}

/* Curated collection chips */
.ag-curation { display: flex; gap: 0.5rem; overflow-x: auto; scrollbar-width: none; padding-bottom: 0.25rem; }
.ag-curation::-webkit-scrollbar { display: none; }

/* Product grid ----------------------------------------------------------- */
.ag-product-grid,
ul.products {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.5rem, 2.6vw, 2.6rem) clamp(1rem, 1.8vw, 1.75rem);
}
.woocommerce ul.products::before,
.woocommerce ul.products::after,
ul.products::before,
ul.products::after { content: none; display: none; }
ul.products li.product { margin: 0; width: auto; float: none; padding: 0; text-align: left; }
@media (max-width: 1024px) { ul.products, .ag-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { ul.products, .ag-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 0.6rem; } }

.ag-card { display: grid; gap: 0.85rem; position: relative; }
.ag-card__top { position: relative; display: block; }
.ag-card__media {
  position: relative;
  overflow: hidden;
  border-radius: var(--ag-radius);
  background: var(--ag-linen);
  display: block;
}
.ag-card__media img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  transition: opacity 600ms var(--ag-ease), transform 1.4s var(--ag-ease);
}
.ag-card__media img.ag-card__img--alt {
  position: absolute;
  inset: 0;
  opacity: 0;
}
.ag-card:hover .ag-card__media img.ag-card__img--main { opacity: 0; }
.ag-card:hover .ag-card__media img.ag-card__img--alt { opacity: 1; }
.ag-card__media > .ag-card__img--only:hover { transform: scale(1.03); }
.ag-card__badges {
  position: absolute;
  top: 0.7rem;
  left: 0.7rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  z-index: 2;
  align-items: flex-start;
}
.ag-card__wish {
  position: absolute;
  top: 0.6rem;
  right: 0.6rem;
  z-index: 2;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: rgba(247, 242, 234, 0.86);
  color: var(--ag-ink);
  cursor: pointer;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity var(--ag-t) var(--ag-ease), transform var(--ag-t) var(--ag-ease), background var(--ag-t-fast) var(--ag-ease);
}
.ag-card:hover .ag-card__wish { opacity: 1; transform: none; }
.ag-card__wish:hover { background: var(--ag-bone); }
.ag-card__wish svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 1.4; }
.ag-card__wish.is-saved svg { fill: var(--ag-clay); stroke: var(--ag-clay); }

.ag-card__quick {
  position: absolute;
  left: 0.6rem;
  right: 0.6rem;
  bottom: 0.6rem;
  z-index: 2;
  opacity: 0;
  visibility: hidden;
  transform: translateY(0.6rem);
  transition: opacity var(--ag-t) var(--ag-ease),
    transform var(--ag-t) var(--ag-ease-out),
    visibility var(--ag-t) linear;
}
.ag-card:hover .ag-card__quick,
.ag-card:focus-within .ag-card__quick { opacity: 1; visibility: visible; transform: none; }
.ag-card__quick .ag-btn { width: 100%; padding: 0.9em 1rem; font-size: 0.625rem; backdrop-filter: blur(6px); }
.ag-card__quick .ag-btn--light { background: rgba(247, 242, 234, 0.94); border-color: transparent; }
.ag-card__quick .ag-btn--light:hover { background: var(--ag-ink); color: var(--ag-bone); }

.ag-card__body { display: grid; gap: 0.3rem; }
.ag-card__col { font-size: var(--ag-micro); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ag-muted); }
.ag-card__title {
  font-family: var(--ag-serif);
  font-size: clamp(1rem, 1.25vw, 1.15rem);
  line-height: 1.22;
  letter-spacing: -0.01em;
  margin: 0;
  font-weight: 400;
}
.ag-card__title a { background-image: none; }
.ag-card__sub {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--ag-muted);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ag-card__foot { display: flex; align-items: baseline; justify-content: space-between; gap: 0.6rem; margin-top: 0.15rem; }
.ag-card__price { font-size: 0.9375rem; font-variant-numeric: tabular-nums; letter-spacing: 0.01em; }
.ag-card__price del { color: var(--ag-muted); font-size: 0.8125rem; margin-right: 0.4rem; }
.ag-card__price ins { text-decoration: none; }
.ag-card__rating { font-size: 0.6875rem; letter-spacing: 0.08em; color: var(--ag-muted); display: inline-flex; align-items: center; gap: 0.3em; }
.ag-card__rating svg { width: 10px; height: 10px; fill: var(--ag-clay); }
.ag-card__oos { font-size: var(--ag-micro); letter-spacing: 0.12em; text-transform: uppercase; color: var(--ag-muted); }

@media (hover: none) {
  .ag-card__quick { position: static; opacity: 1; visibility: visible; transform: none; margin-top: 0.55rem; }
  .ag-card__quick .ag-btn { background: transparent; border: 1px solid var(--ag-line-strong); color: var(--ag-ink); backdrop-filter: none; }
  .ag-card__wish { opacity: 1; transform: none; }
}

/* Pagination ------------------------------------------------------------- */
.woocommerce-pagination,
.ag-pagination { margin-top: clamp(2.5rem, 5vw, 4rem); }
.woocommerce-pagination ul,
.ag-pagination ul {
  display: flex;
  gap: 0.35rem;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
  border: 0;
}
.woocommerce-pagination ul li { border: 0; margin: 0; }
.woocommerce-pagination a,
.woocommerce-pagination span,
.ag-pagination a,
.ag-pagination span {
  display: grid;
  place-items: center;
  min-width: 40px;
  height: 40px;
  padding: 0 0.6rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
  color: var(--ag-muted);
  transition: all var(--ag-t-fast) var(--ag-ease);
}
.woocommerce-pagination a:hover,
.ag-pagination a:hover { border-color: var(--ag-line-strong); color: var(--ag-ink); }
.woocommerce-pagination span.current,
.ag-pagination span.current { background: var(--ag-ink); color: var(--ag-bone); }

/* ==========================================================================
   Product detail
   ========================================================================== */
.ag-pdp { padding-block: clamp(1rem, 2vw, 1.75rem) clamp(3rem, 6vw, 5rem); }
.ag-crumbs--product { margin-bottom: clamp(1.25rem, 2.5vw, 2rem); }

.ag-pdp__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 0.82fr);
  gap: clamp(1.75rem, 4vw, 4.5rem);
  align-items: start;
}
@media (max-width: 1000px) { .ag-pdp__grid { grid-template-columns: minmax(0, 1fr); } }

/* Gallery */
.ag-gallery { display: grid; gap: 0.6rem; }
.ag-gallery--thumbs-left { grid-template-columns: 84px minmax(0, 1fr); }
@media (max-width: 700px) { .ag-gallery--thumbs-left { grid-template-columns: minmax(0, 1fr); } }
.ag-gallery__thumbs { display: flex; flex-direction: column; gap: 0.6rem; order: -1; }
@media (max-width: 700px) {
  .ag-gallery__thumbs { flex-direction: row; overflow-x: auto; order: 0; scrollbar-width: none; }
  .ag-gallery__thumbs::-webkit-scrollbar { display: none; }
  .ag-gallery__thumbs button { flex: none; width: 68px; }
}
.ag-gallery__thumb {
  border: 1px solid transparent;
  padding: 0;
  background: var(--ag-linen);
  border-radius: 1px;
  overflow: hidden;
  cursor: pointer;
  transition: border-color var(--ag-t-fast) var(--ag-ease), opacity var(--ag-t-fast) var(--ag-ease);
  opacity: 0.72;
}
.ag-gallery__thumb img { aspect-ratio: 1 / 1; object-fit: cover; width: 100%; }
.ag-gallery__thumb:hover { opacity: 1; }
.ag-gallery__thumb.is-active { border-color: var(--ag-ink); opacity: 1; }
.ag-gallery__stage { position: relative; overflow: hidden; border-radius: var(--ag-radius); background: var(--ag-linen); }
.ag-gallery__stage img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: opacity 400ms var(--ag-ease); }
.ag-gallery__stage.is-swapping img { opacity: 0.35; }
.ag-gallery__zoom {
  position: absolute;
  right: 0.8rem;
  bottom: 0.8rem;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  border: 0;
  background: rgba(247, 242, 234, 0.9);
  color: var(--ag-ink);
  cursor: pointer;
  z-index: 2;
}
.ag-gallery__zoom svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 1.5; }
.ag-gallery__badge { position: absolute; top: 0.9rem; left: 0.9rem; z-index: 2; display: flex; gap: 0.35rem; }

/* Purchase column */
.ag-pdp__info { position: sticky; top: calc(var(--ag-header-h) + 1.25rem); display: grid; gap: 1.35rem; }
.ag-pdp__eyebrow { display: flex; align-items: center; gap: 0.9rem; font-size: var(--ag-micro); letter-spacing: 0.16em; text-transform: uppercase; color: var(--ag-muted); }
.ag-pdp__eyebrow a { color: var(--ag-clay); }
.ag-pdp__title { font-size: clamp(1.7rem, 2.6vw, 2.35rem); line-height: 1.06; letter-spacing: -0.022em; margin: 0; }
.ag-pdp__tagline { font-size: clamp(1rem, 1.2vw, 1.0625rem); color: var(--ag-muted); margin: 0; max-width: 46ch; line-height: 1.6; }
.ag-rating-row { display: flex; align-items: center; gap: 0.6rem; font-size: var(--ag-small); color: var(--ag-muted); }
.ag-stars { display: inline-flex; gap: 0.12rem; color: var(--ag-clay); }
.ag-stars svg { width: 12px; height: 12px; fill: currentColor; }
.ag-stars--muted { color: var(--ag-line-strong); }

.ag-pdp__price { display: flex; align-items: baseline; gap: 0.7rem; font-size: clamp(1.3rem, 1.8vw, 1.6rem); font-variant-numeric: tabular-nums; }
.ag-pdp__price del { font-size: 1rem; color: var(--ag-muted); }
.ag-pdp__price ins { text-decoration: none; color: var(--ag-ink); }
.ag-pdp__save { font-size: var(--ag-micro); letter-spacing: 0.12em; text-transform: uppercase; color: var(--ag-clay); }

.ag-highlights { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.7rem; }
.ag-highlights li { display: grid; grid-template-columns: 18px 1fr; gap: 0.7rem; font-size: 0.9375rem; line-height: 1.5; }
.ag-highlights svg { width: 16px; height: 16px; margin-top: 0.2rem; stroke: var(--ag-clay); fill: none; stroke-width: 1.6; }
.ag-highlights strong { font-weight: 500; }
.ag-highlights span { color: var(--ag-muted); }

/* Add-to-cart form */
.ag-pdp form.cart {
  display: grid;
  gap: 0.75rem;
  margin: 0;
}
.ag-buy-row { display: grid; grid-template-columns: auto 1fr; gap: 0.6rem; align-items: stretch; }
.ag-buy-row--single { grid-template-columns: 1fr; }
.ag-qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--ag-line-strong);
  border-radius: 999px;
  overflow: hidden;
  background: transparent;
}
.ag-qty button {
  width: 40px;
  height: 100%;
  min-height: 46px;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  color: var(--ag-muted);
  transition: color var(--ag-t-fast) var(--ag-ease), background var(--ag-t-fast) var(--ag-ease);
}
.ag-qty button:hover { color: var(--ag-ink); background: rgba(20, 17, 16, 0.04); }
.ag-qty input.qty {
  width: 38px;
  border: 0;
  padding: 0;
  text-align: center;
  font-size: 0.875rem;
  height: 46px;
  -moz-appearance: textfield;
  background: transparent;
}
.ag-qty input.qty::-webkit-outer-spin-button,
.ag-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ag-qty input.qty:focus { background: transparent; }
.single_add_to_cart_button {
  padding: 1.1em 1.75em;
  border-radius: 999px;
  border: 1px solid var(--ag-ink);
  background: var(--ag-ink);
  color: var(--ag-bone);
  font-size: var(--ag-micro);
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--ag-t) var(--ag-ease), border-color var(--ag-t) var(--ag-ease), color var(--ag-t) var(--ag-ease);
  width: 100%;
}
.single_add_to_cart_button:hover { background: var(--ag-clay); border-color: var(--ag-clay); color: var(--ag-bone); }
.ag-pdp__buy-meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1.1rem; font-size: 0.75rem; color: var(--ag-muted); letter-spacing: 0.04em; }
.ag-pdp__buy-meta span { display: inline-flex; align-items: center; gap: 0.4em; }
.ag-pdp__buy-meta svg { width: 13px; height: 13px; stroke: currentColor; fill: none; stroke-width: 1.5; }

.ag-pdp__trust {
  list-style: none;
  margin: 0;
  padding: 1.1rem 1.2rem;
  border: 1px solid var(--ag-line);
  border-radius: var(--ag-radius);
  display: grid;
  gap: 0.65rem;
  background: rgba(255, 255, 255, 0.35);
}
.ag-pdp__trust li { display: grid; grid-template-columns: 16px 1fr; gap: 0.65rem; font-size: 0.8125rem; color: var(--ag-muted); line-height: 1.45; }
.ag-pdp__trust svg { width: 14px; height: 14px; stroke: var(--ag-clay); fill: none; stroke-width: 1.6; margin-top: 0.15rem; }
.ag-pdp__trust strong { color: var(--ag-ink); font-weight: 500; }

.ag-pdp__accordion { margin-top: 0.25rem; }

/* Story sections under the buy box */
.ag-story { padding-block: clamp(2.5rem, 6vw, 5.5rem); }
.ag-story--ink { background: var(--ag-ink); color: var(--ag-invert); }
.ag-story--linen { background: var(--ag-linen); }
.ag-story__grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(1.5rem, 5vw, 5rem); align-items: center; }
.ag-story__grid--reverse .ag-story__media { order: 2; }
.ag-story__media img { border-radius: var(--ag-radius); aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
@media (max-width: 900px) {
  .ag-story__grid { grid-template-columns: minmax(0, 1fr); }
  .ag-story__grid--reverse .ag-story__media { order: 0; }
  .ag-story__media img { aspect-ratio: 16 / 11; }
}

/* Specs / materials table */
.ag-spec-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.ag-spec-table tr { border-bottom: 1px solid var(--ag-line); }
.ag-spec-table tr:first-child { border-top: 1px solid var(--ag-line); }
.ag-spec-table th {
  text-align: left;
  font-weight: 500;
  font-size: var(--ag-micro);
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--ag-muted);
  padding: 0.95rem 1rem 0.95rem 0;
  width: 38%;
  vertical-align: top;
}
.ag-spec-table td { padding: 0.95rem 0; vertical-align: top; }
.ag-score-note { font-size: var(--ag-small); color: var(--ag-muted); margin-top: 1.25rem; max-width: 60ch; }
.ag-story--ink .ag-spec-table tr { border-color: var(--ag-line-invert); }
.ag-story--ink .ag-spec-table th { color: var(--ag-invert-muted); }

/* Care & ritual steps */
.ag-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2.5rem); counter-reset: ag-step; }
.ag-step { display: grid; gap: 0.6rem; align-content: start; padding-top: 1.25rem; border-top: 1px solid var(--ag-line); }
.ag-step::before { counter-increment: ag-step; content: "0" counter(ag-step); font-size: var(--ag-micro); letter-spacing: 0.16em; color: var(--ag-clay); }
.ag-step h3 { font-size: 1.1rem; margin: 0; }
.ag-step p { font-size: 0.875rem; color: var(--ag-muted); margin: 0; }
@media (max-width: 760px) { .ag-steps { grid-template-columns: minmax(0, 1fr); } }

/* Reviews ---------------------------------------------------------------- */
.ag-reviews { display: grid; grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); gap: clamp(2rem, 5vw, 4rem); align-items: start; }
@media (max-width: 900px) { .ag-reviews { grid-template-columns: minmax(0, 1fr); } }
.ag-reviews__score { display: grid; gap: 0.5rem; position: sticky; top: calc(var(--ag-header-h) + 1.5rem); }
.ag-reviews__num { font-family: var(--ag-serif); font-size: 3.4rem; line-height: 1; letter-spacing: -0.03em; }
#reviews .commentlist,
ol.commentlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; }
#reviews .comment_container { display: grid; grid-template-columns: 40px 1fr; gap: 1rem; }
#reviews .comment_container img.avatar { width: 40px; height: 40px; border-radius: 999px; }
#reviews .comment-text { border: 0; padding: 0; margin: 0; }
#reviews .comment-text .star-rating { display: none; }
#reviews .comment-text p.meta { font-size: var(--ag-micro); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ag-muted); margin-bottom: 0.4rem; }
#reviews .comment-text p.meta strong { color: var(--ag-ink); font-weight: 500; }
#reviews .comment-text .description p { font-size: 0.9375rem; margin: 0; }
.ag-review-verified { font-size: 0.625rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ag-clay); margin-left: 0.5rem; }

/* Review form */
#review_form_wrapper { margin-top: 2rem; }
#respond form,
.comment-form { display: grid; gap: 1rem; }
.comment-form-rating .stars { display: flex; gap: 0.2rem; }
.comment-form-rating p.stars a { font-size: 0.75rem; }
.comment-form label { font-size: var(--ag-micro); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ag-muted); display: block; margin-bottom: 0.4rem; }
.comment-form input[type="submit"],
#respond input[type="submit"],
.woocommerce-Reviews .form-submit input {
  justify-self: start;
  padding: 1em 1.8em;
  border-radius: 999px;
  border: 1px solid var(--ag-ink);
  background: var(--ag-ink);
  color: var(--ag-bone);
  font-size: var(--ag-micro);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
}

/* Related products */
.ag-related { padding-block: clamp(2.5rem, 5vw, 4.5rem); border-top: 1px solid var(--ag-line); }
.ag-related__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: clamp(1.5rem, 3vw, 2.25rem); }
.ag-related__title { font-family: var(--ag-serif); font-weight: 400; font-size: clamp(1.7rem, 3.2vw, 2.5rem); line-height: 1.05; letter-spacing: -0.02em; margin: 0.45rem 0 0; }
@media (max-width: 640px) {
  .ag-related__head { flex-direction: column; align-items: flex-start; gap: 0.9rem; }
}
.related.products > h2,
.upsells.products > h2,
.cross-sells > h2 { font-size: var(--ag-h3); margin-bottom: 1.75rem; }

/* Sticky mobile buy bar */
.ag-stickybuy {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 45;
  background: rgba(247, 242, 234, 0.97);
  backdrop-filter: blur(10px);
  border-top: 1px solid var(--ag-line);
  padding: 0.7rem var(--ag-gutter) calc(0.7rem + env(safe-area-inset-bottom));
  display: none;
  align-items: center;
  gap: 0.9rem;
  transform: translateY(100%);
  transition: transform var(--ag-t) var(--ag-ease-out);
}
.ag-stickybuy.is-visible { transform: none; }
.ag-stickybuy__info { display: grid; gap: 0.1rem; min-width: 0; }
.ag-stickybuy__title { font-size: 0.8125rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-stickybuy__price { font-size: 0.75rem; color: var(--ag-muted); }
.ag-stickybuy .ag-btn { flex: none; }
@media (max-width: 900px) { .ag-stickybuy { display: flex; } }

/* Mini cart -------------------------------------------------------------- */
.ag-minicart {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(420px, 100%);
  background: var(--ag-bone);
  z-index: 92;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform var(--ag-t) var(--ag-ease-out);
  box-shadow: -1px 0 60px -30px rgba(20, 17, 16, 0.5);
}
.ag-minicart.is-open { transform: none; }
.ag-minicart__head { display: flex; align-items: center; justify-content: space-between; padding: 1.15rem var(--ag-gutter); border-bottom: 1px solid var(--ag-line); }
.ag-minicart__head h2 { font-size: 1rem; font-family: var(--ag-sans); letter-spacing: 0.14em; text-transform: uppercase; margin: 0; font-weight: 500; }
.ag-minicart__body { flex: 1; overflow-y: auto; padding: 1rem var(--ag-gutter); }
.ag-minicart__foot { padding: 1.15rem var(--ag-gutter) calc(1.15rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--ag-line); display: grid; gap: 0.75rem; }
.ag-minicart .widget_shopping_cart_content { display: flex; flex-direction: column; height: 100%; }
.ag-minicart ul.cart_list,
.ag-minicart ul.product_list_widget { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.1rem; }
.ag-minicart ul.cart_list li { display: grid; grid-template-columns: 74px 1fr; gap: 0.9rem; padding: 0; margin: 0; border: 0; position: relative; }
.ag-minicart ul.cart_list li img { width: 74px; height: 92px; object-fit: cover; border-radius: 1px; float: none; margin: 0; }
.ag-minicart ul.cart_list li a { font-family: var(--ag-serif); font-size: 0.9375rem; line-height: 1.25; }
.ag-minicart ul.cart_list li a.remove {
  position: absolute;
  right: 0;
  top: 0;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  background: transparent !important;
  color: var(--ag-muted) !important;
  font-size: 0.9rem;
  line-height: 20px;
  text-align: center;
}
.ag-minicart .quantity { font-size: 0.8125rem; color: var(--ag-muted); }
.ag-minicart__subtotal { display: flex; align-items: baseline; justify-content: space-between; font-size: 0.875rem; }
.ag-minicart__subtotal strong { font-family: var(--ag-serif); font-size: 1.15rem; font-weight: 400; }
.ag-minicart__note { font-size: 0.6875rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ag-muted); text-align: center; }

/* Cart page -------------------------------------------------------------- */
.woocommerce-cart .ag-cart-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.75fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
@media (max-width: 900px) { .woocommerce-cart .ag-cart-layout { grid-template-columns: minmax(0, 1fr); } }

table.shop_table {
  width: 100%;
  border: 0;
  border-collapse: collapse;
  font-size: 0.9375rem;
  background: transparent;
}
table.shop_table thead { display: none; }
table.shop_table th,
table.shop_table td {
  border: 0;
  border-bottom: 1px solid var(--ag-line);
  padding: 1.15rem 0;
  text-align: left;
  vertical-align: middle;
  background: transparent;
}
.woocommerce-cart table.cart .product-thumbnail img { width: 84px; height: 104px; object-fit: cover; border-radius: 1px; }
.woocommerce-cart table.cart td.product-name a { font-family: var(--ag-serif); font-size: 1.05rem; line-height: 1.25; }
.woocommerce-cart table.cart td.product-name dl.variation { font-size: 0.8125rem; color: var(--ag-muted); margin: 0.4rem 0 0; }
.woocommerce-cart table.cart .product-price,
.woocommerce-cart table.cart .product-subtotal { font-variant-numeric: tabular-nums; }
.woocommerce-cart table.cart .product-remove a.remove {
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  border: 1px solid var(--ag-line);
  color: var(--ag-muted);
  font-size: 0.9rem;
  text-decoration: none;
}
.woocommerce-cart table.cart .product-remove a.remove:hover { background: var(--ag-ink); color: var(--ag-bone); border-color: var(--ag-ink); }
.woocommerce-cart table.cart td.actions { padding-block: 1.5rem; }
.woocommerce-cart table.cart td.actions .coupon { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.woocommerce-cart table.cart td.actions .coupon input#coupon_code { width: 180px; }
.woocommerce-cart .button,
.woocommerce-cart button.button {
  padding: 1em 1.6em;
  border-radius: 999px;
  border: 1px solid var(--ag-line-strong);
  background: transparent;
  color: var(--ag-ink);
  font-size: var(--ag-micro);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all var(--ag-t-fast) var(--ag-ease);
}
.woocommerce-cart .button:hover,
.woocommerce-cart button.button:hover { background: var(--ag-ink); color: var(--ag-bone); border-color: var(--ag-ink); }

/* Cart on small screens: the native table is six columns wide, so stack each
   line into a card instead of letting it scroll sideways. */
@media (max-width: 760px) {
  .woocommerce-cart table.cart,
  .woocommerce-cart table.cart tbody,
  .woocommerce-cart table.cart tfoot,
  .woocommerce-cart table.cart tr,
  .woocommerce-cart table.cart td { display: block; width: 100%; }
  .woocommerce-cart table.cart tr.cart_item {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr) auto;
    grid-template-areas:
      "thumb name remove"
      "thumb qty total";
    gap: 0.5rem 1rem;
    align-items: start;
    padding: 1.15rem 0;
    border-bottom: 1px solid var(--ag-line);
    position: relative;
  }
  .woocommerce-cart table.cart td { border: 0; padding: 0; }
  .woocommerce-cart table.cart td.product-thumbnail { grid-area: thumb; }
  .woocommerce-cart table.cart td.product-thumbnail img { width: 76px; height: 95px; }
  .woocommerce-cart table.cart td.product-name { grid-area: name; padding-right: 2rem; }
  .woocommerce-cart table.cart td.product-name a { font-size: 1rem; }
  .woocommerce-cart table.cart td.product-remove { grid-area: remove; justify-self: end; }
  .woocommerce-cart table.cart td.product-price { display: none; }
  .woocommerce-cart table.cart td.product-quantity { grid-area: qty; justify-self: start; margin-top: 0.35rem; }
  .woocommerce-cart table.cart td.product-subtotal { grid-area: total; justify-self: end; align-self: center; font-variant-numeric: tabular-nums; }
  .woocommerce-cart table.cart .ag-qty,
  .woocommerce-cart table.cart .quantity { margin: 0; }
  .woocommerce-cart table.cart td.actions { padding-top: 1.25rem; }
  .woocommerce-cart table.cart td.actions .coupon { display: grid; gap: 0.6rem; }
  .woocommerce-cart table.cart td.actions .coupon input#coupon_code { width: 100%; }
  .woocommerce-cart table.cart td.actions .button { width: 100%; text-align: center; }
  .woocommerce-cart table.cart td.actions > .button[name="update_cart"] {
    margin-top: 0.5rem;
    border-color: var(--ag-line);
    color: var(--ag-muted);
  }
  .woocommerce-cart table.cart td.actions > .button[name="update_cart"]:disabled { opacity: 0.55; cursor: default; }
  .cart_totals { position: static; }
}

/* Cart totals / order summary */
.cart_totals,
.woocommerce-checkout-review-order {
  border: 1px solid var(--ag-line);
  border-radius: var(--ag-radius-lg);
  padding: clamp(1.25rem, 2.5vw, 1.9rem);
  background: var(--ag-bone-2);
  position: sticky;
  top: calc(var(--ag-header-h) + 1.25rem);
}
.cart_totals > h2,
#order_review_heading {
  font-family: var(--ag-sans);
  font-size: var(--ag-micro);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ag-muted);
  margin: 0 0 1.25rem;
}
.cart_totals table.shop_table,
.woocommerce-checkout-review-order table.shop_table { font-size: 0.9375rem; }
.cart_totals table.shop_table th,
.cart_totals table.shop_table td { padding: 0.65rem 0; border: 0; }
.cart_totals tr.order-total th,
.cart_totals tr.order-total td { border-top: 1px solid var(--ag-line); padding-top: 1rem; }
.cart_totals .amount,
.woocommerce-checkout-review-order .amount { font-variant-numeric: tabular-nums; }
.cart_totals tr.order-total .amount,
.woocommerce-checkout-review-order tr.order-total .amount { font-family: var(--ag-serif); font-size: 1.3rem; }
.wc-proceed-to-checkout { margin-top: 1.25rem; }
.wc-proceed-to-checkout a.checkout-button {
  display: flex;
  justify-content: center;
  background: var(--ag-ink);
  color: var(--ag-bone);
  border: 1px solid var(--ag-ink);
  border-radius: 999px;
  padding: 1.1em 1.5em;
  font-size: var(--ag-micro);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.wc-proceed-to-checkout a.checkout-button:hover { background: var(--ag-clay); border-color: var(--ag-clay); }
.ag-cart-aside { display: grid; gap: 1.25rem; }

/* Empty cart */
.cart-empty { text-align: center; font-family: var(--ag-serif); font-size: clamp(1.4rem, 2.4vw, 2rem); letter-spacing: -0.02em; padding-top: 1rem; }
.return-to-shop { text-align: center; }
.return-to-shop a { display: inline-flex; padding: 1em 1.8em; border: 1px solid var(--ag-ink); border-radius: 999px; font-size: var(--ag-micro); letter-spacing: 0.16em; text-transform: uppercase; }

/* ==========================================================================
   Checkout
   ========================================================================== */
.woocommerce-checkout .ag-checkout-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
@media (max-width: 900px) { .woocommerce-checkout .ag-checkout-layout { grid-template-columns: minmax(0, 1fr); } }
.woocommerce-checkout #order_review { grid-column: 2; grid-row: 1; }
.woocommerce-billing-fields h3,
.woocommerce-additional-fields h3,
.woocommerce-shipping-fields h3,
#ship-to-different-address {
  font-family: var(--ag-sans);
  font-size: var(--ag-micro);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ag-muted);
  font-weight: 500;
  margin-bottom: 1.1rem;
}
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper,
.woocommerce-account-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 1rem;
}
.form-row-wide,
.form-row.notes,
.woocommerce-additional-fields .form-row { grid-column: 1 / -1; }
.form-row { margin: 0 0 1.1rem; padding: 0; }
.form-row label { font-size: var(--ag-micro); letter-spacing: 0.13em; text-transform: uppercase; color: var(--ag-muted); margin-bottom: 0.45rem; display: block; }
.form-row .required { color: var(--ag-clay); text-decoration: none; }
.select2-container--default .select2-selection--single {
  height: auto;
  padding: 0.92em 1.05em;
  border: 1px solid var(--ag-line-strong);
  border-radius: var(--ag-radius);
  background: transparent;
}
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); }
.select2-dropdown { border-color: var(--ag-line-strong); font-family: var(--ag-sans); font-size: 0.9375rem; }
@media (max-width: 640px) {
  .woocommerce-billing-fields__field-wrapper,
  .woocommerce-shipping-fields__field-wrapper,
  .woocommerce-additional-fields__field-wrapper { grid-template-columns: minmax(0, 1fr); }
}
#payment { border: 0; background: transparent; }
#payment ul.payment_methods { list-style: none; margin: 0 0 1.25rem; padding: 0; border: 0; display: grid; gap: 0.6rem; }
#payment ul.payment_methods li {
  border: 1px solid var(--ag-line);
  border-radius: var(--ag-radius);
  padding: 1rem 1.1rem;
  background: var(--ag-bone);
}
#payment ul.payment_methods li.woocommerce-info { border-left: 2px solid var(--ag-clay); }
#payment div.payment_box {
  background: transparent;
  border: 0;
  padding: 0.75rem 0 0;
  margin: 0;
  font-size: 0.875rem;
  color: var(--ag-muted);
}
#payment div.payment_box::before { display: none; }
#place_order {
  width: 100%;
  padding: 1.15em 1.5em;
  border-radius: 999px;
  border: 1px solid var(--ag-ink);
  background: var(--ag-ink);
  color: var(--ag-bone);
  font-size: var(--ag-micro);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
}
#place_order:hover { background: var(--ag-clay); border-color: var(--ag-clay); }
.woocommerce-checkout-review-order-table td,
.woocommerce-checkout-review-order-table th { padding: 0.7rem 0; border-bottom: 1px solid var(--ag-line); }
.woocommerce-checkout-review-order-table .product-name { font-family: var(--ag-serif); font-size: 0.9375rem; }
.woocommerce-checkout-payment { margin-top: 1.5rem; }
.wc-terms-and-conditions { font-size: 0.8125rem; }

/* Order received / thankyou */
.woocommerce-order .woocommerce-thankyou-order-received {
  font-family: var(--ag-serif);
  font-size: clamp(1.5rem, 2.6vw, 2.2rem);
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin-bottom: 1.5rem;
}
ul.woocommerce-order-overview,
ul.woocommerce-thankyou-order-details {
  list-style: none;
  margin: 0 0 2rem;
  padding: 1.25rem;
  border: 1px solid var(--ag-line);
  border-radius: var(--ag-radius);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1rem;
  font-size: var(--ag-micro);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ag-muted);
}
ul.woocommerce-order-overview strong { display: block; margin-top: 0.35rem; font-family: var(--ag-serif); font-size: 1.05rem; letter-spacing: 0; text-transform: none; color: var(--ag-ink); font-weight: 400; }

/* ==========================================================================
   My account, order tracking, forms
   ========================================================================== */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
@media (max-width: 900px) { .woocommerce-account .woocommerce { grid-template-columns: minmax(0, 1fr); } }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.15rem; border-top: 1px solid var(--ag-line); }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--ag-line); }
.woocommerce-MyAccount-navigation a { display: block; padding: 0.85rem 0; font-size: 0.875rem; color: var(--ag-muted); }
.woocommerce-MyAccount-navigation a:hover { color: var(--ag-ink); }
.woocommerce-MyAccount-navigation li.is-selected a { color: var(--ag-ink); font-weight: 500; }
.woocommerce-MyAccount-content { font-size: 0.9375rem; }
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register,
form.woocommerce-form-login,
form.woocommerce-form-register,
form.track_order {
  border: 1px solid var(--ag-line);
  border-radius: var(--ag-radius-lg);
  padding: clamp(1.35rem, 3vw, 2.25rem);
  background: var(--ag-bone-2);
  max-width: 560px;
}
form.track_order p { margin-bottom: 1rem; }
form.track_order p:last-of-type { margin-bottom: 0; }
form.track_order button.button,
.woocommerce-form-login button,
.woocommerce-form-register button {
  padding: 1em 1.8em;
  border-radius: 999px;
  border: 1px solid var(--ag-ink);
  background: var(--ag-ink);
  color: var(--ag-bone);
  font-size: var(--ag-micro);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
}
.woocommerce-account .woocommerce-form-login__rememberme { font-size: var(--ag-small); }
.lost_password { font-size: var(--ag-small); margin-top: 0.75rem; }

/* Order tables in account */
.woocommerce-orders-table,
.woocommerce-table--order-details { font-size: 0.875rem; }
.woocommerce-orders-table th {
  font-size: var(--ag-micro);
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--ag-muted);
  font-weight: 500;
  background: transparent;
  border-bottom: 1px solid var(--ag-line);
}
.woocommerce-orders-table td { border-bottom: 1px solid var(--ag-line); padding: 0.9rem 0.6rem; }
.woocommerce-orders-table .button { padding: 0.6em 1.1em; border-radius: 999px; border: 1px solid var(--ag-line-strong); background: transparent; color: var(--ag-ink); font-size: var(--ag-micro); letter-spacing: 0.12em; text-transform: uppercase; }
mark.order-status { background: transparent; color: var(--ag-clay); font-weight: 500; }

/* Wishlist tolerance (works with YITH / TI Wishlist when present) */
.wishlist_table .product-name a { font-family: var(--ag-serif); }

/* Woo form feedback */
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select { border-color: #a3341f; }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: var(--ag-moss); }
.woocommerce-error li { margin: 0; }
.blockUI.blockOverlay { background: var(--ag-bone) !important; opacity: 0.55 !important; }
.woocommerce a.added_to_cart {
  display: inline-block;
  margin-top: 0.5rem;
  font-size: var(--ag-micro);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ag-clay);
}

/* Shop sidebar drawer */
.ag-filterbar { display: none; }
@media (max-width: 900px) {
  .ag-filterbar {
    display: flex;
    position: sticky;
    top: var(--ag-header-h);
    z-index: 28;
    background: var(--ag-bone);
    border-bottom: 1px solid var(--ag-line);
    padding-block: 0.6rem;
    gap: 0.6rem;
    align-items: center;
  }
}

/* Product tabs (native Woo fallback) */
.woocommerce-tabs ul.tabs { list-style: none; margin: 0 0 1.5rem; padding: 0; display: flex; gap: 1.5rem; border-bottom: 1px solid var(--ag-line); }
.woocommerce-tabs ul.tabs li a { display: block; padding-bottom: 0.75rem; font-size: var(--ag-micro); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ag-muted); }
.woocommerce-tabs ul.tabs li.active a { color: var(--ag-ink); border-bottom: 1px solid var(--ag-clay); }

/* Product detail grid (the theme wraps gallery + summary via content-single-product) */
.single-product .ag-pdp {
  padding-inline: var(--ag-gutter);
  max-width: var(--ag-max);
  margin-inline: auto;
}
.single-product .ag-pdp__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: clamp(1.75rem, 4vw, 4rem);
  align-items: start;
}
@media (max-width: 1000px) {
  .single-product .ag-pdp__grid { grid-template-columns: minmax(0, 1fr); }
}
/* The purchase column is taller than the viewport (specs are open by default),
   so the gallery is the sticky half instead. Both are constrained by the grid. */
@media (min-width: 1001px) {
  .single-product .ag-gallery {
    position: sticky;
    top: calc(var(--ag-header-h) + 1.5rem);
    align-self: start;
  }
}
.single-product .ag-pdp > .ag-story { padding-inline: 0; }
.single-product .ag-pdp > .ag-story > .ag-container { padding-inline: 0; }
.single-product .ag-pdp > .ag-related > .ag-container { padding-inline: 0; }
.single-product .ag-pdp__info { align-self: start; position: static; }

/* WooCommerce markup guards */
.single-product div.product .woocommerce-product-gallery { width: 100%; float: none; margin: 0; }
.single-product .woocommerce-product-gallery__wrapper { margin: 0; }
.single-product .product_title { display: none; } /* the theme prints its own H1 */
.single-product p.price { margin: 0; font-size: clamp(1.35rem, 1.9vw, 1.6rem); color: var(--ag-ink); }
.single-product p.price del { color: var(--ag-muted); font-size: 1rem; font-weight: 400; }
.single-product p.price ins { text-decoration: none; }
.single-product form.cart .quantity { margin: 0; }
.single-product form.cart .ag-qty { display: inline-flex; }
.single-product .stock.in-stock { font-size: var(--ag-micro); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ag-moss); }
.single-product .stock.out-of-stock { font-size: var(--ag-micro); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ag-clay); }
.single-product .product_meta { display: none; }
.woocommerce-variation-add-to-cart { display: grid; gap: 0.75rem; }
.woocommerce-variation-price { margin-bottom: 0.5rem; }
table.variations { width: 100%; border-collapse: collapse; margin-bottom: 1rem; }
table.variations th,
table.variations td { padding: 0 0 0.75rem; text-align: left; border: 0; }
table.variations th.label { font-size: var(--ag-micro); letter-spacing: 0.13em; text-transform: uppercase; color: var(--ag-muted); font-weight: 500; }
table.variations select { max-width: 100%; }
.reset_variations { font-size: var(--ag-micro); letter-spacing: 0.12em; text-transform: uppercase; color: var(--ag-muted); }
.woocommerce-variation-availability .stock { margin-top: 0.5rem; }

/* ==========================================================================
   WooCommerce reset — Woo's own palette and layout floats replaced by the
   theme design system. Loaded after Woo's general sheet.
   ========================================================================== */
.woocommerce div.product div.summary,
.woocommerce div.product .woocommerce-product-gallery {
  float: none;
  width: auto;
  margin: 0;
}
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; }

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #payment #place_order,
.woocommerce div.product form.cart .button,
.woocommerce .cart .button,
.woocommerce .checkout-button,
.wc-block-components-button {
  background-color: var(--ag-ink);
  color: var(--ag-bone);
  border: 1px solid var(--ag-ink);
  border-radius: 999px;
  font-family: var(--ag-sans);
  font-size: var(--ag-micro);
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 1em 1.75em;
  line-height: 1;
  transition: background-color var(--ag-t) var(--ag-ease), border-color var(--ag-t) var(--ag-ease), color var(--ag-t) var(--ag-ease);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce #payment #place_order:hover,
.woocommerce div.product form.cart .button:hover {
  background-color: var(--ag-clay);
  border-color: var(--ag-clay);
  color: var(--ag-bone);
}

/* Prices: no olive green, no underline-on-sale */
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.woocommerce ul.products li.product .price,
.woocommerce .woocommerce-mini-cart__total .amount { color: var(--ag-ink); }
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins,
.woocommerce ul.products li.product .price ins {
  color: var(--ag-ink);
  text-decoration: none;
  font-weight: 400;
}
.woocommerce div.product p.price del,
.woocommerce ul.products li.product .price del { color: var(--ag-muted); opacity: 1; }

/* Stars rendered by the theme instead of Woo's sprite font */
.woocommerce .star-rating { display: none; }

/* Breadcrumb + titles the theme prints itself */
.woocommerce-breadcrumb { display: none; }
.woocommerce-products-header { margin: 0; }

/* Tabs (only appear if a plugin adds them back) */
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: none; border: 0; border-radius: 0; margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs .panel { margin: 0; padding: 0; }

/* Quantity + cart form */
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product form.cart .variations td { display: block; }
.woocommerce .quantity .qty { border: 0; }

/* Related / upsells: the theme supplies its own wrapper */
.woocommerce div.product > .related.products,
.woocommerce div.product > .upsells.products { display: block; }
.woocommerce div.product > .related.products ul.products,
.woocommerce div.product > .upsells.products ul.products { margin: 0; }

/* Cart table on small screens */
@media (max-width: 768px) {
  .woocommerce-cart table.cart td.actions .coupon { flex-direction: column; align-items: stretch; }
  .woocommerce-cart table.cart td.actions .coupon input#coupon_code { width: 100%; }
}

/* Account + order tables use the theme's type scale */
.woocommerce table.shop_table,
.woocommerce table.woocommerce-checkout-review-order-table { border-radius: 0; }
.woocommerce-info, .woocommerce-message, .woocommerce-error { border-radius: var(--ag-radius); }

/* Notices, final word ----------------------------------------------------- */
/* Woo focuses the notice region on update (role=alert, tabindex=-1), which
   drew a clay focus ring around the whole box. Keep focus, drop the ring. */
.woocommerce-message:focus,
.woocommerce-message:focus-visible,
.woocommerce-info:focus,
.woocommerce-info:focus-visible,
.woocommerce-error:focus,
.woocommerce-error:focus-visible { outline: none; }
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button {
  padding: 0.75em 1.2em;
  border-radius: 999px;
}
@media (max-width: 560px) {
  .woocommerce .woocommerce-message,
  .woocommerce .woocommerce-info { font-size: 0.8125rem; padding: 1rem 1.1rem; }
  .woocommerce .woocommerce-message .button { margin-left: 0; }
}

/* Cart table: rule separators only, no outer box ------------------------- */
.woocommerce table.shop_table,
.woocommerce table.shop_table.woocommerce-cart-form__contents {
  border: 0;
  border-radius: 0;
  border-collapse: collapse;
  background: transparent;
}
.woocommerce table.shop_table td,
.woocommerce table.shop_table th { border-left: 0; border-right: 0; }
.woocommerce table.shop_table td.actions { border-bottom: 0; }

/* "Update cart" is disabled until a quantity changes: show it as a quiet
   text action instead of a dead ink pill. */
.woocommerce .woocommerce-cart-form button[name="update_cart"],
.woocommerce .woocommerce-cart-form button[name="update_cart"]:disabled {
  background: transparent;
  border: 0;
  color: var(--ag-muted);
  letter-spacing: 0.14em;
  font-size: var(--ag-micro);
  text-transform: uppercase;
  text-decoration: underline;
  text-underline-offset: 4px;
  padding: 0.75rem 0;
  cursor: pointer;
}
.woocommerce .woocommerce-cart-form button[name="update_cart"]:disabled { opacity: 0.55; cursor: default; }
@media (max-width: 760px) {
  .woocommerce .woocommerce-cart-form button[name="update_cart"] { width: auto; margin: 0.25rem 0 0; justify-self: start; }
}

/* Checkout: two columns without touching Woo's markup --------------------- */
/* WooCommerce renders #customer_details and #order_review inside one form, so
   the layout is built as a grid on the form itself. */
.woocommerce-checkout form.checkout {
  display: grid;
  gap: 0 clamp(1.5rem, 4vw, 3.5rem);
  align-items: start;
}
@media (min-width: 901px) {
  .woocommerce-checkout form.checkout {
    grid-template-columns: minmax(0, 1.22fr) minmax(0, 0.78fr);
    grid-template-areas:
      "notice notice"
      "login  login"
      "coupon coupon"
      "privacy privacy"
      "details review";
  }
}
.woocommerce-checkout form.checkout > .woocommerce-form-login-toggle,
.woocommerce-checkout form.checkout > .woocommerce-form-coupon-toggle,
.woocommerce-checkout form.checkout > .woocommerce-form-login,
.woocommerce-checkout form.checkout > .woocommerce-form-coupon,
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.woocommerce-checkout #customer_details { grid-area: details; float: none; width: auto; }
.woocommerce-checkout #order_review_heading { grid-area: review; float: none; width: auto; margin: 0 0 1rem; }
.woocommerce-checkout #order_review { grid-area: review; float: none; width: auto; }
.woocommerce-checkout #order_review_heading + #order_review { margin-top: 2.1rem; }
@media (min-width: 901px) {
  .woocommerce-checkout #order_review,
  .woocommerce-checkout #order_review_heading { position: sticky; }
  .woocommerce-checkout #order_review { top: calc(var(--ag-header-h) + 4rem); }
  .woocommerce-checkout #order_review_heading { top: calc(var(--ag-header-h) + 1.25rem); align-self: start; }
}
/* The theme prints its own privacy reminder above the form. */
.woocommerce-checkout form.checkout > .ag-checkout-privacy { grid-column: 1 / -1; }

/* Payment block: no grey panel, quiet radio list ------------------------- */
.woocommerce-checkout #payment,
.woocommerce-checkout #payment ul.payment_methods {
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
}
.woocommerce-checkout #payment ul.payment_methods { display: grid; gap: 0.85rem; padding-block: 1.25rem; }
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; font-size: 0.875rem; line-height: 1.5; }
.woocommerce-checkout #payment ul.payment_methods li label { font-size: 0.875rem; }
.woocommerce-checkout #payment div.payment_box {
  background: var(--ag-bone-2);
  border: 1px solid var(--ag-line);
  border-radius: var(--ag-radius);
  font-size: 0.8125rem;
  color: var(--ag-muted);
  margin-top: 0.6rem;
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment .place-order { padding: 0; }
.woocommerce-checkout #payment #place_order { width: 100%; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: 0.8125rem; color: var(--ag-muted); margin-bottom: 1rem; }

/* Payment method list: radios, not stacked cards ------------------------- */
.woocommerce-checkout #payment ul.payment_methods li {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--ag-line);
  padding: 0 0 0.85rem;
}
.woocommerce-checkout #payment ul.payment_methods li:last-child { border-bottom: 0; }
.woocommerce-checkout #payment ul.payment_methods li label { font-weight: 400; }
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] { accent-color: var(--ag-clay); margin-right: 0.5rem; }

/* Shipping / additional fields: stop the floated checkbox colliding -------- */
.woocommerce-checkout #ship-to-different-address { float: none; width: 100%; margin: 0 0 1rem; font-size: 0.8125rem; letter-spacing: 0.06em; text-transform: uppercase; }
.woocommerce-checkout #ship-to-different-address label { font-size: 0.8125rem; letter-spacing: 0.06em; }
.woocommerce-checkout .woocommerce-additional-fields {
  clear: both;
  margin-top: 1.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--ag-line);
}
.woocommerce-checkout .woocommerce-additional-fields h3 { float: none; margin: 0 0 1rem; font-size: var(--ag-micro); letter-spacing: 0.16em; }
.woocommerce-checkout .woocommerce-additional-fields #order_comments { min-height: 110px; }
.woocommerce-checkout .woocommerce-shipping-fields { overflow: visible; }

/* Account forms: password reveal + quiet text links ----------------------- */
.woocommerce .password-input { position: relative; display: block; width: 100%; }
.woocommerce .password-input input { padding-right: 2.9rem; width: 100%; }
.woocommerce form .show-password-input,
.woocommerce form button.show-password-input {
  position: absolute;
  right: 0.6rem;
  top: 50%;
  transform: translateY(-50%);
  width: 26px;
  height: 26px;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ag-muted);
  cursor: pointer;
}
.woocommerce form .show-password-input::after { color: currentColor; }
.woocommerce form.login,
.woocommerce form.register,
.woocommerce-account .woocommerce-form-login {
  border: 1px solid var(--ag-line);
  border-radius: var(--ag-radius-lg);
  padding: clamp(1.25rem, 3vw, 2rem);
  background: transparent;
}
.woocommerce .lost_password a,
.woocommerce .woocommerce-LostPassword a,
.woocommerce-account .lost_password a {
  display: inline;
  background: none;
  border: 0;
  padding: 0;
  color: var(--ag-ink);
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
  text-transform: none;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: var(--ag-line-strong);
}
.woocommerce .lost_password a:hover,
.woocommerce .woocommerce-LostPassword a:hover { text-decoration-color: var(--ag-ink); background: none; color: var(--ag-ink); }
.woocommerce-account .woocommerce-form-login .form-row:last-of-type { margin-bottom: 0; }

/* Password reveal: Woo's icon depends on its icon font, so use a word ---- */
.woocommerce form .show-password-input::after {
  content: "Show";
  font-family: var(--ag-sans);
  font-size: 0.5625rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ag-muted);
  display: block;
  line-height: 26px;
}
.woocommerce form .show-password-input.display-password::after { content: "Hide"; }
.woocommerce form .show-password-input:hover::after { color: var(--ag-ink); }

/* Search / signup forms: keep the button beside the field on small screens */
@media (max-width: 560px) {
  .ag-signup { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .ag-signup .ag-btn { padding-inline: 1.15rem; }
  .ag-signup input { min-width: 0; }
}
