/*
 * Oceaneros 1.0 Commerce Experience
 * Additive presentation for native WooCommerce and WordPress output.
 */

/* Shared page frame and native form language */
.oe-shop-archive .site-main,
.oe-cart .site-main,
.oe-checkout .site-main,
.oe-account-page .site-main,
.oe-search-page .site-main,
.oe-content-page .site-main,
.oe-journal-archive .site-main,
.oe-journal-article .site-main {
  background: var(--oe-surface-paper);
  color: var(--oe-ink);
}

:is(.oe-shop-archive, .oe-cart, .oe-checkout, .oe-account-page) .woocommerce,
:is(.oe-search-page, .oe-content-page, .oe-journal-archive, .oe-journal-article) .content-area {
  width: min(calc(100% - (2 * var(--oe-gutter))), var(--oe-content));
  margin-inline: auto;
}

:is(.oe-cart, .oe-checkout, .oe-account-page) .woocommerce {
  padding-block: clamp(2.5rem, 7vw, 6rem);
}

:is(.oe-cart, .oe-checkout, .oe-account-page) .entry-title,
:is(.oe-search-page, .oe-content-page, .oe-journal-archive, .oe-journal-article) .entry-title,
.oe-shop-archive .woocommerce-products-header__title {
  max-width: 16ch;
  margin: 0 0 1rem;
  color: var(--oe-navy);
  font-family: var(--ce-font-display);
  font-size: clamp(2.8rem, 7vw, 5.7rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 0.94;
}

:is(.oe-cart, .oe-checkout, .oe-account-page) .woocommerce :is(input.input-text, textarea, select),
.oe-shop-archive .woocommerce-ordering select,
.oe-collection :is(input, select, textarea) {
  min-height: 3.25rem;
  padding: 0.75rem 0.9rem;
  border: 1px solid var(--ce-line-navy);
  border-radius: 0;
  background: var(--oe-surface-foam);
  color: var(--oe-ink);
  font: inherit;
}

:is(.oe-cart, .oe-checkout, .oe-account-page, .oe-shop-archive, .oe-collection) :is(a, button, input, select, textarea):focus-visible,
:is(.oe-search-page, .oe-content-page, .oe-journal-archive, .oe-journal-article) :is(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--oe-focus);
  outline-offset: 3px;
}

:is(.oe-cart, .oe-checkout, .oe-account-page) .button,
.oe-shop-archive .button,
.oe-collection .button,
.oe-content-page .wp-element-button,
.oe-search-page .search-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  padding: 0.8rem 1.25rem;
  border: 1px solid var(--oe-brand-blue);
  border-radius: 0;
  background: var(--oe-brand-blue);
  color: var(--oe-white);
  font-size: var(--ce-text-sm);
  font-weight: 750;
  letter-spacing: 0.065em;
  line-height: 1.2;
  text-transform: uppercase;
}

:is(.oe-cart, .oe-checkout, .oe-account-page) .button:hover,
.oe-shop-archive .button:hover,
.oe-collection .button:hover,
.oe-content-page .wp-element-button:hover,
.oe-search-page .search-submit:hover {
  border-color: var(--oe-navy-deep);
  background: var(--oe-navy-deep);
  color: var(--oe-white);
}

:is(.oe-cart, .oe-checkout, .oe-account-page) .button:disabled,
:is(.oe-cart, .oe-checkout, .oe-account-page) .button.disabled {
  border-color: var(--oe-border-soft);
  background: var(--oe-sand);
  color: var(--ce-muted);
  cursor: not-allowed;
  opacity: 1;
}

/* WooCommerce notices and validation */
:is(.oe-shop-archive, .oe-cart, .oe-checkout, .oe-account-page) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error),
.oe-search-page .woocommerce-info {
  position: relative;
  margin: 0 0 1.25rem;
  padding: 1rem 1.2rem 1rem 1.4rem;
  border: 1px solid var(--oe-border-soft);
  border-left: 4px solid var(--oe-brand-blue);
  background: var(--oe-surface-foam);
  color: var(--oe-ink);
  list-style: none;
}

:is(.oe-shop-archive, .oe-cart, .oe-checkout, .oe-account-page) .woocommerce-error {
  border-left-color: var(--oe-error);
}

:is(.oe-shop-archive, .oe-cart, .oe-checkout, .oe-account-page) :is(.woocommerce-invalid input, .woocommerce-invalid select, [aria-invalid='true']) {
  border-color: var(--oe-error);
  box-shadow: 0 0 0 1px var(--oe-error);
}

:is(.oe-shop-archive, .oe-cart, .oe-checkout, .oe-account-page) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a {
  color: var(--oe-navy);
  font-weight: 750;
  text-decoration: underline;
  text-decoration-color: var(--oe-brand-coral);
  text-underline-offset: 0.2em;
}

/* Shop and taxonomy archive */
.oe-shop-archive .content-area,
.oe-shop-archive .site-main {
  width: 100%;
  max-width: none;
  padding: 0;
}

.oe-shop-archive .woocommerce-products-header,
.oe-shop-archive .woocommerce-notices-wrapper,
.oe-shop-archive .oe-shop-tools,
.oe-shop-archive .woocommerce-result-count,
.oe-shop-archive .woocommerce-ordering,
.oe-shop-archive .products,
.oe-shop-archive .woocommerce-pagination,
.oe-shop-archive .woocommerce-info {
  width: min(calc(100% - (2 * var(--oe-gutter))), var(--oe-content));
  margin-inline: auto;
}

.oe-shop-archive .woocommerce-products-header {
  padding-top: clamp(3rem, 8vw, 7rem);
}

.oe-shop-archive .woocommerce-products-header__title {
  margin-bottom: 1.5rem;
}

.oe-shop-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem var(--oe-grid-gap);
  align-items: end;
  max-width: 76rem;
  padding-bottom: clamp(2rem, 5vw, 4rem);
  border-bottom: 1px solid var(--oe-border-soft);
}

.oe-shop-intro .ce-eyebrow {
  grid-column: 1 / -1;
}

.oe-shop-intro__copy {
  max-width: 58ch;
  margin: 0;
  color: var(--oe-ink);
  font-family: var(--ce-font-display);
  font-size: clamp(1.35rem, 2.3vw, 2rem);
  line-height: 1.28;
}

.oe-shop-intro__copy > :last-child { margin-bottom: 0; }

.oe-shop-intro__count {
  margin: 0;
  color: var(--ce-muted);
  font-size: var(--ce-text-xs);
  font-weight: 750;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.oe-shop-tools {
  clear: both;
  position: relative;
  padding-top: 2rem;
}

.oe-shop-tools__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.oe-filter-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  min-height: 3rem;
  padding: 0.7rem 1rem;
  border: 1px solid var(--ce-line-navy);
  background: transparent;
  color: var(--oe-navy);
  font-size: var(--ce-text-xs);
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.oe-filter-toggle:hover,
.oe-filter-toggle[aria-expanded='true'] {
  border-color: var(--oe-brand-coral);
  background: var(--oe-surface-foam);
}

.oe-filter-toggle__count {
  display: grid;
  place-items: center;
  min-width: 1.45rem;
  min-height: 1.45rem;
  border-radius: 999px;
  background: var(--oe-brand-coral);
  color: var(--oe-navy-deep);
  font-size: 0.7rem;
}

.oe-shop-loading-status {
  margin: 0;
  color: var(--ce-muted);
  font-size: var(--ce-text-xs);
}

.oe-applied-filters {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.65rem;
  padding-top: 1rem;
}

.oe-applied-filters__label {
  color: var(--ce-muted);
  font-size: var(--ce-text-xs);
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.oe-filter-clear {
  min-height: 2.25rem;
  padding: 0.45rem 0;
  border-bottom: 2px solid var(--oe-brand-coral);
  color: var(--oe-navy);
  font-size: var(--ce-text-xs);
  font-weight: 750;
}

.oe-filter-overlay {
  position: fixed;
  z-index: 69;
  inset: 0;
  background: rgba(7, 29, 49, 0.44);
}

.oe-filter-panel {
  position: absolute;
  z-index: 70;
  top: calc(100% + 0.75rem);
  left: 0;
  width: min(38rem, 100%);
  max-height: min(36rem, 75vh);
  overflow-y: auto;
  padding: clamp(1.25rem, 4vw, 2rem);
  border: 1px solid var(--oe-border-soft);
  background: var(--oe-surface-foam);
  box-shadow: var(--oe-shadow-float);
}

.oe-filter-panel__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem;
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--oe-border-soft);
}

.oe-filter-panel__header h2 {
  margin: 0.35rem 0 0;
  font-size: var(--ce-text-2xl);
}

.oe-filter-close {
  display: grid;
  place-items: center;
  flex: 0 0 2.75rem;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid var(--ce-line-navy);
  color: var(--oe-navy);
  font-size: 1.5rem;
}

.oe-filter-panel__nav ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.oe-filter-panel__nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 3.25rem;
  padding: 0.75rem;
  border-bottom: 1px solid var(--oe-border-soft);
  color: var(--oe-navy);
  font-size: var(--ce-text-sm);
  font-weight: 650;
}

.oe-filter-panel__nav a:hover {
  background: var(--oe-surface-glass);
}

.oe-filter-panel__nav a span:last-child {
  color: var(--ce-muted);
  font-size: var(--ce-text-xs);
}

.oe-filter-panel__empty {
  margin: 0;
  color: var(--ce-muted);
}

.oe-filter-is-open { overflow: hidden; }

.oe-shop-archive .woocommerce-result-count {
  float: left;
  width: auto;
  margin-top: 2rem;
  color: var(--ce-muted);
  font-size: var(--ce-text-sm);
}

.oe-shop-archive .woocommerce-ordering {
  float: right;
  width: auto;
  margin-top: 1.25rem;
}

.oe-shop-archive .woocommerce-ordering select {
  min-width: min(18rem, 100%);
}

.oe-shop-archive ul.products {
  clear: both;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1.25rem, 2.5vw, 2rem);
  margin-top: 2rem;
  margin-bottom: clamp(4rem, 8vw, 7rem);
  padding: 0;
}

.oe-shop-archive ul.products::before,
.oe-shop-archive ul.products::after { display: none; }

.oe-shop-archive ul.products li.product {
  position: relative;
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0 0 1.25rem;
  border-bottom: 2px solid var(--oe-brand-coral);
  background: transparent;
}

.oe-shop-archive ul.products li.product a.woocommerce-LoopProduct-link {
  display: block;
}

.oe-shop-archive ul.products li.product a img {
  width: 100%;
  aspect-ratio: 4 / 5;
  margin: 0 0 1rem;
  background: linear-gradient(145deg, var(--oe-surface-glass), var(--oe-surface-foam));
  object-fit: cover;
  transition: transform var(--ce-duration-mid) var(--ce-ease-out);
}

.oe-shop-archive ul.products li.product:hover a img {
  transform: translateY(-0.2rem);
}

.oe-shop-archive ul.products li.product .woocommerce-loop-product__title {
  margin: 0 0 0.45rem;
  padding: 0;
  color: var(--oe-navy);
  font-family: var(--ce-font-display);
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 500;
  line-height: 1.15;
}

.oe-shop-archive ul.products li.product .price {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0;
  color: var(--oe-ink);
  font-size: var(--ce-text-sm);
  font-weight: 650;
}

.oe-shop-archive ul.products li.product .price del { color: var(--ce-muted); }
.oe-shop-archive ul.products li.product .price ins { text-decoration: none; }

.oe-shop-archive ul.products li.product .onsale {
  position: absolute;
  z-index: 2;
  top: 0.75rem;
  left: 0.75rem;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0.5rem 0.65rem;
  border-radius: 0;
  background: var(--oe-brand-coral);
  color: var(--oe-navy-deep);
  font-size: var(--ce-text-xs);
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.oe-shop-archive ul.products li.product .button {
  width: 100%;
  margin-top: 1rem;
}

.oe-commerce-loading :is(.oe-shop-archive ul.products, .oe-collection .oe-product-grid) {
  opacity: 0.48;
  cursor: wait;
}

.oe-shop-archive .woocommerce-pagination {
  clear: both;
  padding-bottom: clamp(3rem, 7vw, 6rem);
}

.woocommerce-pagination ul.page-numbers,
.oe-pagination .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
}

.woocommerce-pagination ul.page-numbers li { border: 0; }

.woocommerce-pagination .page-numbers a,
.woocommerce-pagination .page-numbers span,
.oe-pagination .page-numbers a,
.oe-pagination .page-numbers span {
  display: grid;
  place-items: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0.5rem;
  border: 1px solid var(--oe-border-soft);
  background: var(--oe-surface-foam);
  color: var(--oe-navy);
  font-weight: 700;
}

.woocommerce-pagination .page-numbers .current,
.oe-pagination .page-numbers .current {
  border-color: var(--oe-brand-coral);
  background: var(--oe-brand-coral);
  color: var(--oe-navy-deep);
}

.oe-shop-archive .woocommerce-info,
.oe-shop-archive .woocommerce-no-products-found {
  clear: both;
  margin-top: 2rem;
  margin-bottom: clamp(4rem, 8vw, 7rem);
}

/* Related collections and journal */
.oe-related-collections,
.oe-archive-journal {
  clear: both;
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

.oe-related-collections h2,
.oe-archive-journal h2 {
  margin: 0.45rem 0 2rem;
  font-size: clamp(2.4rem, 5vw, 4.4rem);
}

.oe-related-collections__grid,
.oe-archive-journal__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--oe-grid-gap);
}

.oe-related-collection-card,
.oe-journal-card {
  min-width: 0;
  background: var(--oe-surface-foam);
}

.oe-related-collection-card__image,
.oe-journal-card__image {
  display: block;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: var(--oe-surface-glass);
}

.oe-related-collection-card__image img,
.oe-journal-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.oe-media-fallback {
  display: block;
  width: 100%;
  height: 100%;
  background:
    radial-gradient(circle at 75% 25%, rgba(242, 119, 119, 0.2), transparent 26%),
    linear-gradient(145deg, var(--oe-surface-glass), var(--oe-sand));
}

.oe-related-collection-card__body,
.oe-journal-card__body {
  padding: 1.35rem;
}

.oe-related-collection-card h3,
.oe-journal-card h3 {
  margin: 0 0 0.5rem;
  font-size: var(--ce-text-xl);
}

.oe-related-collection-card p,
.oe-journal-card p {
  margin: 0 0 1rem;
  color: var(--ce-muted);
}

.oe-journal-card__meta {
  font-size: var(--ce-text-xs);
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Custom collection page: preserve template data, align presentation */
.oe-collection {
  background: var(--oe-surface-paper);
  color: var(--oe-ink);
}

.oe-collection .oe-container {
  width: min(calc(100% - (2 * var(--oe-gutter))), var(--oe-content));
  max-width: none;
  margin-inline: auto;
  padding-inline: 0;
}

.oe-collection .oe-col-hero {
  min-height: clamp(32rem, 68vw, 45rem);
}

.oe-collection .oe-col-hero__content {
  width: min(calc(100% - (2 * var(--oe-gutter))), var(--oe-content));
  max-width: none;
  padding-inline: 0;
}

.oe-collection .oe-col-hero__title {
  font-weight: 500;
  letter-spacing: -0.04em;
}

.oe-collection .oe-col-partner-bar {
  border-top: 3px solid var(--oe-brand-coral);
  background: var(--oe-surface-abyss);
}

.oe-collection .oe-col-products {
  background: var(--oe-surface-paper);
}

.oe-collection .oe-col-products__header {
  align-items: start;
}

.oe-collection-tools {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  width: 100%;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--oe-border-soft);
}

.oe-collection-tools .oe-shop-tools__bar { align-self: end; }

.oe-collection-sort {
  display: grid;
  gap: 0.4rem;
  min-width: min(18rem, 100%);
}

.oe-collection-sort label {
  color: var(--oe-navy);
  font-size: var(--ce-text-xs);
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.oe-collection .oe-product-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--oe-grid-gap);
}

.oe-collection .oe-product-card {
  min-width: 0;
  padding-bottom: 1.25rem;
  border-bottom: 2px solid var(--oe-brand-coral);
  background: transparent;
}

.oe-collection .oe-product-card__img {
  aspect-ratio: 4 / 5;
  background: linear-gradient(145deg, var(--oe-surface-glass), var(--oe-surface-foam));
}

.oe-collection .oe-product-card__img img { object-fit: cover; }

.oe-collection .oe-product-card__body {
  padding: 1rem 0 0;
}

.oe-collection .oe-product-card__title {
  color: var(--oe-navy);
  font-size: var(--ce-text-lg);
}

.oe-collection .oe-product-card__title a {
  display: inline-flex;
  align-items: center;
  min-height: 1.5rem;
}

.oe-collection .oe-product-card__price {
  color: var(--oe-ink);
  font-size: var(--ce-text-sm);
}

.oe-collection .oe-col-add-btn {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  min-height: 2.75rem;
  margin-top: 0.75rem;
  padding: 0.5rem 0;
  border-bottom: 2px solid var(--oe-brand-coral);
  background: transparent;
  color: var(--oe-navy);
  text-align: left;
}

.oe-collection .oe-col-add-btn:hover {
  color: var(--oe-brand-blue);
  opacity: 1;
}

.oe-collection .oe-product-card__badge {
  background: var(--oe-brand-coral);
  color: var(--oe-navy-deep);
}

.oe-collection .oe-col-empty {
  text-align: left;
}

.oe-collection .oe-pagination {
  margin-top: 2.5rem;
}

.oe-collection-description {
  display: grid;
  grid-template-columns: minmax(0, 0.38fr) minmax(0, 1fr);
  gap: var(--oe-grid-gap);
  padding-block: clamp(3rem, 7vw, 6rem);
  background: var(--oe-surface-glass);
}

.oe-collection-description__inner {
  display: contents;
}

.oe-collection-description h2 {
  font-size: clamp(2.5rem, 5vw, 4.5rem);
}

.oe-collection-description__copy {
  max-width: 68ch;
  line-height: 1.75;
}

/* Cart */
.oe-cart .woocommerce-cart-form,
.oe-cart .cart-collaterals {
  width: 100%;
}

.oe-cart .woocommerce-cart-form {
  border-top: 4px solid var(--oe-brand-coral);
  background: var(--oe-surface-foam);
}

.oe-cart table.shop_table,
.oe-checkout table.shop_table,
.oe-account-page table.shop_table {
  width: 100%;
  border: 0;
  border-collapse: collapse;
  background: var(--oe-surface-foam);
}

.oe-cart table.cart {
  table-layout: fixed;
}

.oe-cart table.cart :is(th, td).product-remove { width: 4.5rem; }
.oe-cart table.cart :is(th, td).product-thumbnail { width: 9rem; }
.oe-cart table.cart :is(th, td).product-price { width: 10rem; }
.oe-cart table.cart :is(th, td).product-quantity { width: 10rem; }
.oe-cart table.cart :is(th, td).product-subtotal { width: 11rem; }

:is(.oe-cart, .oe-checkout, .oe-account-page) table.shop_table th,
:is(.oe-cart, .oe-checkout, .oe-account-page) table.shop_table td {
  padding: 1rem;
  border: 0;
  border-bottom: 1px solid var(--oe-border-soft);
  text-align: left;
  vertical-align: middle;
}

:is(.oe-cart, .oe-checkout, .oe-account-page) table.shop_table th {
  color: var(--oe-navy);
  font-size: var(--ce-text-xs);
  font-weight: 750;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.oe-cart .product-thumbnail img {
  width: 7rem;
  aspect-ratio: 4 / 5;
  background: var(--oe-surface-glass);
  object-fit: cover;
}

.oe-cart .product-name a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  color: var(--oe-navy);
  font-family: var(--ce-font-display);
  font-size: var(--ce-text-lg);
  font-weight: 600;
}

.oe-cart .product-name :is(.variation, dl.variation) {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.15rem;
  margin: 0.7rem 0 0;
  color: var(--ce-muted);
  font-size: var(--ce-text-sm);
}

.oe-cart .product-name .variation :is(dt, dd) {
  float: none;
  margin: 0;
  padding: 0;
}

.oe-cart .product-name .variation dt {
  color: var(--oe-navy);
  font-weight: 700;
}

.oe-cart .product-name .variation dd {
  margin-bottom: 0.45rem;
  overflow-wrap: break-word;
}

.oe-cart .product-name .variation p { margin: 0; }

.oe-cart .product-remove a {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid var(--oe-border-soft);
  color: var(--oe-error);
  font-size: 1.4rem;
  line-height: 1;
  text-decoration: none;
}

.oe-cart .product-remove a:hover {
  border-color: var(--oe-error);
  background: var(--oe-surface-paper);
}

.oe-cart :is(.quantity, .product-quantity) .qty {
  width: 5rem;
  max-width: 100%;
  text-align: center;
}

.oe-cart table.cart td.actions {
  display: flex;
  gap: 1rem;
  align-items: end;
  justify-content: space-between;
  padding: 1.25rem;
}

.oe-cart table.cart .coupon {
  display: grid;
  grid-template-columns: minmax(11rem, 18rem) auto;
  gap: 0.65rem;
  max-width: 31rem;
}

.oe-cart table.cart .coupon label {
  position: static;
  grid-column: 1 / -1;
  width: auto;
  height: auto;
  overflow: visible;
  color: var(--oe-navy);
  clip: auto;
  font-size: var(--ce-text-xs);
  font-weight: 750;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.oe-cart table.cart td.actions > .button {
  flex: 0 0 auto;
  margin: 0;
}

.oe-cart table.cart .coupon .button {
  border-color: var(--oe-brand-blue);
  background: transparent;
  color: var(--oe-brand-blue);
}

.oe-cart table.cart .coupon .button:hover {
  border-color: var(--oe-navy-deep);
  background: var(--oe-surface-glass);
  color: var(--oe-navy-deep);
}

.oe-cart .oe-donation-cart-row {
  background: var(--oe-surface-glass);
}

.oe-cart .oe-donation-cart-row .product-name strong {
  color: var(--oe-navy);
  font-family: var(--ce-font-display);
  font-size: var(--ce-text-lg);
}

.oe-cart .oe-donation-cart-row .product-name small {
  display: inline-block;
  max-width: 40ch;
  margin-top: 0.35rem;
  color: var(--oe-ink);
  font-size: var(--ce-text-sm);
  line-height: 1.5;
}

.oe-cart .cart-collaterals {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.48fr);
  gap: var(--oe-grid-gap);
  margin-top: clamp(2rem, 5vw, 4rem);
}

.oe-cart .cart_totals {
  grid-column: 2;
  width: auto;
  padding: clamp(1.25rem, 4vw, 2rem);
  border-top: 4px solid var(--oe-brand-coral);
  background: var(--oe-surface-glass);
}

.oe-cart .cart_totals table {
  background: var(--oe-surface-foam);
}

.oe-cart .cart_totals tr.order-total :is(th, td) {
  border-top: 2px solid var(--oe-navy);
  color: var(--oe-navy);
  font-size: var(--ce-text-base);
}

.oe-cart .cart_totals h2 {
  margin: 0 0 1.25rem;
  font-size: var(--ce-text-2xl);
}

.oe-cart .wc-proceed-to-checkout { padding: 1.25rem 0 0; }
.oe-cart .wc-proceed-to-checkout .checkout-button { width: 100%; }

.oe-cart .cart-empty {
  padding: clamp(2rem, 6vw, 4rem);
  border-left: 4px solid var(--oe-brand-coral);
  background: var(--oe-surface-foam);
}

.oe-cart .return-to-shop { margin-top: 1rem; }

.oe-cart .cross-sells {
  min-width: 0;
}

.oe-cart .cross-sells > h2 {
  font-size: var(--ce-text-2xl);
}

/* Checkout */
.oe-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(23rem, 0.78fr);
  gap: 1.25rem clamp(2rem, 5vw, 5rem);
  align-items: start;
}

.oe-checkout #customer_details {
  grid-column: 1;
  grid-row: 1 / 3;
  padding: clamp(1.25rem, 3vw, 2rem);
  border-top: 4px solid var(--oe-navy);
  background: var(--oe-surface-foam);
}

.oe-checkout #order_review_heading {
  grid-column: 2;
  margin: 0;
  font-size: var(--ce-text-2xl);
}

.oe-checkout #order_review {
  grid-column: 2;
  padding: clamp(1.25rem, 3vw, 2rem);
  border-top: 4px solid var(--oe-brand-coral);
  background: var(--oe-surface-foam);
}

.oe-checkout #order_review table.shop_table {
  table-layout: fixed;
}

.oe-checkout #order_review table.shop_table :is(th, td):last-child {
  width: 38%;
  text-align: right;
}

.oe-checkout #order_review table.shop_table :is(th, td) {
  overflow-wrap: break-word;
}

.oe-checkout #order_review .product-name {
  overflow-wrap: break-word;
}

.oe-checkout .col2-set,
.oe-checkout .col2-set .col-1,
.oe-checkout .col2-set .col-2 {
  float: none;
  width: 100%;
}

.oe-checkout .col2-set .col-2 { margin-top: 2rem; }

.oe-checkout :is(.woocommerce-billing-fields > h3, .woocommerce-additional-fields > h3, .woocommerce-shipping-fields h3) {
  margin: 0 0 1.5rem;
  font-size: var(--ce-text-2xl);
}

.oe-checkout .form-row {
  margin: 0 0 1rem;
  padding: 0;
}

.oe-checkout .form-row label {
  display: block;
  margin-bottom: 0.4rem;
  color: var(--oe-navy);
  font-size: var(--ce-text-sm);
  font-weight: 700;
}

.oe-checkout .form-row .required { color: var(--oe-error); }

.oe-checkout .form-row .optional {
  color: var(--ce-muted);
  font-size: var(--ce-text-xs);
  font-weight: 500;
}

.oe-checkout :is(.select2-container .select2-selection--single, .select2-container .select2-selection--multiple) {
  min-height: 3.25rem;
  border: 1px solid var(--ce-line-navy);
  border-radius: 0;
  background: var(--oe-surface-foam);
}

.oe-checkout .select2-container .select2-selection--single .select2-selection__rendered {
  padding: 0.75rem 2.5rem 0.75rem 0.9rem;
  color: var(--oe-ink);
  line-height: 1.7;
}

.oe-checkout .select2-container .select2-selection--single .select2-selection__arrow {
  top: 0;
  right: 0.5rem;
  height: 100%;
}

.oe-checkout .woocommerce-invalid :is(.select2-selection, input, select, textarea) {
  border-color: var(--oe-error);
  box-shadow: 0 0 0 1px var(--oe-error);
}

.oe-checkout .woocommerce-invalid label {
  color: var(--oe-error);
}

.oe-checkout :is(input[type='checkbox'], input[type='radio']) {
  width: 1.25rem;
  height: 1.25rem;
  flex: 0 0 auto;
  accent-color: var(--oe-brand-blue);
}

.oe-checkout :is(.woocommerce-shipping-fields label, .woocommerce-form__label-for-checkbox) {
  display: inline-flex;
  gap: 0.65rem;
  align-items: center;
  min-height: 2.75rem;
}

.oe-checkout #payment {
  margin-top: 1.5rem;
  border-radius: 0;
  background: var(--oe-surface-glass);
}

.oe-checkout #payment ul.payment_methods {
  margin: 0;
  padding: 1rem;
  border-bottom: 1px solid var(--oe-border-soft);
  list-style: none;
}

.oe-checkout #payment ul.payment_methods > li {
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--oe-border-soft);
}

.oe-checkout #payment ul.payment_methods > li:last-child {
  border-bottom: 0;
}

.oe-checkout #payment ul.payment_methods label {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 2.75rem;
}

.oe-checkout #payment .payment_box {
  margin: 0.5rem 0 0;
  padding: 1rem;
  background: var(--oe-surface-paper);
  color: var(--oe-ink);
}

.oe-checkout #payment .place-order {
  padding: 1.25rem 1rem 1rem;
}

.oe-checkout #place_order {
  width: 100%;
  min-height: 3.75rem;
}

.oe-checkout :is(.woocommerce-privacy-policy-text, .woocommerce-terms-and-conditions-wrapper) {
  color: var(--oe-ink);
  font-size: var(--ce-text-sm);
  line-height: 1.65;
}

.oe-checkout :is(.woocommerce-privacy-policy-text, .woocommerce-terms-and-conditions-wrapper) a,
.oe-checkout #payment .place-order > p a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  margin-right: 0.8rem;
  color: var(--oe-navy);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: var(--oe-brand-coral);
  text-underline-offset: 0.2em;
}

.oe-checkout .blockUI.blockOverlay {
  background: var(--oe-surface-foam) !important;
  opacity: 0.72 !important;
}

.oe-checkout .woocommerce-form-coupon-toggle,
.oe-checkout .woocommerce-form-login-toggle {
  margin-bottom: 1rem;
}

/* Optional contribution inside native checkout review */
.oe-contribution-choice {
  margin: 1.5rem 0 0;
  padding: 1.25rem;
  border: 1px solid var(--oe-border-soft);
  border-left: 4px solid var(--oe-brand-coral);
  background: var(--oe-surface-paper);
  color: var(--oe-ink);
}

.oe-contribution-choice__header h3 {
  margin: 0.35rem 0 0.55rem;
  color: var(--oe-navy);
  font-family: var(--ce-font-display);
  font-size: var(--ce-text-xl);
}

.oe-contribution-choice__header > p:last-child {
  margin: 0;
  font-size: var(--ce-text-sm);
  line-height: 1.6;
}

.oe-contribution-choice__fieldset {
  margin: 1rem 0 0;
  padding: 0;
  border: 0;
}

.oe-contribution-choice__options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.oe-checkout .oe-tier-btn {
  display: grid;
  gap: 0.25rem;
  min-height: 4rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--ce-line-navy);
  border-radius: 0;
  background: var(--oe-surface-foam);
  color: var(--oe-navy);
  cursor: pointer;
  text-align: left;
}

.oe-checkout .oe-tier-btn:hover {
  border-color: var(--oe-brand-blue);
}

.oe-checkout .oe-tier-btn--active {
  border-color: var(--oe-brand-blue);
  box-shadow: inset 0 -4px 0 var(--oe-brand-coral);
  background: var(--oe-surface-glass);
}

.oe-checkout .oe-tier-btn__label {
  color: var(--ce-muted);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.oe-checkout .oe-tier-btn__amount {
  color: var(--oe-navy);
  font-family: var(--ce-font-display);
  font-size: var(--ce-text-lg);
  font-weight: 600;
}

.oe-contribution-choice[aria-busy='true'] .oe-tier-btn,
.oe-contribution-choice[aria-busy='true'] .oe-contribution-remove {
  cursor: wait;
  opacity: 0.65;
}

.oe-contribution-choice__footer {
  margin-top: 0.85rem;
}

.oe-checkout .oe-contribution-remove {
  min-height: 2.75rem;
  padding: 0.45rem 0;
  border: 0;
  border-bottom: 2px solid var(--oe-brand-coral);
  background: transparent;
  color: var(--oe-navy);
  font: 700 var(--ce-text-sm)/1.3 var(--ce-font-ui);
  cursor: pointer;
}

.oe-contribution-status,
.oe-contribution-choice__noscript {
  margin: 0.75rem 0 0;
  color: var(--oe-ink);
  font-size: var(--ce-text-sm);
  line-height: 1.5;
}

/* Account and order confirmation */
.oe-account-page .woocommerce {
  display: grid;
  grid-template-columns: minmax(13rem, 0.3fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
}

.oe-account-page .woocommerce > :is(.woocommerce-notices-wrapper, h1, h2, .woocommerce-form-login, .woocommerce-form-register) {
  grid-column: 1 / -1;
}

.oe-account-page .woocommerce-MyAccount-navigation ul {
  margin: 0;
  padding: 0;
  border-top: 3px solid var(--oe-brand-coral);
  list-style: none;
}

.oe-account-page .woocommerce-MyAccount-navigation a {
  display: block;
  min-height: 3rem;
  padding: 0.8rem;
  border-bottom: 1px solid var(--oe-border-soft);
  color: var(--oe-navy);
  font-size: var(--ce-text-sm);
  font-weight: 700;
}

.oe-account-page .woocommerce-MyAccount-navigation .is-active a {
  background: var(--oe-surface-glass);
}

.oe-account-page .woocommerce-MyAccount-content {
  min-width: 0;
}

.oe-account-page fieldset {
  margin: 2rem 0 0;
  padding: 1.25rem;
  border: 1px solid var(--oe-border-soft);
}

.oe-order-confirmation {
  padding-block: clamp(3rem, 8vw, 7rem);
  background: var(--oe-surface-paper);
  color: var(--oe-ink);
}

.oe-order-confirmation__inner {
  max-width: 74rem;
}

.oe-order-confirmation__header {
  max-width: 52rem;
  padding-bottom: clamp(2rem, 5vw, 4rem);
  border-bottom: 1px solid var(--oe-border-soft);
}

.oe-order-confirmation__header h1 {
  max-width: 12ch;
  margin: 0.65rem 0 1rem;
  color: var(--oe-navy);
  font-family: var(--ce-font-display);
  font-size: clamp(3rem, 7vw, 5.8rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 0.95;
}

.oe-order-confirmation__header > p:last-child {
  max-width: 58ch;
  margin: 0;
  color: var(--ce-muted);
  font-size: var(--ce-text-lg);
  line-height: 1.6;
}

.oe-order-contribution {
  max-width: 52rem;
  margin: 2rem 0;
  padding: 1.25rem 1.5rem;
  border-left: 4px solid var(--oe-brand-coral);
  background: var(--oe-surface-glass);
}

.oe-order-contribution h2 {
  margin: 0 0 0.5rem;
  color: var(--oe-navy);
  font-size: var(--ce-text-xl);
}

.oe-order-contribution p { margin: 0; }

.oe-order-confirmation__native {
  margin-top: 2rem;
}

.oe-order-confirmation__native > .woocommerce-notice {
  margin: 0 0 1.5rem;
  padding: 1rem 1.25rem;
  border: 1px solid var(--oe-border-soft);
  border-left: 4px solid var(--oe-brand-blue);
  background: var(--oe-surface-foam);
  color: var(--oe-navy);
}

.woocommerce-order-received .woocommerce-order-overview,
.oe-order-confirmation .woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: 1px;
  margin: 1.5rem 0 2rem;
  padding: 0;
  background: var(--oe-border-soft);
  list-style: none;
}

.woocommerce-order-received .woocommerce-order-overview li,
.oe-order-confirmation .woocommerce-order-overview li {
  margin: 0;
  padding: 1rem;
  border: 0;
  background: var(--oe-surface-foam);
  color: var(--ce-muted);
  font-size: var(--ce-text-xs);
}

.woocommerce-order-received .woocommerce-order-overview strong,
.oe-order-confirmation .woocommerce-order-overview strong {
  display: block;
  margin-top: 0.35rem;
  color: var(--oe-navy);
  font-size: var(--ce-text-sm);
}

.oe-order-confirmation :is(.woocommerce-order-details, .woocommerce-customer-details) {
  margin-top: clamp(2rem, 5vw, 4rem);
}

.oe-order-confirmation :is(.woocommerce-order-details__title, .woocommerce-column__title) {
  margin: 0 0 1rem;
  color: var(--oe-navy);
  font-family: var(--ce-font-display);
  font-size: var(--ce-text-2xl);
}

.oe-order-confirmation table.shop_table {
  width: 100%;
  max-width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  table-layout: fixed;
  background: var(--oe-surface-foam);
}

.oe-order-confirmation table.shop_table :is(th, td) {
  padding: 1rem;
  border: 0;
  border-bottom: 1px solid var(--oe-border-soft);
  text-align: left;
  vertical-align: top;
  overflow-wrap: break-word;
}

.oe-order-confirmation table.shop_table :is(th, td):last-child {
  text-align: right;
}

.oe-order-confirmation .woocommerce-customer-details .woocommerce-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--oe-grid-gap);
}

.oe-order-confirmation .woocommerce-customer-details address {
  min-height: 100%;
  padding: 1.25rem;
  border: 1px solid var(--oe-border-soft);
  border-radius: 0;
  background: var(--oe-surface-foam);
  line-height: 1.7;
}

.oe-order-confirmation__support {
  margin-top: clamp(2rem, 5vw, 4rem);
  padding: 1.5rem;
  border-top: 4px solid var(--oe-brand-coral);
  background: var(--oe-surface-glass);
}

.oe-order-confirmation__support h2 {
  margin: 0 0 1rem;
  color: var(--oe-navy);
  font-size: var(--ce-text-xl);
}

.oe-order-confirmation__support .oe-policy-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  margin: 0;
}

.oe-order-confirmation__support .oe-policy-list a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
}

.oe-order-confirmation :is(a, button):focus-visible {
  outline: 3px solid var(--oe-focus);
  outline-offset: 3px;
}

/* Search, maintained policy/contact pages, journal */
:is(.oe-search-page, .oe-content-page, .oe-journal-archive, .oe-journal-article) .content-area {
  padding-block: clamp(3rem, 8vw, 7rem);
}

:is(.oe-search-page, .oe-journal-archive) .site-main {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--oe-grid-gap);
}

:is(.oe-search-page, .oe-journal-archive) .page-header {
  grid-column: 1 / -1;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--oe-border-soft);
}

:is(.oe-search-page, .oe-journal-archive) article {
  min-width: 0;
  padding-bottom: 1.5rem;
  border-bottom: 2px solid var(--oe-brand-coral);
}

:is(.oe-search-page, .oe-journal-archive) article .post-thumbnail img {
  width: 100%;
  aspect-ratio: 16 / 10;
  background: var(--oe-surface-glass);
  object-fit: cover;
}

:is(.oe-search-page, .oe-journal-archive) article .entry-title {
  margin-top: 1rem;
  font-size: var(--ce-text-xl);
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.oe-search-page .no-results {
  grid-column: 1 / -1;
  padding: clamp(2rem, 6vw, 4rem);
  border-left: 4px solid var(--oe-brand-coral);
  background: var(--oe-surface-foam);
}

.oe-search-page .search-form {
  display: flex;
  gap: 0.65rem;
  margin-top: 1.5rem;
}

.oe-search-page .search-field {
  flex: 1;
  min-width: 0;
  min-height: 3.25rem;
  padding: 0.75rem 0.9rem;
  border: 1px solid var(--ce-line-navy);
  background: var(--oe-surface-foam);
}

.oe-content-page article,
.oe-journal-article article {
  max-width: 78rem;
  margin-inline: auto;
}

.oe-content-page .entry-content,
.oe-journal-article .entry-content {
  max-width: 72ch;
  color: var(--oe-ink);
  line-height: 1.78;
}

:is(.oe-content-page, .oe-journal-article) .entry-content :is(h2, h3, h4) {
  margin-top: 2em;
  margin-bottom: 0.65em;
}

:is(.oe-content-page, .oe-journal-article) .entry-content a {
  color: var(--oe-navy);
  text-decoration: underline;
  text-decoration-color: var(--oe-brand-coral);
  text-underline-offset: 0.2em;
}

:is(.oe-content-page, .oe-journal-article) .entry-content :is(ul, ol) {
  margin: 1rem 0;
  padding-left: 1.4rem;
  list-style: revert;
}

.oe-journal-article .entry-meta,
.oe-journal-archive .entry-meta {
  color: var(--ce-muted);
  font-size: var(--ce-text-xs);
}

/* Responsive */
@media (max-width: 1023px) {
  .oe-shop-archive ul.products,
  .oe-collection .oe-product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  :is(.oe-search-page, .oe-journal-archive) .site-main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .oe-checkout form.checkout {
    display: block;
  }

  .oe-checkout #order_review_heading {
    margin-top: 2.5rem;
  }

  .woocommerce-order-received .woocommerce-order-overview,
  .oe-order-confirmation .woocommerce-order-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .oe-cart table.cart :is(th, td).product-remove { width: 3.5rem; }
  .oe-cart table.cart :is(th, td).product-thumbnail { width: 7.5rem; }
  .oe-cart table.cart :is(th, td).product-price { width: 7.5rem; }
  .oe-cart table.cart :is(th, td).product-quantity { width: 7.5rem; }
  .oe-cart table.cart :is(th, td).product-subtotal { width: 8.5rem; }

  .oe-cart .product-name :is(.variation, dl.variation) {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }

  .oe-cart .product-name .variation dd {
    margin-bottom: 0.45rem;
  }
}

@media (max-width: 767px) {
  .oe-filter-panel {
    position: fixed;
    z-index: 71;
    inset: 0 0 0 auto;
    width: min(92vw, 27rem);
    max-height: none;
    padding: 1.25rem;
  }

  .oe-filter-panel__nav ul { grid-template-columns: 1fr; }

  .oe-shop-intro,
  .oe-collection-description {
    grid-template-columns: 1fr;
  }

  .oe-collection-description__inner { display: block; }

  .oe-shop-archive .woocommerce-result-count,
  .oe-shop-archive .woocommerce-ordering {
    float: none;
    width: min(calc(100% - (2 * var(--oe-gutter))), var(--oe-content));
  }

  .oe-shop-archive .woocommerce-ordering { margin-top: 0.75rem; }
  .oe-shop-archive .woocommerce-ordering select { width: 100%; }

  .oe-shop-archive ul.products,
  .oe-collection .oe-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .oe-related-collections__grid,
  .oe-archive-journal__grid,
  :is(.oe-search-page, .oe-journal-archive) .site-main {
    grid-template-columns: 1fr;
  }

  .oe-cart table.shop_table_responsive thead { display: none; }

  .oe-cart .woocommerce-cart-form,
  .oe-cart table.shop_table_responsive,
  .oe-cart table.shop_table_responsive tbody {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .oe-cart table.shop_table_responsive {
    table-layout: fixed;
  }

  .oe-cart table.cart :is(th, td).product-remove,
  .oe-cart table.cart :is(th, td).product-thumbnail,
  .oe-cart table.cart :is(th, td).product-price,
  .oe-cart table.cart :is(th, td).product-quantity,
  .oe-cart table.cart :is(th, td).product-subtotal {
    width: auto;
  }

  .oe-cart table.shop_table_responsive tr {
    display: grid;
    grid-template-columns: 5.5rem minmax(0, 1fr);
    padding: 1rem;
    border-bottom: 1px solid var(--oe-border-soft);
    width: 100%;
    min-width: 0;
  }

  .oe-cart table.shop_table_responsive td {
    display: block;
    grid-column: 2;
    padding: 0.45rem 0;
    border: 0;
    text-align: left !important;
    min-width: 0;
    overflow-wrap: break-word;
  }

  .oe-cart table.shop_table_responsive td::before {
    float: none;
    margin-right: 0.5rem;
  }

  .oe-cart table.shop_table_responsive .product-thumbnail {
    display: block;
    grid-column: 1;
    grid-row: 1 / 6;
    padding-right: 1rem;
  }

  .oe-cart table.shop_table_responsive .product-remove {
    grid-column: 2;
  }

  .oe-cart table.shop_table_responsive .oe-donation-cart-row {
    grid-template-columns: 1fr;
  }

  .oe-cart table.shop_table_responsive .oe-donation-cart-row :is(.product-remove, .product-thumbnail) {
    display: none;
  }

  .oe-cart table.shop_table_responsive .oe-donation-cart-row td {
    grid-column: 1;
  }

  .oe-cart .product-name :is(.variation, dl.variation) {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }

  .oe-cart .product-name .variation dd {
    margin-bottom: 0.45rem;
  }

  .oe-cart table.cart td.actions,
  .oe-cart table.shop_table_responsive tr:last-child {
    display: block;
  }

  .oe-cart table.cart .coupon {
    display: grid;
    grid-template-columns: 1fr;
    margin-bottom: 0.75rem;
  }

  .oe-cart table.cart .coupon .input-text {
    width: 100%;
    min-width: 0;
  }

  .oe-cart table.shop_table_responsive .product-quantity::before {
    display: block;
    margin: 0 0 0.4rem;
  }

  .oe-cart table.shop_table_responsive .product-quantity .quantity {
    display: block;
  }

  .oe-cart table.cart td.actions > .button { width: 100%; }

  .oe-cart .cart-collaterals,
  .oe-account-page .woocommerce {
    display: block;
  }

  .oe-cart .cart_totals {
    width: 100%;
    margin-top: 2rem;
  }

  .oe-account-page .woocommerce-MyAccount-navigation { margin-bottom: 2rem; }

  .oe-order-confirmation .woocommerce-customer-details .woocommerce-columns {
    grid-template-columns: 1fr;
  }

  .oe-related-collections,
  .oe-archive-journal {
    width: 100%;
    margin-left: 0;
  }
}

@media (max-width: 600px) {
  .oe-checkout #order_review table.shop_table {
    table-layout: auto;
  }

  .oe-checkout #order_review table.shop_table tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .oe-checkout #order_review table.shop_table :is(th, td),
  .oe-checkout #order_review table.shop_table :is(th, td):last-child {
    width: auto;
    padding: 0.65rem 0.75rem;
    text-align: left;
  }

  .oe-checkout #order_review table.shop_table :is(th, td):last-child {
    padding-top: 0;
  }
}

@media (max-width: 480px) {
  :is(.oe-shop-archive, .oe-cart, .oe-checkout, .oe-account-page) .woocommerce,
  :is(.oe-search-page, .oe-content-page, .oe-journal-archive, .oe-journal-article) .content-area,
  .oe-shop-archive .woocommerce-products-header,
  .oe-shop-archive .woocommerce-notices-wrapper,
  .oe-shop-archive .oe-shop-tools,
  .oe-shop-archive .woocommerce-result-count,
  .oe-shop-archive .woocommerce-ordering,
  .oe-shop-archive .products,
  .oe-shop-archive .woocommerce-pagination,
  .oe-shop-archive .woocommerce-info,
  .oe-collection .oe-container,
  .oe-collection .oe-col-hero__content {
    width: calc(100% - 2rem);
  }

  .oe-shop-archive ul.products,
  .oe-collection .oe-product-grid {
    grid-template-columns: 1fr;
  }

  .oe-shop-archive ul.products li.product a img,
  .oe-collection .oe-product-card__img {
    aspect-ratio: 1 / 1.1;
  }

  .oe-checkout #order_review table.shop_table :is(th, td) {
    padding-inline: 0.5rem;
  }

  .woocommerce-order-received .woocommerce-order-overview,
  .oe-order-confirmation .woocommerce-order-overview {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .oe-collection.oe-reveal-ready .oe-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .oe-shop-archive ul.products li.product a img,
  .oe-shop-archive ul.products li.product:hover a img,
  .oe-collection .oe-product-card__img img,
  .oe-collection .oe-product-card:hover .oe-product-card__img img {
    transform: none;
    transition: none;
  }

  .oe-checkout :is(.button, .oe-tier-btn, .oe-contribution-remove),
  .oe-order-confirmation :is(a, button) {
    transition: none;
  }
}

/* Maintained narrative templates still use a small set of pre-restoration
   token names in inline declarations. Scope their values to the approved
   Oceaneros 1.0 system so these pages do not depend on dormant legacy CSS. */
:is(.oe-mission, .oe-impact-wall) {
  --oe-deep: var(--oe-surface-abyss);
  --oe-mid: var(--oe-navy);
  --oe-dark: var(--oe-navy-deep);
  --oe-blue-dark: var(--oe-brand-blue);
  --oe-coral-lt: var(--oe-brand-coral);
  --oe-muted: rgba(247, 244, 236, 0.78);
  --oe-line: rgba(247, 244, 236, 0.24);
  --oe-font-display: var(--ce-font-display);
  --oe-font-body: var(--ce-font-ui);
  --oe-font-ui: var(--ce-font-ui);
  --oe-text-xs: var(--ce-text-xs);
  --oe-text-sm: var(--ce-text-sm);
  --oe-text-base: var(--ce-text-base);
  --oe-text-lg: var(--ce-text-lg);
  --oe-text-2xl: var(--ce-text-2xl);
  --oe-text-3xl: var(--ce-text-3xl);
  --oe-text-4xl: var(--ce-text-4xl);
  --oe-text-hero: var(--ce-text-hero);
  --oe-leading-tight: var(--ce-leading-tight);
  --oe-leading-normal: var(--ce-leading-normal);
  --oe-space-4: var(--ce-space-4);
  color: var(--oe-cream);
  font-family: var(--ce-font-ui);
}

:is(.oe-mission, .oe-impact-wall) :is(.ce-btn, a, button):focus-visible {
  outline: 3px solid var(--oe-cream);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .oe-impact-wall .oe-iw-creatures span {
    animation: none !important;
  }
}
