#checkout-cart {
  height: 100vh;
}

.checkout-cart-item-mod {
  flex-direction: column !important;
  align-items: start !important ;
  padding: 10px 0;
}

.checkout-cart-mod {
  display: flex;
  align-items: start !important ;
  justify-content: start !important;
}

.checkout-product-thumbnail {
  max-width: 100px;
  width: 100%;
  margin-right: 20px;
}

.checkout-cart-recipient {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.checkout-cart-offer {
  display: flex;
  flex-direction: column;
  width: 100%;
}

#offer_email {
  margin-top: 8px;
  height: 45px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 8px 15px;
}

#offer_phone {
  margin-top: 8px;
  height: 45px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 8px 15px;
}

.checkout-cart-recipient label {
  font-size: 16px;
  font-weight: 600;
  color: #757575;
}

.checkout-cart-recipient input {
  margin-top: 8px;
  height: 45px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 8px 15px;
}

.divider {
  border-top: 1px solid #e2e8f0;
  width: 100%;
  height: 1px;
  margin: 20px 0;
}

.diff-billing-checkbox {
  margin: 20px 0;
}

.offer-checkbox {
  margin: 20px 0;
}

/* shipping form */
#shipping_company_field {
  display: none;
}

#shipping_state_field {
  display: none;
}

#shipping_first_name_field {
  width: 100%;
}

#shipping_last_name_field {
  width: 100%;
}

#shipping_postcode_field {
  width: 47%;
  float: left;
}

#shipping_country_field {
  width: 47%;
  float: right;
  clear: initial;
}

/* labels */
#shipping_first_name_field label {
  display: none;
}

#shipping_last_name_field label {
  display: none;
}

#shipping_address_1_field label {
  display: none;
}

#shipping_city_field label {
  display: none;
}

#shipping_postcode_field label {
  display: none;
}

#shipping_country_field label {
  display: none;
}

/* billing form */
#billing_phone_field {
  display: none;
}

#billing_state_field {
  display: none;
}

#billing_postcode_field {
  width: 47%;
  float: left;
}

#billing_country_field {
  width: 47%;
  float: right;
  clear: initial;
}

#billing_email_field {
  display: none;
}

#billing_company_field {
  display: none;
}

#billing_first_name_field label {
  display: none;
}

#billing_last_name_field label {
  display: none;
}

#billing_address_1_field label {
  display: none;
}

#billing_city_field label {
  display: none;
}

#billing_country_field label {
  display: none;
}

#billing_postcode_field label {
  display: none;
}

/* ====================== */
/* payment summary */
/* ====================== */
.subscription-renewals {
  font-family: Arial, sans-serif;
  margin: 20px 0;
}

.subscription-renewals h3 {
  font-size: 1.5em;
  margin-bottom: 10px;
}

.renewals-table {
  width: 100%;
  border-radius: 8px;
  border-collapse: collapse;
}

.renewals-table thead {
  background-color: #f5f5f5;
}

.renewals-table th,
.renewals-table td {
  border: 1px solid #ddd;
  padding: 10px;
  text-align: left;
}

.renewals-table th {
  font-weight: bold;
}

.renewals-table tbody tr:nth-child(even) {
  background-color: #f9f9f9;
}

.renewals-table tbody tr:hover {
  background-color: #f1f1f1;
}

/* ====================== */
/* Pay today */
/* ====================== */
.pay-today {
  font-family: Arial, sans-serif;
  /* max-width: 600px; */
  margin: 20px auto;
}

.pay-today h2 {
  font-size: 18px;
  font-weight: bold;
  margin-top: 50px;
}

.subscription-charges,
.one-time-purchases {
  margin: 40px 0;
}

.subscription-charges h3,
.one-time-purchases h3 {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 10px;
}

.charge-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.charge-name {
  margin-left: 20px;
  font-size: 14px;
}

.charge-price {
  font-weight: bold;
  font-size: 14px;
}

.charge-original {
  text-decoration: line-through;
  color: gray;
  margin-left: 5px;
}

.discount-code {
  max-width: 300px;
  margin-bottom: 20px;
  margin-left: auto;
}

.discount-code label {
  display: block;
  font-weight: bold;
  font-size: 14px;
  margin-bottom: 5px;
}

.discount-input {
  display: flex;
  gap: 10px;
  margin-bottom: 5px;
}

.discount-input input {
  flex: 1;
  padding: 5px;
  font-size: 14px;
  border: 1px solid #ccc;
  border-radius: 4px;
}

.discount-input .apply-button {
  background-color: #f40084;
  color: white;
  border: none;
  padding: 5px 10px;
  font-size: 14px;
  border-radius: 4px;
  cursor: pointer;
}

.discount-input .apply-button:hover {
  background-color: #c3006e;
}

.discount-message {
  font-size: 14px;
  color: #555;
}

.total {
  text-align: right;
  margin-top: 20px;
}

.total h3 {
  font-size: 18px;
  font-weight: bold;
  margin: 0;
}

.total .total-amount {
  color: #f40084;
}

.total .gst {
  font-size: 14px;
  color: gray;
  margin-left: 5px;
}

/* ====================== */
/* Pay with section */
/* ====================== */
.payment-accordion {
  width: 100%;
  margin: auto;
}

.payment-accordion h2 {
  text-align: left;
  margin-bottom: 20px;
  font-size: 18px;
  font-weight: bold;
}

.accordion-item {
  margin-bottom: 10px;
  border: 1px solid #ddd;
  border-radius: 5px;
  overflow: hidden;
  background-color: white;
}

.accordion-header {
  background-color: #f7f7f7;
  padding: 10px 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.accordion-header:hover {
  background-color: #e7e7e7;
}

.accordion-header img {
  margin-right: 5px;
  height: 20px;
}

.accordion-header span {
  font-size: 18px;
  transition: transform 0.3s ease;
}

/* .accordion-header.active span { */
/*   transform: rotate(45deg); */
/* } */

.accordion-body {
  max-height: 0;
  overflow: hidden;
  transition:
    max-height 0.3s ease-in-out,
    padding 0.3s ease-in-out;
  padding: 0 15px;
}

.accordion-body.open {
  max-height: 700px;
  padding: 15px 15px;
}

.accordion-billing {
  display: flex;
  align-items: center;
}

.accordion-billing label {
  margin-bottom: 0 !important;
}

.payment-accordion .address-label {
  margin-bottom: 15px;
}

.payment-accordion .form-group {
  margin-bottom: 15px;
}

.payment-accordion .form-rows {
  display: flex;
  gap: 10px;
}

.payment-accordion .form-rows input {
  width: 100%;
  padding: 10px;
  font-size: 14px;
  border: 1px solid #ccc;
  border-radius: 5px;
}

.payment-accordion label {
  display: block;
  font-size: 14px;
  margin-bottom: 5px;
}

.payment-accordion select {
  width: 100%;
  padding: 10px;
  font-size: 14px;
  border: 1px solid #ccc;
  border-radius: 5px;
}

.payment-accordion #card-number {
  width: 100%;
  padding: 10px;
  font-size: 14px;
  border: 1px solid #ccc;
  border-radius: 5px;
}

.payment-accordion button {
  padding: 10px 15px;
  font-size: 14px;
  background-color: #0071f3;
  color: white;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.payment-accordion button:hover {
  background-color: #005bb5;
}

/* ====================== */
/* Payment term */
/* ====================== */
.payment-terms {
  margin: 20px 0;
}

.payment-terms p {
  font-size: 12px;
  line-height: 1.5;
  color: #555;
}

.cart-checkout-btn {
  margin: 30px 0 !important;
}

/* ====================== */
/* Mini Cart Empty */
/* ====================== */
.mini-cart {
  height: 100vh !important;
}

.mini-cart-empty {
  height: 100vh !important;
}

/* ====================== */
/* iFrame Checkout Page */
/* ====================== */
#loading-spinner.spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 999;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #d50057;
  animation: spin 1s linear infinite;
}

#loading-spinner.spinner svg {
  width: 50px;
  height: 50px;
}

#loading-spinner.spinner circle {
  stroke-dasharray: 126; /* Controls the visible length of the arc */
  stroke-dashoffset: 0; /* Initial offset */
  animation: dash 1.5s ease-in-out infinite;
}

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

@keyframes dash {
  0% {
    stroke-dashoffset: 126; /* Arc hidden */
  }
  50% {
    stroke-dashoffset: 63; /* Arc visible */
  }
  100% {
    stroke-dashoffset: 126; /* Arc hidden again */
  }
}

.checkout-iframe-container {
  position: relative;
  height: 100vh;
}

#loading-spinner.hidden {
  display: none;
}

/* Setup Sub Cta Loader */
.iframe-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.8); /* Slight transparency */
  z-index: 9999; /* Ensure it's above everything else */
  display: none; /* Initially hidden */
}

.iframe-overlay .loader {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 50px;
  height: 50px;
  border: 4px solid #ccc;
  border-top: 4px solid #000;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* ====================== */
/* Thank You Page */
/* ====================== */
.thank-you-page {
  padding: 80px 20px;
  max-width: 800px;
  margin: 0 auto;
}

.thank-you-page hr {
  margin: 30px 0;
}

.order-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.order-header-content {
  width: 75%;
}

.order-header-logo {
  display: flex;
  justify-content: flex-end;
  width: 15%;
}

.order-header-logo img {
  width: 100%;
  max-width: 80px;
}

.order-header p {
  font-size: 16px;
  color: #555;
  margin: 0 !important;
}

.order-header h1 {
  font-size: 24px;
  font-weight: bold;
  padding-top: 10px;
  margin-bottom: 40px;
}

.order-header span {
  font-size: 16px;
  font-weight: semi-bold;
}

.nav-to-acc {
  margin: 50px 0 10px 0;
  width: 100%;
  display: flex;
  justify-content: flex-end;
}
.nav-to-acc a {
  color: #1276ce;
}

.order-summary {
  /* margin-top: 50px; */
  background-color: #fafafa;
  padding: 30px;
}

.address-section {
  display: flex;
  justify-content: space-between;
  margin-bottom: 20px;
}

.address {
  width: 48%;
}

.address h3 {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 10px;
}

.address p {
  font-size: 14px;
  margin: 5px 0;
}

.order-items ul {
  list-style: none;
  padding: 0;
}

.order-items ul li {
  margin-bottom: 15px;
}

.order-items li {
  display: flex;
  align-items: center;
}

.order-items span {
  font-size: 16px;
  font-weight: 600;
}

.order-name {
  margin-bottom: 20px;
}

.order-items p {
  font-size: 16px;
  font-weight: 600;
}

.order-items h3,
.payment-summary h3 {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 10px;
}

.order-attr {
  display: flex;
  align-items: center;
}
.order-attr .order-key {
  margin-right: 10px;
  margin-bottom: 0;
  font-weight: 600;
  color: #555;
}

.order-attr .order-value {
  font-weight: normal;
  color: #555;
  margin-bottom: 0;
}

.payment-summary h3 {
  margin-bottom: 30px;
}

.payment-summary h4 {
  font-size: 16px;
  font-weight: 600;
}

.payment-summary p {
  font-size: 14px;
}

.payment-summary-one-time {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.shipping-item {
  display: flex;
  justify-content: space-between;
}

.payment-total {
  display: flex;
  justify-content: flex-end;
}
