/* #SEC1 */
.sec1 {
  border-bottom: 1px solid var(--base);
  padding-block: 21px;
}
.sec1 .sec__col {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.sec1 svg {
  display: block;
  width: 24px;
}


/* #SEC2 */
.sec2 {
  padding: 0;
}
.sec2 .sec__cont {
  max-width: 100%;
  padding: 0;
}
.sec2 .sec__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 685px) minmax(0, 455px) minmax(0, 1fr);
}
.sec2 .sec__inner {
  padding: 40px;
}



/* FORM */
.form__col {
  grid-column: span 2;
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  border-right: 1px solid var(--base);
}
.form__inner {
  width: 100%;
  max-width: 665px;
}
.form__block {
  margin-bottom: 30px;
}
.form__block :is(h2,h3) {
  margin-bottom: 13px;
}
.form__block h3 {
  font-size: 17px;
}
.form__block h4 {
  color: var(--base-dark);
  font-size: 14px;
  font-weight: 400;
}

/* field layout */
.form__field {
  position: relative;
  width: 100%;
}
.form__field--half {
  width: calc(50% - 7.5px);
}
.form__field--third {
  width: calc(33.333% - 10px);
}
.form__field label {
  position: absolute;
  top: 14px;
  left: 16px;
  color: var(--base-medium);
  font-size: 13px;
  font-weight: 400;
  opacity: 0;
  z-index: -1;
  transition: .3s ease-in-out;
}
.form__field :is(input:not(:placeholder-shown), select:has(option[value=""]:not(:checked))) {
  padding: 21px 15px 5px;
}
.form__field :is(input:not(:placeholder-shown), select:has(option[value=""]:not(:checked))) + label {
  top: 7px;
  opacity: 1;
  z-index: 1;
}
.form__field :is(input,select,textarea) {
  width: 100%;
  padding: 13px 15px;
  border: 1px solid var(--base);
  border-radius: 5px;
  font-weight: 600;
  transition: .3s ease-in-out;
}
.form__field :is(input,select,textarea):focus {
  border-color: #000;
}
.form__field :is(input,select,textarea)::placeholder {
  color: var(--base-medium);
}

/* optin */
.form__optin {
  margin-top: 15px;
}

/* checkbox */
.form__checkbox input {
  width: auto;
  border-color: transparent;
  box-shadow: 0 0 0 1px var(--base) inset;
}
.form__checkbox input {
  display: none;
}
.form__checkbox label {
  position: relative;
  display: block;
  color: #000;
  max-width: 100%;
  margin: 0;
  padding-left: 30px;
  cursor: pointer;
}
.form__checkbox label:before,
.form__checkbox label:after {
  content: '';
  position: absolute;
  top: 1px;
}
.form__checkbox label:before {
  height: 18px;
  width: 18px;
  background: #fff;
  border: 1px solid var(--base);
  border-radius: 5px;
  left: 0;
  transition: 0.3s ease-in-out;
}
.form__checkbox label::after {
  content: '';
  position: absolute;
  height: 11px;
  width: 6px;
  border: 1px solid #fff;
  border-width: 0 2px 2px 0;
  top: 3px;
  left: 6px;
  opacity: 0;
  transform: rotate(45deg);
  transition: 0.3s ease-in-out;
}
.form__checkbox input:checked + label:before {
  background: var(--primary);
  border-color: var(--primary);
}
.form__checkbox input:checked + label::after {
  opacity: 1;
}

/* select */
.form__field--select {
  position: relative;
}
.form__field--select::after {
  content: '';
  position: absolute;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid var(--base-medium);
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
}
.form__field--select select {
  position: relative;
  color: var(--base-medium);
  appearance: none;
  cursor: pointer;
}
.form__field--select select::-ms-expand {
  display: none;
}
.form__field--select select:has(option[value=""]:not(:checked)) {
  color: #000;
}

/* delivery fields */
.form__fields--user-details {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 15px;
}
.same-address:has(> #same-address:checked) + .form__fields--billing {
  display: none;
}
/* address2 field */
.form__field--address2 {
  display: none;
}
.form__field--add-address2 {
  width: 100%;
}
.form__field--add-address2 > input {
  display: none;
}
.form__field--add-address2 > label {
  position: relative;
  display: flex;
  align-items: center;
  color: var(--primary);
  max-width: 100%;
  margin: 0;
  padding-left: 15px;
  cursor: pointer;
}
.form__field--add-address2 svg {
  width: 12px;
  margin-right: 5px;
  fill: currentColor;
}
.form__field--add-address2 input:checked + label {
  display: none;
}
.form__field--add-address2 input:checked + * + .form__field--address2 {
  display: block;
}

/* number field */
.form__field--number input::-webkit-inner-spin-button,
.form__field--number input::-webkit-outer-spin-button {
  -webkit-appearance: none;
}
.form__field--number input {
  appearance: textfield;
}

/* shipping method */
.shipping {
  display: none;
}
.form__field--shipping {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #000;
  background: var(--primary-light);
  padding: 17px 15px;
  border: 1px solid var(--primary);
  border-radius: 5px;
}
.form__field--shipping.enter-shipping {
  color: var(--base-medium);
  background: var(--base-ultra-light);
  border-color: var(--base-ultra-light);
}

/* payment */
.payment h2 {
  margin-bottom: 7px;
}
.payment > h4 {
  margin-bottom: 13px;
}
.payment__item > input {
  display: none;
}
/* payment head */
.payment__head {
  border: 1px solid var(--base);
}
.payment__head label {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #000;
  max-width: 100%;
  margin: 0;
  padding: 17px;
  cursor: pointer;
}
.payment__head label:before,
.payment__head label:after {
  content: '';
  position: absolute;
  width: 18px;
  height: 18px;
  background: #fff;
  border: 1px solid rgb(0 0 0 / 40%);
  border-radius: 50%;
  top: 20px;
  left: 17px;
}
.payment__head label::after {
  border: 6px solid var(--primary);
  opacity: 0;
  transition: 0.3s ease-in-out;
}
.payment__item input:checked + .payment__head label::after {
  opacity: 1;
}
.payment__head h4 {
  padding-left: 27px;
}
.payment__icons {
  display: flex;
  gap: 4px;
}
.payment__icons--more {
  position: relative;
  color: var(--primary);
  background: #fff;
  font-size: 12px;
  width: 38px;
  height: 24px;
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid var(--base);
  border-radius: 3px;
}
.payment__icons--more__icons {
  position: absolute;
  top: -54px;
  display: flex;
  gap: 4px;
  background: #000;
  padding: 11px;
  border-radius: 5px;
  scale: .7;
  opacity: 0;
  translate: 0 15px;
  transition: 0.15s linear;
}
.payment__icons--more__icons:before {
  content: '';
  position: absolute;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid #000;
  bottom: -5px;
  left: 50%;
  transform: translateX(-50%);
}
.payment__icons--more:hover .payment__icons--more__icons {
  scale: 1;
  opacity: 1;
  translate: 0;
}
.payment__head svg {
  height: 24px;
}
/* payment fields */
.payment__body {
  display: grid;
  grid-template-rows: 0fr;
  transition: 0.3s ease-in-out;
}
.payment__body--accordion {
  overflow: hidden;
}
.payment__body--inner {
  background: var(--base-ultra-light);
  padding: 17px 15px;
  border: 1px solid var(--base);
  border-width: 0 1px;
}
.payment__item input:checked + .payment__head {
  background: var(--primary-light);
  border-color: var(--primary);
}
.payment__item input:checked + * + .payment__body {
  grid-template-rows: 1fr;
}
.payment__item1 .payment__head {
  border-radius: 5px 5px 0 0;
}
.payment__item2 .payment__head {
  border-radius: 0 0 5px 5px;
}
.payment__item1 .payment__body--inner {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
}
.payment__item2 .payment__body--inner {
  padding: 30px;
  border-bottom-width: 1px;
  border-radius: 0 0 5px 5px;
  text-align: center;
  text-wrap: balance;
}
.payment__item2 input:checked + .payment__head {
  border-radius: 0;
}
#stripe_payment_element {
  width: 100%;
  padding: 13px 2px 13px 15px;
  border: 1px solid var(--base);
  border-radius: 5px;
  background: #fff;
}
#paypal_payment_element {
  width: 100%;
}

/* button */
.form__field .submit {
  width: 100%;
  padding: 14px;
  color: #fff;
  background: var(--primary);
  border-radius: 5px;
  border: none;
  font-size: 19px;
  font-weight: 600;
  transition: 0.3s ease-in-out;
}
.form__field .submit:hover {
  background: var(--primary-dark);
}
#paypal_payment_element {
  display: none;
}

/* upsell */
.upsell {
  border: 2px dashed var(--primary);
  padding: 20px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.upsell1 {
  margin-bottom: 30px;
}
.upsell__img {
  width: 44%;
}
.upsell__content {
  width: calc(56% - 25px);
}
.upsell__content h2 {
  color: var(--primary);
}
.upsell__description {
  margin-bottom: 15px;
}
.upsell__description ul li {
  padding-left: 15px;
  margin-bottom: 10px;
}
.upsell__description ul li:before {
  height: 6px;
  width: 6px;
  left: 0;
}
.upsell__description ul li:last-child {
  margin-bottom: 0;
}
.upsell__checkbox {
  width: 100%;
  margin-top: 30px;
  border: 2px dashed var(--primary);
  border-radius: 5px;
}
.upsell__checkbox label {
  padding: 10px 10px 10px 40px;
}
.upsell__checkbox label:before {
  top: 10px;
  left: 10px;
}
.upsell__checkbox label:after {
  top: 12px;
  left: 16px;
}
.upsell__price {
  color: var(--primary);
  font-size: 22px;
}
.upsell__price .old {
  text-decoration: line-through;
  opacity: .4;
}




/*==============================
    #MEDIA QUERIES
==============================*/
@media only screen and (max-width:960px) {
  .sec2 .sec__row {
    grid-template-columns: 1fr;
  }
  .sec2 .sec__col {
    grid-column: 1 / auto;
  }
  .sec2 .sec__inner {
    max-width: 100%;
  }
  .form__col {
    order: 1;
    border-right: none;
  }
}
@media only screen and (max-width:767px) {
  .sec2 .sec__inner {
    padding: 30px 15px;
  }
  .form__field--half, .form__field--third {
    width: 100%;
  }
  .payment__icons--more__icons {
    right: 0;
  }
  .payment__icons--more__icons:before {
    left: auto;
    right: 8px;
  }
  .upsell__img,
  .upsell__content {
    width: 100%;
  }
  .upsell__img {
    margin-bottom: 20px;
  }
}