/*region "stuff" */
html * {
    box-sizing: border-box;
}

body {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    min-height: 100svh;
    overflow-x: hidden;
    background-image: url(../img/bg.jpg);
    background-size: cover;
    background-position: center;
    opacity: 1;
    font-family: "Roboto", "Arial", sans-serif;
}

.form {
    margin: auto;
    width: 100%;
    max-width: 800px;
    font-size: 500;
    border-radius: 10px;
    background-color: white;
    -webkit-box-shadow: 4px 4px 8px 0px rgba(34, 60, 80, 0.2);
    -moz-box-shadow: 4px 4px 8px 0px rgba(34, 60, 80, 0.2);
    box-shadow: 4px 4px 8px 0px rgba(34, 60, 80, 0.2);
}

.form__header {
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
}

.block {
    width: 50%;
}

.block--total {
    font-size: 24px;
}

.form img {
    max-width: 100%;
}

.form .form__product {
    display: block;
    margin: 0 auto 20px;
}

.form__product+p {
    max-width: 80%;
    text-align: center;
    font-weight: 500;
    margin: 0 auto 20px;
    text-transform: uppercase;
}

.form .form__wrapper {
    padding: 20px 60px;
}

.form header {
    background-color: rgb(31, 167, 252);
    color: white;
    padding: 20px;
}


.form header div:first-child {
    font-size: 15px;
    text-align: right;
}

.form header>p {
    font-weight: bold;
    font-size: 20px;
}

::placeholder {
    font-weight: 500;
}

.form h2 {
    text-align: center;
    font-size: 26px;
}

.form * {
    margin: 0;
    padding: 0;
}

.form label {
    cursor: pointer;
}

.form fieldset {
    border: none;
}

.form fieldset h2 {
    text-align: left;
    display: flex;
    align-items: center;
    font-size: 22px;
}

.form fieldset h2 img,
.form fieldset h2 svg {
    margin: 0 5px 0 0;
}

.form h2,
.form fieldset,
.form__method {
    margin: 0 auto 20px;
}

.form input,
.form select,
.form button {
    width: calc(100% - 5px);
    display: block;
    padding: 10px;
    border-radius: 4px;
    border: 1px solid black;
}

.form__method {
    display: flex;
    align-items: center;
    justify-content: space-evenly;
}

.form__method label {
    padding: 10px;
    border-radius: 10px;
    min-width: 160px;
    text-align: center;
    cursor: pointer;
    background-color: rgb(231, 230, 230);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-weight: 500;

    &:hover {
        outline: 2px solid rgb(31, 167, 252);
    }
}

.form__method label.selected {
    background-color: rgb(31, 167, 252);
    color: white;

    &:hover {
        outline: none;
    }
}

.form__method label.selected svg {
    fill: white;
}

.form__method label img,
.form__method label svg {
    margin: 0 auto 5px;
}

.form input,
.form select {
    margin: 0 auto 10px;
}

.form fieldset .inputs {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.form fieldset div input,
.form fieldset div select {
    width:     calc(50% - 5px);
    min-width: 335px;
}

.form label[for="same-details"] {
    display: flex;
    align-items: center;
}

.form label[for="same-details"] input {
    width: 20px;
    height: 20px;
    margin: 0 10px 0 5px;
}

.form label[for="agree-terms"] {
    display: flex;
    align-items: center;
}

.form label[for="agree-terms"] input {
    width: 20px;
    height: 20px;
    margin: 0 10px 0 5px;
}



.form button {
    background-color: rgb(31, 167, 252);
    font-weight: 500;
    font-size: 20px;
    cursor: pointer;
    border: none;
    padding: 15px;
    margin-bottom: 20px;
    transition: all 0.2s;
    font-weight: bold;
    color: white;

    &:hover {
        opacity: 0.6;
    }
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    border: 0;
    padding: 0;
    white-space: nowrap;
    clip-path: inset(100%);
    clip: rect(0 0 0 0);
    overflow: hidden;
}

.form__secure {
    font-size: 14px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}

.form__secure img {
    position: relative;
    top: -1.5px;
}

.form__icons {
    display: flex;
    align-items: center;
    justify-content: space-around;
}

@media (max-width: 500px) {
    .form .form__wrapper {
        padding: 10px;
    }
}

.price {
    font-weight: bold;
}

.wrapper {
    max-width: 800px;
    margin: 20px auto;
    background-color: white;
    -webkit-box-shadow: 4px 4px 8px 0px rgba(34, 60, 80, 0.2);
    -moz-box-shadow: 4px 4px 8px 0px rgba(34, 60, 80, 0.2);
    box-shadow: 4px 4px 8px 0px rgba(34, 60, 80, 0.2);
    border-radius: 10px;
    padding: 20px;
}

.wrapper img {
    max-width: 100%;
    display: block;
    margin: 0 auto 10px;
}

.wrapper p {
    text-align: center;
    max-width: 80%;
    margin: 0 auto;
}

footer {
    background-color: white;
    width: 105%;
    position: relative;
    bottom: -10px;
    padding: 20px;
    box-shadow: .125rem .125rem .5rem rgb(0 0 0 / 18%);
}

footer>div {
    max-width: 800px;
    margin: 0 auto;
}

footer li {
    font-size: 14px;
}

footer p {
    text-align: center;
    font-size: 12px;
    opacity: 0.8;
}

.success .wrapper,
.error .wrapper {
    padding: 40px;
}

.success .wrapper p,
.error .wrapper p {
    max-width: 100%;
}

.success h1,
.error h1 {
    color: rgb(75, 192, 75);
    text-align: center;
    margin: 0 auto 40px;
}

.error h1 {
    color: red;
}

.success p,
.error p {
    opacity: 0.8;
    font-size: 14px;
}

.success p:last-of-type,
.error p:last-of-type {
    padding-bottom: 20px;
    margin: 0 auto 20px;
    border-bottom: 1px solid lightgray;
}

.success p+b,
.error p+b {
    color: rgb(31, 167, 252);
    text-align: center;
    display: block;
    margin: 0 auto 20px;
}

.error p+b {
    margin: 0 auto;
}

.success li {
    padding: 10px 0;
    border-bottom: 1px solid lightgray;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.success li:last-of-type {
    border-bottom: none;
}

.success li span {
    font-size: 14px;
    opacity: 0.8;
}

.success li b {
    text-transform: uppercase;
}

.success li b i {
    font-style: normal;
    font-size: 14px;
}

#backend_error_string {
    background: #cc1b1b;
    color: #fff;
    padding: 10px;
    text-align: center;
}

#card-element {
    border-radius: 4px;
    border: 1px solid black;
    padding: 7px;
}

.cardStripe {
    display: block !important;
    margin-bottom: 50px !important;
}

.cardStripeLeft {
    float: left;
}

.cardStripeRight {
    float: right;
}

.CardField-input-wrapper {
    border: solid 1px;
}

.form__shipping.none {
    display: none;
}

#ccexp {
    width: 25%;
    margin-left: 15px;
}

#cvv {
    width: 25%;
    margin-left: 15px;
}

#payment-fields {
    display: flex;
}
/*endregion*/

/*region "new stuff" */
.inputs2 {
    width:  335px;
    margin: 0 auto;
}

.iwra {
    position:      relative;
    margin-bottom: 10px;
}

.iwra input {
    margin: 0 !important;
}

span.va, span.iv {
    position:       absolute;
    right:          10px;
    top:            50%;
    transform:      translateY(-50%);
    font-size:      1.2em;
    opacity:        0;
    pointer-events: none;
    transition:     opacity 0.2s;
}

.iwra.valid span.va {
    opacity: 1;
}

.iwra.valid span.iv {
    opacity: 0;
}

.iwra.custom span.va {
    opacity: 0;
}

.iwra.custom span.iv {
    opacity: 0;
}

.iwra.invalid span.va {
    opacity: 0;
}

.iwra.invalid span.iv {
    opacity: 1;
}

#div_address input {
    width:     100%;
    min-width: 335px;
}

#div_shipping input {
    width:     100%;
    min-width: 335px;
}
/*endregion*/

/*region "agree-sms-terms"*/
.form label[for="agree-sms-terms"] {
    display:     flex;
    align-items: center;
    margin-top:  20px;
}

.form label[for="agree-sms-terms"] input {
    width:  20px;
    height: 20px;
    margin: 0 10px 0 5px;
}

.form label[for="agree-sms-terms"] input,
.form label[for="agree-terms"] input
{
    min-width:  20px;
    min-height: 20px;
}
/*endregion*/
