/* WooCommerce presentation. Keep core templates, validation and block behavior. */
.cv-commerce { padding-block: 36px 88px; min-height: 55vh; }
.woocommerce .woocommerce-breadcrumb { color: var(--cv-muted); font-size: 13px; margin-bottom: 30px; }
.woocommerce .woocommerce-breadcrumb a { color: #526354; }
.woocommerce-products-header { margin-bottom: 30px; }
.woocommerce-products-header h1 { font-size: clamp(2.5rem, 5vw, 4rem); letter-spacing: -.045em; line-height: 1.1; margin: 0 0 22px; }
.woocommerce-products-header p { color: var(--cv-muted); max-width: 760px; }
.cv-shop-collections { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-block: 32px; }
.cv-shop-collection { display: flex; align-items: center; gap: 13px; color: #f4efdf; background: var(--cv-navy); border: 1px solid #476b4f; border-radius: 12px; padding: 20px; text-decoration: none; font-weight: 650; line-height: 1.3; }
.cv-shop-collection img { background: #26382f; border-radius: 9px; padding: 8px; width: 48px; flex: 0 0 48px; }
.cv-shop-collection > span:last-child { margin-left: auto; color: #cdd0bd; }
.cv-shop-collection:hover, .cv-shop-collection[aria-current="page"] { background: #26382f; border-color: #cdd0bd; color: #f4efdf; }
.cv-store-notice { display: flex; gap: 16px; align-items: baseline; border-left: 3px solid var(--cv-blue); padding: 15px 20px; margin-block: 24px; background: #f4efdf; color: #476b4f; border-radius: 0 8px 8px 0; font-size: 14px; }
.cv-store-notice strong { flex-shrink: 0; color: var(--cv-navy); }
.cv-catalog-empty { display: grid; grid-template-columns: 1.2fr 1fr; gap: 30px; align-items: center; background: var(--cv-navy); color: #f4efdf; border-radius: 18px; padding: clamp(24px,4vw,52px); overflow: hidden; }
.cv-catalog-empty h2 { font-size: clamp(1.9rem,3.2vw,2.8rem); line-height: 1.12; letter-spacing: -.035em; }
.cv-catalog-empty p:not(.cv-eyebrow) { color: #cdd0bd; max-width: 580px; }
.cv-catalog-empty .cv-eyebrow { color: #cdd0bd; }
.cv-catalog-illustration { text-align: center; }
.cv-catalog-illustration img { width: 100%; }
.cv-catalog-illustration span { display: block; color: #cdd0bd; font-size: 11px; }
.cv-store-actions { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; margin-top: 27px; }
.cv-store-actions > a:not(.button) { color: #e6e7d3; font-size: 14px; padding-block: 12px; }
.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, .wc-block-components-button:not(.is-link),
.wp-block-button.wc-block-components-product-button .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; min-height: 46px;
  border: 1px solid transparent; border-radius: 7px; padding: 13px 21px;
  font: 650 14px/1.4 var(--cv-font); background: var(--cv-blue); color: #f4efdf; text-decoration: none;
  box-shadow: none; white-space: normal; text-align: center;
}
.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,
.wc-block-components-button:not(.is-link):hover { background: #476b4f; color: #f4efdf; }
.woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled],
.wc-block-components-button:disabled { background: #e6e7d3; color: #476b4f; opacity: 1; cursor: not-allowed; }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { font-size: 14px; margin-bottom: 24px; }
.woocommerce select { max-width: 100%; min-height: 46px; padding: 10px 32px 10px 12px; border: 1px solid #cdd0bd; border-radius: 6px; background: #f4efdf; color: var(--cv-ink); font: inherit; }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none; }
.woocommerce ul.products li.product, .woocommerce ul.products[class*="columns-"] li.product, .woocommerce-page ul.products li.product { width: auto; float: none; margin: 0; padding: 22px; border: 1px solid var(--cv-line); border-radius: 13px; background: #f4efdf; display: flex; flex-direction: column; }
.woocommerce ul.products li.product a img { border-radius: 8px; object-fit: contain; aspect-ratio: 4/3; background: var(--cv-soft); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { color: var(--cv-navy); font-size: 20px; line-height: 1.35; padding: 12px 0; letter-spacing: -.025em; }
.woocommerce ul.products li.product .price, .woocommerce div.product p.price, .woocommerce div.product span.price { color: #476b4f; font-weight: 700; }
.woocommerce ul.products li.product .button { align-self: flex-start; margin-top: auto; }
.woocommerce ul.products li.product .cv-public-card-caption { color: #526354; font-size: 14px; line-height: 1.6; margin: 0 0 14px; }
.cv-product-tier { display: inline-block; align-self: flex-start; width: fit-content; color: #476b4f; background: #f4efdf; border: 1px solid #e6e7d3; border-radius: 30px; padding: 4px 11px; font-size: 11px; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; margin-bottom: 12px; }
.cv-product-tier.cv-tier-starter { background: #fff3ce; border-color: #e8c96f; color: #765300; }
.cv-product-tier.cv-tier-premium { background: #f1e8ff; border-color: #d1b2f2; color: #7134a0; }
.woocommerce div.product div.images { border: 1px solid var(--cv-line); border-radius: 14px; overflow: hidden; padding: 14px; background: var(--cv-soft); }
.woocommerce div.product div.images .woocommerce-product-gallery__image img { object-fit: contain; }
.woocommerce div.product .product_title { font-size: clamp(2rem,3.2vw,3rem); line-height: 1.15; letter-spacing: -.035em; margin-bottom: 24px; }
.woocommerce-product-details__short-description { color: var(--cv-muted); }
.woocommerce div.product form.cart { margin-top: 28px; }
.woocommerce .quantity .qty { min-height: 46px; border: 1px solid #cdd0bd; border-radius: 6px; }
.woocommerce .product_meta { font-size: 13px; border-top: 1px solid var(--cv-line); padding-top: 20px; }
.woocommerce .product_meta > span { display: block; margin-top: 5px; }
.woocommerce div.product .woocommerce-tabs { padding-top: 25px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding-left: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: var(--cv-soft); border-color: var(--cv-line); margin: 0 5px 0 0; padding: 0 18px; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 14px 0; color: var(--cv-muted); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-top: 3px solid var(--cv-blue); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--cv-navy); }
.woocommerce div.product .woocommerce-tabs .panel { padding-block: 22px; max-width: 950px; }
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 25px; margin-top: 28px; }
.woocommerce-info, .woocommerce-message, .woocommerce-error { background: #f4efdf; color: #26382f; border-top-color: var(--cv-blue); border-radius: 6px; line-height: 1.6; }
.woocommerce-error { background: #f4efdf; border-color: #526354; color: #476b4f; }
.woocommerce-message { background: #f4efdf; border-color: #476b4f; color: #26382f; }
.woocommerce-info::before { color: #526354; }
.woocommerce-error::before { color: #526354; }
.woocommerce-message::before { color: #476b4f; }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password { max-width: 640px; border: 1px solid var(--cv-line); border-radius: 14px; padding: clamp(22px,3vw,36px); background: #f4efdf; }
.woocommerce form .form-row label { color: var(--cv-navy); font-size: 14px; font-weight: 600; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea { min-height: 48px; border: 1px solid #526354; border-radius: 6px; padding: 12px; background: #f4efdf; color: var(--cv-ink); }
.woocommerce form .form-row .required { color: #476b4f; }
.woocommerce form .show-password-input { min-height: 44px; min-width: 44px; }
.woocommerce form .woocommerce-form-login__rememberme { padding: 12px 0; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; border: 1px solid var(--cv-line); border-radius: 10px; overflow: hidden; }
.woocommerce-MyAccount-navigation a { display: block; padding: 14px 18px; background: var(--cv-soft); border-bottom: 1px solid var(--cv-line); text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--cv-navy); color: #f4efdf; }
.woocommerce table.shop_table { border-color: var(--cv-line); border-radius: 10px; }
.woocommerce table.shop_table th { background: var(--cv-soft); color: var(--cv-navy); }
.woocommerce ul.order_details { padding: 22px; background: var(--cv-soft); border-radius: 10px; }
.woocommerce ul.order_details li { margin-block: 8px; }
.wc-block-cart, .wc-block-checkout { font-family: var(--cv-font); color: var(--cv-ink); }
.wc-block-components-sidebar { border: 1px solid var(--cv-line); border-radius: 12px; padding: 22px; background: var(--cv-soft); }
.wc-block-components-title, .wc-block-components-checkout-step__title { color: var(--cv-navy); }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input { border-color: #526354; border-radius: 6px; }
.wc-block-components-notice-banner { border-radius: 8px; font-family: var(--cv-font); }
.wc-block-cart__empty-cart__title { font-size: clamp(1.6rem,3vw,2.6rem); color: var(--cv-navy); }
.wp-block-woocommerce-empty-cart-block { padding-block: 25px; }
.cv-cart-empty { padding: clamp(28px,5vw,60px); border: 1px solid var(--cv-line); border-radius: 16px; background: #f4efdf; max-width: 900px; margin-inline: auto; }
.cv-cart-empty .cv-eyebrow { color: #526354; margin-bottom: 16px!important; }
.cv-cart-empty h2 { font-size: clamp(1.9rem,3.5vw,2.8rem); line-height: 1.15; letter-spacing: -.035em; margin-bottom: 22px!important; }
.cv-cart-empty > p:not(.cv-eyebrow) { color: var(--cv-muted); max-width: 620px; margin-bottom: 28px!important; }
.woocommerce :focus-visible, .wc-block-components-button:focus-visible { outline: 3px solid var(--cv-blue); outline-offset: 3px; }
@media (max-width: 900px) {
  .cv-shop-collections { gap: 10px; }
  .cv-shop-collection { padding: 14px; font-size: 14px; flex-wrap: wrap; }
  .cv-shop-collection img { width: 38px; flex-basis: 38px; }
  .woocommerce ul.products { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cv-catalog-empty { grid-template-columns: 1fr 1fr; gap: 18px; }
  .cv-store-notice { display: grid; gap: 4px; }
}
@media (max-width: 600px) {
  .cv-commerce { padding-block: 25px 55px; }
  .cv-shop-collections { grid-template-columns: 1fr; gap: 8px; margin-block: 24px; }
  .cv-shop-collection { flex-wrap: nowrap; }
  .cv-catalog-empty { grid-template-columns: 1fr; gap: 22px; }
  .cv-catalog-illustration img { max-width: 330px; }
  .cv-store-actions { align-items: stretch; flex-direction: column; gap: 8px; }
  .woocommerce ul.products { grid-template-columns: 1fr; gap: 18px; }
  .woocommerce ul.products li.product { padding: 22px; }
  .woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { float: none; }
  .woocommerce .woocommerce-ordering select { width: 100%; }
  .woocommerce div.product .woocommerce-tabs ul.tabs li { font-size: 13px; padding: 0 10px; }
  .woocommerce ul.order_details li { float: none; border-right: 0; margin-right: 0; padding-block: 7px; }
  .wc-block-components-sidebar { padding: 16px; }
}

/* Exact approved V3 assets: keep the entire illustration visible, including in block carts. */
.woocommerce img.cv-approved-kit-artwork,
.woocommerce-cart .wc-block-cart img[src*="/cv-ham-v3-"] {
  object-fit: contain;
}
/* Keep the approved illustration disclosure readable on its sage gallery surface. */
.woocommerce .cv-kit-product .woocommerce-product-gallery__image[data-thumb*="/cv-ham-v3-"] .cv-gallery-caption {
  color: #526354;
}
