:root {
  --color-primary: #590027;
  --color-primary-hover: #590027;
  --color-error: #c91c02;
  --color-success: #155724;
  --color-white: #fff;
  --color-black: #000;
  --color-transparent: transparent;
  --font-primary: 'Poppins', sans-serif;
}

html {
  scroll-behavior: smooth;
}

.woocommerce.product-template-default .variations_form .variations,
.woocommerce div.product form.cart button.single_add_to_cart_button,
.woocommerce .woocommerce-variation-add-to-cart .quantity,
.woocommerce.product-template-default .taxonomy-product_cat,
.woocommerce.product-template-default .woocommerce-error {
  display: none !important;
}

.woocommerce-page #quantity_based_membership_fields .variant_field h3 {
  font-size: 1.25rem;
  font-weight: 500;
}

.woocommerce-variation-add-to-cart .error-wrapper {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1rem;
  border: 1px solid var(--color-primary);
  padding: 1rem;
  color: var(--color-error);
}

.woocommerce-variation-add-to-cart .error-wrapper > p {
  margin: unset;
}

#quantity_based_membership_fields .form-group {
  display: flex;
  flex: 1;
  flex-direction: column;
}

#quantity_based_membership_fields .variant_field_header {
  display: flex;
  justify-content: space-between;
  cursor: pointer;
  transition: all 0.3s ease;
}

.woocommerce div.product .wc-block-components-notice-banner.is-error {
  display: none !important;
}

.woocommerce-breadcrumb,
.summary.entry-summary > p.price,
.product_meta,
.woocommerce-tabs.wc-tabs-wrapper {
  display: none !important;
}

.woocommerce-billing-fields {
  display: none;
} 

.product-template-default .woocommerce #quantity_based_membership_fields form .form-row,
.product-template-default.woocommerce-page #quantity_based_membership_fields form .form-row label {
  margin: unset;
  padding: unset;
  gap: unset;
}

#quantity_based_membership_fields .membership-variant.membership-field {
  margin-bottom: 0.5rem;
}

.woocommerce-page #quantity_based_membership_fields .variant_field {
  display: flex;
  flex-direction: column;
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--color-primary);
}

.woocommerce-page #quantity_based_membership_fields .form-group label,
.woocommerce-page #quantity_based_membership_fields .variant_field h3 {
  margin: unset;
}

#quantity_based_membership_fields .membership-fields-wrapper {
  display: flex;
  flex-direction: column;
}

/* Form Styling */ 

#quantity_based_membership_fields .name-wrapper.form-row::before,
#quantity_based_membership_fields .name-wrapper.form-row::after {
  display: none !important;
  content: unset !important;
}

#quantity_based_membership_fields .name-wrapper {
  display: flex;
  gap: 1rem;
}

#quantity_based_membership_fields .form-group.field-name {
  margin-right: 0.5rem;
}

#quantity_based_membership_fields .variant_field_header img {
  transition: transform 0.3s ease, opacity 0.2s ease;
}

#quantity_based_membership_fields .variant_field.active .accordion-content {
  display: block;
  max-height: 200rem;
  opacity: 1;
  margin-top: 1rem;
}

#quantity_based_membership_fields .variant_field .chevron {
  width: 24px;
  transition: transform 0.3s ease;
  transform: rotate(0deg);
}

#quantity_based_membership_fields .variant_field.active .chevron {
  transform: rotate(-180deg);
}

#quantity_based_membership_fields .membership_actions_wrapper {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 1rem;
}

.membership_actions_wrapper .add-new-card,
.membership_actions_wrapper #add-memberships-btn,
.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-button {
  position: relative;
  border: 1px solid var(--color-transparent) !important;
  padding: 1rem 1.5rem 1rem 3.5rem !important;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  border-radius: 0.25rem;
  font-size: 1rem;
  letter-spacing: 0.3px;
  cursor: pointer;
  line-height: normal;
}

#quantity_based_membership_fields .membership_actions_wrapper .add-new-card {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--color-white);
  border: 1px solid var(--color-primary) !important;
  color: var(--color-primary) !important;
}

.woocommerce div.product div.images {
  margin-bottom: 1rem !important;
}

#quantity_based_membership_fields .add-new-card:hover {
  background: var(--color-primary) !important;
  color: var(--color-white) !important;
}

#quantity_based_membership_fields .add-new-card::before {
  color: inherit;
}

#quantity_based_membership_fields .add-new-card:active {
  transform: translateY(0);
}

#quantity_based_membership_fields .membership_actions_wrapper #add-memberships-btn {
  background: var(--color-primary);
  border: 1px solid var(--color-primary) !important;
  color: var(--color-white) !important;
}

#quantity_based_membership_fields #add-memberships-btn:hover,
.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-button:hover  {
  background: var(--color-white);
  color: var(--color-primary) !important;
}

.product-template-default .wp-block-woocommerce-add-to-cart-form form.cart {
  grid-auto-flow: unset !important;
}

#quantity_based_membership_fields .remove-button {
  background: none;
  border: none;
  display: flex;
  align-items: center;
  background-color: var(--color-error);
  color: var(--color-white);
  padding: 0.5rem 1rem;
  max-height: 52px;
  gap: 0.5rem;
  margin-top: 1rem;
  border-radius: 0.25rem;
  width: fit-content;
  cursor: pointer;
  transition: all 0.3s ease;
}

#quantity_based_membership_fields .remove-button:hover {
  background-color: var(--color-primary-hover);
}

#quantity_based_membership_fields .remove-button img {
  width: 24px;
}

body .flatpickr-current-month input, 
body .flatpickr-current-month select { 
  display: inline-block !important; 
}

#quantity_based_membership_fields input[type="date"] {
  position: relative;
}

#quantity_based_membership_fields input[type="date"]::-webkit-calendar-picker-indicator {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: auto;
  height: auto;
  background: var(--color-transparent); 
  cursor: pointer; 
}

/* Gift Wrapper Styles */

#quantity_based_membership_fields .is-gift-wrapper label {
  display: flex;
  gap: 0.5rem;
  margin-top: 1rem;
  align-items: center;
}

#quantity_based_membership_fields .is-gift-wrapper {
  margin-top: 0.5rem;
}

#quantity_based_membership_fields .gift-data-wrapper {
  margin-top: 0.5rem;
}

/* Passwordless plugin styles override */

#wpaloginform p {
    margin: 0;
}

#wpaloginform label {
    display: block;
    margin-bottom: 1rem;
    color: var(--color-black);
    font-weight: 500;
    font-size: 1rem;;
}

#wpaloginform input[type="text"] {
    width: 100%;
    padding: 1rem 0.5rem;
    font-size: 1rem;
    margin-bottom: 1.5rem;
    box-sizing: border-box;
    color: var(--color-primary);
    border: 1px solid var(--color-black);
    transition: all 0.3s ease;
    box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);
}

#wpaloginform input[type="text"]:focus {
    outline: none;
    background: var(--color-white);
}

#wpaloginform #wpa-submit {
    width: 100%;
    height: 100%;
    text-transform: unset !important;
    max-width: unset;
    padding: 1rem 1.5rem;
    background: var(--color-primary);
    color: var(--color-white) !important;
    border: 1px solid var(--color-primary);
    font-size: 1rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    text-transform: uppercase;
    position: relative;
    overflow: hidden;
}

#wpaloginform #wpa-submit:hover {
    background: var(--color-white);
    color: var(--color-primary) !important;
}

.product-template-default .summary.entry-summary {
  font-family: var(--font-primary);
}

.wpa-box {
    padding: 1rem 1.5rem;
    margin: 2rem auto;
    max-width: 480px;
    border-radius: 12px;
    font-size: 1rem;
    backdrop-filter: blur(10px);
    box-shadow: 0 0.5rem 2rem rgba(0, 0, 0, 0.1);
}

.wpa-success {
    color: var(--color-success);
    font-weight: 500;
}

.wpa-success strong {
    font-weight: 700;
}

.wpa-error {
    color: var(--color-error);
    font-weight: 500;
}

.logged-in .wpa-alert {
    display: none;
}

body.product-template-default :not([class*=elementor-page-]) .site-main {
  padding: 0 1.5rem;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
  display: none;
}

@media screen and (min-width: 768px) {
  .product-template-default .product {
    padding-top: 36px;
  }

  body.product-template-default :not([class*=elementor-page-]) .site-main {
    max-width: 1440px;
    padding: 0 2.5rem;
  }
}

/* Checkout page styles */

.woocommerce-checkout [type=button],
.woocommerce-checkout [type=submit],
.woocommerce-checkout button {
  background-color: var(--color-primary);
  border: 1px solid var(--color-primary);
  border-radius: 0.25rem;
  color: var(--color-white);
}

.woocommerce-checkout [type=button]:focus, .woocommerce-checkout [type=button]:hover, .woocommerce-checkout [type=submit]:focus, .woocommerce-checkout [type=submit]:hover, .woocommerce-checkout button:focus, .woocommerce-checkout button:hover {
  background-color: var(--color-white);
  color: var(--color-primary);
  text-decoration: none;
}

.woocommerce-checkout .wc-block-checkout__actions_row > a,
.woocommerce-checkout .wc-block-checkout__actions_row > a * {
	color: var(--color-primary);
}

.woocommerce-checkout * {
  font-family: var(--font-primary);
}

@container (min-width: 700px) {
  .woocommerce-checkout .wc-block-checkout__sidebar {
    top: 150px;
  }
}