/* Cart, checkout, and account pages. */

.woocommerce-cart,
.woocommerce-checkout,
.woocommerce-account {
  background:
    radial-gradient(circle at 12% 0%, rgba(0, 107, 182, .07), transparent 26%),
    linear-gradient(180deg, var(--color-surface-cool) 0%, var(--color-white) 320px);
}

.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content,
.woocommerce-account .entry-content {
  width: min(calc(100% - (var(--site-container-gutter) * 2)), 1180px);
  margin: 0 auto;
  padding: var(--section-space-sm) 0 var(--section-space-md);
}

.woocommerce-cart .entry-content > h1,
.woocommerce-checkout .entry-content > h1,
.woocommerce-account .entry-content > h1,
.woocommerce-cart .wp-block-post-title,
.woocommerce-checkout .wp-block-post-title,
.woocommerce-account .wp-block-post-title {
  margin: 0 0 var(--space-xl);
  color: var(--color-text);
  font-size: clamp(36px, 5vw, 68px);
  font-weight: var(--font-weight-bold);
  line-height: 1;
  letter-spacing: -.045em;
}

.woocommerce-cart .wc-block-cart,
.woocommerce-checkout .wc-block-checkout,
.woocommerce-account .woocommerce {
  color: var(--color-text);
  font-family: var(--font-body-family);
}

.woocommerce-cart .wc-block-cart,
.woocommerce-checkout .wc-block-checkout {
  gap: var(--space-xl);
}

.yonex-trust-strip {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-xl);
  align-items: end;
  margin: 0 0 var(--space-xl);
  padding: clamp(24px, 4vw, 42px);
  overflow: hidden;
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(0, 107, 182, .95), rgba(0, 81, 138, .98)),
    var(--color-brand-blue-dark);
  color: var(--color-white);
  box-shadow: var(--shadow-sm);
}

.yonex-trust-strip::after {
  content: '';
  position: absolute;
  right: -70px;
  top: -110px;
  width: 260px;
  height: 260px;
  border: 30px solid rgba(255, 255, 255, .08);
  transform: rotate(45deg);
}

.yonex-trust-strip > * {
  position: relative;
  z-index: 1;
}

.yonex-trust-strip-kicker {
  margin: 0 0 var(--space-xs);
  color: var(--color-brand-lime);
  font-size: 13px;
  font-weight: var(--font-weight-bold);
  letter-spacing: .16em;
  text-transform: uppercase;
}

.yonex-trust-strip h2 {
  max-width: 760px;
  margin: 0 0 var(--space-sm);
  color: var(--color-white);
  font-size: clamp(32px, 5vw, 58px);
  line-height: .98;
  letter-spacing: -.045em;
}

.yonex-trust-strip p:not(.yonex-trust-strip-kicker) {
  max-width: 680px;
  margin: 0;
  color: rgba(255, 255, 255, .86);
  font-size: 18px;
  line-height: 1.55;
}

.yonex-trust-strip-badges {
  display: grid;
  gap: var(--space-xs);
  min-width: 240px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.yonex-trust-strip-badges li {
  padding: var(--space-sm) var(--space-md);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, .09);
  color: var(--color-white);
  font-size: 14px;
  font-weight: var(--font-weight-bold);
  letter-spacing: .03em;
}

.woocommerce-cart .wc-block-cart__main,
.woocommerce-checkout .wc-block-checkout__main,
.woocommerce-cart .wc-block-cart__sidebar,
.woocommerce-checkout .wc-block-checkout__sidebar,
.woocommerce-account .woocommerce-form,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content,
.yonex-register-card,
.yonex-register-page-logged-in {
  border: var(--border-default);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, .94);
  box-shadow: var(--shadow-xs);
}

.woocommerce-cart .wc-block-cart__sidebar,
.woocommerce-checkout .wc-block-checkout__sidebar {
  padding: var(--space-lg);
}

.woocommerce-checkout .wc-block-checkout__main {
  padding: var(--space-xl);
}

.woocommerce-checkout .wc-block-checkout__sidebar {
  align-self: start;
}

@media (min-width: 961px) {
  .woocommerce-checkout .wc-block-checkout__sidebar {
    position: sticky;
    top: calc(var(--header-height, 96px) + var(--space-lg));
  }
}

.woocommerce-cart .wc-block-cart__empty-cart__title,
.woocommerce-cart .wp-block-heading,
.woocommerce-checkout .wp-block-heading,
.woocommerce-account h2,
.woocommerce-account h3 {
  color: var(--color-text);
  font-family: var(--font-heading-family);
  font-weight: var(--font-weight-bold);
  letter-spacing: -.025em;
}

.woocommerce-cart .wc-block-cart__empty-cart__title {
  margin-top: 0;
  font-size: clamp(30px, 4vw, 52px);
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block {
  max-width: 980px;
  margin: 0 auto;
  text-align: center;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block > p {
  max-width: 640px;
  margin: 0 auto var(--space-lg);
  color: var(--color-text-soft);
  font-size: 18px;
  line-height: 1.55;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-sm);
  margin: var(--space-xl) 0;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 var(--space-lg);
}

.woocommerce-cart .wp-block-separator {
  width: min(100%, 720px);
  margin: var(--space-2xl) auto;
  border-color: var(--color-border);
}

.woocommerce-cart .wc-block-grid__products {
  gap: var(--space-lg);
}

.woocommerce-cart .wc-block-grid__product {
  border: var(--border-default);
  border-radius: var(--radius-md);
  background: var(--color-white);
  box-shadow: var(--shadow-xs);
}

.woocommerce-cart .wc-block-grid__product-image {
    padding: var(--space-md);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .84), rgba(246, 249, 251, .96)),
        var(--color-surface-cool);
}

.woocommerce-cart .wc-block-grid__product-image img,
.woocommerce-cart .wc-block-cart-item__image img,
.woocommerce-checkout .wc-block-components-order-summary-item__image img {
    border-radius: var(--radius-sm);
    object-fit: contain;
}

.woocommerce-cart .wc-block-cart-item__image,
.woocommerce-checkout .wc-block-components-order-summary-item__image {
    overflow: hidden;
    border: var(--border-default);
    border-radius: var(--radius-md);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .86), rgba(246, 249, 251, .96)),
        var(--color-surface-cool);
}

.woocommerce-cart .wc-block-grid__product-title {
  color: var(--color-text);
  font-weight: var(--font-weight-bold);
}

.woocommerce-cart .wc-block-grid__product-price,
.woocommerce-cart .wc-block-grid__product-price .amount {
  color: var(--color-text);
  font-weight: var(--font-weight-bold);
}

.woocommerce-cart .wp-block-button__link,
.woocommerce-cart .wc-block-components-button,
.woocommerce-checkout .wc-block-components-button,
.woocommerce-account .button,
.woocommerce-account button.button,
.yonex-register-page .button,
.yonex-register-page button.button {
  min-height: 48px;
  border: 0;
  border-radius: var(--radius-sm);
  background: var(--color-action);
  color: var(--color-white);
  font-family: var(--font-body-family);
  font-weight: var(--font-weight-bold);
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
  transition:
    background var(--duration-base) var(--ease-standard),
    transform var(--duration-base) var(--ease-standard);
}

.woocommerce-cart .wp-block-button__link:hover,
.woocommerce-cart .wc-block-components-button:hover,
.woocommerce-checkout .wc-block-components-button:hover,
.woocommerce-account .button:hover,
.woocommerce-account button.button:hover,
.yonex-register-page .button:hover,
.yonex-register-page button.button:hover {
  background: var(--color-action-hover);
  color: var(--color-white);
  transform: translateY(-1px);
}

.woocommerce-cart .wc-block-components-text-input input,
.woocommerce-checkout .wc-block-components-text-input input,
.woocommerce-checkout .wc-block-components-combobox-control input,
.woocommerce-account .woocommerce-form input.input-text,
.yonex-register-page .woocommerce-form input.input-text {
  border: var(--border-strong);
  border-radius: var(--radius-sm);
  color: var(--color-text);
  font-family: var(--font-body-family);
}

.woocommerce-cart .wc-block-components-totals-wrapper,
.woocommerce-checkout .wc-block-components-totals-wrapper,
.woocommerce-checkout .wc-block-checkout__terms,
.woocommerce-checkout .wc-block-components-checkout-step {
  border-color: var(--color-border);
}

.woocommerce-checkout .wc-block-components-checkout-step {
  padding: var(--space-lg) 0;
}

.woocommerce-checkout .wc-block-components-checkout-step:first-child {
  padding-top: 0;
}

.woocommerce-checkout .wc-block-components-checkout-step__heading {
  margin-bottom: var(--space-md);
}

.woocommerce-checkout .wc-block-components-checkout-step__title,
.woocommerce-checkout .wc-block-components-title {
  color: var(--color-text);
  font-family: var(--font-heading-family);
  font-weight: var(--font-weight-bold);
  letter-spacing: -.025em;
}

.woocommerce-checkout .wc-block-components-checkout-step__description,
.woocommerce-checkout .wc-block-components-formatted-money-amount,
.woocommerce-checkout .wc-block-components-totals-item__description {
  color: var(--color-text-soft);
}

.woocommerce-checkout .wc-block-components-text-input label,
.woocommerce-checkout .wc-block-components-combobox-control label,
.woocommerce-checkout .wc-block-components-checkbox__label {
  color: var(--color-text-soft);
  font-weight: var(--font-weight-medium);
}

.woocommerce-checkout .wc-block-components-text-input input:focus,
.woocommerce-checkout .wc-block-components-combobox-control input:focus,
.woocommerce-account .woocommerce-form input.input-text:focus,
.yonex-register-page .woocommerce-form input.input-text:focus {
  border-color: var(--color-action);
  box-shadow: 0 0 0 3px rgba(0, 107, 182, .14);
  outline: none;
}

.woocommerce-checkout .wc-block-components-order-summary,
.woocommerce-checkout .wc-block-components-totals-wrapper {
  background: transparent;
}

.woocommerce-checkout .wc-block-components-order-summary__button-text,
.woocommerce-checkout .wc-block-components-totals-item__label,
.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color: var(--color-text);
  font-weight: var(--font-weight-bold);
}

.woocommerce-checkout .wc-block-checkout__actions_row {
  gap: var(--space-md);
}

.woocommerce-checkout .wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button {
  width: 100%;
  min-height: 56px;
}

.woocommerce-account .woocommerce {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  gap: var(--space-xl);
  align-items: start;
}

.woocommerce-account:not(.logged-in) .woocommerce {
  grid-template-columns: 1fr;
  width: min(100%, 520px);
  margin: 0 auto;
}

.woocommerce-account .woocommerce-form,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
  padding: var(--space-xl);
}

.woocommerce-account .u-columns.col2-set {
  display: grid;
  grid-template-columns: minmax(0, 520px);
  justify-content: center;
  align-items: start;
}

.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
  min-width: 0;
}

.woocommerce-account .u-column1 > h2,
.woocommerce-account .u-column2 > h2 {
  margin: 0 0 var(--space-md);
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1;
}

.woocommerce-account .woocommerce-form {
  max-width: none;
  margin: 0;
  padding: var(--space-xl);
}

.woocommerce-account .woocommerce-form-login {
  position: relative;
  overflow: hidden;
}

.woocommerce-account .woocommerce-form-row label,
.woocommerce-account .woocommerce-form__label,
.yonex-register-page .woocommerce-form-row label,
.yonex-register-page .woocommerce-form__label {
  color: var(--color-text);
  font-weight: var(--font-weight-bold);
}

.woocommerce-account .woocommerce-form-row,
.yonex-register-page .woocommerce-form-row {
  margin-bottom: var(--space-md);
}

.woocommerce-account .woocommerce-form input.input-text,
.yonex-register-page .woocommerce-form input.input-text {
  width: 100%;
  height: 52px;
  padding: 0 var(--space-md);
  background: var(--color-white);
  font-size: 16px;
}

.woocommerce-account .woocommerce-form .password-input {
  display: block;
}

.woocommerce-account .woocommerce-form .show-password-input {
  top: 50%;
  transform: translateY(-50%);
}

.woocommerce-account .woocommerce-form-login__rememberme {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  margin: 0 0 var(--space-md);
  color: var(--color-text-soft);
}

.woocommerce-account .woocommerce-LostPassword {
  margin: var(--space-md) 0 0;
}

.woocommerce-account .woocommerce-LostPassword a {
  color: var(--color-action);
  font-weight: var(--font-weight-bold);
}

.woocommerce-account .woocommerce-form-login__submit {
  width: 100%;
  margin-top: var(--space-sm);
}

.woocommerce-account .yonex-social-login,
.yonex-register-page .yonex-social-login {
  margin: 0 0 var(--space-lg);
}

.woocommerce-account .yonex-social-login-heading,
.yonex-register-page .yonex-social-login-heading {
  margin: 0 0 var(--space-sm);
  color: var(--color-text);
  font-weight: var(--font-weight-bold);
}

.woocommerce-account .yonex-social-login-separator,
.yonex-register-page .yonex-social-login-separator {
  display: flex;
  gap: var(--space-sm);
  align-items: center;
  margin: var(--space-md) 0 0;
  color: var(--color-text-soft);
  font-size: 13px;
  font-weight: var(--font-weight-bold);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.woocommerce-account .yonex-social-login-separator::before,
.woocommerce-account .yonex-social-login-separator::after,
.yonex-register-page .yonex-social-login-separator::before,
.yonex-register-page .yonex-social-login-separator::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--color-border);
}

.woocommerce-account .nsl-container,
.yonex-register-page .nsl-container {
  margin: 0;
}

.woocommerce-account .nsl-separator,
.yonex-register-page .nsl-separator {
  display: flex;
  gap: var(--space-sm);
  align-items: center;
  margin: var(--space-md) 0;
  color: var(--color-text-soft);
  font-size: 13px;
  font-weight: var(--font-weight-bold);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.woocommerce-account .nsl-separator::before,
.woocommerce-account .nsl-separator::after,
.yonex-register-page .nsl-separator::before,
.yonex-register-page .nsl-separator::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--color-border);
}

.woocommerce-account div.nsl-container .nsl-container-buttons,
.yonex-register-page div.nsl-container .nsl-container-buttons {
  display: grid;
  gap: var(--space-sm);
}

.woocommerce-account div.nsl-container .nsl-container-buttons a[data-plugin='nsl'],
.yonex-register-page div.nsl-container .nsl-container-buttons a[data-plugin='nsl'] {
  width: 100%;
  min-height: 52px;
  border-radius: var(--radius-sm) !important;
  box-shadow: none !important;
  transition:
    transform var(--duration-base) var(--ease-standard),
    box-shadow var(--duration-base) var(--ease-standard);
}

.woocommerce-account div.nsl-container .nsl-container-buttons a[data-plugin='nsl']:hover,
.yonex-register-page div.nsl-container .nsl-container-buttons a[data-plugin='nsl']:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-xs) !important;
}

.woocommerce-account div.nsl-container .nsl-button-label-container,
.yonex-register-page div.nsl-container .nsl-button-label-container {
  font-family: var(--font-body-family);
  font-weight: var(--font-weight-bold);
  letter-spacing: .02em;
}

.yonex-login-register-cta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  justify-content: center;
  margin: var(--space-lg) 0 0;
  padding-top: var(--space-md);
  border-top: var(--border-subtle);
  color: var(--color-text-soft);
  font-weight: var(--font-weight-bold);
}

.yonex-login-register-cta a {
  color: var(--color-action);
  text-decoration: none;
}

.yonex-login-register-cta a:hover {
  text-decoration: underline;
}

.yonex-register-page {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 500px);
  gap: var(--space-xl);
  align-items: stretch;
  width: min(calc(100% - (var(--site-container-gutter) * 2)), 1180px);
  margin: 0 auto;
  padding: var(--section-space-sm) 0 var(--section-space-md);
  color: var(--color-text);
  font-family: var(--font-body-family);
}

.yonex-register-intro {
  position: relative;
  min-height: 100%;
  padding: clamp(28px, 4vw, 48px);
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(0, 107, 182, .94), rgba(0, 81, 138, .98)),
    var(--color-brand-blue-dark);
  color: var(--color-white);
}

.yonex-register-intro::after {
  content: '';
  position: absolute;
  right: -80px;
  bottom: -96px;
  width: 280px;
  height: 280px;
  border: 32px solid rgba(255, 255, 255, .08);
  transform: rotate(45deg);
}

.yonex-register-intro > * {
  position: relative;
  z-index: 1;
}

.yonex-register-kicker {
  margin: 0 0 var(--space-xs);
  color: var(--color-brand-lime);
  font-size: 13px;
  font-weight: var(--font-weight-bold);
  letter-spacing: .16em;
  text-transform: uppercase;
}

.yonex-register-intro h2 {
  max-width: 720px;
  margin: 0 0 var(--space-md);
  color: var(--color-white);
  font-size: clamp(36px, 5vw, 66px);
  font-weight: var(--font-weight-bold);
  line-height: .96;
}

.yonex-register-intro p:not(.yonex-register-kicker) {
  max-width: 660px;
  margin: 0;
  color: rgba(255, 255, 255, .86);
  font-size: 18px;
  line-height: 1.55;
}

.yonex-register-benefits {
  display: grid;
  gap: var(--space-sm);
  max-width: 560px;
  margin: var(--space-xl) 0 0;
  padding: 0;
  list-style: none;
}

.yonex-register-benefits li {
  padding: var(--space-md);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, .08);
  color: var(--color-white);
  font-weight: var(--font-weight-bold);
}

.yonex-register-card,
.yonex-register-page-logged-in {
  padding: var(--space-xl);
}

.yonex-register-card .woocommerce-form-register {
  margin: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
}

.yonex-register-password-note {
  color: var(--color-text-soft);
  line-height: 1.55;
}

.yonex-register-card .woocommerce-privacy-policy-text {
  color: var(--color-text-soft);
  font-size: 15px;
  line-height: 1.55;
}

.yonex-register-card .woocommerce-privacy-policy-text a {
  color: var(--color-action);
  font-weight: var(--font-weight-bold);
}

.yonex-register-card .woocommerce-form-register__submit {
  width: 100%;
  margin-top: var(--space-sm);
}

.yonex-register-login-link {
  margin: var(--space-lg) 0 0;
  padding-top: var(--space-md);
  border-top: var(--border-subtle);
  color: var(--color-text-soft);
  font-weight: var(--font-weight-bold);
  text-align: center;
}

.yonex-register-login-link a,
.yonex-register-page-logged-in a {
  color: var(--color-action);
  font-weight: var(--font-weight-bold);
  text-decoration: none;
}

.yonex-register-login-link a:hover,
.yonex-register-page-logged-in a:hover {
  text-decoration: underline;
}

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

.woocommerce-account .woocommerce-MyAccount-navigation li + li {
  border-top: var(--border-subtle);
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
  display: block;
  padding: var(--space-sm) 0;
  color: var(--color-text);
  font-weight: var(--font-weight-bold);
  text-decoration: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a {
  color: var(--color-action);
}

@media (max-width: 860px) {
  .yonex-trust-strip {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .yonex-trust-strip-badges {
    min-width: 0;
  }

  .woocommerce-account .woocommerce {
    grid-template-columns: 1fr;
  }

  .woocommerce-account .u-columns.col2-set {
    grid-template-columns: 1fr;
  }

  .yonex-register-page {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .woocommerce-cart .entry-content,
  .woocommerce-checkout .entry-content,
  .woocommerce-account .entry-content {
    padding-top: var(--space-xl);
  }

  .woocommerce-cart .wc-block-cart__sidebar,
  .woocommerce-checkout .wc-block-checkout__sidebar,
  .woocommerce-checkout .wc-block-checkout__main,
  .woocommerce-account .woocommerce-form,
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content {
    padding: var(--space-lg);
    border-radius: var(--radius-md);
  }

  .yonex-register-page {
    width: min(calc(100% - (var(--site-container-gutter) * 2)), 520px);
    padding-top: var(--space-xl);
  }

  .yonex-register-intro,
  .yonex-register-card,
  .yonex-register-page-logged-in {
    padding: var(--space-lg);
    border-radius: var(--radius-md);
  }
}
