/*
WooCommerce — archive, product, cart, checkout, account
*/

.coat-commerce-main {
  min-height: 60vh;
  padding-bottom: 90px;
}

.coat-commerce-wrap {
  width: min(calc(100% - 48px), var(--coat-wrap));
  margin-inline: auto;
}

.coat-shop-heading {
  padding: 50px 0 34px;
}

.coat-shop-heading .woocommerce-breadcrumb {
  margin: 0 0 20px;
  color: var(--coat-muted);
  font-size: 11px;
}

.coat-shop-heading .woocommerce-breadcrumb a {
  color: inherit;
  text-decoration: none;
}

.coat-shop-heading h1 {
  margin: 0;
  font-size: clamp(42px, 6vw, 76px);
  font-weight: 500;
  line-height: .95;
  letter-spacing: -.06em;
}

.coat-shop-toolbar {
  position: sticky;
  top: var(--coat-header-height);
  z-index: 30;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  min-height: 62px;
  margin-bottom: 38px;
  border-top: 1px solid var(--coat-line);
  border-bottom: 1px solid var(--coat-line);
  background: rgba(244, 241, 235, .96);
  backdrop-filter: blur(10px);
}

.admin-bar .coat-shop-toolbar {
  top: calc(var(--coat-header-height) + 32px);
}

.coat-shop-toolbar__left,
.coat-shop-toolbar__right {
  display: flex;
  align-items: center;
  gap: 17px;
}

.coat-toolbar-button {
  padding: 0;
  border: 0;
  border-bottom: 1px solid transparent;
  background: transparent;
  color: var(--coat-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.coat-toolbar-button:hover,
.coat-toolbar-button.is-active {
  border-color: var(--coat-ink);
  color: var(--coat-ink);
}

.coat-shop-toolbar .woocommerce-result-count {
  margin: 0;
  color: var(--coat-muted);
  font-size: 10px;
}

.coat-shop-toolbar .woocommerce-ordering {
  margin: 0;
}

.coat-shop-toolbar .orderby {
  min-height: 38px;
  padding: 0 24px 0 0;
  border: 0;
  border-bottom: 1px solid var(--coat-line);
  border-radius: 0;
  background: transparent;
  color: var(--coat-ink);
  font-size: 10px;
  font-weight: 600;
}

.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 50px 12px !important;
  margin: 0 !important;
  padding: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none !important;
}

.woocommerce ul.products.coat-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  width: auto !important;
  min-width: 0;
  float: none !important;
  margin: 0 !important;
}

.coat-product-card__link {
  display: block;
  color: var(--coat-ink);
  text-decoration: none;
}

.coat-product-card__media {
  position: relative;
  aspect-ratio: 4 / 5;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--coat-soft);
  transition: background-color 280ms ease;
}

.coat-product-card__image {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  transition:
    opacity 300ms ease,
    transform 580ms var(--coat-ease);
}

.coat-product-card__image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

.coat-product-card__image--secondary {
  opacity: 0;
}

.coat-product-card:hover .coat-product-card__image--primary {
  opacity: 0;
}

.coat-product-card:hover .coat-product-card__image--secondary {
  opacity: 1;
}

.coat-product-card:hover .coat-product-card__image {
  transform: scale(1.018);
}

.coat-product-card__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 3;
  padding: 7px 9px;
  background: #fff;
  color: var(--coat-ink);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.coat-product-card__info {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 15px;
  padding-top: 11px;
}

.coat-product-card__name,
.coat-product-card__right {
  font-size: 11px;
  line-height: 1.4;
}

.coat-product-card__name {
  font-weight: 600;
}

.coat-product-card__right {
  color: var(--coat-muted);
  text-align: right;
}

.coat-product-card__right del {
  display: none;
}

.coat-product-card__right ins {
  text-decoration: none;
}

.coat-product-card__colors {
  display: block;
  padding-top: 4px;
  color: var(--coat-muted);
  font-size: 10px;
}

.coat-pagination-source {
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.coat-infinite-loader {
  min-height: 90px;
  display: grid;
  place-items: center;
  color: var(--coat-muted);
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: 0;
}

.coat-infinite-loader.is-visible {
  opacity: 1;
}

.coat-filter-drawer {
  position: fixed;
  inset: 0;
  z-index: 100;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 220ms ease, visibility 220ms ease;
}

.coat-filter-drawer.is-open {
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
}

.coat-drawer-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  border: 0;
  background: rgba(0,0,0,.42);
}

.coat-filter-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  width: min(520px, 100%);
  height: 100%;
  overflow-y: auto;
  padding-bottom: 40px;
  background: #fff;
  transform: translateX(100%);
  transition: transform 320ms var(--coat-ease);
}

.coat-filter-drawer.is-open .coat-filter-drawer__panel {
  transform: none;
}

.coat-filter-drawer__panel header {
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 28px;
  border-bottom: 1px solid var(--coat-line);
}

.coat-filter-drawer__panel h2 {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.coat-filter-drawer__widgets {
  padding: 10px 28px;
}

.coat-filter-widget {
  padding: 24px 0;
  border-bottom: 1px solid var(--coat-line);
}

.coat-filter-widget__title {
  margin: 0 0 15px;
  font-size: 11px;
  font-weight: 600;
}

.coat-filter-widget ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.coat-filter-widget li {
  margin: 8px 0;
  font-size: 12px;
}

.coat-filter-widget a {
  color: var(--coat-muted);
  text-decoration: none;
}

/* Single product */

.coat-single-product {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(390px, .8fr);
  gap: clamp(42px, 7vw, 105px);
  align-items: start;
  padding-top: 28px;
}

.coat-single-product__gallery {
  min-width: 0;
}

.coat-gallery-stage {
  position: sticky;
  top: calc(var(--coat-header-height) + 22px);
  min-height: 560px;
  height: calc(100svh - var(--coat-header-height) - 48px);
  max-height: 790px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #f0efec;
  transition: background-color 280ms ease;
}

.admin-bar .coat-gallery-stage {
  top: calc(var(--coat-header-height) + 54px);
}

.coat-gallery-stage .woocommerce-product-gallery {
  width: 100% !important;
  height: 100%;
  margin: 0 !important;
  float: none !important;
}

.coat-gallery-stage .flex-viewport,
.coat-gallery-stage .woocommerce-product-gallery__wrapper,
.coat-gallery-stage .woocommerce-product-gallery__image,
.coat-gallery-stage .woocommerce-product-gallery__image a {
  height: 100% !important;
}

.coat-gallery-stage .woocommerce-product-gallery__wrapper {
  margin: 0 !important;
}

.coat-gallery-stage .woocommerce-product-gallery__image {
  display: grid !important;
  place-items: center;
  background: #f0efec;
}

.coat-gallery-stage .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: 100% !important;
  max-height: 100%;
  display: block;
  object-fit: contain;
}

.coat-gallery-stage .flex-control-thumbs {
  position: absolute;
  bottom: 18px;
  left: 20px;
  z-index: 5;
  display: flex;
  gap: 5px;
  margin: 0 !important;
}

.coat-gallery-stage .flex-control-thumbs li {
  width: 42px !important;
  margin: 0 !important;
}

.coat-gallery-stage .flex-control-thumbs img {
  width: 42px;
  height: 52px;
  border: 1px solid transparent;
  object-fit: contain;
  background: #fff;
  opacity: .62;
}

.coat-gallery-stage .flex-control-thumbs img.flex-active {
  border-color: var(--coat-ink);
  opacity: 1;
}

.coat-gallery-stage .woocommerce-product-gallery__trigger {
  top: 16px !important;
  right: 16px !important;
  z-index: 6;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid var(--coat-line);
  border-radius: 0;
  background: rgba(255,255,255,.9);
}

.coat-gallery-arrow {
  position: absolute;
  top: 50%;
  z-index: 7;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid var(--coat-line);
  background: rgba(255,255,255,.92);
  color: var(--coat-ink);
  cursor: pointer;
  transform: translateY(-50%);
}

.coat-gallery-arrow svg {
  width: 20px;
  height: 20px;
}

.coat-gallery-arrow--prev {
  left: 16px;
}

.coat-gallery-arrow--next {
  right: 16px;
}

.coat-gallery-count {
  position: absolute;
  right: 20px;
  bottom: 18px;
  z-index: 5;
  color: var(--coat-muted);
  font-size: 10px;
  letter-spacing: .08em;
}

.coat-single-product__summary {
  min-width: 0;
  padding-top: 8px;
}

.coat-product-summary__top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: start;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--coat-line);
}

.coat-product-summary__top .product_title {
  margin: 0 !important;
  font-family: var(--coat-ui) !important;
  font-size: clamp(26px, 3vw, 38px) !important;
  font-weight: 500 !important;
  line-height: 1.05 !important;
  letter-spacing: -.035em;
}

.coat-product-summary__price {
  color: var(--coat-ink);
  font-size: 13px;
  text-align: right;
  white-space: nowrap;
}

.coat-product-summary__price .price {
  margin: 0 !important;
  font-size: inherit !important;
}

.coat-product-summary__price del {
  color: var(--coat-muted);
}

.coat-product-summary__price ins {
  text-decoration: none;
}

.coat-product-sku {
  margin: 13px 0 0;
  color: var(--coat-muted);
  font-size: 10px;
}

.coat-product-summary__excerpt {
  margin-top: 28px;
  color: var(--coat-ink);
  font-size: 13px;
  line-height: 1.65;
}

.coat-product-summary__excerpt > :first-child {
  margin-top: 0;
}

.coat-product-summary__excerpt > :last-child {
  margin-bottom: 0;
}

.coat-product-purchase {
  margin-top: 26px;
}

.coat-product-purchase table.variations {
  width: 100%;
  margin: 0 0 22px;
  border-collapse: collapse;
}

.coat-product-purchase table.variations tr {
  display: block;
  margin-bottom: 24px;
}

.coat-product-purchase table.variations th,
.coat-product-purchase table.variations td {
  display: block;
  width: 100%;
  padding: 0;
  text-align: left;
}

.coat-product-purchase table.variations th {
  margin-bottom: 9px;
}

.coat-product-purchase table.variations th label {
  font-size: 11px;
  font-weight: 500;
}

.coat-product-purchase table.variations select {
  width: 100%;
  min-height: 44px;
  border: 0;
  border-bottom: 1px solid var(--coat-line);
  border-radius: 0;
  background: transparent;
}

.coat-option-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 10px;
}

.coat-option-heading__label {
  font-size: 11px;
}

.coat-option-heading__value {
  margin-right: auto;
  color: var(--coat-muted);
  font-size: 11px;
}

.coat-option-heading .coat-size-guide-trigger {
  margin: 0;
}

.coat-native-select-enhanced {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
}

.coat-variation-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.coat-variation-option {
  position: relative;
  min-width: 42px;
  min-height: 38px;
  padding: 7px 11px;
  border: 0;
  border-bottom: 1px solid transparent;
  background: transparent;
  color: var(--coat-ink);
  font-size: 11px;
  cursor: pointer;
}

.coat-variation-option:hover,
.coat-variation-option.is-selected {
  border-color: var(--coat-ink);
}

.coat-variation-option:disabled {
  color: #bbb;
  text-decoration: line-through;
  cursor: not-allowed;
}

.coat-variation-options--color {
  gap: 10px;
}

.coat-variation-options--color .coat-variation-option {
  width: 30px;
  min-width: 30px;
  height: 30px;
  min-height: 30px;
  padding: 0;
  border: 1px solid var(--coat-line);
  background: var(--coat-swatch, #ddd);
  text-indent: -9999px;
}

.coat-variation-options--color .coat-variation-option::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1px solid transparent;
}

.coat-variation-options--color .coat-variation-option.is-selected::after {
  border-color: var(--coat-ink);
}

.coat-product-purchase .reset_variations {
  display: inline-block;
  margin-top: 10px;
  color: var(--coat-muted);
  font-size: 10px;
}

.coat-product-purchase .single_variation_wrap {
  margin-top: 18px;
}

.coat-product-purchase .woocommerce-variation-price {
  margin-bottom: 14px;
  font-size: 13px;
}

.coat-product-purchase form.cart:not(.variations_form),
.coat-product-purchase .woocommerce-variation-add-to-cart {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 10px;
}

.coat-product-purchase .quantity {
  width: 100%;
}

.coat-product-purchase .quantity input {
  width: 100%;
  min-height: 50px;
  border: 1px solid var(--coat-line);
  border-radius: 0;
  background: transparent;
}

.coat-product-purchase .single_add_to_cart_button {
  min-height: 50px;
  border: 1px solid var(--coat-ink) !important;
  border-radius: 0 !important;
  background: var(--coat-ink) !important;
  color: #fff !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  text-transform: none !important;
}

.coat-product-purchase .single_add_to_cart_button:hover {
  background: transparent !important;
  color: var(--coat-ink) !important;
}

.coat-size-guide-trigger {
  display: inline-block;
  margin: 18px 0 0;
  padding: 0 0 3px;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: var(--coat-ink);
  font-size: 10px;
  font-weight: 600;
  cursor: pointer;
}

.coat-shipping-note {
  margin: 22px 0 0;
  padding: 14px 0;
  border-top: 1px solid var(--coat-line);
  color: var(--coat-muted);
  font-size: 11px;
}

.coat-product-accordions {
  margin-top: 0;
  border-top: 1px solid var(--coat-line);
}

.coat-product-accordions details {
  border-bottom: 1px solid var(--coat-line);
}

.coat-product-accordions summary {
  position: relative;
  padding: 18px 34px 18px 0;
  font-size: 11px;
  list-style: none;
  cursor: pointer;
}

.coat-product-accordions summary::-webkit-details-marker {
  display: none;
}

.coat-product-accordions summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 0;
  font-size: 18px;
  transform: translateY(-50%);
}

.coat-product-accordions details[open] summary::after {
  content: "−";
}

.coat-product-accordions__content,
.coat-product-accordions details > div {
  padding: 0 0 20px;
  color: var(--coat-muted);
  font-size: 12px;
  line-height: 1.7;
}

.coat-single-product__after {
  padding-top: 90px;
}

.coat-single-product__after .related.products {
  margin: 0;
}

.coat-single-product__after .related.products > h2 {
  margin: 0 0 28px;
  font-size: clamp(29px, 4vw, 46px);
  font-weight: 500;
  letter-spacing: -.04em;
}

.coat-size-drawer {
  position: fixed;
  inset: 0;
  z-index: 110;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 220ms ease, visibility 220ms ease;
}

.coat-size-drawer.is-open {
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
}

.coat-size-drawer__backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  border: 0;
  background: rgba(0,0,0,.38);
}

.coat-size-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  width: min(780px, 58vw);
  height: 100%;
  overflow-y: auto;
  padding: 30px 32px 45px;
  background: #fff;
  transform: translateX(100%);
  transition: transform 340ms var(--coat-ease);
}

.coat-size-drawer.is-open .coat-size-drawer__panel {
  transform: none;
}

.coat-size-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 36px;
}

.coat-size-drawer__header h2 {
  margin: 0;
  font-family: var(--coat-display);
  font-size: 27px;
  font-weight: 400;
  font-style: italic;
}

.coat-size-drawer__grid {
  display: grid;
  grid-template-columns: 145px minmax(0, 1fr);
  gap: 24px;
}

.coat-size-drawer__visual {
  min-height: 250px;
  display: grid;
  place-items: center;
  background: var(--coat-soft);
}

.coat-size-drawer__visual:empty {
  display: none;
}

.coat-size-drawer__visual img {
  width: 100%;
  height: 100%;
  max-height: 430px;
  object-fit: contain;
}

.coat-size-drawer__fit {
  margin: 0 0 6px;
  color: var(--coat-muted);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.coat-size-drawer__note {
  color: var(--coat-muted);
  font-size: 12px;
}

.coat-size-units {
  display: flex;
  gap: 18px;
  margin: 25px 0 16px;
}

.coat-size-units button {
  padding: 0 0 4px;
  border: 0;
  border-bottom: 1px solid transparent;
  background: transparent;
  color: var(--coat-muted);
  font-size: 10px;
  cursor: pointer;
}

.coat-size-units button.is-active {
  border-color: var(--coat-ink);
  color: var(--coat-ink);
}

.coat-size-table-wrap {
  overflow-x: auto;
}

.coat-size-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  border-collapse: collapse;
}

.coat-size-table th,
.coat-size-table td {
  padding: 12px 7px;
  border-bottom: 1px solid var(--coat-line);
  color: var(--coat-muted);
  font-size: 11px;
  text-align: left;
}

.coat-size-table thead th,
.coat-size-table tbody th {
  color: var(--coat-ink);
  font-weight: 600;
}

.coat-size-drawer__full-guide {
  display: none;
  margin-top: 18px;
  color: var(--coat-ink);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-transform: uppercase;
}

/* Cart, checkout, account */

.woocommerce-cart .coat-commerce-wrap,
.woocommerce-checkout .coat-commerce-wrap,
.woocommerce-account .coat-commerce-wrap {
  padding-top: 60px;
}

.woocommerce table.shop_table {
  border: 0;
  border-collapse: collapse;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  padding: 17px 12px;
  border-color: var(--coat-line);
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  min-height: 46px;
  padding: 12px 20px;
  border: 1px solid var(--coat-ink);
  border-radius: 0;
  background: var(--coat-ink);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  background: transparent;
  color: var(--coat-ink);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  min-height: 48px;
  border: 0;
  border-bottom: 1px solid var(--coat-line);
  border-radius: 0;
  background: transparent;
}

.coat-mobile-buy-bar {
  display: none;
}



/* Only one archive breadcrumb is rendered by WooCommerce. */
.coat-commerce-wrap > .woocommerce-breadcrumb {
  margin: 14px 0 0;
  color: var(--coat-muted);
  font-size: 11px;
}

.coat-shop-heading {
  padding-top: 64px;
}

/* Khaite-style archive toolbar: Filter | Sort by. */
.coat-shop-toolbar {
  justify-content: flex-end;
  min-height: 58px;
}

.coat-shop-toolbar__left {
  display: none;
}

.coat-shop-toolbar__right {
  width: 100%;
  justify-content: flex-end;
  gap: 16px;
}

.coat-toolbar-button--filter {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border-bottom: 0;
  color: var(--coat-ink);
  font-size: 11px;
  text-transform: none;
}

.coat-toolbar-button--filter span {
  min-width: 17px;
  height: 17px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--coat-ink);
  color: #fff;
  font-size: 9px;
}

.coat-toolbar-divider {
  width: 1px;
  height: 18px;
  background: var(--coat-line);
}

.coat-toolbar-sort {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 11px;
}

.coat-toolbar-sort .woocommerce-ordering {
  margin: 0;
}

.coat-toolbar-sort .orderby {
  min-height: 34px;
  padding: 0 22px 0 0;
  border-bottom: 0;
  font-size: 11px;
}

/* Built-in filter drawer. */
.coat-filter-drawer__panel {
  width: min(560px, 100%);
  padding-bottom: 0;
}

.coat-filter-form {
  min-height: calc(100% - 76px);
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
}

.coat-filter-drawer__widgets {
  padding: 4px 28px 40px;
}

.coat-filter-group {
  border-bottom: 1px solid var(--coat-line);
}

.coat-filter-group summary {
  position: relative;
  padding: 20px 30px 20px 0;
  font-size: 12px;
  list-style: none;
  cursor: pointer;
}

.coat-filter-group summary::-webkit-details-marker {
  display: none;
}

.coat-filter-group summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 0;
  font-size: 16px;
  transform: translateY(-50%);
}

.coat-filter-group[open] summary::after {
  content: "−";
}

.coat-filter-group__body {
  display: grid;
  gap: 12px;
  padding: 0 0 20px;
}

.coat-filter-choice {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  color: var(--coat-muted);
  font-size: 12px;
  cursor: pointer;
}

.coat-filter-choice input {
  width: 15px;
  height: 15px;
  margin: 0;
  accent-color: var(--coat-ink);
}

.coat-filter-choice small {
  color: #999;
  font-size: 10px;
}

.coat-filter-view-options {
  display: flex;
  gap: 18px;
  padding: 0 0 22px;
}

.coat-filter-view-options button {
  width: 42px;
  height: 34px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: #aaa;
  cursor: pointer;
}

.coat-filter-view-options button.is-active,
.coat-filter-view-options button[aria-pressed="true"] {
  color: var(--coat-ink);
}

.coat-grid-icon {
  width: 30px;
  height: 18px;
  display: grid;
  gap: 2px;
}

.coat-grid-icon::before {
  content: "";
  display: block;
  background: repeating-linear-gradient(90deg, currentColor 0 5px, transparent 5px 7px);
}

.coat-grid-icon--4::before {
  height: 18px;
  background:
    repeating-linear-gradient(90deg, currentColor 0 5px, transparent 5px 7px),
    repeating-linear-gradient(0deg, currentColor 0 5px, transparent 5px 7px);
}

.coat-grid-icon--2::before {
  height: 18px;
  background:
    repeating-linear-gradient(90deg, currentColor 0 13px, transparent 13px 17px),
    repeating-linear-gradient(0deg, currentColor 0 7px, transparent 7px 11px);
}

.coat-filter-drawer__footer {
  position: sticky;
  bottom: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 18px 28px calc(18px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--coat-line);
  background: #fff;
}

.coat-filter-clear,
.coat-filter-apply {
  min-height: 48px;
  border: 1px solid var(--coat-ink);
  border-radius: 0;
  font-size: 11px;
  cursor: pointer;
}

.coat-filter-clear {
  background: transparent;
  color: var(--coat-ink);
}

.coat-filter-apply {
  background: var(--coat-ink);
  color: #fff;
}

/* Product summary. */
.coat-product-purchase table.variations th[hidden] {
  display: none !important;
}

.coat-product-summary__price,
.coat-product-summary__price .price {
  font-size: 16px !important;
  font-weight: 500;
}

.coat-product-purchase form.cart:not(.variations_form),
.coat-product-purchase .woocommerce-variation-add-to-cart {
  grid-template-columns: minmax(0, 1fr);
}

.coat-product-purchase .quantity {
  display: none !important;
}

.coat-variation-options--color {
  gap: 8px;
}

.coat-variation-options--color .coat-variation-option {
  width: 42px;
  min-width: 42px;
  height: 25px;
  min-height: 25px;
}

.coat-variation-options--color .coat-variation-option::after {
  inset: 3px;
}

/* Hide the small zoom badge; the full image remains clickable. */
.coat-gallery-stage .woocommerce-product-gallery__trigger {
  display: none !important;
}

.coat-gallery-stage .woocommerce-product-gallery__image a {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  cursor: zoom-in;
}

.pswp {
  z-index: 999999 !important;
}

.pswp__button--close {
  position: fixed !important;
  top: 16px !important;
  right: 16px !important;
}

/* Product size guide: chart only, with a link to the diagram page. */
.coat-size-drawer__panel {
  width: min(680px, 54vw);
}

.coat-size-drawer__grid {
  display: block;
}

.coat-size-drawer__visual {
  display: none !important;
}

.coat-size-drawer__content {
  width: 100%;
}

.coat-size-drawer .coat-size-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}

.coat-size-drawer .coat-size-table th,
.coat-size-drawer .coat-size-table td {
  padding: 13px 8px;
  white-space: nowrap;
}

.coat-size-drawer__full-guide {
  display: inline-block;
  margin-top: 24px;
  padding-bottom: 3px;
  border-bottom: 1px solid currentColor;
  color: var(--coat-ink);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
}

/* Compact commerce page headings. */
.coat-cart-page,
.coat-account-page {
  min-height: 65vh;
  padding: 0 0 100px;
  background: #fff;
}

.coat-commerce-page-heading {
  padding: clamp(54px, 7vw, 92px) 0 38px;
  border-bottom: 1px solid var(--coat-line);
}

.coat-commerce-page-heading h1 {
  margin: 0;
  font-size: clamp(38px, 5vw, 66px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.055em;
}

.coat-commerce-page-heading > p:last-child:not(.coat-kicker) {
  max-width: 520px;
  margin: 16px 0 0;
  color: var(--coat-muted);
  font-size: 14px;
}

/* Classic WooCommerce cart, used by page-cart.php. */
.coat-cart-page .woocommerce {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, .72fr);
  gap: clamp(45px, 8vw, 110px);
  align-items: start;
  padding-top: 42px;
}

.coat-cart-page .woocommerce-notices-wrapper,
.coat-cart-page .woocommerce-message,
.coat-cart-page .woocommerce-info,
.coat-cart-page .woocommerce-error {
  grid-column: 1 / -1;
}

.coat-cart-page .woocommerce-cart-form {
  grid-column: 1;
}

.coat-cart-page .cart-collaterals {
  grid-column: 2;
  grid-row: 2 / span 2;
  position: sticky;
  top: calc(var(--coat-header-height) + 28px);
  width: 100%;
}

.coat-cart-page .cart-collaterals .cart_totals {
  width: 100%;
  float: none;
  padding: 28px;
  border: 1px solid var(--coat-line);
  background: var(--coat-bg);
}

.coat-cart-page .cart-collaterals h2 {
  margin: 0 0 18px;
  font-size: 22px;
  font-weight: 500;
}

.coat-cart-page table.shop_table {
  width: 100%;
  background: transparent;
}

.coat-cart-page table.shop_table thead th {
  padding-top: 0;
  color: var(--coat-muted);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.coat-cart-page .product-thumbnail {
  width: 120px;
}

.coat-cart-page .product-thumbnail a {
  width: 96px;
  height: 120px;
  display: grid;
  place-items: center;
  background: var(--coat-soft);
}

.coat-cart-page .product-thumbnail img,
.coat-cart-page .coat-cart-product-image {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
}

.coat-cart-page .product-name a {
  font-size: 14px;
}

.coat-cart-page .product-name .variation {
  margin-top: 7px;
  color: var(--coat-muted);
  font-size: 11px;
}

.coat-cart-page .product-quantity .quantity {
  width: 104px;
}

.coat-cart-page .product-quantity input.qty {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--coat-line);
  background: #fff;
}

.coat-cart-page td.actions {
  padding: 24px 0 !important;
}

.coat-cart-page .coupon {
  display: flex;
  gap: 8px;
}

.coat-cart-page .coupon input.input-text {
  min-width: 220px;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid var(--coat-line);
  background: #fff;
}

.coat-cart-page .wc-proceed-to-checkout a.checkout-button {
  width: 100%;
  min-height: 52px;
  display: grid;
  place-items: center;
  margin: 18px 0 0;
  font-size: 12px;
  text-transform: none;
}

/* Account and login — no membership plugin required. */
.coat-account-shell {
  padding-top: 42px;
}

.coat-account-page .woocommerce {
  width: 100%;
}

.coat-account-page .woocommerce-form-login,
.coat-account-page .woocommerce-form-register {
  max-width: 720px;
  margin: 0;
  padding: clamp(25px, 4vw, 48px);
  border: 1px solid var(--coat-line);
  border-radius: 0;
  background: #fff;
}

.coat-account-page .woocommerce-form-login h2,
.coat-account-page .woocommerce-form-register h2,
.coat-account-page .u-column1 h2,
.coat-account-page .u-column2 h2 {
  margin: 0 0 24px;
  font-size: 26px;
  font-weight: 500;
}

.coat-account-page .woocommerce form .form-row {
  margin: 0 0 22px;
}

.coat-account-page .woocommerce form .form-row label {
  color: var(--coat-muted);
  font-size: 11px;
}

.coat-account-page .woocommerce form .form-row input.input-text {
  min-height: 50px;
  padding: 8px 0;
  border-bottom-color: var(--coat-ink);
}

.coat-account-page .woocommerce-form-login__submit,
.coat-account-page .woocommerce-form-register__submit {
  min-width: 150px;
}

.coat-account-page .woocommerce-LostPassword {
  margin-top: 18px;
  font-size: 12px;
}

.coat-account-page .col2-set {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.coat-account-page .col2-set .col-1,
.coat-account-page .col2-set .col-2 {
  width: auto;
  float: none;
}

.coat-account-page .woocommerce-MyAccount-navigation {
  width: 240px;
  float: left;
}

.coat-account-page .woocommerce-MyAccount-navigation ul {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--coat-line);
}

.coat-account-page .woocommerce-MyAccount-navigation li {
  border-bottom: 1px solid var(--coat-line);
}

.coat-account-page .woocommerce-MyAccount-navigation a {
  display: block;
  padding: 14px 0;
  font-size: 12px;
  text-decoration: none;
}

.coat-account-page .woocommerce-MyAccount-content {
  width: calc(100% - 300px);
  float: right;
  padding: 0 0 40px;
}

/* V1.2 account authentication cards. */
.coat-cart-page .coat-commerce-wrap,
.coat-account-page .coat-commerce-wrap {
  padding-top: 0 !important;
}

.coat-auth-grid {
  display: grid;
  grid-template-columns: minmax(0, 720px);
  gap: 22px;
}

.coat-auth-grid--register {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.coat-auth-card {
  padding: clamp(28px, 4vw, 50px);
  border: 1px solid var(--coat-line);
  background: #fff;
}

.coat-auth-card h2 {
  margin: 0 0 30px;
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 500;
  letter-spacing: -.035em;
}

.coat-auth-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 8px;
}

.coat-auth-actions .woocommerce-form-login__rememberme {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--coat-muted);
  font-size: 12px;
}

.coat-auth-note {
  color: var(--coat-muted);
  font-size: 12px;
}

.coat-account-page .woocommerce-privacy-policy-text {
  color: var(--coat-muted);
  font-size: 11px;
}

.coat-cart-page .cart-empty,
.coat-cart-page .return-to-shop {
  grid-column: 1 / -1;
}



/* The product gallery is a normal document-flow stack. No slider viewport,
   click-to-zoom layer, fixed crop, or internal scroll container is used. */
.coat-single-product__gallery {
  position: relative;
  min-width: 0;
}

.coat-gallery-stage {
  position: relative !important;
  top: auto !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  display: block !important;
  overflow: visible !important;
  background: transparent !important;
}

.admin-bar .coat-gallery-stage {
  top: auto !important;
}

.coat-gallery-stack {
  display: grid;
  gap: 1px;
  padding-left: 24px;
}

.coat-gallery-item {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 240px;
  display: grid;
  place-items: center;
  margin: 0;
  overflow: hidden;
  background: #f0efec;
}

.coat-gallery-image {
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: none;
  display: block;
  object-fit: contain;
  object-position: center;
  image-rendering: auto;
}

/* Khaite-style vertical gallery position rail. */
.coat-gallery-rail {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 4;
  width: 24px;
  pointer-events: none;
}

.coat-gallery-rail__inner {
  position: sticky;
  top: calc(var(--coat-header-height) + 42px);
  width: 24px;
  height: calc(100svh - var(--coat-header-height) - 84px);
  min-height: 260px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.admin-bar .coat-gallery-rail__inner {
  top: calc(var(--coat-header-height) + 74px);
  height: calc(100svh - var(--coat-header-height) - 116px);
}

.coat-gallery-rail__track {
  position: relative;
  width: 17px;
  height: min(250px, 42svh);
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  pointer-events: auto;
  cursor: pointer;
}

.coat-gallery-rail__track::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 8px;
  width: 1px;
  background: rgba(21, 21, 21, .18);
}

.coat-gallery-rail__thumb {
  --coat-gallery-progress: 0;
  position: absolute;
  top: 0;
  left: 8px;
  width: 1px;
  height: 34px;
  background: var(--coat-ink);
  transform: translateY(calc((min(250px, 42svh) - 34px) * var(--coat-gallery-progress)));
  transition: transform 260ms var(--coat-ease);
}

.coat-gallery-rail__count {
  color: var(--coat-muted);
  font-size: 8px;
  letter-spacing: .08em;
  writing-mode: vertical-rl;
}

/* The right panel stays available while the page itself scrolls. There is no
   internal overflow, so the mouse wheel works from either side of the page. */
.coat-single-product__summary {
  position: sticky;
  top: calc(var(--coat-header-height) + 28px);
  align-self: start;
  max-height: none;
  overflow: visible;
}

.admin-bar .coat-single-product__summary {
  top: calc(var(--coat-header-height) + 60px);
}

/* Old WooCommerce gallery controls must remain absent even if cached markup is
   briefly present after an update. */
.coat-gallery-arrow,
.coat-gallery-count,
.coat-gallery-stage .woocommerce-product-gallery__trigger,
.coat-gallery-stage .flex-control-thumbs,
.pswp {
  display: none !important;
}

.coat-single-product__after {
  position: relative;
  z-index: 2;
  clear: both;
  padding-top: 90px;
  background: var(--coat-bg);
}

.coat-single-product__after .related.products {
  position: relative;
  clear: both;
  margin: 0;
  padding-top: 0;
  background: var(--coat-bg);
}

/* Checkout keeps the V1.2 structure, with a refined right-hand order card.
   Floats are intentional here: they keep the order review aligned at the top
   without creating the large empty grid row seen in V1.3. */
.woocommerce-checkout .coat-commerce-wrap {
  padding-top: clamp(42px, 6vw, 76px);
}

.woocommerce-checkout form.checkout.woocommerce-checkout::after {
  content: "";
  display: table;
  clear: both;
}

.woocommerce-checkout #customer_details {
  width: min(62%, 790px);
  float: left;
}

.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review {
  width: min(34%, 470px);
  float: right;
  clear: right;
}

.woocommerce-checkout #order_review_heading {
  margin: 0;
  padding: 26px 28px 16px;
  border: 1px solid var(--coat-line);
  border-bottom: 0;
  background: var(--coat-bg);
  font-size: 24px;
  font-weight: 500;
}

.woocommerce-checkout #order_review {
  padding: 0 28px 28px;
  border: 1px solid var(--coat-line);
  border-top: 0;
  background: var(--coat-bg);
}

.woocommerce-checkout #payment {
  border-radius: 0;
  background: #fff;
}

.woocommerce-checkout #payment ul.payment_methods,
.woocommerce-checkout #payment div.form-row {
  padding-inline: 0;
}

.woocommerce-checkout #place_order {
  width: 100%;
  min-height: 52px;
  background: var(--coat-ink) !important;
  color: #fff !important;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
  padding: 18px 20px;
  border: 1px solid var(--coat-line);
  border-top: 1px solid var(--coat-ink);
  background: #fff;
  color: var(--coat-ink);
}

.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before {
  display: none;
}

/* Keep account navigation compact after the Downloads endpoint is removed. */
.coat-account-page .woocommerce-MyAccount-navigation ul {
  list-style: none;
}




/* Product cards never show list markers or decorative dots. */
.woocommerce ul.products,
.woocommerce-page ul.products,
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.coat-product-card {
  list-style: none !important;
}

.woocommerce ul.products li.product::marker,
.woocommerce-page ul.products li.product::marker,
.coat-product-card::marker,
.woocommerce ul.products li.product::before,
.woocommerce ul.products li.product::after,
.woocommerce-page ul.products li.product::before,
.woocommerce-page ul.products li.product::after {
  display: none !important;
  content: none !important;
}

/* A compact, brand-consistent add-to-bag notice. */
.woocommerce-notices-wrapper {
  width: min(calc(100% - 48px), var(--coat-wrap));
  margin: 20px auto 0;
}

.woocommerce-message:has(.coat-bag-notice__copy) {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 22px;
  min-height: 74px;
  margin: 0;
  padding: 16px 18px;
  border: 0;
  border-top: 1px solid var(--coat-ink);
  border-bottom: 1px solid var(--coat-line);
  background: #fff;
  color: var(--coat-ink);
  transition: opacity 220ms ease, transform 220ms ease;
}

.woocommerce-message:has(.coat-bag-notice__copy)::before {
  display: none !important;
}

.woocommerce-message:has(.coat-bag-notice__copy).is-leaving {
  opacity: 0;
  transform: translateY(-8px);
}

.coat-bag-notice__copy {
  display: grid;
  gap: 4px;
}

.coat-bag-notice__copy small {
  color: var(--coat-muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.coat-bag-notice__copy strong {
  overflow: hidden;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.woocommerce-message .coat-bag-notice__action {
  min-height: 42px !important;
  padding: 10px 18px !important;
  border-color: var(--coat-ink) !important;
  background: var(--coat-ink) !important;
  color: #fff !important;
  text-decoration: none !important;
}

.coat-bag-notice__close {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--coat-ink);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

/* Product purchase button fills the available summary width. */
.coat-product-purchase,
.coat-product-purchase form.cart,
.coat-product-purchase form.cart:not(.variations_form),
.coat-product-purchase .variations_form,
.coat-product-purchase .single_variation_wrap,
.coat-product-purchase .woocommerce-variation-add-to-cart {
  width: 100% !important;
}

.coat-product-purchase form.cart:not(.variations_form),
.coat-product-purchase .woocommerce-variation-add-to-cart {
  display: block !important;
}

.coat-product-purchase .single_add_to_cart_button {
  width: 100% !important;
  max-width: none !important;
  display: grid !important;
  place-items: center;
  margin: 0 !important;
}

/* Luxury shopping-bag layout. */
.coat-cart-page .woocommerce {
  grid-template-columns: minmax(0, 1.55fr) minmax(310px, .58fr);
  gap: clamp(42px, 6vw, 88px);
  padding-top: 48px;
}

.coat-cart-page .woocommerce-cart-form {
  min-width: 0;
}

.coat-cart-page table.shop_table {
  border-top: 1px solid var(--coat-ink);
}

.coat-cart-page table.shop_table thead th {
  padding: 17px 8px;
  border-bottom: 1px solid var(--coat-line);
}

.coat-cart-page table.shop_table td {
  padding: 22px 8px;
}

.coat-cart-page .product-remove {
  width: 34px;
}

.coat-cart-page .product-remove a.remove {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  color: var(--coat-muted) !important;
  font-size: 18px;
  text-decoration: none;
}

.coat-cart-page .product-remove a.remove:hover {
  background: transparent;
  color: var(--coat-ink) !important;
}

.coat-cart-page .product-thumbnail {
  width: 132px;
}

.coat-cart-page .product-thumbnail a {
  width: 108px;
  height: 136px;
  background: var(--coat-soft);
}

.coat-cart-page .product-thumbnail img,
.coat-cart-page .coat-cart-product-image {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: contain !important;
}

.coat-cart-page .product-name a {
  font-size: 15px;
  font-weight: 500;
  text-underline-offset: 3px;
}

.coat-cart-page .product-name .variation {
  display: flex;
  flex-wrap: wrap;
  gap: 3px 7px;
  margin-top: 8px;
  font-size: 10px;
}

.coat-cart-page .product-name .variation dt,
.coat-cart-page .product-name .variation dd,
.coat-cart-page .product-name .variation p {
  margin: 0;
}

.coat-cart-page td.actions {
  padding: 26px 0 0 !important;
}

.coat-cart-page td.actions > button[name="update_cart"] {
  min-width: 150px;
  border-color: var(--coat-ink) !important;
  background: transparent !important;
  color: var(--coat-ink) !important;
}

.coat-cart-page td.actions > button[name="update_cart"]:hover,
.coat-cart-page td.actions > button[name="update_cart"]:focus-visible {
  background: var(--coat-ink) !important;
  color: #fff !important;
}

.coat-cart-page td.actions > button[name="update_cart"]:disabled {
  border-color: var(--coat-line) !important;
  background: transparent !important;
  color: var(--coat-muted) !important;
  opacity: 1 !important;
}

.coat-cart-page .cart-collaterals .cart_totals {
  padding: 30px 28px;
  border: 1px solid var(--coat-line);
  border-top: 2px solid var(--coat-ink);
  background: #f7f4ee;
}

.coat-cart-page .cart-collaterals h2 {
  margin-bottom: 24px;
  font-size: 30px;
  letter-spacing: -.035em;
}

.coat-cart-page .cart-collaterals table th,
.coat-cart-page .cart-collaterals table td {
  padding: 18px 0;
  font-size: 13px;
  vertical-align: top;
}

.coat-cart-page .cart-collaterals table td {
  text-align: right;
}

.coat-cart-page .wc-proceed-to-checkout a.checkout-button {
  min-height: 54px;
  border-color: var(--coat-ink) !important;
  background: var(--coat-ink) !important;
  color: #fff !important;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.coat-cart-page .wc-proceed-to-checkout a.checkout-button:hover {
  background: transparent !important;
  color: var(--coat-ink) !important;
}


.woocommerce-notices-wrapper {
  margin-bottom: 28px;
}

.woocommerce-message.is-coat-bag-notice {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 18px;
  padding: 18px 22px !important;
  border: 1px solid var(--coat-line) !important;
  border-top: 1px solid var(--coat-line) !important;
  background: #fff !important;
  box-shadow: none !important;
  outline: none !important;
}

.woocommerce-message.is-coat-bag-notice::before,
.woocommerce-message.is-coat-bag-notice::after {
  display: none !important;
}

.woocommerce-message.is-coat-bag-notice .coat-bag-notice {
  display: contents;
}

.woocommerce-message.is-coat-bag-notice .coat-bag-notice__copy {
  padding: 0;
}

.woocommerce-message.is-coat-bag-notice .coat-bag-notice__eyebrow {
  margin-bottom: 6px;
  color: var(--coat-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.woocommerce-message.is-coat-bag-notice .coat-bag-notice__copy p {
  margin: 0;
  font-size: 14px;
  line-height: 1.45;
}

.woocommerce-message.is-coat-bag-notice .coat-bag-notice__actions {
  display: contents;
}

.woocommerce-message.is-coat-bag-notice .coat-bag-notice__action,
.woocommerce-message.is-coat-bag-notice .coat-bag-notice__close {
  min-width: 0;
  min-height: 46px;
  display: grid;
  place-items: center;
  padding: 0 18px;
  border: 1px solid var(--coat-ink) !important;
  background: transparent !important;
  color: var(--coat-ink) !important;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-decoration: none;
  text-transform: uppercase;
  box-shadow: none !important;
}

.woocommerce-message.is-coat-bag-notice .coat-bag-notice__action {
  background: var(--coat-ink) !important;
  color: #fff !important;
}

.woocommerce-message.is-coat-bag-notice .coat-bag-notice__close {
  width: 46px;
  padding: 0;
  font-size: 18px;
  line-height: 1;
}

.woocommerce-message.is-coat-bag-notice .coat-bag-notice__action:hover,
.woocommerce-message.is-coat-bag-notice .coat-bag-notice__action:focus-visible {
  background: transparent !important;
  color: var(--coat-ink) !important;
}

.coat-cart-page td.actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
}

.coat-cart-page td.actions .coupon {
  float: none;
  width: min(100%, 460px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  margin: 0;
}

.coat-cart-page td.actions .coupon::after {
  display: none;
}

.coat-cart-page td.actions .coupon label {
  display: none;
}

.coat-cart-page td.actions .coupon input[name="coupon_code"] {
  width: 100%;
  min-width: 0;
  min-height: 52px;
  padding: 0 18px;
  border: 1px solid var(--coat-line);
  border-radius: 0;
  background: #fff;
  color: var(--coat-ink);
}

.coat-cart-page td.actions .coupon input[name="coupon_code"]::placeholder {
  color: var(--coat-muted);
}

.coat-cart-page td.actions .coupon button[name="apply_coupon"],
.coat-cart-page td.actions > button[name="update_cart"] {
  min-height: 52px;
  padding: 0 20px;
  border: 1px solid var(--coat-ink) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}

.coat-cart-page td.actions .coupon button[name="apply_coupon"] {
  min-width: 148px;
  background: var(--coat-ink) !important;
  color: #fff !important;
}

.coat-cart-page td.actions .coupon button[name="apply_coupon"]:hover,
.coat-cart-page td.actions .coupon button[name="apply_coupon"]:focus-visible {
  background: transparent !important;
  color: var(--coat-ink) !important;
}

.coat-cart-page td.actions > button[name="update_cart"] {
  margin-left: auto;
}

.coat-product-accordions > details {
  overflow: hidden;
}

.coat-product-accordions__content {
  padding-top: 14px;
}

/* Account redesign imported from the stronger 1.3 pass. */
.coat-account-page {
  background: #fff;
}

.coat-account-shell {
  padding-top: 44px;
}

.coat-account-page .woocommerce::after {
  content: "";
  display: table;
  clear: both;
}

.coat-account-nav {
  width: 245px;
  float: left;
  padding-right: 30px;
}

.coat-account-nav ul {
  border-top: 1px solid var(--coat-line);
}

.coat-account-nav a {
  display: flex !important;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 16px 0 !important;
  color: var(--coat-muted);
}

.coat-account-nav .is-active a,
.coat-account-nav a:hover {
  color: var(--coat-ink);
}

.coat-account-page .woocommerce-MyAccount-content {
  width: calc(100% - 305px);
  min-height: 440px;
  padding-bottom: 50px;
}

.coat-account-dashboard__welcome,
.coat-account-section > header {
  padding-bottom: 28px;
  border-bottom: 1px solid var(--coat-line);
}

.coat-account-dashboard__welcome h2,
.coat-account-section > header h2,
.coat-account-empty h2 {
  margin: 0;
  font-size: clamp(34px, 4.5vw, 58px);
  font-weight: 500;
  letter-spacing: -.05em;
}

.coat-account-dashboard__welcome > p:last-child,
.coat-account-section > header > p:last-child,
.coat-account-empty > p:not(.coat-kicker) {
  max-width: 650px;
  color: var(--coat-muted);
  line-height: 1.65;
}

.coat-account-dashboard__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 30px;
  border-top: 1px solid var(--coat-line);
  border-left: 1px solid var(--coat-line);
}

.coat-account-dashboard__stats a {
  min-height: 200px;
  display: flex;
  flex-direction: column;
  padding: 24px;
  border-right: 1px solid var(--coat-line);
  border-bottom: 1px solid var(--coat-line);
  color: var(--coat-ink);
  text-decoration: none;
}

.coat-account-dashboard__stats span {
  color: var(--coat-muted);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.coat-account-dashboard__stats strong {
  margin-top: auto;
  font-size: 42px;
  font-weight: 500;
}

.coat-account-dashboard__stats small {
  margin-top: 5px;
  color: var(--coat-muted);
  font-size: 11px;
}

.coat-account-dashboard__actions {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-top: 30px;
}

.coat-order-list {
  display: grid;
  gap: 1px;
  margin-top: 30px;
  background: var(--coat-line);
  border: 1px solid var(--coat-line);
}

.coat-order-card {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  gap: 18px;
  align-items: center;
  padding: 24px;
  background: #fff;
}

.coat-order-card span {
  display: block;
  color: var(--coat-muted);
  font-size: 9px;
  text-transform: uppercase;
}

.coat-order-card strong {
  display: block;
  margin-top: 5px;
  font-size: 12px;
  font-weight: 500;
}

.coat-order-card__actions a,
.coat-address-card > a {
  color: var(--coat-ink);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  text-underline-offset: 4px;
}

.coat-account-empty {
  min-height: 390px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: clamp(38px, 6vw, 78px);
  border: 1px solid var(--coat-line);
  background: var(--coat-bg);
}

.coat-address-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 30px;
}

.coat-address-card {
  min-height: 300px;
  display: flex;
  flex-direction: column;
  padding: 28px;
  border: 1px solid var(--coat-line);
}

.coat-address-card h3 {
  margin: 0;
  font-size: 26px;
  font-weight: 500;
}

.coat-address-card address {
  margin: 36px 0;
  color: var(--coat-muted);
  font-size: 13px;
  font-style: normal;
  line-height: 1.7;
}

.coat-address-card > a {
  margin-top: auto;
}

.coat-auth-card {
  background: var(--coat-bg);
}


.coat-cart-page td.actions .coupon {
  display: none !important;
}

.coat-cart-coupon-note {
  flex: 1 1 320px;
  margin: 0;
  color: var(--coat-muted);
  font-size: 12px;
  line-height: 1.55;
}

.coat-cart-page td.actions > button[name="update_cart"] {
  flex: 0 0 auto;
}

@media (min-width: 768px) {
  .coat-cart-page table.shop_table {
    table-layout: fixed;
  }

  .coat-cart-page table.shop_table th.product-remove,
  .coat-cart-page table.shop_table td.product-remove {
    width: 36px;
    padding-right: 4px !important;
    padding-left: 0 !important;
  }

  .coat-cart-page table.shop_table th.product-thumbnail,
  .coat-cart-page table.shop_table td.product-thumbnail {
    width: 126px;
    padding-right: 18px !important;
    padding-left: 0 !important;
  }

  .coat-cart-page table.shop_table th.product-price,
  .coat-cart-page table.shop_table td.product-price {
    width: 125px;
  }

  .coat-cart-page table.shop_table th.product-quantity,
  .coat-cart-page table.shop_table td.product-quantity {
    width: 140px;
  }

  .coat-cart-page table.shop_table th.product-subtotal,
  .coat-cart-page table.shop_table td.product-subtotal {
    width: 125px;
  }

  .coat-cart-page .product-thumbnail a {
    margin: 0;
  }
}

.coat-catalogue-empty {
  min-height: min(520px, 60svh);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(44px, 8vw, 110px);
  border-top: 1px solid var(--coat-ink);
  border-bottom: 1px solid var(--coat-line);
  background: transparent;
}

.coat-catalogue-empty h2 {
  max-width: 760px;
  margin: 0;
  font-size: clamp(42px, 6vw, 76px);
  font-weight: 500;
  line-height: .98;
  letter-spacing: -.055em;
}

.coat-catalogue-empty > p:not(.coat-kicker) {
  max-width: 560px;
  margin: 22px 0 0;
  color: var(--coat-muted);
  font-size: 14px;
  line-height: 1.65;
}

.coat-catalogue-empty > div {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 30px;
}


.coat-product-customisation {
  width: 100%;
  margin: 0 0 14px;
  border-top: 1px solid var(--coat-line);
  border-bottom: 1px solid var(--coat-line);
}

.coat-product-customisation summary {
  position: relative;
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 30px 14px 0;
  list-style: none;
  cursor: pointer;
}

.coat-product-customisation summary::-webkit-details-marker {
  display: none;
}

.coat-product-customisation summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 0;
  font-size: 18px;
  font-weight: 400;
  transform: translateY(-50%);
}

.coat-product-customisation[open] summary::after {
  content: "−";
}

.coat-product-customisation summary > span {
  font-size: 11px;
  font-weight: 600;
}

.coat-product-customisation summary > small {
  margin-left: auto;
  color: var(--coat-muted);
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.coat-product-customisation__body {
  padding: 2px 0 20px;
}

.coat-product-customisation__body > p {
  margin: 0 0 16px;
  color: var(--coat-muted);
  font-size: 12px;
  line-height: 1.65;
}

.coat-product-customisation__body label {
  display: block;
  margin-bottom: 7px;
  color: var(--coat-ink);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.coat-product-customisation__body textarea {
  width: 100%;
  min-height: 104px;
  display: block;
  padding: 13px 14px;
  border: 1px solid var(--coat-line);
  border-radius: 0;
  background: #fff;
  color: var(--coat-ink);
  box-shadow: none;
  font: inherit;
  font-size: 12px;
  line-height: 1.55;
  resize: vertical;
}

.coat-product-customisation__body textarea:focus {
  border-color: var(--coat-ink);
  outline: 0;
}

.coat-product-customisation__body textarea::placeholder {
  color: #938d85;
  opacity: 1;
}

.coat-product-customisation__note {
  display: block;
  margin-top: 10px;
  color: var(--coat-muted);
  font-size: 10px;
  line-height: 1.55;
}

.coat-made-to-order-note {
  display: grid;
  gap: 4px;
  margin: 16px 0 0;
  padding: 14px 0 0;
  border-top: 1px solid var(--coat-line);
}

.coat-made-to-order-note strong {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.coat-made-to-order-note span {
  color: var(--coat-muted);
  font-size: 11px;
  line-height: 1.5;
}

.coat-made-to-order-detail {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--coat-line);
}

.coat-made-to-order-detail > strong {
  display: block;
  margin-bottom: 7px;
  color: var(--coat-ink);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.coat-made-to-order-detail p {
  margin-top: 0;
}

.coat-cart-page .product-name .variation dd,
.coat-cart-drawer .woocommerce-mini-cart-item .variation dd {
  max-width: 100%;
  overflow-wrap: anywhere;
}


.coat-product-customisation__made {
  display: grid;
  gap: 5px;
  margin-bottom: 16px !important;
  padding: 0 0 15px;
  border-bottom: 1px solid var(--coat-line);
}

.coat-product-customisation__made small {
  color: var(--coat-ink);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.coat-product-customisation__made span {
  color: var(--coat-muted);
  font-size: 11px;
  line-height: 1.55;
}

.coat-cart-page .coat-cart-coupon-note {
  width: 100%;
  max-width: 520px;
  display: block;
  margin: 18px 0 0;
  padding: 15px 0 0;
  border-top: 1px solid var(--coat-line);
  color: var(--coat-muted);
  font-size: 11px;
  line-height: 1.55;
  white-space: normal;
}


body.coat-concierge-v2-endpoint {
  overflow: hidden;
}

body.coat-concierge-v2-endpoint .coat-account-page {
  min-height: 0;
  padding: 0;
  overflow: hidden;
}

body.coat-concierge-v2-endpoint .coat-account-page > .coat-commerce-wrap {
  width: 100%;
  max-width: none;
  margin: 0;
}

body.coat-concierge-v2-endpoint .coat-account-shell,
body.coat-concierge-v2-endpoint .coat-account-page .woocommerce,
body.coat-concierge-v2-endpoint .coat-account-page .woocommerce-MyAccount-content {
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

body.coat-concierge-v2-endpoint .coat-account-page .woocommerce-MyAccount-navigation,
body.coat-concierge-v2-endpoint .coat-commerce-page-heading,
body.coat-concierge-v2-endpoint .coat-footer {
  display: none !important;
}


.woocommerce-notices-wrapper:empty {
  display: none;
}

.coat-commerce-notice,
.woocommerce-error.coat-commerce-notice {
  position: relative;
  width: 100%;
  min-height: 64px;
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 22px !important;
  padding: 17px 20px !important;
  border: 1px solid var(--coat-line) !important;
  border-top: 1px solid var(--coat-line) !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: var(--coat-ink) !important;
  box-shadow: none !important;
  list-style: none !important;
  font-size: 13px;
  line-height: 1.55;
}

.coat-commerce-notice::before,
.coat-commerce-notice::after,
.woocommerce-error.coat-commerce-notice::before,
.woocommerce-error.coat-commerce-notice::after {
  display: none !important;
}

.woocommerce-error.coat-commerce-notice {
  align-items: stretch;
  flex-direction: column;
}

.woocommerce-error.coat-commerce-notice > li {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0;
}

.woocommerce-error.coat-commerce-notice > li + li {
  padding-top: 14px;
  border-top: 1px solid var(--coat-line);
}

.coat-commerce-notice__mark {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border: 1px solid currentColor;
  border-radius: 50%;
}

.coat-commerce-notice--success .coat-commerce-notice__mark {
  background: var(--coat-ink);
}

.coat-commerce-notice--error .coat-commerce-notice__mark {
  border-radius: 0;
  transform: rotate(45deg);
}

.coat-commerce-notice__content {
  min-width: 0;
  flex: 1;
}

.coat-commerce-notice__content a:not(.button) {
  color: inherit;
  text-underline-offset: 4px;
}

.coat-commerce-notice__content .button,
.coat-commerce-notice > .button {
  float: none !important;
  margin-left: auto !important;
  border-bottom: 1px solid currentColor !important;
  background: transparent !important;
  color: var(--coat-ink) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
}

/* Preserve the dedicated add-to-bag component. */
.coat-commerce-notice:has(.coat-bag-notice__copy) {
  display: grid;
}

.coat-empty-bag {
  grid-column: 1 / -1;
  min-height: 390px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 42px;
  align-items: end;
  margin-top: 42px;
  padding: clamp(34px, 6vw, 76px);
  border: 1px solid var(--coat-line);
  background: var(--coat-bg);
}

.coat-empty-bag__copy {
  max-width: 720px;
}

.coat-empty-bag__copy h2 {
  max-width: 690px;
  margin: 0;
  font-size: clamp(42px, 6vw, 78px);
  font-weight: 500;
  line-height: .95;
  letter-spacing: -.06em;
}

.coat-empty-bag__copy > p:last-child {
  max-width: 540px;
  margin: 20px 0 0;
  color: var(--coat-muted);
  font-size: 14px;
  line-height: 1.7;
}

.coat-empty-bag__actions {
  display: flex;
  align-items: center;
  gap: 22px;
  white-space: nowrap;
}

.coat-cart-page .woocommerce:has(.coat-empty-bag) {
  display: block;
  padding-top: 0;
}


.woocommerce-info:not(.coat-commerce-notice),
.woocommerce-message:not(.coat-commerce-notice):not(.is-coat-bag-notice),
.woocommerce-error:not(.coat-commerce-notice) {
  position: relative;
  width: 100%;
  min-height: 64px;
  margin: 0 0 22px !important;
  padding: 18px 20px 18px 50px !important;
  border: 1px solid var(--coat-line) !important;
  border-top: 1px solid var(--coat-line) !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: var(--coat-ink) !important;
  box-shadow: none !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
}

.woocommerce-info:not(.coat-commerce-notice)::before,
.woocommerce-message:not(.coat-commerce-notice):not(.is-coat-bag-notice)::before,
.woocommerce-error:not(.coat-commerce-notice)::before {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: 20px !important;
  width: 9px !important;
  height: 9px !important;
  margin: 0 !important;
  border: 1px solid var(--coat-ink) !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: transparent !important;
  font-family: inherit !important;
  line-height: 1 !important;
  transform: translateY(-50%) !important;
}

.woocommerce-message:not(.coat-commerce-notice):not(.is-coat-bag-notice)::before {
  background: var(--coat-ink) !important;
}

.woocommerce-error:not(.coat-commerce-notice) {
  list-style: none !important;
}

.woocommerce-error:not(.coat-commerce-notice)::before {
  border-radius: 0 !important;
  transform: translateY(-50%) rotate(45deg) !important;
}

.woocommerce-info:not(.coat-commerce-notice)::after,
.woocommerce-message:not(.coat-commerce-notice):not(.is-coat-bag-notice)::after,
.woocommerce-error:not(.coat-commerce-notice)::after {
  display: none !important;
}

.woocommerce-info:not(.coat-commerce-notice) a,
.woocommerce-message:not(.coat-commerce-notice):not(.is-coat-bag-notice) a,
.woocommerce-error:not(.coat-commerce-notice) a {
  color: inherit;
  text-underline-offset: 4px;
}

.woocommerce-info:not(.coat-commerce-notice) .button,
.woocommerce-message:not(.coat-commerce-notice):not(.is-coat-bag-notice) .button {
  float: none !important;
  margin-left: 18px !important;
  border: 0 !important;
  border-bottom: 1px solid currentColor !important;
  background: transparent !important;
  color: var(--coat-ink) !important;
  padding: 0 0 3px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase !important;
}

/* WooCommerce Cart and Checkout Blocks use a different notice component. */
.wc-block-components-notice-banner {
  position: relative;
  min-height: 64px;
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  margin: 0 0 22px !important;
  padding: 17px 20px !important;
  border: 1px solid var(--coat-line) !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: var(--coat-ink) !important;
  box-shadow: none !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
}

.wc-block-components-notice-banner > svg {
  width: 9px !important;
  height: 9px !important;
  flex: 0 0 9px !important;
  padding: 0 !important;
  border: 1px solid var(--coat-ink) !important;
  border-radius: 50% !important;
  background: transparent !important;
  fill: transparent !important;
}

.wc-block-components-notice-banner.is-success > svg {
  background: var(--coat-ink) !important;
}

.wc-block-components-notice-banner__content {
  min-width: 0;
  flex: 1;
}

/* V1.2.4.7 — colour selections move to the matching gallery image. */
.coat-gallery-item {
  scroll-margin-top: calc(var(--coat-header-height, 76px) + 18px);
}

/* Grid controls show actual column count. */
.coat-filter-view-options { gap: 10px; }
.coat-filter-view-options button { width: 52px; height: 42px; border: 1px solid transparent; border-radius: 0; }
.coat-filter-view-options button[aria-pressed="true"], .coat-filter-view-options button.is-active { border-color: var(--coat-ink); }
.coat-grid-icon { display: block; width: 32px; height: 20px; color: currentColor; stroke: none; fill: currentColor; }
.coat-grid-icon::before { content: none; }
.coat-product-customisation__body { padding: 5px 0 18px; }
.coat-product-customisation__body > p { margin: 0 0 16px; max-width: 430px; color: var(--coat-muted); line-height: 1.6; font-size: 12px; }
.coat-product-customisation__body textarea { min-height: 82px; padding: 14px; background: transparent; border: 1px solid var(--coat-line); font-size: 13px; }
.coat-product-customisation__body textarea:focus-visible { outline: 2px solid var(--coat-ink); outline-offset: 2px; }
.coat-product-customisation__note { max-width: 450px; margin-top: 10px; font-size: 11px; line-height: 1.55; }
