/* The Powerspot — supplemental styles for cart, checkout, account & auth pages */
:root {
  --ps-earth: #3f3f46;
  --ps-moss: #6b6b63;
  --ps-sand: #fbfaf8;
  --ps-clay: #f4f1ea;
  --ps-amber: #c8935a;
  --ps-line: rgba(63, 63, 70, .12);
}

.ps-wrap {
  max-width: 72rem;
  margin: 0 auto
}

.ps-narrow {
  max-width: 30rem;
  margin: 0 auto
}

.ps-mid {
  max-width: 46rem;
  margin: 0 auto
}

.ps-eyebrow {
  font-size: .7rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .25em;
  color: var(--ps-amber);
  margin: 0 0 1rem
}

.ps-h1 {
  font-family: var(--font-serif, "Instrument Serif", Georgia, serif);
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  line-height: 1.05;
  margin: 0;
  color: var(--ps-earth)
}

.ps-h2 {
  font-family: var(--font-serif, "Instrument Serif", Georgia, serif);
  font-size: 1.6rem;
  line-height: 1.2;
  margin: 0 0 1rem;
  color: var(--ps-earth)
}

.ps-lead {
  color: var(--ps-moss);
  line-height: 1.7;
  margin: .75rem 0 0
}

.ps-muted {
  color: var(--ps-moss);
  font-size: .875rem;
  line-height: 1.6
}

.ps-small {
  font-size: .8rem;
  color: var(--ps-moss)
}

.ps-card {
  background: var(--ps-clay);
  border-radius: 12px;
  padding: 2rem
}

.ps-card--plain {
  background: transparent;
  border: 1px solid var(--ps-line)
}

.ps-grid {
  display: grid;
  gap: 2.5rem;
  grid-template-columns: 1fr
}

@media (min-width:900px) {
  .ps-grid--cart {
    grid-template-columns: 1.6fr 1fr
  }

  .ps-grid--checkout {
    grid-template-columns: 1.3fr 1fr
  }

  .ps-grid--account {
    grid-template-columns: 15rem 1fr
  }

  .ps-grid--2 {
    grid-template-columns: 1fr 1fr
  }
}

.ps-line {
  border: 0;
  border-top: 1px solid var(--ps-line);
  margin: 1.25rem 0
}

/* cart */
.ps-item {
  display: grid;
  grid-template-columns: 88px 1fr auto;
  gap: 1.25rem;
  align-items: center;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--ps-line)
}

.ps-item:first-child {
  padding-top: 0
}

.ps-item img {
  width: 88px;
  height: 88px;
  object-fit: cover;
  border-radius: 8px;
  display: block
}

.ps-item-title {
  font-size: .95rem;
  font-weight: 600;
  color: var(--ps-earth);
  text-decoration: none;
  display: block
}

.ps-item-title:hover {
  color: var(--ps-amber)
}

.ps-price {
  font-variant-numeric: tabular-nums;
  color: var(--ps-earth);
  font-weight: 600;
  white-space: nowrap
}

.ps-qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--ps-line);
  border-radius: 999px;
  overflow: hidden;
  margin-top: .6rem
}

.ps-qty button {
  background: none;
  border: 0;
  width: 2rem;
  height: 2rem;
  cursor: pointer;
  color: var(--ps-earth);
  font-size: 1rem;
  line-height: 1
}

.ps-qty button:hover {
  background: rgba(63, 63, 70, .06)
}

.ps-qty span {
  min-width: 2rem;
  text-align: center;
  font-size: .85rem;
  font-variant-numeric: tabular-nums
}

.ps-remove {
  background: none;
  border: 0;
  padding: 0;
  margin-top: .6rem;
  margin-left: .75rem;
  font-size: .75rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ps-moss);
  cursor: pointer
}

.ps-remove:hover {
  color: var(--ps-amber)
}

.ps-sum-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: .9rem;
  color: var(--ps-moss);
  padding: .4rem 0
}

.ps-sum-row strong {
  color: var(--ps-earth)
}

.ps-sum-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--ps-earth);
  padding-top: .5rem
}

/* buttons */
.ps-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  background: var(--ps-earth);
  color: var(--ps-sand);
  border: 1px solid var(--ps-earth);
  border-radius: 999px;
  padding: .85rem 1.75rem;
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: opacity .2s ease, background .2s ease, color .2s ease
}

.ps-btn:hover {
  opacity: .9
}

.ps-btn--block {
  width: 100%
}
.woocommerce .cart-collaterals .cart_totals, .woocommerce-page .cart-collaterals .cart_totals{
  width: 100%;
}
.ps-btn--ghost {
  background: transparent;
  color: var(--ps-earth);
  border-color: var(--ps-line)
}

.ps-btn--ghost:hover {
  background: rgba(63, 63, 70, .05);
  opacity: 1
}

.ps-link {
  color: var(--ps-moss);
  font-size: .85rem;
  text-decoration: underline;
  text-underline-offset: 3px
}

.ps-link:hover {
  color: var(--ps-amber)
}

/* forms */
.ps-field {
  display: block;
  margin-bottom: 1.1rem
}

.ps-label {
  display: block;
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--ps-moss);
  margin-bottom: .45rem
}

.ps-input,
.ps-select,
.ps-textarea {
  width: 100%;
  background: var(--ps-sand);
  border: 1px solid var(--ps-line);
  border-radius: 8px;
  padding: .8rem 1rem;
  font: inherit;
  font-size: .95rem;
  color: var(--ps-earth);
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease
}

.ps-input:focus,
.ps-select:focus,
.ps-textarea:focus {
  border-color: var(--ps-amber);
  box-shadow: 0 0 0 3px rgba(200, 147, 90, .15)
}

.ps-textarea {
  min-height: 6rem;
  resize: vertical
}

.ps-row-2 {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr
}

@media (min-width:640px) {
  .ps-row-2 {
    grid-template-columns: 1fr 1fr
  }
}

.ps-check {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  font-size: .85rem;
  color: var(--ps-moss);
  margin: .25rem 0 1.1rem
}

.ps-check input {
  margin-top: .2rem;
  accent-color: var(--ps-amber)
}

.ps-radio {
  display: flex;
  gap: .75rem;
  align-items: flex-start;
  border: 1px solid var(--ps-line);
  border-radius: 10px;
  padding: 1rem;
  margin-bottom: .75rem;
  background: var(--ps-sand);
  cursor: pointer
}

.ps-radio input {
  margin-top: .2rem;
  accent-color: var(--ps-amber)
}

.ps-radio p {
  margin: .2rem 0 0;
  font-size: .8rem;
  color: var(--ps-moss)
}

.ps-radio strong {
  font-size: .9rem;
  color: var(--ps-earth);
  font-weight: 600
}

/* account */
.ps-side {
  display: flex;
  flex-direction: column;
  gap: .25rem
}

.ps-side a {
  display: block;
  padding: .7rem .9rem;
  border-radius: 8px;
  font-size: .8rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ps-moss);
  text-decoration: none
}

.ps-side a:hover {
  background: var(--ps-clay);
  color: var(--ps-earth)
}

.ps-side a.is-active {
  background: var(--ps-earth);
  color: var(--ps-sand)
}

.ps-order {
  border: 1px solid var(--ps-line);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1rem;
  background: var(--ps-sand)
}

.ps-order-head {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: space-between;
  align-items: center
}

.ps-order-head span {
  font-size: .8rem;
  color: var(--ps-moss)
}

.ps-badge {
  display: inline-block;
  border-radius: 999px;
  padding: .25rem .7rem;
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  background: rgba(200, 147, 90, .15);
  color: #8a5f2c
}

.ps-badge--done {
  background: rgba(107, 107, 99, .15);
  color: var(--ps-moss)
}

.ps-order-body {
  margin-top: .9rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center
}

.ps-order-body img {
  width: 52px;
  height: 52px;
  border-radius: 6px;
  object-fit: cover
}

.ps-dl {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr
}

@media (min-width:640px) {
  .ps-dl {
    grid-template-columns: 1fr 1fr
  }
}

.ps-dl div {
  font-size: .9rem
}

.ps-dl dt {
  font-size: .7rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--ps-moss);
  margin-bottom: .25rem
}

.ps-dl dd {
  margin: 0;
  color: var(--ps-earth)
}

.ps-steps {
  display: flex;
  gap: .5rem;
  align-items: center;
  font-size: .7rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ps-moss);
  margin-bottom: 1rem
}

.ps-steps .is-on {
  color: var(--ps-amber)
}





.max-w-7xl.mx-auto a.font-serif.text-2xl.italic img {
  display: block;
  float: none;
  max-width: 200px;
  height: auto;
}

a:focus {
  outline: none;
}

footer .font-serif img,
footer a.font-serif img {
  display: block;
  float: none;
  max-width: 210px;
  height: auto;
}

/* Nav Submenu Styling */
.main-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.main-navigation .hidden.md\:flex .menu-item-has-children {
  position: relative;
}

.main-navigation .hidden.md\:flex .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  background: rgba(251, 250, 248, 0.96);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(63, 63, 70, 0.1);
  border-radius: 8px;
  padding: 0.75rem 1rem;
  min-width: 180px;
  display: none;
  flex-direction: column;
  gap: 0.5rem;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.05);
  z-index: 100;
}

.main-navigation .hidden.md\:flex .menu-item-has-children:hover>.sub-menu {
  display: flex;
}

/* Shop archive — WooCommerce elements not present in the static export */
.the-powerspot-archive-description .page-description,
.the-powerspot-archive-description .term-description {
  margin: 0;
}

.the-powerspot-archive-description .page-description p,
.the-powerspot-archive-description .term-description p {
  margin: 0;
}

.the-powerspot-product-price del {
  opacity: .5;
  font-size: .65em;
  font-style: normal;
  margin-right: .4em;
  text-decoration: line-through;
}

.the-powerspot-product-price ins {
  text-decoration: none;
}

/* Force the shop card's Add to Basket button to match shop.html, overriding
   WooCommerce's own default .button styling (which otherwise wins on
   selector specificity over the Tailwind utility classes). */
a.button.the-powerspot-add-to-cart,
button.the-powerspot-add-to-cart {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 1 1 0% !important;
  padding: .75rem 1.5rem !important;
  background-color: var(--ps-earth) !important;
  color: var(--ps-sand) !important;
  border: 1px solid var(--ps-earth) !important;
  border-radius: 999px !important;
  font-size: .75rem !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  letter-spacing: .2em !important;
  text-align: center;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: opacity .2s ease, background-color .2s ease;
}

a.button.the-powerspot-add-to-cart:hover,
button.the-powerspot-add-to-cart:hover {
  background-color: var(--ps-earth) !important;
  color: var(--ps-sand) !important;
  opacity: .9;
}

a.button.the-powerspot-add-to-cart,
button.the-powerspot-add-to-cart {
  white-space: nowrap !important;
}

/* ==========================================================================
   AJAX Add-to-Cart Button Loader & "View Cart" Link Styling
   ========================================================================== */

.add_to_cart_button.loading {
  position: relative !important;
  color: transparent !important;
  pointer-events: none !important;
}

.add_to_cart_button.loading::after {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 1.1rem !important;
  height: 1.1rem !important;
  margin-top: -0.55rem !important;
  margin-left: -0.55rem !important;
  border: 2px solid var(--ps-amber, #e5b35c) !important;
  border-right-color: transparent !important;
  border-radius: 50% !important;
  animation: ps-spin 0.6s linear infinite !important;
  display: block !important;
}

@keyframes ps-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Suppress WooCommerce default checkmark icon */
.add_to_cart_button.added::after,
a.button.the-powerspot-add-to-cart.added::after,
button.the-powerspot-add-to-cart.added::after {
  content: none !important;
  display: none !important;
  margin: 0 !important;
}

/* "View cart" link styling site-wide */
a.added_to_cart {
  display: inline-block !important;
  margin-top: 0.75rem !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: var(--ps-amber) !important;
  text-decoration: underline !important;
  text-underline-offset: 4px !important;
  transition: opacity 0.2s ease !important;
  text-align: center !important;
  width: 100% !important;
}

a.added_to_cart:hover {
  opacity: 0.85 !important;
  color: var(--ps-sand) !important;
}

.bg-sand a.added_to_cart,
.bg-clay a.added_to_cart {
  color: var(--ps-earth) !important;
}

.bg-earth a.added_to_cart,
.bg-dark a.added_to_cart {
  color: var(--ps-amber) !important;
}

.woocommerce-pagination {
  margin-top: 4rem;
  display: flex;
  justify-content: center;
}

.woocommerce-pagination ul.page-numbers {
  display: flex;
  align-items: center;
  gap: .5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.woocommerce-pagination .page-numbers li {
  display: flex;
}

.woocommerce-notices-wrapper a {
  font-weight: 600;
  color: var(--earth);
}

.woocommerce-pagination .page-numbers a,
.woocommerce-pagination .page-numbers span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 .75rem;
  border-radius: 999px;
  border: 1px solid var(--ps-line);
  font-size: .75rem;
  font-weight: 500;
  letter-spacing: .05em;
  color: var(--ps-earth);
  text-decoration: none;
}

.woocommerce-pagination .page-numbers a:hover {
  background: var(--ps-clay);
}

.woocommerce-pagination .page-numbers .current {
  background: var(--ps-earth);
  border-color: var(--ps-earth);
  color: var(--ps-sand);
}

.woocommerce-pagination .page-numbers .dots {
  border: none;
}

.woocommerce-notice,
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  list-style: none !important;
  margin: 0 0 2.5rem 0 !important;
  padding: 1rem 1.5rem 1rem 3.25rem !important;
  border-radius: 12px !important;
  background: var(--ps-clay) !important;
  color: var(--ps-earth) !important;
  font-size: .875rem !important;
  line-height: 1.5 !important;
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 1rem !important;
  border: 1px solid var(--ps-line) !important;
  border-left: 4px solid var(--ps-amber) !important;
}

.woocommerce-message {
  border-left-color: #557053 !important;
}

.woocommerce-error {
  border-left-color: #b23a3a !important;
  background: rgba(178, 58, 58, .06) !important;
}

.woocommerce-notice::before,
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
  position: absolute !important;
  left: 1.25rem !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-family: WooCommerce !important;
  font-size: 1.1rem !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: inline-block !important;
}

.woocommerce-message::before {
  content: "\e015" !important;
  color: #557053 !important;
}

.woocommerce-info::before {
  content: "\e02d" !important;
  color: var(--ps-amber) !important;
}

.woocommerce-error::before {
  content: "\e016" !important;
  color: #b23a3a !important;
}

.woocommerce-message a.button,
.woocommerce-info a.button,
.woocommerce-error a.button,
.woocommerce-message a.wc-forward,
.woocommerce-info a.wc-forward,
.woocommerce-error a.wc-forward {
  order: 2 !important;
  margin-left: auto !important;
  background: transparent !important;
  border: 1px solid var(--ps-earth) !important;
  border-radius: 999px !important;
  padding: .4rem 1rem !important;
  font-size: .75rem !important;
  font-weight: 500 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--ps-earth) !important;
  text-decoration: none !important;
  transition: all .2s ease !important;
  float: none !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.woocommerce-message a.button:hover,
.woocommerce-info a.button:hover,
.woocommerce-error a.button:hover,
.woocommerce-message a.wc-forward:hover,
.woocommerce-info a.wc-forward:hover,
.woocommerce-error a.wc-forward:hover {
  background: var(--ps-earth) !important;
  color: var(--ps-sand) !important;
}

/* Single product page — shop-activated-shungite-pendant.html */

/* Gallery: main image + (optional) thumbnail strip when a product has more
   than one image. Sizing/format only — WooCommerce's own zoom/lightbox/
   slider JS (declared via add_theme_support) keeps working unmodified.
   !important is required here: WooCommerce's flexslider/zoom JS sizes the
   gallery via its own inline styles at runtime (it also starts the wrapper
   at `style="opacity:0"` until that JS runs), so plain CSS can lose to
   whatever pixel size that script computes. */
.woocommerce div.product div.images,
.woocommerce-page div.product div.images,
.woocommerce div.product .woocommerce-product-gallery,
.woocommerce-page div.product .woocommerce-product-gallery,
.woocommerce-product-gallery {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  opacity: 1 !important;
  position: relative !important;
}

/* Glassmorphism Lightbox Zoom Trigger */
.woocommerce-product-gallery__trigger {
  position: absolute !important;
  top: 1rem !important;
  right: 1rem !important;
  z-index: 25 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.85) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  border: 1px solid rgba(255, 255, 255, 0.6) !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1) !important;
  text-indent: -9999px !important;
  overflow: hidden !important;
  cursor: pointer !important;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.woocommerce-product-gallery__trigger:hover {
  background: var(--ps-earth) !important;
  color: #ffffff !important;
  transform: scale(1.1) !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18) !important;
}

.woocommerce-product-gallery__trigger::before {
  content: "" !important;
  display: block !important;
  width: 14px !important;
  height: 14px !important;
  border: 2px solid currentColor !important;
  border-radius: 50% !important;
  position: absolute !important;
  top: 11px !important;
  left: 11px !important;
  box-sizing: border-box !important;
}

.woocommerce-product-gallery__trigger::after {
  content: "" !important;
  display: block !important;
  width: 2px !important;
  height: 7px !important;
  background: currentColor !important;
  position: absolute !important;
  top: 22px !important;
  left: 23px !important;
  transform: rotate(-45deg) !important;
  border-radius: 1px !important;
}

.woocommerce-page div.product div.summary {
  width: 100%;
}

.woocommerce-product-gallery .flex-viewport {
  max-width: 100% !important;
  max-height: 550px !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: var(--ps-clay);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05) !important;
  transition: box-shadow 0.3s ease !important;
}

.woocommerce-product-gallery:hover .flex-viewport {
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.09) !important;
}

.woocommerce-product-gallery__wrapper {
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image > a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

.woocommerce-product-gallery__wrapper img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: 550px !important;
  object-fit: cover !important;
  border-radius: 16px !important;
  background: var(--ps-clay);
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.woocommerce-product-gallery:hover .woocommerce-product-gallery__wrapper img {
  transform: scale(1.02);
}

/* Floating Prev/Next Slide Navigation Arrows (Scoped to Single Product & Gallery) */
.single-product .flex-direction-nav,
.woocommerce-product-gallery .flex-direction-nav {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.single-product .flex-direction-nav a,
.woocommerce-product-gallery .flex-direction-nav a {
  position: absolute !important;
  top: 42% !important;
  transform: translateY(-50%) !important;
  z-index: 20 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.88) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  border: 1px solid rgba(255, 255, 255, 0.6) !important;
  color: var(--ps-earth) !important;
  font-size: 0 !important;
  text-indent: -9999px !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1) !important;
  cursor: pointer !important;
  opacity: 0.85 !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  overflow: hidden !important;
}

.single-product .woocommerce-product-gallery:hover .flex-direction-nav a,
.woocommerce-product-gallery:hover .flex-direction-nav a {
  opacity: 1 !important;
}

.single-product .flex-direction-nav a.flex-prev,
.woocommerce-product-gallery .flex-direction-nav a.flex-prev {
  left: 1rem !important;
}

.single-product .flex-direction-nav a.flex-next,
.woocommerce-product-gallery .flex-direction-nav a.flex-next {
  right: 1rem !important;
}

.single-product .flex-direction-nav a:hover,
.woocommerce-product-gallery .flex-direction-nav a:hover {
  background: var(--ps-earth) !important;
  color: #ffffff !important;
  transform: translateY(-50%) scale(1.08) !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2) !important;
}

.single-product .flex-direction-nav a.flex-disabled,
.woocommerce-product-gallery .flex-direction-nav a.flex-disabled {
  opacity: 0 !important;
  pointer-events: none !important;
  cursor: default !important;
}

.single-product .flex-direction-nav a::before,
.woocommerce-product-gallery .flex-direction-nav a::before {
  content: "" !important;
  display: block !important;
  width: 10px !important;
  height: 10px !important;
  border-top: 2px solid currentColor !important;
  border-right: 2px solid currentColor !important;
  position: absolute !important;
  top: 50% !important;
  margin-top: -5px !important;
  text-indent: 0 !important;
}

.single-product .flex-direction-nav a.flex-prev::before,
.woocommerce-product-gallery .flex-direction-nav a.flex-prev::before {
  left: 17px !important;
  transform: rotate(-135deg) !important;
}

.single-product .flex-direction-nav a.flex-next::before,
.woocommerce-product-gallery .flex-direction-nav a.flex-next::before {
  left: 14px !important;
  transform: rotate(45deg) !important;
}

/* ==========================================================================
   Shop Archive Product Card Gallery Slider
   ========================================================================== */
.ps-shop-gallery {
  position: relative !important;
  overflow: hidden !important;
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  background-color: var(--ps-clay, #f4f1ea) !important;
  border-radius: min(1vw, 12px) !important;
  user-select: none !important;
  -webkit-user-select: none !important;
}

.ps-shop-gallery__track {
  display: flex !important;
  width: 100% !important;
  height: 100% !important;
  transition: transform 0.45s cubic-bezier(0.25, 1, 0.5, 1) !important;
  will-change: transform;
}

.ps-shop-gallery__slide {
  flex: 0 0 100% !important;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 1 / 1 !important;
  display: block !important;
  overflow: hidden !important;
  position: relative !important;
}

.ps-shop-gallery__slide img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.7s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.group:hover .ps-shop-gallery__slide img {
  transform: scale(1.03) !important;
}

/* Shop Gallery Navigation Arrows */
.ps-shop-gallery__nav {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 15 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.9) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  border: 1px solid rgba(255, 255, 255, 0.7) !important;
  color: var(--ps-earth, #3f3f46) !important;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.12) !important;
  cursor: pointer !important;
  opacity: 0 !important;
  transition: opacity 0.25s ease, background 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease !important;
  outline: none !important;
  padding: 0 !important;
}

.ps-shop-gallery__nav--prev {
  left: 10px !important;
}

.ps-shop-gallery__nav--next {
  right: 10px !important;
}

/* Reveal arrows on hover or touch */
.group:hover .ps-shop-gallery__nav,
.ps-shop-gallery:hover .ps-shop-gallery__nav {
  opacity: 0.92 !important;
}

.ps-shop-gallery__nav:hover {
  opacity: 1 !important;
  background: var(--ps-earth, #3f3f46) !important;
  color: #ffffff !important;
  transform: translateY(-50%) scale(1.1) !important;
  box-shadow: 0 5px 16px rgba(0, 0, 0, 0.2) !important;
}

.ps-shop-gallery__nav:active {
  transform: translateY(-50%) scale(0.95) !important;
}

/* Shop Gallery Indicator Dots */
.ps-shop-gallery__dots {
  position: absolute !important;
  bottom: 12px !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 15 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  opacity: 0 !important;
  transition: opacity 0.25s ease !important;
  pointer-events: none !important;
}

.group:hover .ps-shop-gallery__dots,
.ps-shop-gallery:hover .ps-shop-gallery__dots {
  opacity: 1 !important;
}

.ps-shop-gallery__dot {
  width: 6px !important;
  height: 6px !important;
  border-radius: 9999px !important;
  background: rgba(255, 255, 255, 0.65) !important;
  backdrop-filter: blur(4px) !important;
  -webkit-backdrop-filter: blur(4px) !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25) !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  outline: none !important;
}

.ps-shop-gallery__dot:hover {
  background: rgba(255, 255, 255, 0.95) !important;
  transform: scale(1.2) !important;
}

.ps-shop-gallery__dot.is-active {
  width: 18px !important;
  background: #ffffff !important;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3) !important;
}

/* Touch devices: always show arrows and dots gracefully */
@media (hover: none) and (pointer: coarse) {
  .ps-shop-gallery__nav {
    opacity: 0.85 !important;
  }
  .ps-shop-gallery__dots {
    opacity: 1 !important;
  }
}

/* ==========================================================================
   Shop Archive Variable Product Variants List
   ========================================================================== */
.ps-loop-variants {
  margin-top: 1rem !important;
  color: var(--ps-earth, #3f3f46) !important;
}

.ps-loop-variants__title {
  font-size: 1.05rem !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  margin: 0 0 0.35rem 0 !important;
  color: inherit !important;
  letter-spacing: -0.01em !important;
}

.ps-loop-variants__list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.ps-loop-variants__item {
  font-size: 0.95rem !important;
  line-height: 1.55 !important;
  color: inherit !important;
  display: flex !important;
  align-items: baseline !important;
  gap: 0.25rem !important;
}

.ps-loop-variants__name {
  font-weight: 400 !important;
  color: inherit !important;
}

.ps-loop-variants__separator {
  opacity: 0.75 !important;
  color: inherit !important;
}

.ps-loop-variants__price {
  font-weight: 400 !important;
  color: inherit !important;
}

.ps-loop-variants__price .woocommerce-Price-amount {
  font-weight: 400 !important;
  color: inherit !important;
}

.ps-loop-variants__price del {
  opacity: 0.55 !important;
  font-size: 0.9em !important;
  margin-right: 0.25rem !important;
}

.ps-loop-variants__price ins {
  text-decoration: none !important;
  font-weight: 500 !important;
}

/* Interactive Thumbnails Horizontal Carousel (Scoped to Single Product & Gallery) */
.single-product .flex-control-thumbs,
.woocommerce-product-gallery .flex-control-thumbs,
.woocommerce div.product .flex-control-thumbs {
  display: flex !important;
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  scroll-behavior: smooth !important;
  gap: .75rem !important;
  margin: 1.25rem 0 0 !important;
  padding: .35rem .25rem .6rem .25rem !important;
  list-style: none !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: thin !important;
  scrollbar-color: var(--ps-amber) transparent !important;
}

.single-product .flex-control-thumbs::-webkit-scrollbar,
.woocommerce-product-gallery .flex-control-thumbs::-webkit-scrollbar {
  height: 4px !important;
}

.single-product .flex-control-thumbs::-webkit-scrollbar-thumb,
.woocommerce-product-gallery .flex-control-thumbs::-webkit-scrollbar-thumb {
  background: var(--ps-amber) !important;
  border-radius: 999px !important;
}

.single-product .flex-control-thumbs li,
.woocommerce-product-gallery .flex-control-thumbs li,
.woocommerce div.product .flex-control-thumbs li {
  width: 72px !important;
  height: 72px !important;
  flex: 0 0 72px !important;
  float: none !important;
  margin: 0 !important;
}

.single-product .flex-control-thumbs img,
.woocommerce-product-gallery .flex-control-thumbs img,
.woocommerce div.product .flex-control-thumbs img {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  border-radius: 10px !important;
  cursor: pointer !important;
  opacity: .65 !important;
  border: 2px solid transparent !important;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
  box-sizing: border-box !important;
}

.single-product .flex-control-thumbs img:hover,
.woocommerce-product-gallery .flex-control-thumbs img:hover,
.woocommerce div.product .flex-control-thumbs img:hover {
  opacity: .95 !important;
  transform: translateY(-3px) !important;
  border-color: rgba(200, 138, 56, .5) !important;
  box-shadow: 0 6px 14px rgba(0, 0, 0, .1) !important;
}

.single-product .flex-control-thumbs img.flex-active,
.woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.woocommerce div.product .flex-control-thumbs img.flex-active {
  opacity: 1 !important;
  border-color: var(--ps-amber) !important;
  transform: translateY(-3px) scale(1.05) !important;
  box-shadow: 0 6px 16px rgba(200, 138, 56, .35) !important;
}

/* Title / short description — match the design's typography without
   duplicating title.php / short-description.php (price.php is handled via
   the woocommerce_product_price_class filter instead, in inc/woocommerce.php). */
.woocommerce div.product .product_title {
  font-family: var(--font-serif, "Instrument Serif", Georgia, serif);
  font-weight: 400;
  font-size: 2.25rem;
  line-height: 1.2;
  text-wrap: balance;
  margin: 0;
  color: var(--ps-earth);
}

@media (min-width: 768px) {
  .woocommerce div.product .product_title {
    font-size: 3rem;
  }
}

.woocommerce-product-details__short-description {
  margin-top: 1.5rem;
  font-size: 1rem;
  line-height: 1.625;
  color: var(--ps-moss);
  text-wrap: pretty;
}

.woocommerce-product-details__short-description p {
  margin: 0 0 .75rem;
}

.woocommerce-product-details__short-description p:last-child {
  margin-bottom: 0;
}

/* Quantity stepper pill — wraps WooCommerce's real <input class="qty">,
   see the_powerspot_qty_stepper_* hooks in inc/woocommerce.php. */
.the-powerspot-qty-stepper .quantity {
  margin: 0;
  display: flex;
}

.the-powerspot-qty-stepper input.qty {
  width: 2rem;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  text-align: center;
  font-size: .875rem;
  font-variant-numeric: tabular-nums;
  padding: 0 !important;
  -moz-appearance: textfield;
}

.the-powerspot-qty-stepper input.qty::-webkit-outer-spin-button,
.the-powerspot-qty-stepper input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.the-powerspot-qty-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ps-earth);
  line-height: 1;
}

.the-powerspot-qty-btn:hover {
  color: var(--ps-amber);
}

/* Add to Cart button (simple + variable products) — same earth/sand pill
   treatment as the shop card's Add to Basket button, overriding
   WooCommerce's own default .button styling. */
.woocommerce div.product form.cart .single_add_to_cart_button {
  display: inline-flex !important;
  flex: 1 1 0% !important;
  align-items: center;
  justify-content: center;
  padding: .875rem 1.5rem !important;
  background-color: var(--ps-earth) !important;
  color: var(--ps-sand) !important;
  border: 1px solid var(--ps-earth) !important;
  border-radius: 999px !important;
  font-size: .75rem !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  letter-spacing: .2em !important;
  white-space: nowrap !important;
  box-shadow: none !important;
  transition: opacity .2s ease;
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover {
  opacity: .9;
}

.woocommerce div.product form.cart .single_add_to_cart_button.disabled {
  opacity: .5;
  cursor: not-allowed;
}

/* Variation attribute dropdowns & controls (Variable Products) */
table.variations,
.woocommerce table.variations,
.woocommerce-page table.variations,
div.product table.variations,
form.variations_form table.variations {
  display: block !important;
  width: 100% !important;
  margin: 0.75rem 0 0 !important;
  border-collapse: collapse !important;
  border: 0 !important;
}

table.variations tbody,
.woocommerce table.variations tbody,
form.variations_form table.variations tbody {
  display: flex !important;
  flex-direction: column !important;
  gap: 1.25rem !important;
  width: 100% !important;
}

table.variations tr,
.woocommerce table.variations tr,
form.variations_form table.variations tr {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0.5rem !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  border: 0 !important;
}

table.variations th.label,
table.variations td.label,
.woocommerce table.variations th.label,
.woocommerce table.variations td.label,
form.variations_form table.variations th.label,
form.variations_form table.variations td.label {
  display: none !important;
}

table.variations th.label label,
table.variations td.label label,
.woocommerce table.variations th.label label,
.woocommerce table.variations td.label label {
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.3 !important;
  color: inherit !important;
  font: inherit !important;
  font-weight: 600 !important;
  cursor: pointer !important;
}

table.variations td.value,
.woocommerce table.variations td.value,
form.variations_form table.variations td.value {
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  border: 0 !important;
  background: transparent !important;
}

.woocommerce div.product table.variations select {
  width: 100% !important;
  padding: .7rem 1.25rem !important;
  border: 1px solid var(--ps-line) !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  font-size: .88rem !important;
  color: var(--ps-earth) !important;
  outline: none !important;
  cursor: pointer !important;
  transition: border-color .2s ease, box-shadow .2s ease !important;
  appearance: none !important;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232c2926' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e") !important;
  background-repeat: no-repeat !important;
  background-position: right 1rem center !important;
  background-size: 14px !important;
  padding-right: 2.5rem !important;
}

.woocommerce div.product table.variations select:focus {
  border-color: var(--ps-amber) !important;
  box-shadow: 0 0 0 3px rgba(200, 138, 56, .15) !important;
}

/* Interactive Swatch Pill Buttons (Variable Products) */
/* Interactive Swatch Pill Buttons (Variable Products) */
.ps-swatch-group {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 0.5rem !important;
  margin: 0 !important;
  padding: 0 !important;
}

.ps-swatch-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #ffffff !important;
  border: 1px solid var(--ps-line, #e2ded8) !important;
  border-radius: 999px !important;
  padding: 0.45rem 1.05rem !important;
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  color: var(--ps-earth, #2c2926) !important;
  cursor: pointer !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
  outline: none !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03) !important;
  white-space: nowrap !important;
}

.ps-swatch-btn:hover {
  border-color: var(--ps-amber, #c88a38) !important;
  color: var(--ps-amber, #c88a38) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.06) !important;
}

.ps-swatch-btn.is-active {
  background: var(--ps-earth, #2c2926) !important;
  border-color: var(--ps-earth, #2c2926) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(44, 41, 38, 0.25) !important;
}

/* Variation Instruction Badge */
.ps-variation-instruction {
  display: flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
  font-size: 0.82rem !important;
  font-weight: 500 !important;
  color: var(--ps-earth, #2c2926) !important;
  margin-top: 0.85rem !important;
  margin-bottom: 0.6rem !important;
  padding: 0.45rem 0.85rem !important;
  background: rgba(200, 138, 56, 0.08) !important;
  border-left: 3px solid var(--ps-amber, #c88a38) !important;
  border-radius: 4px !important;
  letter-spacing: 0.01em !important;
}

.ps-variation-instruction .ps-instruction-icon {
  font-size: 0.85rem !important;
  color: var(--ps-amber, #c88a38) !important;
}

.woocommerce div.product .reset_variations {
  display: inline-flex !important;
  align-items: center !important;
  margin-left: 0.25rem !important;
  margin-top: 0 !important;
  padding: 0.35rem 0.75rem !important;
  border-radius: 999px !important;
  background: rgba(200, 138, 56, 0.09) !important;
  border: 1px solid rgba(200, 138, 56, 0.25) !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  color: var(--ps-amber, #c88a38) !important;
  text-decoration: none !important;
  transition: all .2s ease !important;
  white-space: nowrap !important;
  cursor: pointer !important;
}

.woocommerce div.product .reset_variations:hover {
  background: rgba(200, 138, 56, 0.2) !important;
  color: var(--ps-earth, #2c2926) !important;
  border-color: var(--ps-amber, #c88a38) !important;
}

/* Premium Interactive Sale Badge */
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale,
.woocommerce div.product span.onsale,
.ps-sale-badge {
  position: absolute !important;
  top: 1.25rem !important;
  left: 1.25rem !important;
  right: auto !important;
  bottom: auto !important;
  z-index: 10 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.35rem !important;
  min-width: auto !important;
  min-height: auto !important;
  height: auto !important;
  width: auto !important;
  padding: 0.42rem 0.95rem !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--ps-earth, #2c2926) 0%, #3d3834 100%) !important;
  border: 1px solid var(--ps-amber, #c88a38) !important;
  color: #ffffff !important;
  font-family: var(--font-sans, "Outfit", -apple-system, sans-serif) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  box-shadow: 0 4px 15px rgba(44, 41, 38, 0.25), 0 0 0 2px rgba(200, 138, 56, 0.15) !important;
  transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
  cursor: pointer !important;
  user-select: none !important;
  animation: ps-sale-badge-pulse 3.5s infinite ease-in-out !important;
}

.woocommerce span.onsale:hover,
.woocommerce ul.products li.product .onsale:hover,
.woocommerce div.product span.onsale:hover,
.ps-sale-badge:hover {
  transform: translateY(-2px) scale(1.06) !important;
  background: linear-gradient(135deg, var(--ps-amber, #c88a38) 0%, #a66e28 100%) !important;
  border-color: #ffffff !important;
  color: #ffffff !important;
  box-shadow: 0 8px 22px rgba(200, 138, 56, 0.45), 0 0 12px rgba(200, 138, 56, 0.3) !important;
}

.ps-sale-badge .ps-badge-spark {
  font-size: 0.75rem !important;
  color: var(--ps-amber, #c88a38) !important;
  transition: color 0.3s ease, transform 0.35s ease !important;
}

.ps-sale-badge:hover .ps-badge-spark {
  color: #ffffff !important;
  transform: rotate(45deg) scale(1.25) !important;
}

@keyframes ps-sale-badge-pulse {
  0%, 100% {
    box-shadow: 0 4px 15px rgba(44, 41, 38, 0.25), 0 0 0 2px rgba(200, 138, 56, 0.15);
  }
  50% {
    box-shadow: 0 6px 20px rgba(200, 138, 56, 0.35), 0 0 0 4px rgba(200, 138, 56, 0.25);
  }
}

.woocommerce div.product .woocommerce-variation-price {
  margin-top: 1rem !important;
  margin-bottom: 0.5rem !important;
}

.woocommerce div.product .woocommerce-variation-price .price {
  font-family: var(--font-serif, "Instrument Serif", Georgia, serif) !important;
  font-size: 1.65rem !important;
  color: var(--ps-earth) !important;
  font-weight: 500 !important;
}

.woocommerce div.product .woocommerce-variation-description {
  margin-top: .5rem !important;
  font-size: .88rem !important;
  line-height: 1.5 !important;
  color: var(--ps-moss) !important;
}

/* Long-description feature list (the_powerspot_single_product_features) */
.the-powerspot-product-features ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.the-powerspot-product-features li {
  display: flex;
  gap: .75rem;
}

.the-powerspot-product-features li::before {
  content: "\00b7";
  color: var(--ps-amber);
  flex-shrink: 0;
}

.the-powerspot-product-features p {
  margin: 0 0 .75rem;
}

.the-powerspot-product-features p:last-child {
  margin-bottom: 0;
}

/* Product meta line (SKU, categories, tags) — kept small/muted since it
   isn't part of the visual reference but is required product data. */
.woocommerce div.product .product_meta {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--ps-line);
  font-size: .75rem;
  color: var(--ps-moss);
  display: flex;
  flex-wrap: wrap;
  gap: .25rem 1rem;
}

.woocommerce div.product .product_meta>span {
  display: inline-block;
}

.woocommerce div.product .product_meta a {
  color: var(--ps-moss);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.woocommerce div.product .product_meta a:hover {
  color: var(--ps-amber);
}

/* Gutenberg Editor Preview Styling */
.editor-styles-wrapper {
  background-color: #FAF8F5 !important;
  color: #3F3F46 !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.editor-styles-wrapper .font-serif {
  font-family: 'Instrument Serif', Georgia, serif;
}

.editor-styles-wrapper .text-amber-glow {
  color: #c8935a !important;
}

.editor-styles-wrapper .text-moss {
  color: #6b6b63 !important;
}

.editor-styles-wrapper .bg-clay {
  background-color: #f4f1ea !important;
}

.editor-styles-wrapper .bg-earth {
  background-color: #3f3f46 !important;
}

.editor-styles-wrapper .text-sand {
  color: #fbfaf8 !important;
}

.editor-styles-wrapper header img,
.editor-styles-wrapper section img {
  max-width: 100%;
  height: auto;
}

/* ==========================================================================
   Checkout page — WooCommerce Checkout block (wp:woocommerce/checkout)
   The checkout page uses the block-based checkout, not a classic template,
   so it can't be restyled via a woocommerce/ template override like the
   cart page was. This restyles the block's own components (verified against
   the installed plugin's assets/client/blocks/checkout.css class names) to
   match the ps-* design language used on cart/checkout account pages.
   ========================================================================== */

body.woocommerce-checkout #primary {
  max-width: 72rem;
  margin: 0 auto;
  padding: 8rem 1.5rem 6rem;
}

/* Main Checkout Page Title & Eyebrow — matches checkout.html .ps-h1 and .ps-eyebrow */
body.woocommerce-checkout h1,
body.woocommerce-checkout .entry-title,
body.woocommerce-checkout .wp-block-heading,
body.woocommerce-checkout .wc-block-components-title:not(.wc-block-components-checkout-step__title) {
  font-family: var(--font-serif, "Instrument Serif", Georgia, serif) !important;
  font-size: clamp(2.4rem, 5vw, 3.6rem) !important;
  line-height: 1.05 !important;
  font-weight: 400 !important;
  color: var(--ps-earth) !important;
  margin: 0 0 2rem 0 !important;
}

body.woocommerce-checkout h1::before,
body.woocommerce-checkout .entry-title::before,
body.woocommerce-checkout .wc-block-components-title:not(.wc-block-components-checkout-step__title)::before {
  content: "STEP 2 OF 3";
  display: block;
  font-family: var(--font-sans, system-ui, sans-serif) !important;
  font-size: 0.7rem !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.25em !important;
  color: var(--ps-amber) !important;
  margin-bottom: 0.75rem !important;
  line-height: 1.2 !important;
}

/* Layout: form column / order-summary sidebar.
   WooCommerce switches this to a single stacked column via a CSS container
   query (@container (max-width: 699px) on .wp-block-woocommerce-checkout),
   not a viewport media query — so it can measure narrower than the actual
   viewport once padding/nesting is accounted for. Rather than fight that
   measurement, force the side-by-side layout with !important above a normal
   viewport breakpoint, same as the rest of the site's responsive design. */
body.woocommerce-checkout .wc-block-components-sidebar-layout {
  gap: 2.5rem;
}
body.woocommerce-checkout .wc-block-components-main {
  padding-right: 0;
}
@media (min-width: 900px) {
  body.woocommerce-checkout .wc-block-components-sidebar-layout {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
  }
  body.woocommerce-checkout .wc-block-components-main {
    width: 60% !important;
    padding-right: 0 !important;
  }
  body.woocommerce-checkout .wc-block-components-sidebar {
    width: 37% !important;
  }
}

/* Step sections */
body.woocommerce-checkout .wc-block-components-checkout-step {
  border-top: 1px solid var(--ps-line);
  padding-top: 2rem;
  margin-top: 2rem;
}
body.woocommerce-checkout .wc-block-components-checkout-step:first-child {
  border-top: none;
  padding-top: 0;
  margin-top: 0;
}
body.woocommerce-checkout .wc-block-components-checkout-step__title {
  font-family: var(--font-serif, "Instrument Serif", Georgia, serif);
  font-weight: 400;
  font-size: 1.6rem;
  color: var(--ps-earth);
}
body.woocommerce-checkout .wc-block-components-checkout-step__description {
  color: var(--ps-moss);
  font-size: .85rem;
}

/* Text inputs, selects, textareas — match ps-input */
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-text-input textarea,
body.woocommerce-checkout .wc-block-components-select-input select,
body.woocommerce-checkout select.wc-block-components-country-input,
body.woocommerce-checkout select.wc-block-components-state-input {
  background-color: var(--ps-sand) !important;
  border: 1px solid var(--ps-line) !important;
  border-radius: 8px !important;
  color: var(--ps-earth) !important;
  font-family: inherit !important;
}
body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-text-input textarea:focus,
body.woocommerce-checkout .wc-block-components-select-input select:focus {
  border-color: var(--ps-amber) !important;
  box-shadow: 0 0 0 3px rgba(200, 147, 90, .15) !important;
}
body.woocommerce-checkout .wc-block-components-text-input label {
  color: var(--ps-moss) !important;
}
body.woocommerce-checkout .wc-block-components-text-input.has-error input {
  border-color: #b23a3a !important;
}
body.woocommerce-checkout .wc-block-components-text-input.has-error label {
  color: #b23a3a !important;
}

/* Radio options (shipping method & payment options) */

/* Shipping Options Card */
body.woocommerce-checkout .wc-block-components-radio-control__option {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  position: relative !important;
  border: 1px solid var(--ps-line) !important;
  border-radius: 10px !important;
  padding: 1rem 1.25rem 1rem 3.25rem !important;
  margin-bottom: .75rem !important;
  background: var(--ps-sand) !important;
  min-height: 3.25rem !important;
  box-sizing: border-box !important;
}

body.woocommerce-checkout .wc-block-components-radio-control__option--checked-option-highlighted,
body.woocommerce-checkout .wc-block-components-radio-control__option[aria-checked="true"] {
  border-color: var(--ps-amber) !important;
  background: var(--ps-clay) !important;
}

/* Shipping option radio button input wrapper positioning */
body.woocommerce-checkout .wc-block-components-radio-control__option > .wc-block-components-radio-control__input-wrapper,
body.woocommerce-checkout .wc-block-components-radio-control__option > .wc-block-components-radio-control__input {
  position: absolute !important;
  left: 1.25rem !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  margin: 0 !important;
  flex-shrink: 0 !important;
}

body.woocommerce-checkout .wc-block-components-radio-control__label {
  padding-left: 0 !important;
  margin-left: 0 !important;
}

/* Payment Accordion Container */
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option {
  border: 1px solid var(--ps-line) !important;
  border-radius: 10px !important;
  margin-bottom: .75rem !important;
  background: var(--ps-sand) !important;
  padding: 1rem 1.25rem !important;
  position: relative !important;
  box-sizing: border-box !important;
}

body.woocommerce-checkout .wc-block-components-radio-control-accordion-option[aria-checked="true"] {
  border-color: var(--ps-amber) !important;
  background: var(--ps-clay) !important;
}

/* Prevent double borders on inner radio options inside accordion */
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: auto !important;
  position: relative !important;
}

/* Payment accordion header layout */
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option__header {
  display: flex !important;
  align-items: center !important;
  position: relative !important;
  width: 100% !important;
  margin-bottom: 0.25rem !important;
}

/* Position payment radio button vertically centered relative to header line 1 */
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__input-wrapper,
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__input {
  position: absolute !important;
  left: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  margin: 0 !important;
  flex-shrink: 0 !important;
}

/* Payment accordion header label text positioning */
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control-accordion-option__header .wc-block-components-radio-control__label,
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option .wc-block-components-radio-control__label {
  padding-left: 2.25rem !important;
  font-weight: 600 !important;
  color: var(--ps-earth) !important;
}

/* Payment accordion description text positioning */
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control-accordion-option__content,
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option p {
  padding-left: 2.25rem !important;
  margin-top: 0.35rem !important;
  margin-bottom: 0 !important;
  font-size: 0.825rem !important;
  color: var(--ps-moss) !important;
}

/* Checkboxes */
body.woocommerce-checkout .wc-block-components-checkbox__mark {
  color: var(--ps-earth);
}
body.woocommerce-checkout .wc-block-components-checkbox__input:checked + .wc-block-components-checkbox__mark {
  color: var(--ps-amber);
}

/* ==========================================================================
   Order Received / Thank You Page Styling (Refined)
   ========================================================================== */

/* Header & Eyebrow on Thank You Page */
body.woocommerce-order-received h1::before,
body.woocommerce-order-received .entry-title::before,
body.woocommerce-order-received .wp-block-heading::before,
body.woocommerce-order-received .wc-block-components-title::before {
  content: "STEP 3 OF 3 — ORDER CONFIRMED" !important;
  color: var(--ps-amber) !important;
}

body.woocommerce-order-received h1,
body.woocommerce-order-received .entry-title,
body.woocommerce-order-received .wp-block-heading {
  font-family: var(--font-serif, "Instrument Serif", Georgia, serif) !important;
  font-size: clamp(2.4rem, 5vw, 3.6rem) !important;
  color: var(--ps-earth) !important;
  margin-bottom: 2rem !important;
}

/* Success Banner */
body.woocommerce-order-received .woocommerce-notice--success {
  background: var(--ps-clay) !important;
  border: 1px solid var(--ps-line) !important;
  border-left: 4px solid var(--ps-amber) !important;
  border-radius: 12px !important;
  padding: 1.25rem 1.75rem !important;
  font-size: 1rem !important;
  color: var(--ps-earth) !important;
  font-weight: 500 !important;
  margin-bottom: 2rem !important;
}

/* Order Overview Horizontal Bar */
body.woocommerce-order-received ul.woocommerce-order-overview {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 1.5rem 2rem !important;
  background: var(--ps-clay) !important;
  border: 1px solid var(--ps-line) !important;
  border-radius: 12px !important;
  padding: 1.5rem 2rem !important;
  list-style: none !important;
  margin: 0 0 2rem 0 !important;
}

body.woocommerce-order-received ul.woocommerce-order-overview li {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.35rem !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 0.8rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--ps-moss) !important;
}

body.woocommerce-order-received ul.woocommerce-order-overview li strong {
  font-size: 0.95rem !important;
  color: var(--ps-earth) !important;
  font-weight: 600 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  word-break: break-word !important;
}

/* Payment Instructions / Order Note text */
body.woocommerce-order-received .woocommerce-order-overview + p,
body.woocommerce-order-received p.woocommerce-thankyou-order-received + p {
  background: var(--ps-sand) !important;
  border: 1px solid var(--ps-line) !important;
  border-radius: 10px !important;
  padding: 1rem 1.25rem !important;
  margin-bottom: 2rem !important;
  font-size: 0.9rem !important;
  color: var(--ps-earth) !important;
}

/* Order Details Section & Table */
body.woocommerce-order-received .woocommerce-order-details {
  margin-top: 2.5rem !important;
  margin-bottom: 2.5rem !important;
}

body.woocommerce-order-received .woocommerce-order-details__title,
body.woocommerce-order-received .woocommerce-column__title,
body.woocommerce-order-received h2 {
  font-family: var(--font-serif, "Instrument Serif", Georgia, serif) !important;
  font-size: 1.8rem !important;
  color: var(--ps-earth) !important;
  margin-bottom: 1.25rem !important;
  font-weight: 400 !important;
}

body.woocommerce-order-received table.shop_table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  background: var(--ps-sand) !important;
  border: 1px solid var(--ps-line) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  margin-bottom: 2.5rem !important;
}

body.woocommerce-order-received table.shop_table th,
body.woocommerce-order-received table.shop_table td {
  padding: 1rem 1.5rem !important;
  border-bottom: 1px solid var(--ps-line) !important;
  font-size: 0.9rem !important;
  color: var(--ps-earth) !important;
}

body.woocommerce-order-received table.shop_table thead th {
  background: var(--ps-clay) !important;
  font-size: 0.75rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: var(--ps-moss) !important;
  font-weight: 600 !important;
}

body.woocommerce-order-received table.shop_table tr:last-child th,
body.woocommerce-order-received table.shop_table tr:last-child td {
  border-bottom: none !important;
}

body.woocommerce-order-received table.shop_table tfoot th {
  font-weight: 500 !important;
  color: var(--ps-moss) !important;
  text-align: left !important;
}

body.woocommerce-order-received table.shop_table tfoot tr:last-child th,
body.woocommerce-order-received table.shop_table tfoot tr:last-child td {
  font-size: 1.15rem !important;
  font-weight: 600 !important;
  color: var(--ps-earth) !important;
}

/* Addresses Cards (Billing & Shipping) — Side-by-Side Flex Layout */
body.woocommerce-order-received .woocommerce-customer-details,
body.woocommerce-order-received .woocommerce-columns--addresses {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 2rem !important;
  width: 100% !important;
  margin-top: 2rem !important;
  clear: both !important;
}

body.woocommerce-order-received .woocommerce-column--billing-address,
body.woocommerce-order-received .woocommerce-column--shipping-address,
body.woocommerce-order-received .col-1,
body.woocommerce-order-received .col-2 {
  flex: 1 1 50% !important;
  width: 50% !important;
  max-width: 50% !important;
  float: none !important;
  clear: none !important;
  background: var(--ps-clay) !important;
  border: 1px solid var(--ps-line) !important;
  border-radius: 12px !important;
  padding: 1.75rem 2rem !important;
  box-sizing: border-box !important;
  margin: 0 !important;
}

@media (max-width: 768px) {
  body.woocommerce-order-received .woocommerce-columns--addresses {
    flex-direction: column !important;
  }
  body.woocommerce-order-received .woocommerce-column--billing-address,
  body.woocommerce-order-received .woocommerce-column--shipping-address,
  body.woocommerce-order-received .col-1,
  body.woocommerce-order-received .col-2 {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
  }
}

body.woocommerce-order-received address {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  font-style: normal !important;
  font-size: 0.95rem !important;
  line-height: 1.7 !important;
  color: var(--ps-earth) !important;
  width: 100% !important;
}

/* Buttons — real buttons only (WooCommerce already separates these from
   .is-link style buttons like "Edit" address links, which are left plain). */
/* Buttons — real buttons only (WooCommerce already separates these from
   .is-link style buttons like "Edit" address links, which are left plain). */
body.woocommerce-checkout .wc-block-components-button:not(.is-link),
body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
  background: var(--ps-earth, #2c2926) !important;
  color: #ffffff !important;
  border: 1px solid var(--ps-earth, #2c2926) !important;
  border-radius: 999px !important;
  text-transform: uppercase !important;
  letter-spacing: .14em !important;
  font-size: .78rem !important;
  font-weight: 600 !important;
  padding: .95rem 2rem !important;
  transition: all 0.25s ease !important;
  box-shadow: 0 3px 10px rgba(44, 41, 38, 0.15) !important;
  cursor: pointer !important;
}
body.woocommerce-checkout .wc-block-components-button:not(.is-link):hover,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
  background: var(--ps-amber, #c88a38) !important;
  border-color: var(--ps-amber, #c88a38) !important;
  color: #ffffff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(200, 138, 56, 0.35) !important;
}
body.woocommerce-checkout .wc-block-components-button:not(.is-link).outlined {
  background: transparent !important;
  color: var(--ps-earth) !important;
}
body.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button {
  color: var(--ps-moss);
}

/* Order summary sidebar sticky position & luxury card styling */
body.woocommerce-checkout .wc-block-checkout__sidebar,
body.woocommerce-checkout .wc-block-components-sidebar {
  position: sticky !important;
  top: 7.5rem !important;
}

body.woocommerce-checkout .wc-block-components-sidebar .wc-block-components-panel,
body.woocommerce-checkout .wc-block-components-order-summary {
  background: var(--ps-clay, #f7f5f0) !important;
  border: 1px solid var(--ps-line, #e2ded8) !important;
  border-radius: 14px !important;
  padding: 1.5rem !important;
  box-shadow: 0 4px 20px rgba(44, 41, 38, 0.04) !important;
}
body.woocommerce-checkout .wc-block-components-checkout-order-summary__title {
  font-family: var(--font-serif, "Instrument Serif", Georgia, serif) !important;
  font-size: 1.4rem !important;
  color: var(--ps-earth) !important;
  padding-bottom: 0.5rem !important;
  border-bottom: 1px solid var(--ps-line, #e2ded8) !important;
  margin-bottom: 1rem !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__image img {
  border-radius: 8px !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__image .wc-block-components-order-summary-item__quantity {
  background: var(--ps-amber) !important;
  color: #ffffff !important;
}

/* Section Step Titles & Headings Polish */
body.woocommerce-checkout .wc-block-components-title,
body.woocommerce-checkout .wc-block-checkout__step-title,
body.woocommerce-checkout .wc-block-components-checkout-step__title {
  font-family: var(--font-serif, "Instrument Serif", Georgia, serif) !important;
  font-size: 1.45rem !important;
  color: var(--ps-earth, #2c2926) !important;
  margin-bottom: 0.75rem !important;
  letter-spacing: -0.01em !important;
}

/* Form Inputs Hover & Focus Glow */
body.woocommerce-checkout input[type="text"],
body.woocommerce-checkout input[type="email"],
body.woocommerce-checkout input[type="tel"],
body.woocommerce-checkout select,
body.woocommerce-checkout textarea,
body.woocommerce-checkout .wc-block-components-text-input input {
  background: #ffffff !important;
  border: 1px solid var(--ps-line, #d8d4cd) !important;
  border-radius: 8px !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

body.woocommerce-checkout input[type="text"]:focus,
body.woocommerce-checkout input[type="email"]:focus,
body.woocommerce-checkout input[type="tel"]:focus,
body.woocommerce-checkout select:focus,
body.woocommerce-checkout textarea:focus,
body.woocommerce-checkout .wc-block-components-text-input input:focus {
  border-color: var(--ps-amber, #c88a38) !important;
  box-shadow: 0 0 0 3px rgba(200, 138, 56, 0.14) !important;
}

/* Hide each product's short description in the order summary */
body.woocommerce-checkout .wc-block-components-order-summary-item .wc-block-components-product-metadata__description {
  display: none;
}
body.woocommerce-checkout .wc-block-components-totals-item {
  color: var(--ps-moss);
  font-size: .9rem;
}
body.woocommerce-checkout .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-item__value {
  color: inherit;
}
body.woocommerce-checkout .wc-block-components-totals-footer-item {
  border-top: 1px solid var(--ps-line);
  padding-top: .75rem !important;
  margin-top: .5rem !important;
}
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color: var(--ps-earth);
  font-weight: 600;
}

/* ==========================================================================
   Unified Warm Card Coupon Panel Styling
   ========================================================================== */

/* Coupon Container Card with Warm Cream Background */
body.woocommerce-checkout .wc-block-components-totals-coupon,
.wc-block-components-totals-coupon,
.wc-block-components-panel,
.woocommerce-form-coupon-toggle {
  margin: 0.85rem 0 !important;
  padding: 0.75rem 1rem !important;
  background: var(--ps-clay, #f7f5f0) !important;
  border: 1px solid var(--ps-line, #e2ded8) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  min-height: auto !important;
  transition: border-color 0.2s ease !important;
}

body.woocommerce-checkout .wc-block-components-totals-coupon:hover,
.wc-block-components-totals-coupon:hover {
  border-color: rgba(200, 138, 56, 0.4) !important;
}

/* Accordion Toggle Header */
body.woocommerce-checkout .wc-block-components-totals-coupon__button,
.wc-block-components-totals-coupon__button,
.wc-block-components-panel__button,
.woocommerce-form-coupon-toggle .showcoupon {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  min-height: auto !important;
  height: auto !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  color: var(--ps-earth, #2c2926) !important;
  font-family: var(--font-sans, "Outfit", sans-serif) !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
  cursor: pointer !important;
}

body.woocommerce-checkout .wc-block-components-totals-coupon__button:hover,
.wc-block-components-totals-coupon__button:hover,
.wc-block-components-panel__button:hover,
.woocommerce-form-coupon-toggle .showcoupon:hover {
  color: var(--ps-amber, #c88a38) !important;
}

/* Expandable Form Row */
body.woocommerce-checkout .wc-block-components-totals-coupon__form,
.wc-block-components-totals-coupon__form,
.wc-block-components-totals-coupon__content,
form.checkout_coupon,
form.woocommerce-form-coupon {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.45rem !important;
  padding: 0 !important;
  margin-top: 0.6rem !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  width: 100% !important;
}

/* Input Field Container - Takes all remaining width */
.wc-block-components-totals-coupon__input,
body.woocommerce-checkout .wc-block-components-totals-coupon__input {
  flex: 1 1 auto !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

body.woocommerce-checkout .wc-block-components-totals-coupon__input input,
.wc-block-components-totals-coupon__input input,
.wc-block-components-totals-coupon__content input[type="text"],
form.checkout_coupon input.input-text,
form.woocommerce-form-coupon input.input-text {
  width: 100% !important;
  height: 38px !important;
  padding: 0.45rem 0.85rem !important;
  background: #ffffff !important;
  border: 1px solid var(--ps-line, #d8d4cd) !important;
  border-radius: 6px !important;
  font-family: var(--font-sans, "Outfit", sans-serif) !important;
  font-size: 0.82rem !important;
  color: var(--ps-earth, #2c2926) !important;
  outline: none !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

body.woocommerce-checkout .wc-block-components-totals-coupon__input input:focus,
.wc-block-components-totals-coupon__input input:focus,
.wc-block-components-totals-coupon__content input[type="text"]:focus,
form.checkout_coupon input.input-text:focus,
form.woocommerce-form-coupon input.input-text:focus {
  border-color: var(--ps-amber, #c88a38) !important;
  box-shadow: 0 0 0 3px rgba(200, 138, 56, 0.12) !important;
}

/* Apply Submit Button Element */
.wc-block-components-totals-coupon__submit,
body.woocommerce-checkout .wc-block-components-totals-coupon__submit,
.wc-block-components-totals-coupon__content button,
form.checkout_coupon button[name="apply_coupon"],
form.woocommerce-form-coupon button[name="apply_coupon"] {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: auto !important;
  height: 38px !important;
  padding: 0 1.1rem !important;
  margin: 0 !important;
  background: var(--ps-earth, #2c2926) !important;
  border: 1px solid var(--ps-earth, #2c2926) !important;
  border-radius: 6px !important;
  color: #ffffff !important;
  font-family: var(--font-sans, "Outfit", sans-serif) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  white-space: nowrap !important;
}

body.woocommerce-checkout .wc-block-components-totals-coupon__submit:hover,
.wc-block-components-totals-coupon__submit:hover,
.wc-block-components-totals-coupon__content button:hover,
form.checkout_coupon button[name="apply_coupon"]:hover,
form.woocommerce-form-coupon button[name="apply_coupon"]:hover {
  background: var(--ps-amber, #c88a38) !important;
  border-color: var(--ps-amber, #c88a38) !important;
  color: #ffffff !important;
}

/* Applied Coupon Badge / Tag */
.wc-block-components-totals-coupon__tag,
.woocommerce-remove-coupon {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  padding: 0.35rem 0.85rem !important;
  background: rgba(200, 138, 56, 0.1) !important;
  border: 1px solid rgba(200, 138, 56, 0.3) !important;
  border-radius: 999px !important;
  color: var(--ps-earth, #2c2926) !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
}

/* Notices — soften WooCommerce's default red/blue to the theme's palette */
body.woocommerce-checkout .wc-block-components-notice-banner {
  border-radius: 8px;
  border-width: 1px;
}
body.woocommerce-checkout .wc-block-components-notice-banner.is-error {
  background: rgba(178, 58, 58, .08);
  border-color: rgba(178, 58, 58, .25);
  color: #8a2f2f;
}
body.woocommerce-checkout .wc-block-components-notice-banner.is-info {
  background: var(--ps-clay);
  border-color: var(--ps-line);
  color: var(--ps-earth);
}

/* ==========================================================================
   My Account & Login / Register Styling (Polished)
   ========================================================================== */

/* Layout Grid for My Account Page */
.ps-grid--account {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 2.5rem !important;
}

@media (min-width: 900px) {
  .ps-grid--account {
    grid-template-columns: 16rem 1fr !important;
  }
}

/* Navigation Sidebar Reset & Styling */
.woocommerce-MyAccount-navigation,
.ps-side {
  width: 100% !important;
}

.woocommerce-MyAccount-navigation ul,
.ps-side ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: .35rem !important;
  width: 100% !important;
}

.woocommerce-MyAccount-navigation li,
.ps-side li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

.woocommerce-MyAccount-navigation a,
.ps-side a {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding: .8rem 1.25rem !important;
  border-radius: 10px !important;
  font-size: .75rem !important;
  font-weight: 500 !important;
  letter-spacing: .15em !important;
  text-transform: uppercase !important;
  color: var(--ps-moss) !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  transition: all .2s ease !important;
}

/* Inactive link hover */
.woocommerce-MyAccount-navigation li:not(.is-active) a:hover,
.woocommerce-MyAccount-navigation a:not(.is-active):hover,
.ps-side li:not(.is-active) a:hover,
.ps-side a:not(.is-active):hover {
  background: var(--ps-clay) !important;
  color: var(--ps-earth) !important;
}

/* Active link state */
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation a.is-active,
.ps-side li.is-active a,
.ps-side a.is-active {
  background: var(--ps-earth) !important;
  color: var(--ps-sand) !important;
  font-weight: 600 !important;
}

/* Active link hover state */
.woocommerce-MyAccount-navigation li.is-active a:hover,
.woocommerce-MyAccount-navigation a.is-active:hover,
.ps-side li.is-active a:hover,
.ps-side a.is-active:hover {
  background: #27272a !important;
  color: var(--ps-sand) !important;
}

/* Reset WooCommerce Default Floats & 68% Width Contraints */
.woocommerce-account .woocommerce-MyAccount-content,
body.woocommerce-account .woocommerce-MyAccount-content {
  float: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-navigation {
  float: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* My Account Content Container */
.woocommerce-MyAccount-content.ps-card {
  background: var(--ps-clay);
  border-radius: 16px;
  padding: 2.25rem;
}

/* My Account Addresses Cards Styling (Grid & Alignment) */
.woocommerce-account .woocommerce-Addresses::before,
.woocommerce-account .woocommerce-Addresses::after,
.woocommerce-account .col2-set::before,
.woocommerce-account .col2-set::after,
.woocommerce-account .u-columns::before,
.woocommerce-account .u-columns::after {
  content: none !important;
  display: none !important;
}

.woocommerce-account .woocommerce-Addresses,
.woocommerce-account .woocommerce-Addresses.col2-set,
.woocommerce-account .u-columns.addresses {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 1.5rem !important;
  margin-top: 1.5rem !important;
  width: 100% !important;
  float: none !important;
  clear: both !important;
}

@media (min-width: 640px) {
  .woocommerce-account .woocommerce-Addresses,
  .woocommerce-account .woocommerce-Addresses.col2-set,
  .woocommerce-account .u-columns.addresses {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

.woocommerce-account .woocommerce-Address,
.woocommerce-account .woocommerce-Address.col-1,
.woocommerce-account .woocommerce-Address.col-2,
.woocommerce-account .u-column1,
.woocommerce-account .u-column2,
.woocommerce-account .col-1,
.woocommerce-account .col-2 {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  background: var(--ps-sand) !important;
  border: 1px solid var(--ps-line) !important;
  border-radius: 14px !important;
  padding: 1.75rem !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
}

.woocommerce-account .woocommerce-Address .woocommerce-Address-title,
.woocommerce-account .u-column1 header,
.woocommerce-account .u-column2 header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-bottom: 1rem !important;
  width: 100% !important;
  border-bottom: 1px solid var(--ps-line) !important;
  padding-bottom: 0.75rem !important;
}

.woocommerce-account .woocommerce-Address .woocommerce-Address-title h3,
.woocommerce-account .u-column1 header h3,
.woocommerce-account .u-column2 header h3 {
  font-family: var(--font-serif, "Instrument Serif", Georgia, serif) !important;
  font-size: 1.35rem !important;
  font-style: italic !important;
  margin: 0 !important;
  color: var(--ps-earth) !important;
}

.woocommerce-account .woocommerce-Address .edit,
.woocommerce-account .u-column1 header a.edit,
.woocommerce-account .u-column2 header a.edit {
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--ps-amber) !important;
  text-decoration: none !important;
}

.woocommerce-account .woocommerce-Address .edit:hover,
.woocommerce-account .u-column1 header a.edit:hover,
.woocommerce-account .u-column2 header a.edit:hover {
  text-decoration: underline !important;
}

.woocommerce-account .woocommerce-Address address {
  font-style: normal !important;
  font-size: 0.875rem !important;
  line-height: 1.6 !important;
  color: var(--ps-moss) !important;
}

/* Notice boxes inside My Account — padding-left: 3.5rem reserves space for absolute icon */
.woocommerce-MyAccount-content .woocommerce-info,
.woocommerce-MyAccount-content .woocommerce-message,
.woocommerce-MyAccount-content .woocommerce-error,
.woocommerce-MyAccount-content .woocommerce-notice {
  background: var(--ps-sand) !important;
  border: 1px solid var(--ps-line) !important;
  border-left: 4px solid var(--ps-amber) !important;
  border-radius: 12px !important;
  padding: 1.15rem 1.5rem 1.15rem 3.5rem !important;
  margin-bottom: 1.5rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 1rem !important;
  font-size: .875rem !important;
  color: var(--ps-earth) !important;
  position: relative !important;
}

.woocommerce-MyAccount-content .woocommerce-info::before,
.woocommerce-MyAccount-content .woocommerce-message::before,
.woocommerce-MyAccount-content .woocommerce-error::before,
.woocommerce-MyAccount-content .woocommerce-notice::before {
  position: absolute !important;
  left: 1.25rem !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  margin: 0 !important;
}

/* Notice buttons inside My Account (e.g. "Browse products", "Confirm email address") */
.woocommerce-MyAccount-content .woocommerce-info a.button,
.woocommerce-MyAccount-content .woocommerce-message a.button,
.woocommerce-MyAccount-content .woocommerce-error a.button,
.woocommerce-MyAccount-content .woocommerce-info a.wc-forward,
.woocommerce-MyAccount-content .woocommerce-message a.wc-forward,
.woocommerce-MyAccount-content .woocommerce-error a.wc-forward {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  color: var(--ps-earth) !important;
  border: 1px solid var(--ps-earth) !important;
  border-radius: 999px !important;
  padding: .45rem 1.15rem !important;
  font-size: .7rem !important;
  font-weight: 500 !important;
  letter-spacing: .15em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  transition: all .2s ease !important;
  margin-left: auto !important;
}

.woocommerce-MyAccount-content .woocommerce-info a.button:hover,
.woocommerce-MyAccount-content .woocommerce-message a.button:hover,
.woocommerce-MyAccount-content .woocommerce-error a.button:hover,
.woocommerce-MyAccount-content .woocommerce-info a.wc-forward:hover,
.woocommerce-MyAccount-content .woocommerce-message a.wc-forward:hover,
.woocommerce-MyAccount-content .woocommerce-error a.wc-forward:hover {
  background: var(--ps-earth) !important;
  color: var(--ps-sand) !important;
}

/* Required asterisk */
.woocommerce-account .required {
  color: var(--ps-amber);
  text-decoration: none;
}

/* Forms inside My Account */
.woocommerce-MyAccount-content form .form-row {
  margin-bottom: 1.25rem;
  float: none !important;
  width: 100% !important;
  position: relative !important;
}

.woocommerce-MyAccount-content form .form-row label {
  display: block;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--ps-earth);
  margin-bottom: .45rem;
}

.woocommerce-MyAccount-content form .form-row label .required {
  color: var(--ps-amber) !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

.woocommerce-MyAccount-content form .form-row .input-text,
.woocommerce-MyAccount-content form .form-row input[type="text"],
.woocommerce-MyAccount-content form .form-row input[type="email"],
.woocommerce-MyAccount-content form .form-row input[type="password"],
.woocommerce-MyAccount-content form .form-row input[type="tel"],
.woocommerce-MyAccount-content form select,
.woocommerce-MyAccount-content form textarea {
  width: 100% !important;
  background: #ffffff !important;
  border: 1px solid var(--ps-line) !important;
  border-radius: 8px !important;
  padding: .8rem 1rem !important;
  font: inherit !important;
  font-size: .95rem !important;
  color: var(--ps-earth) !important;
  outline: none !important;
  box-sizing: border-box !important;
  transition: border-color .2s ease, box-shadow .2s ease !important;
}

.woocommerce-MyAccount-content form .form-row .input-text:focus,
.woocommerce-MyAccount-content form .form-row input:focus,
.woocommerce-MyAccount-content form select:focus,
.woocommerce-MyAccount-content form textarea:focus {
  border-color: var(--ps-amber) !important;
  box-shadow: 0 0 0 3px rgba(200, 138, 56, .15) !important;
}

/* Edit Account Form Layout */
.woocommerce-EditAccountForm {
  display: flex !important;
  flex-direction: column !important;
}

@media (min-width: 640px) {
  .woocommerce-EditAccountForm {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0 1.25rem !important;
  }
  .woocommerce-EditAccountForm > p,
  .woocommerce-EditAccountForm > fieldset,
  .woocommerce-EditAccountForm > div,
  .woocommerce-EditAccountForm > span {
    grid-column: span 2 !important;
  }
  .woocommerce-EditAccountForm p.woocommerce-form-row--first {
    grid-column: 1 !important;
  }
  .woocommerce-EditAccountForm p.woocommerce-form-row--last {
    grid-column: 2 !important;
  }
}

.woocommerce-EditAccountForm #account_display_name_description,
.woocommerce-EditAccountForm span[id*="account_display_name"],
.woocommerce-EditAccountForm em {
  display: block !important;
  margin-top: .4rem !important;
  font-size: .8rem !important;
  color: var(--ps-moss) !important;
  font-style: italic !important;
  line-height: 1.4 !important;
}

/* Password Change Fieldset Card */
.woocommerce-EditAccountForm fieldset {
  border: 1px solid var(--ps-line) !important;
  border-radius: 12px !important;
  padding: 1.5rem !important;
  margin: 1.75rem 0 1.25rem 0 !important;
  background: #ffffff !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .03) !important;
  box-sizing: border-box !important;
}

.woocommerce-EditAccountForm fieldset legend {
  font-family: var(--font-serif, "Instrument Serif", Georgia, serif) !important;
  font-size: 1.35rem !important;
  font-weight: 500 !important;
  color: var(--ps-earth) !important;
  padding: 0 0 .6rem 0 !important;
  margin: 0 0 1.25rem 0 !important;
  display: block !important;
  width: 100% !important;
  float: none !important;
  border-bottom: 1px solid var(--ps-line) !important;
}

.woocommerce-EditAccountForm fieldset .form-row .input-text,
.woocommerce-EditAccountForm fieldset .form-row input[type="password"] {
  background: var(--ps-sand) !important;
  border: 1px solid var(--ps-line) !important;
}

/* Submit Buttons in My Account */
.woocommerce-MyAccount-content button[type="submit"],
.woocommerce-MyAccount-content input[type="submit"],
.woocommerce-MyAccount-content p .button,
.woocommerce-EditAccountForm button.button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--ps-earth) !important;
  color: #ffffff !important;
  border: 1px solid var(--ps-earth) !important;
  border-radius: 999px !important;
  padding: .85rem 2.25rem !important;
  font-size: .75rem !important;
  font-weight: 600 !important;
  letter-spacing: .15em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: all .2s ease !important;
  margin-top: 1rem !important;
  width: auto !important;
}

.woocommerce-MyAccount-content button[type="submit"]:hover,
.woocommerce-MyAccount-content input[type="submit"]:hover,
.woocommerce-MyAccount-content p .button:hover,
.woocommerce-EditAccountForm button.button:hover {
  background: var(--ps-amber) !important;
  border-color: var(--ps-amber) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(200, 138, 56, .25) !important;
}

/* My Account Paragraphs & Links */
.woocommerce-MyAccount-content p {
  line-height: 1.7;
  color: var(--ps-moss);
  margin-bottom: 1.25rem;
}

.woocommerce-MyAccount-content p strong,
.woocommerce-MyAccount-content p a {
  color: var(--ps-earth);
}

.woocommerce-MyAccount-content p a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.woocommerce-MyAccount-content p a:hover {
  color: var(--ps-amber);
}

/* Orders & Downloads Tables */
.woocommerce-MyAccount-content table.shop_table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--ps-sand);
  border: 1px solid var(--ps-line);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 1.5rem;
}

.woocommerce-MyAccount-content table.shop_table th,
.woocommerce-MyAccount-content table.shop_table td {
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--ps-line);
  font-size: 0.9rem;
  color: var(--ps-earth);
}

.woocommerce-MyAccount-content table.shop_table thead th {
  background: var(--ps-clay);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--ps-moss);
  font-weight: 600;
}

.woocommerce-MyAccount-content table.shop_table tr:last-child th,
.woocommerce-MyAccount-content table.shop_table tr:last-child td {
  border-bottom: none;
}

/* Address Cards Grid & Layout Fix */
.woocommerce-Addresses,
.u-columns.woocommerce-Addresses,
.woocommerce-MyAccount-content .woocommerce-Addresses,
.woocommerce-page .woocommerce-MyAccount-content .woocommerce-Addresses {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 1.5rem !important;
  margin-top: 1.5rem !important;
  width: 100% !important;
  float: none !important;
  clear: both !important;
}

@media (max-width: 640px) {
  .woocommerce-Addresses,
  .u-columns.woocommerce-Addresses,
  .woocommerce-MyAccount-content .woocommerce-Addresses,
  .woocommerce-page .woocommerce-MyAccount-content .woocommerce-Addresses {
    grid-template-columns: 1fr !important;
  }
}

.woocommerce-Addresses .u-column1,
.woocommerce-Addresses .u-column2,
.woocommerce-Addresses .col-1,
.woocommerce-Addresses .col-2,
.woocommerce-Addresses .woocommerce-Address,
.woocommerce-MyAccount-content .woocommerce-Address {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  clear: none !important;
  margin: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
  background: var(--ps-sand) !important;
  border: 1px solid var(--ps-line) !important;
  border-radius: 12px !important;
  padding: 1.5rem !important;
}

.woocommerce-Address header,
.woocommerce-Address-title,
header.woocommerce-Address-title,
.woocommerce-Address .title {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0.75rem !important;
  margin-bottom: 1rem !important;
  margin-top: 0 !important;
  border-bottom: 1px solid var(--ps-line) !important;
  padding-bottom: .75rem !important;
  float: none !important;
  clear: both !important;
  width: 100% !important;
  text-align: left !important;
}

.woocommerce-Address header h2,
.woocommerce-Address header h3,
.woocommerce-Address-title h2,
.woocommerce-Address-title h3,
header.woocommerce-Address-title h2,
header.woocommerce-Address-title h3,
.woocommerce-Address .title h2,
.woocommerce-Address .title h3 {
  font-family: var(--font-serif, "Instrument Serif", Georgia, serif) !important;
  font-size: 1.35rem !important;
  font-weight: 500 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--ps-earth) !important;
  float: none !important;
  display: block !important;
  text-align: left !important;
  line-height: 1.2 !important;
  flex: 1 1 auto !important;
}

.woocommerce-Address header a,
.woocommerce-Address-title a,
.woocommerce-Address header a.edit,
.woocommerce-Address-title a.edit,
header.woocommerce-Address-title a.edit,
.woocommerce-Address .title a.edit {
  font-size: .72rem !important;
  font-weight: 500 !important;
  letter-spacing: .15em !important;
  text-transform: uppercase !important;
  color: var(--ps-amber) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
  white-space: nowrap !important;
  float: none !important;
  display: block !important;
  text-align: right !important;
  margin: 0 !important;
  flex: 0 0 auto !important;
}

.woocommerce-Address address {
  font-style: normal !important;
  font-size: .9rem !important;
  line-height: 1.6 !important;
  color: var(--ps-earth) !important;
  margin: 0 !important;
  float: none !important;
  text-align: left !important;
}

/* Auth Container (Login / Register Dedicated View) */
.ps-auth-container {
  max-width: 520px !important;
  margin: 2.5rem auto !important;
  width: 100% !important;
}

.ps-auth-tabs {
  display: flex !important;
  background: rgba(0, 0, 0, 0.04) !important;
  border-radius: 999px !important;
  padding: 4px !important;
  margin-bottom: 1.75rem !important;
  border: 1px solid var(--ps-line) !important;
}

.ps-auth-tab {
  flex: 1 !important;
  text-align: center !important;
  padding: 0.75rem 1.25rem !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--ps-moss) !important;
  border: none !important;
  background: transparent !important;
  border-radius: 999px !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  outline: none !important;
}

.ps-auth-tab:hover {
  color: var(--ps-earth) !important;
}

.ps-auth-tab.is-active {
  background: var(--ps-earth) !important;
  color: #ffffff !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
}

.ps-auth-card {
  background: #ffffff !important;
  border: 1px solid var(--ps-line) !important;
  border-radius: 16px !important;
  padding: 2.25rem !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04) !important;
}

.ps-auth-header {
  margin-bottom: 1.75rem !important;
  text-align: center !important;
  border-bottom: 1px solid var(--ps-line) !important;
  padding-bottom: 1.25rem !important;
}

.ps-auth-header .ps-h2 {
  font-family: var(--font-serif, "Instrument Serif", Georgia, serif) !important;
  font-size: 2rem !important;
  color: var(--ps-earth) !important;
  margin-bottom: 0.35rem !important;
  font-weight: 500 !important;
}

.ps-auth-header .ps-muted {
  font-size: 0.88rem !important;
  color: var(--ps-moss) !important;
}

.ps-field {
  margin-bottom: 1.25rem !important;
}

.ps-field .ps-label {
  display: block !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--ps-earth) !important;
  margin-bottom: 0.45rem !important;
}

.ps-field .ps-label .required {
  color: var(--ps-amber) !important;
}

.ps-input {
  width: 100% !important;
  background: var(--ps-sand, #fbf9f5) !important;
  border: 1px solid var(--ps-line) !important;
  border-radius: 8px !important;
  padding: 0.8rem 1rem !important;
  font-size: 0.95rem !important;
  color: var(--ps-earth) !important;
  outline: none !important;
  box-sizing: border-box !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.ps-input:focus {
  border-color: var(--ps-amber) !important;
  box-shadow: 0 0 0 3px rgba(200, 138, 56, 0.15) !important;
}

.ps-btn--block {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--ps-earth) !important;
  color: #ffffff !important;
  border: 1px solid var(--ps-earth) !important;
  border-radius: 999px !important;
  padding: 0.9rem 1.5rem !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  margin-top: 1rem !important;
}

.ps-btn--block:hover {
  background: var(--ps-amber) !important;
  border-color: var(--ps-amber) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(200, 138, 56, 0.25) !important;
}

.ps-form-grid-2 {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 1rem !important;
}

@media (max-width: 480px) {
  .ps-form-grid-2 {
    grid-template-columns: 1fr !important;
  }
}

.ps-auth-footer {
  margin-top: 1.5rem !important;
  padding-top: 1.25rem !important;
  border-top: 1px solid var(--ps-line) !important;
  text-align: center !important;
  font-size: 0.85rem !important;
  color: var(--ps-moss) !important;
}

.ps-link-accent {
  color: var(--ps-amber) !important;
  font-weight: 600 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

.ps-link-accent:hover {
  color: var(--ps-earth) !important;
}
/* Gutenberg content page (privacy policy, terms and information pages) */
.ps-content-page { padding: 8.5rem 1.5rem 6rem; background: var(--ps-sand); }
.ps-content-page__article { width: 100%; max-width: 52rem; margin: 0 auto; }
.ps-content-page__header { padding-bottom: 2.5rem; margin-bottom: 2.5rem; border-bottom: 1px solid var(--ps-line); }
.ps-content-page__title { max-width: 16ch; margin: 0; color: var(--ps-earth); font-family: var(--font-serif, "Instrument Serif", Georgia, serif); font-size: clamp(2.75rem, 7vw, 4.5rem); font-weight: 400; line-height: 1; letter-spacing: -.025em; }
.ps-content-page__body { color: var(--ps-moss); font-size: 1rem; line-height: 1.8; }
.ps-content-page__body > *:first-child { margin-top: 0; }
.ps-content-page__body > *:last-child { margin-bottom: 0; }
.ps-content-page__body p, .ps-content-page__body ul, .ps-content-page__body ol, .ps-content-page__body blockquote, .ps-content-page__body table, .ps-content-page__body .wp-block-group { margin-top: 0; margin-bottom: 1.25rem; }
.ps-content-page__body h2, .ps-content-page__body h3, .ps-content-page__body h4, .ps-content-page__body h5, .ps-content-page__body h6 { color: var(--ps-earth); line-height: 1.25; scroll-margin-top: 6rem; }
.ps-content-page__body h2 { margin: 3.25rem 0 1rem; font-family: var(--font-serif, "Instrument Serif", Georgia, serif); font-size: clamp(2rem, 4vw, 2.6rem); font-weight: 400; }
.ps-content-page__body h3 { margin: 2.25rem 0 .75rem; font-size: 1.1rem; font-weight: 600; }
.ps-content-page__body h4, .ps-content-page__body h5, .ps-content-page__body h6 { margin: 1.75rem 0 .65rem; font-size: .9rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.ps-content-page__body ul,
.ps-content-page__body ol {
  display: block;
  padding-left: 1.6rem;
  margin-left: 0;
}

.ps-content-page__body ul,
.ps-content-page__body ul.wp-block-list {
  list-style: disc outside;
}

.ps-content-page__body ol,
.ps-content-page__body ol.wp-block-list {
  list-style: decimal outside;
}

.ps-content-page__body ul ul { list-style-type: circle; }
.ps-content-page__body ul ul ul { list-style-type: square; }
.ps-content-page__body ol ol { list-style-type: lower-alpha; }

.ps-content-page__body li::marker {
  color: var(--ps-amber);
}
.ps-content-page__body li { margin-bottom: .45rem; padding-left: .25rem; }
.ps-content-page__body a { color: var(--ps-earth); text-decoration: underline; text-decoration-color: var(--ps-amber); text-underline-offset: 3px; }
.ps-content-page__body a:hover { color: var(--ps-amber); }
.ps-content-page__body strong { color: var(--ps-earth); font-weight: 600; }
.ps-content-page__body blockquote { padding: .25rem 0 .25rem 1.5rem; border-left: 2px solid var(--ps-amber); color: var(--ps-earth); font-family: var(--font-serif, "Instrument Serif", Georgia, serif); font-size: 1.35rem; line-height: 1.5; }
.ps-content-page__body img { max-width: 100%; height: auto; border-radius: 10px; }
.ps-content-page__body table { width: 100%; border-collapse: collapse; }
.ps-content-page__body th, .ps-content-page__body td { padding: .8rem; border-bottom: 1px solid var(--ps-line); text-align: left; }
.ps-content-page__body th { color: var(--ps-earth); font-weight: 600; }
.ps-content-page__body .alignwide { width: min(68rem, calc(100vw - 3rem)); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.ps-content-page__body .alignfull { width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }
@media (max-width: 640px) {
  .ps-content-page { padding: 7rem 1.25rem 4rem; }
  .ps-content-page__header { padding-bottom: 1.75rem; margin-bottom: 2rem; }
  .ps-content-page__body { font-size: .95rem; line-height: 1.75; }
}

