/*
 * PrisPresseren commerce appearance.
 * Scope: native WooCommerce views only. All commerce markup and events remain
 * owned by WooCommerce, Blocksy and the installed product/payment extensions.
 */

.pp-code-theme.pp-commerce-view {
  --theme-font-family: var(--pp-body);
  --theme-font-weight: 400;
  --theme-text-color: var(--pp-ink);
  --theme-heading-color: var(--pp-forest);
  --theme-link-initial-color: var(--pp-forest);
  --theme-link-hover-color: var(--pp-ink);
  --theme-border-color: var(--pp-line);
  --theme-palette-color-1: var(--pp-forest);
  --theme-palette-color-2: var(--pp-ink);
  --theme-palette-color-3: var(--pp-ink);
  --theme-palette-color-4: var(--pp-forest);
  --theme-palette-color-5: var(--pp-line);
  --theme-palette-color-6: var(--pp-paper);
  --theme-palette-color-7: var(--pp-white);
  --theme-palette-color-8: var(--pp-white);
  --theme-button-font-family: var(--pp-body);
  --theme-button-font-weight: 800;
  --theme-button-min-height: 48px;
  --theme-button-padding: 12px 20px;
  --theme-button-border-radius: 5px;
  --theme-button-background-initial-color: var(--pp-lime);
  --theme-button-background-hover-color: var(--pp-forest);
  --theme-button-text-initial-color: var(--pp-ink);
  --theme-button-text-hover-color: var(--pp-white);
  --theme-form-field-background-initial-color: var(--pp-white);
  --theme-form-field-background-focus-color: var(--pp-white);
  --theme-form-field-border-initial-color: #b8c2b8;
  --theme-form-field-border-focus-color: var(--pp-forest);
  --theme-form-field-border-radius: 5px;
  --theme-form-text-initial-color: var(--pp-ink);
  --theme-form-text-focus-color: var(--pp-ink);
  --theme-form-field-height: 50px;
}

.pp-commerce-view #main {
  background: var(--pp-paper);
}

.pp-code-theme.pp-commerce-view .site-main {
  padding-block: 0;
}

.pp-commerce-view #main > :is(.ct-container, .ct-container-full, .ct-container-narrow) {
  width: var(--pp-shell);
  max-width: 1376px;
  margin-inline: auto;
  padding-block: 42px 64px;
}

.pp-commerce-view #main :is(article, .entry-content, .woocommerce, .product-entry-wrapper, .entry-summary, .ct-order-review, .ct-customer-details, .woocommerce-MyAccount-content) {
  min-width: 0;
}

/* Inherited Blocksy archive title. Custom page templates share the same tokens. */
.pp-commerce-view #main > .hero-section,
.pp-commerce-view #main > :is(.ct-container, .ct-container-full) > .hero-section {
  margin-block: 0 36px;
  padding-block: 48px 56px;
  border-bottom: 1px solid var(--pp-line);
  background: var(--pp-lime);
}

.pp-commerce-view .hero-section .entry-header {
  width: var(--pp-shell);
  max-width: 1376px;
  margin-inline: auto;
  text-align: left;
}

.pp-commerce-view .hero-section .page-title,
.pp-commerce-view .woocommerce-products-header__title {
  max-width: 1100px;
  margin-block: 0 18px;
  color: var(--pp-ink);
  font-family: var(--pp-display);
  font-size: clamp(3.3rem, 6.8vw, 6.2rem);
  font-weight: 800;
  line-height: .95;
  letter-spacing: -.025em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.pp-commerce-view :is(.ct-breadcrumbs, .woocommerce-breadcrumb) {
  margin-block: 0 20px;
  color: var(--pp-muted);
  font-family: var(--pp-body);
  font-size: .8rem;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

.pp-commerce-view :is(.ct-breadcrumbs, .woocommerce-breadcrumb) a {
  color: var(--pp-forest);
  text-underline-offset: 3px;
}

.pp-commerce-view .hero-section .page-description,
.pp-commerce-view .woocommerce-products-header .term-description {
  max-width: 850px;
  color: var(--pp-muted);
  font-size: 1rem;
}

.pp-commerce-view .hero-section .page-description {
  color: var(--pp-ink);
}

/* Buttons remain actual WooCommerce controls, including disabled/loading states. */
.pp-commerce-view #main :is(a.button, button.button, input.button, .added_to_cart, .wc-block-components-button) {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 20px;
  border: 2px solid transparent;
  border-radius: 5px;
  background: var(--pp-lime);
  color: var(--pp-ink);
  font-family: var(--pp-body);
  font-size: .92rem;
  font-weight: 800;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}

.pp-commerce-view #main :is(a.button, button.button, input.button, .added_to_cart, .wc-block-components-button):hover {
  background: var(--pp-forest);
  color: var(--pp-white);
}

.pp-commerce-view #main :is(a.button, button.button, input.button, .wc-block-components-button):is(:disabled, .disabled, [aria-disabled="true"]) {
  opacity: .55;
  cursor: not-allowed;
}

.pp-commerce-view #main .added_to_cart {
  border-color: var(--pp-forest);
  background: var(--pp-white);
  color: var(--pp-forest);
}

.pp-commerce-view #main :is(input, select, textarea, button, a):focus-visible {
  outline: 3px solid var(--pp-forest);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px var(--pp-white);
}

/* Catalogue, category and product search. */
.pp-commerce-catalog .woo-listing-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-block: 0 28px;
  padding: 18px 20px;
  border: 1px solid var(--pp-line);
  border-radius: 7px;
  background: var(--pp-white);
}

.pp-commerce-catalog .woocommerce-result-count {
  margin: 0;
  color: var(--pp-muted);
  font-size: .9rem;
  font-weight: 600;
}

.pp-commerce-catalog .woocommerce-ordering {
  float: none;
  margin: 0;
  min-width: 0;
}

.pp-commerce-catalog .woocommerce-ordering select {
  max-width: 100%;
  min-height: 46px;
  border-color: var(--pp-line);
  border-radius: 5px;
  background-color: var(--pp-paper);
  color: var(--pp-ink);
  font-family: var(--pp-body);
  font-size: .88rem;
}

.pp-commerce-view #main ul.products {
  --shop-columns: repeat(4, minmax(0, 1fr));
  --grid-columns-gap: 20px;
  --grid-rows-gap: 26px;
  display: grid;
  grid-template-columns: var(--shop-columns);
  gap: var(--grid-rows-gap) var(--grid-columns-gap);
  margin: 0 0 32px;
  padding: 0;
  list-style: none;
}

.pp-commerce-view #main ul.products::before,
.pp-commerce-view #main ul.products::after {
  content: none;
}

.pp-commerce-view #main ul.products > li.product {
  display: flex;
  width: auto;
  min-width: 0;
  float: none;
  flex-direction: column;
  align-items: stretch;
  margin: 0;
  padding: 15px;
  border: 1px solid var(--pp-line);
  border-radius: 7px;
  background: var(--pp-white);
  box-shadow: 0 5px 15px rgb(25 34 30 / 3%);
  text-align: left;
  overflow-wrap: anywhere;
}

.pp-commerce-view #main ul.products > li.product figure {
  width: 100%;
  margin: 0 0 18px;
}

.pp-commerce-view #main ul.products > li.product .ct-media-container {
  border-radius: 4px;
  background: var(--pp-white);
  --object-fit: contain;
}

.pp-commerce-view #main ul.products > li.product .ct-media-container img {
  object-fit: contain;
}

.pp-commerce-view #main ul.products > li.product > .woocommerce-LoopProduct-link > img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: contain;
  margin-bottom: 18px;
}

.pp-commerce-view #main ul.products :is(.woocommerce-loop-product__title, .woocommerce-loop-category__title) {
  margin: 0 0 12px;
  color: var(--pp-ink);
  font-family: var(--pp-body);
  font-size: .95rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -.015em;
  text-transform: none;
}

.pp-commerce-view #main ul.products :is(.woocommerce-loop-product__title, .woocommerce-loop-category__title) a {
  color: var(--pp-ink);
  text-decoration: none;
}

.pp-commerce-view #main ul.products :is(.woocommerce-loop-product__title, .woocommerce-loop-category__title) a:hover {
  color: var(--pp-forest);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.pp-commerce-view #main ul.products .price {
  margin-block: 0 16px;
  color: var(--pp-forest);
  font-family: var(--pp-display);
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1.15;
}

.pp-commerce-view #main ul.products .price del {
  color: var(--pp-muted);
  font-family: var(--pp-body);
  font-size: .78rem;
  font-weight: 500;
}

.pp-commerce-view #main ul.products .price ins {
  margin-inline-start: 4px;
  background: transparent;
  text-decoration: none;
}

.pp-commerce-view #main ul.products .ct-woo-card-actions,
.pp-commerce-view #main ul.products > li.product > .button {
  margin-top: auto;
  width: 100%;
}

.pp-commerce-view #main ul.products .ct-woo-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-inline: 0;
  margin-bottom: 0;
  border: 0;
}

.pp-commerce-view #main ul.products .ct-woo-card-actions :is(.button, .added_to_cart) {
  flex: 1 1 100%;
}

.pp-commerce-view #main ul.products .ct-woo-card-stock {
  margin-bottom: 14px;
  font-family: var(--pp-body);
  font-size: .8rem;
}

.pp-commerce-view :is(.onsale, .ct-woo-badge-sale) {
  min-width: 0;
  min-height: 0;
  padding: 6px 10px;
  border-radius: 4px;
  background: var(--pp-lime);
  color: var(--pp-ink);
  font-family: var(--pp-body);
  font-size: .75rem;
  font-weight: 800;
  line-height: 1.3;
}

.pp-commerce-view :is(.woocommerce-pagination, .ct-pagination) {
  margin-block: 36px 12px;
  --theme-pagination-accent: var(--pp-forest);
}

.pp-commerce-view .woocommerce-pagination ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  border: 0;
}

.pp-commerce-view .woocommerce-pagination li {
  border: 0;
}

.pp-commerce-view .woocommerce-pagination :is(a, span) {
  display: grid;
  min-width: 44px;
  min-height: 44px;
  place-items: center;
  padding: 8px;
  border: 1px solid var(--pp-line);
  border-radius: 4px;
  background: var(--pp-white);
  color: var(--pp-ink);
  font-weight: 700;
}

.pp-commerce-view .woocommerce-pagination :is(.current, a:hover) {
  border-color: var(--pp-forest);
  background: var(--pp-forest);
  color: var(--pp-white);
}

/* Existing filter widgets, including YITH, retain their controls and events. */
.pp-commerce-catalog :is(.ct-sidebar, .yith-wcan-filters) {
  --theme-headings-font-family: var(--pp-body);
  --theme-headings-font-weight: 800;
}

.pp-commerce-catalog .ct-sidebar .ct-widget,
.pp-commerce-catalog .yith-wcan-filters:not(.in-modal) {
  margin-block: 0 18px;
  padding: 20px;
  border: 1px solid var(--pp-line);
  border-radius: 7px;
  background: var(--pp-white);
}

.pp-commerce-catalog :is(.widget-title, .filter-title) {
  color: var(--pp-forest);
  font-family: var(--pp-body);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.35;
}

.pp-commerce-catalog .yith-wcan-active-filters .active-filter a {
  border-radius: 4px;
  background: var(--pp-forest);
  color: var(--pp-white);
}

/* Single product: keep gallery, variations, linked products and bought-together. */
.pp-commerce-product .product-entry-wrapper {
  margin-bottom: 40px;
}

.pp-commerce-product .woocommerce-product-gallery {
  min-width: 0;
  border: 1px solid var(--pp-line);
  border-radius: 8px;
  background: var(--pp-white);
}

.pp-commerce-product .woocommerce-product-gallery .ct-product-gallery-container {
  padding: 15px;
}

.pp-commerce-product .woocommerce-product-gallery .ct-media-container {
  --border-radius: 5px;
  background: var(--pp-white);
}

.pp-commerce-product .entry-summary {
  padding: 28px;
  border: 1px solid var(--pp-line);
  border-radius: 8px;
  background: var(--pp-white);
}

.pp-commerce-product .entry-summary .product_title {
  margin: 0 0 22px;
  color: var(--pp-forest);
  font-family: var(--pp-display);
  font-size: clamp(2.15rem, 3.6vw, 3.7rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.02em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.pp-commerce-product .entry-summary :is(.price, .woocommerce-variation-price .price) {
  color: var(--pp-forest);
  font-family: var(--pp-display);
  font-size: clamp(2rem, 3vw, 2.8rem);
  font-weight: 700;
  line-height: 1.2;
}

.pp-commerce-product .entry-summary .price del {
  color: var(--pp-muted);
  font-family: var(--pp-body);
  font-size: 1rem;
  font-weight: 500;
}

.pp-commerce-product .entry-summary .price ins {
  background: transparent;
  text-decoration: none;
}

.pp-commerce-product .woocommerce-product-details__short-description {
  margin-block: 24px;
  color: var(--pp-muted);
  font-size: .95rem;
  line-height: 1.65;
}

.pp-commerce-product .entry-summary .stock {
  font-size: .88rem;
  font-weight: 700;
}

.pp-commerce-product .entry-summary .stock.in-stock {
  color: var(--pp-forest);
}

.pp-commerce-product .entry-summary .stock.out-of-stock {
  color: #a32d1b;
}

.pp-commerce-product form.cart {
  margin-block: 26px;
  padding-block: 22px;
  border-block: 1px solid var(--pp-line);
}

.pp-commerce-product .variations {
  width: 100%;
}

.pp-commerce-product .variations label {
  color: var(--pp-ink);
  font-weight: 700;
}

.pp-commerce-product .variations select {
  min-width: 0;
  width: 100%;
  min-height: 50px;
}

.pp-commerce-product :is(.product_meta, .woocommerce-product-rating) {
  font-family: var(--pp-body);
  font-size: .82rem;
  line-height: 1.6;
}

.pp-commerce-product .product_meta {
  padding-top: 8px;
  color: var(--pp-muted);
  overflow-wrap: anywhere;
}

.pp-commerce-product .product_meta a {
  color: var(--pp-forest);
  text-underline-offset: 3px;
}

.pp-commerce-product .woocommerce-tabs {
  padding: 32px;
  border: 1px solid var(--pp-line);
  border-radius: 8px;
  background: var(--pp-white);
  --tab-border-color: var(--pp-line);
  --tab-background: var(--pp-lime);
}

.pp-commerce-product .woocommerce-tabs ul.tabs {
  justify-content: flex-start;
  gap: 6px;
  margin: 0;
  padding: 0;
}

.pp-commerce-product .woocommerce-tabs ul.tabs li {
  background: transparent;
  border-color: var(--pp-line);
}

.pp-commerce-product .woocommerce-tabs ul.tabs li a {
  padding: 14px 18px;
  color: var(--pp-ink);
  font-family: var(--pp-body);
  font-size: .92rem;
  font-weight: 800;
  text-decoration: none;
}

.pp-commerce-product .woocommerce-tabs ul.tabs li.active a {
  background: var(--pp-lime);
  color: var(--pp-ink);
}

.pp-commerce-product .woocommerce-tabs .woocommerce-Tabs-panel {
  color: var(--pp-ink);
  overflow-wrap: anywhere;
}

.pp-commerce-product :is(.woocommerce-Tabs-panel, .related, .up-sells) h2,
.pp-commerce-view :is(.cart_totals, .cross-sells, .woocommerce-MyAccount-content) h2 {
  color: var(--pp-forest);
  font-family: var(--pp-display);
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
}

.pp-commerce-product :is(.related, .up-sells) {
  margin-top: 48px;
}

.pp-commerce-product .woocommerce-product-attributes {
  background: var(--pp-paper);
}

.pp-commerce-product :is(.woocommerce-product-attributes th, .woocommerce-product-attributes td) {
  padding: 12px 16px;
  border-color: var(--pp-line);
}

/* Native cart, checkout and account: high contrast, calm form panels. */
.pp-commerce-view #main :is(.woocommerce-cart-form, .cart_totals, .ct-customer-details, .ct-order-review, .woocommerce-MyAccount-content, .woocommerce-form-login, .woocommerce-form-register, .lost_reset_password) {
  min-width: 0;
  padding: 28px;
  border: 1px solid var(--pp-line);
  border-radius: 8px;
  background: var(--pp-white);
  box-shadow: 0 5px 15px rgb(25 34 30 / 3%);
}

.pp-commerce-cart .ct-woocommerce-cart-form {
  gap: 28px;
  align-items: start;
}

.pp-commerce-view #main .shop_table {
  width: 100%;
  margin-top: 0;
  border-color: var(--pp-line);
  border-radius: 0;
  color: var(--pp-ink);
  font-family: var(--pp-body);
  font-size: .9rem;
}

.pp-commerce-view #main .shop_table :is(th, td) {
  border-color: var(--pp-line);
  overflow-wrap: anywhere;
}

.pp-commerce-view #main .shop_table th {
  color: var(--pp-forest);
  font-size: .8rem;
  font-weight: 800;
}

.pp-commerce-view #main .shop_table .product-name a {
  color: var(--pp-ink);
  font-weight: 700;
  text-decoration: none;
}

.pp-commerce-view #main .shop_table .product-name a:hover {
  color: var(--pp-forest);
  text-decoration: underline;
}

.pp-commerce-view #main .shop_table .product-thumbnail img {
  border: 1px solid var(--pp-line);
  border-radius: 5px;
}

.pp-commerce-view #main a.remove {
  display: inline-flex;
  width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--pp-line);
  border-radius: 5px;
  background: var(--pp-paper);
  color: var(--pp-ink);
  font-size: 1.5rem;
  text-decoration: none;
}

.pp-commerce-view #main a.remove:hover {
  border-color: #a32d1b;
  background: #fff0eb;
  color: #a32d1b;
}

.pp-commerce-view .quantity {
  --quantity-height: 48px;
  --quantity-width: 108px;
  --quantity-border-color: var(--pp-line);
  --quantity-border-radius: 5px;
  --quantity-initial-color: var(--pp-ink);
  --quantity-hover-color: var(--pp-forest);
}

.pp-commerce-view .quantity input.qty {
  color: var(--pp-ink);
  font-family: var(--pp-body);
  font-size: 1rem;
  font-weight: 700;
}

.pp-commerce-cart .coupon {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  min-width: 0;
}

.pp-commerce-cart .coupon #coupon_code {
  flex: 1 1 140px;
  min-width: 0;
  width: auto;
  min-height: 48px;
  margin: 0;
}

.pp-commerce-cart .cart_totals .wc-proceed-to-checkout {
  padding-bottom: 0;
}

.pp-commerce-cart .cart_totals .checkout-button {
  width: 100%;
  margin: 0;
}

.pp-commerce-view #main :is(.form-row label, .wc-block-components-text-input label) {
  color: var(--pp-ink);
  font-family: var(--pp-body);
  font-size: .85rem;
  font-weight: 700;
}

.pp-commerce-view #main .form-row :is(input.input-text, textarea, select) {
  max-width: 100%;
  border: 1px solid #b8c2b8;
  border-radius: 5px;
  background: var(--pp-white);
  color: var(--pp-ink);
  font-family: var(--pp-body);
  font-size: 1rem;
}

.pp-commerce-view #main .form-row :is(input.input-text, select) {
  min-height: 50px;
}

.pp-commerce-view #main .form-row textarea {
  min-height: 110px;
  padding: 12px;
}

.pp-commerce-view #main .select2-container .select2-selection--single {
  min-height: 50px;
  border-color: #b8c2b8;
  border-radius: 5px;
  background: var(--pp-white);
}

.pp-commerce-view #main .select2-container .select2-selection__rendered {
  padding-inline: 14px 32px;
  color: var(--pp-ink);
  font-family: var(--pp-body);
  font-size: 1rem;
  line-height: 48px;
}

.pp-commerce-view #main .select2-container .select2-selection__arrow {
  height: 48px;
}

.pp-commerce-checkout .ct-woocommerce-checkout {
  align-items: start;
  gap: 28px;
}

.pp-commerce-checkout #main :is(.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, #order_review_heading, .woocommerce-additional-fields h3) {
  margin-top: 0;
  color: var(--pp-forest);
  font-family: var(--pp-display);
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
}

.pp-commerce-checkout #main #ship-to-different-address label {
  font-family: var(--pp-body);
  font-size: .95rem;
  font-weight: 700;
  text-transform: none;
}

.pp-commerce-checkout #main #payment {
  border-radius: 6px;
  background: var(--pp-paper);
  color: var(--pp-ink);
}

.pp-commerce-checkout #main #payment .payment_box {
  border-radius: 5px;
  background: var(--pp-white);
  color: var(--pp-ink);
  font-size: .9rem;
}

.pp-commerce-checkout #main #payment .payment_box::before {
  border-bottom-color: var(--pp-white);
}

.pp-commerce-checkout #main #payment :is(.payment_methods, .place-order) {
  border-color: var(--pp-line);
}

.pp-commerce-checkout #main #place_order {
  width: 100%;
}

.pp-commerce-view #main .woocommerce-privacy-policy-text {
  color: var(--pp-muted);
  font-size: .85rem;
  line-height: 1.6;
}

.pp-commerce-view #main .woocommerce-privacy-policy-text a {
  color: var(--pp-forest);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Account nav, orders, addresses, downloads, login and password reset. */
.pp-commerce-account .ct-woo-account {
  gap: 28px;
  align-items: start;
}

.pp-commerce-account .ct-acount-nav,
.pp-commerce-account .woocommerce-MyAccount-navigation {
  border: 1px solid var(--pp-line);
  border-radius: 8px;
  background: var(--pp-white);
  box-shadow: 0 5px 15px rgb(25 34 30 / 3%);
}

.pp-commerce-account .ct-acount-nav {
  margin-inline-end: 0;
}

.pp-commerce-account .ct-acount-nav .woocommerce-MyAccount-navigation {
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.pp-commerce-account .woocommerce-MyAccount-navigation ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.pp-commerce-account .woocommerce-MyAccount-navigation ul li a {
  min-height: 52px;
  height: auto;
  padding: 14px 18px;
  color: var(--pp-ink);
  font-family: var(--pp-body);
  font-size: .88rem;
  font-weight: 700;
  text-decoration: none;
}

.pp-commerce-account .woocommerce-MyAccount-navigation ul :is(li.is-active, li:hover) a {
  background: var(--pp-lime);
  color: var(--pp-ink);
}

.pp-commerce-account .woocommerce-MyAccount-content > :last-child,
.pp-commerce-account :is(.woocommerce-form-login, .woocommerce-form-register) > :last-child {
  margin-bottom: 0;
}

.pp-commerce-account .woocommerce-Address {
  padding: 20px;
  border: 1px solid var(--pp-line);
  border-radius: 6px;
  background: var(--pp-paper);
}

.pp-commerce-account .woocommerce-Address address {
  margin-bottom: 0;
  color: var(--pp-muted);
  font-style: normal;
}

.pp-commerce-account #main .woocommerce-Address-title h2 {
  font-size: 1.6rem;
}

.pp-commerce-account #main :is(.woocommerce-orders-table, .woocommerce-table--order-downloads) {
  font-size: .8rem;
}

/* Notices remain visible and actionable; status colors are independent of copy. */
.pp-commerce-view #main :is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner) {
  min-width: 0;
  border: 1px solid var(--pp-line);
  border-inline-start: 5px solid var(--pp-forest);
  border-radius: 6px;
  background: var(--pp-white);
  color: var(--pp-ink);
  font-family: var(--pp-body);
  font-size: .92rem;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

.pp-commerce-view #main .woocommerce-error {
  border-inline-start-color: #a32d1b;
  background: #fff5f1;
}

.pp-commerce-view #main :is(.woocommerce-message, .woocommerce-info)::before {
  color: var(--pp-forest);
}

.pp-commerce-view #main .woocommerce-error::before {
  color: #a32d1b;
}

.pp-commerce-view #main .return-to-shop {
  margin-block: 24px 0;
}

/* WooCommerce Blocks use the same tokens without replacing React markup. */
.pp-commerce-view #main :is(.wc-block-cart__main, .wc-block-checkout__main, .wc-block-components-sidebar) {
  min-width: 0;
  padding: 24px;
  border: 1px solid var(--pp-line);
  border-radius: 8px;
  background: var(--pp-white);
}

.pp-commerce-view #main :is(.wc-block-components-title, .wc-block-cart__totals-title) {
  color: var(--pp-forest);
  font-family: var(--pp-display);
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
}

.pp-commerce-view #main .wc-block-components-totals-item {
  color: var(--pp-ink);
}

@media (min-width: 1000px) {
  .pp-commerce-product .product-entry-wrapper:has(> .woocommerce-product-gallery:not([data-gallery="top"], [data-gallery="columns-top"])) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 32px;
    align-items: start;
  }

  .pp-commerce-product .product-entry-wrapper:has(> .woocommerce-product-gallery:not([data-gallery="top"], [data-gallery="columns-top"])) > :is(.woocommerce-product-gallery, .entry-summary) {
    width: 100%;
    margin-inline: 0;
  }

  .pp-commerce-cart .ct-woocommerce-cart-form {
    grid-template-columns: minmax(0, 1.8fr) minmax(300px, 1fr);
  }

  .pp-commerce-checkout .ct-woocommerce-checkout {
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
  }
}

@media (max-width: 1180px) {
  .pp-commerce-view #main ul.products {
    --shop-columns: repeat(3, minmax(0, 1fr));
    --grid-columns-gap: 16px;
  }

  .pp-commerce-view #main :is(.woocommerce-cart-form, .cart_totals, .ct-customer-details, .ct-order-review, .woocommerce-MyAccount-content) {
    padding: 22px;
  }
}

@media (max-width: 999px) {
  .pp-commerce-view #main ul.products {
    --shop-columns: repeat(2, minmax(0, 1fr));
  }

  .pp-commerce-product .product-entry-wrapper {
    display: block;
  }

  .pp-commerce-product .product-entry-wrapper > :is(.entry-summary, .woocommerce-product-gallery) {
    width: 100%;
    margin-inline: 0;
  }

  .pp-commerce-product .woocommerce-product-gallery {
    margin-bottom: 24px;
  }

  .pp-commerce-cart .ct-woocommerce-cart-form,
  .pp-commerce-checkout .ct-woocommerce-checkout {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 690px) {
  .pp-commerce-checkout #main :is(.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, #order_review_heading, .woocommerce-additional-fields h3) {
    font-size: clamp(1.3rem, 6vw, 1.7rem);
  }

  .pp-commerce-view #main > :is(.ct-container, .ct-container-full, .ct-container-narrow) {
    padding-block: 26px 42px;
  }

  .pp-commerce-view #main > .hero-section,
  .pp-commerce-view #main > :is(.ct-container, .ct-container-full) > .hero-section {
    padding-block: 26px;
  }

  .pp-commerce-catalog .woo-listing-top {
    gap: 12px;
    padding: 15px;
  }

  .pp-commerce-catalog .woocommerce-ordering {
    width: 100%;
  }

  .pp-commerce-catalog .woocommerce-ordering select {
    width: 100%;
  }

  .pp-commerce-view #main ul.products {
    --grid-columns-gap: 12px;
    --grid-rows-gap: 16px;
  }

  .pp-commerce-view #main ul.products > li.product {
    padding: 12px;
  }

  .pp-commerce-view #main ul.products :is(.woocommerce-loop-product__title, .woocommerce-loop-category__title) {
    font-size: .86rem;
  }

  .pp-commerce-view #main ul.products .button {
    padding: 10px;
    font-size: .82rem;
  }

  .pp-commerce-view #main ul.products .price {
    font-size: 1.5rem;
  }

  .pp-commerce-view #main :is(.woocommerce-cart-form, .cart_totals, .ct-customer-details, .ct-order-review, .woocommerce-MyAccount-content, .woocommerce-form-login, .woocommerce-form-register, .lost_reset_password),
  .pp-commerce-product :is(.entry-summary, .woocommerce-tabs) {
    padding: 18px;
  }

  .pp-commerce-product .woocommerce-tabs ul.tabs {
    align-items: stretch;
    flex-direction: column;
    gap: 4px;
  }

  .pp-commerce-product .woocommerce-tabs ul.tabs li a {
    width: 100%;
    padding: 14px;
    text-align: left;
  }

  .pp-commerce-product .woocommerce-product-attributes :is(th, td) {
    padding: 10px;
  }

  .pp-commerce-product .variations :is(th, td) {
    display: block;
    width: 100%;
    text-align: left;
  }

  .pp-commerce-product .variations th {
    padding-bottom: 4px;
  }

  .pp-commerce-cart .coupon,
  .pp-commerce-cart .coupon .button {
    width: 100%;
  }

  .pp-commerce-cart .coupon #coupon_code {
    flex-basis: 100%;
  }

  .pp-commerce-account .ct-woo-account {
    display: block;
  }

  .pp-commerce-account :is(.ct-acount-nav, .woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content) {
    width: 100%;
    float: none;
  }

  .pp-commerce-account .ct-acount-nav,
  .pp-commerce-account .woocommerce-MyAccount-navigation {
    margin-bottom: 20px;
  }

  .pp-commerce-account .ct-acount-nav .woocommerce-MyAccount-navigation {
    margin-bottom: 0;
  }

  .pp-commerce-view #main :is(.wc-block-cart__main, .wc-block-checkout__main, .wc-block-components-sidebar) {
    padding: 16px;
  }
}

@media (max-width: 390px) {
  .pp-commerce-view #main ul.products {
    --shop-columns: minmax(0, 1fr);
  }

  .pp-commerce-view #main ul.products > li.product {
    padding: 16px;
  }

  .pp-commerce-view #main ul.products :is(.woocommerce-loop-product__title, .woocommerce-loop-category__title) {
    font-size: 1rem;
  }

  .pp-commerce-view #main ul.products .button {
    font-size: .92rem;
  }

  .pp-commerce-product .entry-summary .product_title {
    font-size: 2rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pp-commerce-view #main :is(a.button, button.button, input.button, .added_to_cart, .wc-block-components-button) {
    transition: none;
  }
}
