/* Prevent WooCommerce controls and dynamic payment content from colliding. */
.affiliate-page {
  width: min(1120px, 92%);
  margin: 62px auto 100px;
}

.affiliate-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(38px, 7vw, 78px);
  border: 1px solid #263b62;
  border-radius: 22px;
  background: radial-gradient(circle at 85% 15%, rgba(37,196,232,.2), transparent 34%), linear-gradient(145deg,#0b1937,#071128);
}

.affiliate-hero h1 {
  max-width: 760px;
  margin: 12px 0 20px;
  font-size: clamp(46px, 7vw, 78px);
  line-height: .96;
  letter-spacing: -.055em;
}

.affiliate-hero p:not(.eyebrow) {
  max-width: 680px;
  color: #b4c1d6;
  font-size: 17px;
  line-height: 1.7;
}

.affiliate-cta {
  display: inline-block;
  margin-top: 18px;
  padding: 15px 22px;
  background: var(--cyan);
  color: #041026;
  font-weight: 900;
}

.affiliate-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 18px;
  margin-top: 28px;
}

.affiliate-card,
.affiliate-rules,
.affiliate-apply {
  border: 1px solid #263b62;
  border-radius: 16px;
  background: linear-gradient(145deg,#0a1732,#071128);
  padding: 28px;
}

.affiliate-card h2,
.affiliate-rules h2,
.affiliate-apply h2 { margin-top: 0; color: #fff; }
.affiliate-card p,
.affiliate-rules li,
.affiliate-apply p { color: #aebbd0; line-height: 1.7; }
.affiliate-rules,
.affiliate-apply { margin-top: 18px; }
.affiliate-rules ul { padding-left: 20px; }
.affiliate-rules li { margin-bottom: 10px; }
.affiliate-apply { text-align: center; padding: 42px 28px; }

@media (max-width: 800px) {
  .affiliate-grid { grid-template-columns: 1fr; }
}

.woocommerce-checkout form.checkout_coupon {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 12px;
  width: 100%;
  clear: both;
  overflow: hidden;
  box-sizing: border-box;
}

.woocommerce-checkout form.checkout_coupon::before,
.woocommerce-checkout form.checkout_coupon::after {
  display: none;
}

.woocommerce-checkout form.checkout_coupon .form-row {
  float: none;
  width: 100%;
  margin: 0;
}

.woocommerce-checkout form.checkout_coupon .form-row-last {
  width: auto;
}

.woocommerce-checkout form.checkout_coupon .button {
  min-height: 52px;
  white-space: nowrap;
  border: 0;
  border-radius: 8px;
  padding: 12px 20px;
  background: var(--cyan);
  color: #041026;
  font-weight: 900;
}

.woocommerce-checkout form.checkout {
  clear: both;
  width: 100%;
}

.woocommerce-checkout form.checkout,
.woocommerce-checkout form.checkout > *,
.woocommerce-checkout #payment,
.woocommerce-checkout #payment ul.payment_methods,
.woocommerce-checkout #payment ul.payment_methods > li,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-content form,
.woocommerce-account .woocommerce-MyAccount-content fieldset {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.woocommerce-checkout #payment ul.payment_methods > li {
  clear: both;
  width: 100%;
  margin: 0;
  padding: 0 0 12px;
}

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

.woocommerce-checkout #payment ul.payment_methods > li > input[type="radio"] {
  float: none;
  display: inline-block;
  width: 17px;
  height: 17px;
  margin: 5px 7px 0 0;
  vertical-align: top;
}

.woocommerce-checkout #payment ul.payment_methods > li > label {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  max-width: calc(100% - 30px);
  min-height: 27px;
  line-height: 1.35;
  white-space: normal;
  vertical-align: top;
}

.woocommerce-checkout #payment .payment_box {
  clear: both;
  width: 100%;
  max-width: 100%;
  margin: 10px 0 2px;
  overflow: hidden;
  overflow-wrap: anywhere;
}

.woocommerce-checkout #payment .payment_box p,
.woocommerce-checkout #payment .payment_box code,
.woocommerce-checkout .woocommerce-privacy-policy-text,
.woocommerce-checkout .ruo-check span {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}

.woocommerce-checkout .form-row label {
  position: static;
  width: auto;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}

.woocommerce-checkout .form-row input,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea,
.woocommerce-account .form-row input,
.woocommerce-account .form-row select,
.woocommerce-account .form-row textarea {
  min-width: 0;
  max-width: 100%;
}

.woocommerce-checkout .ruo-check label {
  display: grid !important;
  grid-template-columns: 20px minmax(0, 1fr) auto;
  align-items: start;
  column-gap: 9px;
}

.woocommerce-checkout .ruo-check input {
  grid-column: 1;
}

.woocommerce-checkout .ruo-check span {
  grid-column: 2;
}

.woocommerce-checkout .ruo-check .required {
  grid-column: 3;
  margin: 0;
}

.woocommerce-account .woocommerce-MyAccount-content fieldset {
  margin-inline: 0;
}

.woocommerce-account .woocommerce-MyAccount-content em {
  display: block;
  margin: 6px 0 14px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.woocommerce-account .woocommerce-MyAccount-navigation a,
.woocommerce-account .woocommerce-MyAccount-content p,
.woocommerce-account .woocommerce-MyAccount-content td,
.woocommerce-account .woocommerce-MyAccount-content th {
  overflow-wrap: anywhere;
}

@media (max-width: 620px) {
  .woocommerce-checkout form.checkout_coupon {
    grid-template-columns: 1fr;
  }

  .woocommerce-checkout form.checkout_coupon .button {
    width: 100%;
  }

  .woocommerce-checkout form.checkout > .col2-set,
  .woocommerce-checkout form.checkout > #order_review,
  .woocommerce-account .woocommerce-MyAccount-content,
  .woocommerce-account #customer_login .u-column1,
  .woocommerce-account #customer_login .u-column2 {
    padding-left: 18px;
    padding-right: 18px;
  }

  .woocommerce-checkout #payment ul.payment_methods {
    padding: 16px;
  }

  .woocommerce-checkout #payment .payment_box {
    padding: 14px;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation a {
    padding: 12px 14px;
  }

  .woocommerce-account .woocommerce-MyAccount-content table.shop_table {
    display: block;
    width: 100%;
    overflow-x: auto;
  }
}

/* Catalog layout and mobile-safe product cards. */
.post-type-archive-product .woocommerce,
.tax-product_cat .woocommerce {
  min-width: 0;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
  float: none;
  display: inline-block;
  max-width: 100%;
  margin: 0 14px 28px 0;
  vertical-align: middle;
}

.woocommerce .woocommerce-ordering select {
  width: 100%;
  max-width: 100%;
  min-height: 46px;
}

.molecore-category-filters {
  clear: both;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  width: 100%;
  margin: 0 0 28px;
}

.molecore-category-filters a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 11px 16px;
  border: 1px solid #30466e;
  border-radius: 999px;
  background: #0a1732;
  color: #b8c6dc;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
  text-align: center;
  transition: border-color .2s, background .2s, color .2s;
}

.molecore-category-filters a:hover,
.molecore-category-filters a:focus-visible {
  border-color: var(--cyan);
  color: #fff;
}

.molecore-category-filters a.is-active {
  border-color: var(--cyan);
  background: var(--cyan);
  color: #041026;
}

.woocommerce ul.products {
  clear: both;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

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

.woocommerce ul.products li.product {
  float: none;
  display: flex;
  flex-direction: column;
  min-width: 0;
  width: 100%;
  margin: 0;
  padding: 16px;
  overflow: hidden;
  border: 1px solid #223456;
  background: #08142d;
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
}

.woocommerce ul.products li.product img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  margin: 0 0 16px;
  object-fit: cover;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  margin: 0 0 8px;
  padding: 0;
  font-size: clamp(20px, 3vw, 26px);
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.woocommerce ul.products li.product .price {
  display: block;
  margin: 0 0 16px;
  font-size: 22px;
  line-height: 1.2;
}

.woocommerce ul.products li.product .button {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: auto 0 0;
  white-space: normal;
  text-align: center;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

/* Checkout content must shrink and wrap inside the phone viewport. */
.woocommerce-checkout table.shop_table,
.woocommerce-checkout table.shop_table tbody,
.woocommerce-checkout table.shop_table tfoot,
.woocommerce-checkout table.shop_table tr,
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.woocommerce-checkout #ship-to-different-address label,
.woocommerce-checkout .woocommerce-form__label-for-checkbox,
.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text {
  white-space: normal;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.woocommerce-checkout #payment img,
.woocommerce-checkout #payment svg,
.woocommerce-checkout #payment .payment_box img {
  max-width: 100%;
  height: auto;
}

@media (max-width: 760px) {
  body.woocommerce-checkout .woocommerce,
  body.post-type-archive-product .woocommerce,
  body.tax-product_cat .woocommerce {
    width: min(100% - 28px, 620px);
    margin: 28px auto 64px;
  }

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

  .woocommerce ul.products li.product {
    padding: 12px;
  }

  .woocommerce-checkout form.checkout {
    display: block;
    width: 100%;
  }

  .woocommerce-checkout form.checkout > .col2-set,
  .woocommerce-checkout form.checkout > h3#order_review_heading,
  .woocommerce-checkout form.checkout > #order_review {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

  .woocommerce-checkout form.checkout > .col2-set {
    padding: 22px 18px;
  }

  .woocommerce-checkout form.checkout > h3#order_review_heading {
    margin-top: 20px;
    padding: 22px 18px 12px;
    font-size: 23px;
    line-height: 1.2;
  }

  .woocommerce-checkout form.checkout > #order_review {
    padding: 6px 18px 22px;
  }

  .woocommerce-checkout .woocommerce-billing-fields > h3,
  .woocommerce-checkout .woocommerce-shipping-fields h3 {
    font-size: 24px;
    line-height: 1.2;
  }

  .woocommerce-checkout .form-row-first,
  .woocommerce-checkout .form-row-last,
  .woocommerce-checkout .form-row-wide {
    float: none;
    clear: both;
    width: 100%;
  }

  .woocommerce-checkout table.shop_table {
    width: 100%;
    table-layout: fixed;
  }

  .woocommerce-checkout table.shop_table th,
  .woocommerce-checkout table.shop_table td {
    padding: 13px 4px;
    font-size: 13px;
    line-height: 1.4;
  }

  .woocommerce-checkout table.shop_table th:first-child,
  .woocommerce-checkout table.shop_table td:first-child {
    width: 58%;
    padding-right: 10px;
  }

  .woocommerce-checkout table.shop_table th:last-child,
  .woocommerce-checkout table.shop_table td:last-child {
    width: 42%;
  }

  .woocommerce-checkout #payment ul.payment_methods,
  .woocommerce-checkout #payment .place-order {
    padding: 16px 14px;
  }

  .woocommerce-checkout #payment .payment_box {
    margin-left: 0;
    padding: 13px;
    font-size: 13px;
    line-height: 1.5;
  }

  .woocommerce-checkout #payment .payment_box code,
  .woocommerce-checkout #payment .payment_box strong {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .woocommerce-checkout #place_order {
    white-space: normal;
    line-height: 1.3;
  }
}

@media (max-width: 480px) {
  .woocommerce ul.products {
    grid-template-columns: 1fr;
  }

  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 23px;
  }

  .woocommerce .woocommerce-result-count,
  .woocommerce .woocommerce-ordering {
    display: block;
    width: 100%;
    margin: 0 0 14px;
  }

  .woocommerce-checkout form.checkout_coupon {
    grid-template-columns: minmax(0, 1fr);
    padding: 16px;
  }

  .woocommerce-checkout form.checkout_coupon .button {
    width: 100%;
  }

  .molecore-category-filters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .molecore-category-filters a {
    justify-content: center;
    min-width: 0;
    padding: 10px 9px;
    overflow-wrap: anywhere;
  }
}

/* Full-width Catalog chrome with a consistent safe edge inset. */
.post-type-archive-product .site-head .wrap,
.tax-product_cat .site-head .wrap,
.post-type-archive-product .site-foot .wrap,
.tax-product_cat .site-foot .wrap {
  width: 100%;
  max-width: none;
  padding-right: clamp(18px, 4vw, 58px);
  padding-left: clamp(18px, 4vw, 58px);
}

.post-type-archive-product .site-head,
.tax-product_cat .site-head,
.post-type-archive-product .site-foot,
.tax-product_cat .site-foot {
  width: 100%;
}

/* Account dashboard, login and registration layout safety. */
.woocommerce-account .molecore-account,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account #customer_login,
.woocommerce-account #customer_login > *,
.woocommerce-account form,
.woocommerce-account fieldset,
.woocommerce-account .woocommerce-Addresses,
.woocommerce-account .woocommerce-Address {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.woocommerce-account .woocommerce-MyAccount-content h1,
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3,
.woocommerce-account .woocommerce-MyAccount-content p,
.woocommerce-account .woocommerce-MyAccount-content label,
.woocommerce-account .woocommerce-MyAccount-content address,
.woocommerce-account #customer_login label {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}

.woocommerce-account .woocommerce-Addresses {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.woocommerce-account .woocommerce-Addresses::before,
.woocommerce-account .woocommerce-Addresses::after {
  display: none;
}

.woocommerce-account .woocommerce-Addresses .woocommerce-Address {
  float: none;
  width: 100%;
  margin: 0;
}

.woocommerce-account .form-row-first,
.woocommerce-account .form-row-last {
  min-width: 0;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
  max-width: 100%;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table th,
.woocommerce-account .woocommerce-MyAccount-content table.shop_table td {
  min-width: 0;
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  .woocommerce-account .account-hero .wrap,
  .woocommerce-account .molecore-account {
    width: min(100% - 28px, 620px);
  }

  .woocommerce-account .account-hero h1 {
    font-size: clamp(40px, 12vw, 52px);
    line-height: 1;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation {
    padding: 9px;
    overflow: hidden;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: flex;
    width: 100%;
    max-width: 100%;
    gap: 6px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation li,
  .woocommerce-account .woocommerce-MyAccount-navigation li:last-child {
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    border: 0;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation a {
    display: block;
    min-height: 44px;
    padding: 13px 14px;
    white-space: nowrap;
  }

  .woocommerce-account .woocommerce-MyAccount-content,
  .woocommerce-account #customer_login .u-column1,
  .woocommerce-account #customer_login .u-column2 {
    width: 100%;
    padding: 22px 18px;
  }

  .woocommerce-account #customer_login {
    display: block;
  }

  .woocommerce-account #customer_login::before {
    display: block;
    margin: 0 0 18px;
    font-size: 23px;
    line-height: 1.2;
  }

  .woocommerce-account #customer_login .u-column1,
  .woocommerce-account #customer_login .u-column2 {
    float: none;
    margin: 0 0 18px;
  }

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

  .woocommerce-account .form-row-first,
  .woocommerce-account .form-row-last,
  .woocommerce-account .form-row-wide {
    float: none;
    clear: both;
    width: 100%;
  }

  .woocommerce-account .woocommerce-MyAccount-content fieldset {
    width: 100%;
    margin-right: 0;
    margin-left: 0;
    padding: 18px 14px;
  }

  .woocommerce-account .woocommerce-MyAccount-content table.shop_table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .woocommerce-account .woocommerce-MyAccount-content .button,
  .woocommerce-account #customer_login .button {
    max-width: 100%;
    white-space: normal;
    line-height: 1.3;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .post-type-archive-product .site-head .wrap,
  .tax-product_cat .site-head .wrap,
  .post-type-archive-product .site-foot .wrap,
  .tax-product_cat .site-foot .wrap {
    padding-right: 14px;
    padding-left: 14px;
  }

  .woocommerce-account .woocommerce-MyAccount-content .button,
  .woocommerce-account #customer_login .button {
    width: 100%;
  }
}
