/* ==========================================================================
   WooCommerce · styles for markup that WooCommerce (not our templates)
   generates: add-to-cart forms, notices, pagination, account, cart and
   checkout blocks. Mobile-first like the rest of the theme.
   ========================================================================== */

/* ---------- WordPress admin bar offsets ---------- */
@media (min-width: 601px) { .admin-bar .header { top: 46px; } .admin-bar .shop-toolbar { top: calc(46px + 60px); } }
@media (min-width: 783px) { .admin-bar .header { top: 32px; } .admin-bar .shop-toolbar { top: calc(32px + 60px); } }
@media (min-width: 900px) { .admin-bar .shop-toolbar { top: calc(32px + var(--header-h)); } }

/* ---------- Prices ---------- */
.price del, .card__price del, .pdp__price del { color: var(--muted); font-weight: 500; font-size: .85em; margin-left: 6px; order: 2; }
.price ins, .card__price ins, .pdp__price ins { text-decoration: none; }
.card__price, .pdp__price { display: flex; align-items: baseline; flex-wrap: wrap; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }

/* ---------- Breadcrumbs ---------- */
.crumbs a { color: inherit; }

/* ---------- Product card AJAX states ---------- */
.card__quick.loading { opacity: .6; pointer-events: none; }
.card__quick.loading svg { animation: spin 1s linear infinite; }
.card__quick.added::after { display: none; }
a.added_to_cart { display: none !important; }
.card.outofstock .card__media img { filter: grayscale(.4) opacity(.85); }

/* ---------- Catalogue ordering + pagination ---------- */
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select {
  appearance: none; min-height: 40px; padding: 0 36px 0 16px; border-radius: 999px;
  border: 1.5px solid var(--line); font-size: var(--fs-sm); max-width: 48vw;
  background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%232A201B' stroke-width='1.6'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E") right 14px center no-repeat;
}
.woocommerce-pagination { margin-top: 48px; }
.woocommerce-pagination ul { display: flex; justify-content: center; gap: 8px; }
.woocommerce-pagination a, .woocommerce-pagination span {
  display: grid; place-items: center; min-width: 44px; height: 44px; border-radius: 999px;
  border: 1.5px solid var(--line); font-weight: 700; font-size: var(--fs-sm);
}
.woocommerce-pagination .current { background: var(--ebony); color: var(--ivory); border-color: var(--ebony); }
a.check { text-decoration: none; }
.check__box {
  width: 20px; height: 20px; flex: none; display: grid; place-items: center;
  border: 1.5px solid var(--line); border-radius: 5px; background: var(--white); color: var(--white);
  transition: background .2s, border-color .2s;
}
.check__box svg { width: 14px; height: 14px; opacity: 0; }
.check.is-on { font-weight: 700; }
.check.is-on .check__box { background: var(--clay); border-color: var(--clay); }
.check.is-on .check__box svg { opacity: 1; }
@media (hover: hover) { a.check:hover .check__box { border-color: var(--clay); } }
.shop-layout > div { min-width: 0; }

/* ---------- Single product: add-to-cart form ---------- */
.pdp__cart { margin-bottom: 24px; }
.pdp__cart form.cart { display: grid; gap: 16px; }
.pdp__cart table.variations { width: 100%; border-collapse: collapse; }
.pdp__cart table.variations tr { display: grid; gap: 10px; margin-bottom: 6px; }
.pdp__cart table.variations th, .pdp__cart table.variations td { padding: 0; text-align: left; }
.pdp__cart table.variations th label { font-size: var(--fs-xs); font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.pdp__cart table.variations select { width: 100%; min-height: 48px; padding: 0 14px; border-radius: var(--radius-sm); border: 1.5px solid var(--line); background: var(--white); font-size: 16px; }
.pdp__cart .sizes + select, .pdp__cart select.is-enhanced { display: none; }
.pdp__cart .reset_variations { display: inline-block; margin-top: 8px; font-size: var(--fs-xs); color: var(--muted); text-decoration: underline; }
.pdp__cart .size:disabled { opacity: .35; text-decoration: line-through; cursor: not-allowed; }
.pdp__cart .woocommerce-variation-price { font-weight: 800; font-size: var(--fs-lg); }
.pdp__cart .woocommerce-variation-availability p, .pdp__cart p.stock { font-size: var(--fs-sm); color: var(--success); margin: 0; }
.pdp__cart p.stock.out-of-stock { color: var(--clay); }
.pdp__cart .woocommerce-variation-add-to-cart, .pdp__cart form.cart:not(.variations_form) {
  display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: center;
}
.pdp__cart .single_variation_wrap { display: grid; gap: 12px; }
.pdp__cart .quantity { display: inline-flex; align-items: center; border: 1.5px solid var(--line); border-radius: 999px; background: var(--white); height: 52px; }
.pdp__cart .quantity input.qty {
  width: 40px; height: 100%; border: 0; background: transparent; text-align: center; font-weight: 700; font-size: 16px;
  -moz-appearance: textfield;
}
.pdp__cart .quantity input::-webkit-outer-spin-button, .pdp__cart .quantity input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pdp__cart .qty-step { width: 44px; height: 100%; display: grid; place-items: center; border-radius: 999px; }
.pdp__cart .qty-step svg { width: 14px; height: 14px; }
.pdp__cart button.single_add_to_cart_button.button {
  min-height: 52px; padding: 0 24px; border-radius: 999px; border: 0;
  background: var(--clay); color: var(--white); font-weight: 700; font-size: var(--fs-sm); letter-spacing: .04em;
  transition: background .25s, opacity .25s;
}
.pdp__cart button.single_add_to_cart_button.button:hover { background: var(--clay-700); }
.pdp__cart .single_add_to_cart_button.disabled { opacity: .55; }
.pdp__cart .single_add_to_cart_button.loading { opacity: .7; pointer-events: none; }
.pdp__price-row .pdp__wish { width: 44px; height: 44px; }
.pdp__desc p { margin: 0 0 8px; }
.accordion__content p { margin: 0 0 10px; }
.pdp__slide img, .pdp__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.buybar__info span[data-buybar-size]:not(:empty)::after { content: " · "; }

/* ---------- Cart drawer (mini cart) ---------- */
#panel-cart .widget_shopping_cart_content { flex: 1; min-height: 0; display: flex; flex-direction: column; }
#panel-cart .widget_shopping_cart_content.is-busy { opacity: .6; pointer-events: none; }
.line-item__img { height: auto; }
.mini-cart__view { display: block; text-align: center; margin-top: 10px; font-size: var(--fs-sm); text-decoration: underline; }
.panel__title small { font-size: 1rem; color: var(--muted); }

/* ---------- Notices ---------- */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
  margin: 16px 0; padding: 14px 18px; list-style: none;
  border-radius: var(--radius); background: var(--sand); border-left: 4px solid var(--ochre); font-size: var(--fs-sm);
}
.woocommerce-error { border-left-color: var(--clay); background: var(--clay-100); }
.woocommerce-message .button, .woocommerce-info .button { font-weight: 700; text-decoration: underline; order: 2; }

/* ---------- Generic pages (cart, checkout, account, info pages) ---------- */
.page-content { padding-block: 28px 64px; }
.page-content__head { margin-bottom: 24px; }
.page-content__head h1 { font-size: var(--fs-2xl); }
.entry-content { max-width: 100%; }
.entry-content > * + * { margin-top: 1em; }
.entry-content a:not(.btn):not(.button):not([class*="wc-block"]) { color: var(--clay); text-decoration: underline; }
@media (min-width: 900px) { .page-content { padding-block: 48px 96px; } }

/* Classic WooCommerce forms (account, login, addresses) */
.woocommerce form .form-row { display: grid; gap: 6px; margin: 0 0 14px; }
.woocommerce form .form-row label { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.woocommerce form .input-text, .woocommerce form select, .woocommerce form textarea {
  width: 100%; min-height: 50px; padding: 12px 16px; font-size: 16px;
  border: 1.5px solid var(--line); border-radius: var(--radius-sm); background: var(--white);
}
.woocommerce form .input-text:focus { outline: none; border-color: var(--clay); box-shadow: 0 0 0 4px rgba(180,83,42,.12); }
.woocommerce .button, .woocommerce button.button, .woocommerce a.button {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 24px;
  border-radius: 999px; background: var(--ebony); color: var(--ivory); font-weight: 700; font-size: var(--fs-sm); border: 0;
}
.woocommerce .button:hover { background: var(--clay); }
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 12px 8px; border-bottom: 1px solid var(--line); text-align: left; }

/* My account */
.woocommerce-MyAccount-navigation ul { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin-bottom: 24px; }
.woocommerce-MyAccount-navigation a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1.5px solid var(--line); white-space: nowrap; font-size: var(--fs-sm); font-weight: 600; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--ebony); border-color: var(--ebony); color: var(--ivory); }
@media (min-width: 900px) {
  .woocommerce-account .woocommerce { display: grid; grid-template-columns: 220px 1fr; gap: 48px; }
  .woocommerce-MyAccount-navigation ul { flex-direction: column; overflow: visible; }
  .woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
}

/* ---------- Cart & Checkout blocks ---------- */
.wc-block-cart, .wc-block-checkout { font-family: var(--font-body); }
.wp-block-woocommerce-checkout, .wp-block-woocommerce-cart { margin-top: 0; }
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
  min-height: 52px; border-radius: 999px !important; background: var(--clay) !important; color: var(--white) !important;
  font-weight: 700 !important; border: 0 !important;
}
.wc-block-components-button:not(.is-link):hover { background: var(--clay-700) !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control__input,
.wc-block-components-select-input select, .wc-blocks-components-select__select {
  border-radius: var(--radius-sm) !important; border-color: var(--line) !important; font-size: 16px !important;
}
.wc-block-components-text-input.is-active input:focus { border-color: var(--clay) !important; box-shadow: 0 0 0 1px var(--clay) !important; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option {
  border-radius: var(--radius-sm);
}
.wc-block-components-radio-control__input:checked { border-color: var(--clay) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--clay) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input:checked { background: var(--clay) !important; border-color: var(--clay) !important; }
.wc-block-components-sidebar .wc-block-components-panel, .wc-block-components-order-summary,
.wp-block-woocommerce-checkout-order-summary-block {
  background: var(--sand); border-radius: var(--radius); border: 0 !important;
}
.wc-block-components-title, .wc-block-components-checkout-step__title { font-family: var(--font-body) !important; font-weight: 800 !important; }
.wc-block-components-product-name { font-family: var(--font-display); font-size: 1.1rem; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-weight: 800; }

/* ---------- Reviews ---------- */
.woocommerce-Reviews .commentlist { display: grid; gap: 16px; margin-bottom: 20px; }
.woocommerce-Reviews .comment_container { display: flex; gap: 12px; }
.woocommerce-Reviews .avatar { width: 40px; height: 40px; border-radius: 999px; }
.star-rating { display: none; }
.comment-form-rating select { min-height: 44px; }
