html, body{
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;

    font-family: 'Fira Sans Condensed', sans-serif;
    color: #2b305e;
}

div, img, header, footer, span, form,
h1, h2, h3, h4, h5, p, a {
    display: block;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
ul, li, ol {
    box-sizing: border-box;
    margin: 0;
}
h1, h2, h3, h4, h5, p{
    cursor: default;
}
.vspace {
    height: 24px;
}
.vspace_half {
    height: 16px;
}
.vspace_double {
    height: 48px;
}

input, select {
    display: block;
    border: 0;
    margin: 0;
    padding: 0;
    outline: 0;
}
input[type=text], input[type=tel], input[type=email], input[type=number], input[type=password], select {
    height: 42px;
    font-size: 16px;
    font-family: 'Fira Sans Condensed', sans-serif;
    max-width: 410px;
    width: 100%;
    background: white;
    border-radius: 8px;
    margin-bottom: 8px;
    padding: 0 12px;
    color:#a83b77;
    box-sizing: border-box;
}
input::placeholder {
    color: #d8a4c1;
    opacity: 1;
}
.label_input {
    font-size: 14px;
    margin: 8px 0 4px 8px;
    color: #f17d34;
    font-weight: 700;
}
.input_phone {
    padding-left: 40px !important;
}
.input_np {
    padding-left: 30px !important;
}
.phone_input_pref {
    width: 45px;
    height: 42px;
    font-size: 18px;
    color: #a83b77;
    line-height: 42px;
    margin-bottom: -42px;
    margin-left: 8px;
    cursor: default;
}

.back_color_purple {
    background:rgb(153, 105, 175);
    color: #fff;
}

.back_color_light {
    background:rgb(249 228 180);
    color: #fff;
}

header {
    text-align: center;
    padding-bottom: 48px;
}

.block_container {
    width: 100%;
    padding: 32px 0;
}
.block_elem {
    width: 100%;
    max-width: 1280px;
    margin: auto;
}

.grid_container {
    font-size: 0;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}
.grid_element_two {
    font-size: 16px;
    display: inline-block;
    vertical-align: top;
    width: 20%;
}
.grid_elem_three {
    font-size: 16px;
    display: inline-block;
    vertical-align: top;
    width: 30%;
}
.grid_elem_four {
    font-size: 16px;
    display: inline-block;
    vertical-align: top;
    width: 40%;
}
.grid_elem_five {
    font-size: 16px;
    display: inline-block;
    vertical-align: top;
    width: 50%;
}
.grid_elem_six {
    font-size: 16px;
    display: inline-block;
    vertical-align: top;
    width: 60%;
}
.grid_center_v {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.splide__slide{
    padding: 8px;
}
.card_test {
    width: 100%;
    /* height: 280px; */
    /* background:rgb(135, 70, 165); */
    border-radius: 8px;
    padding: 8px;
}
.card_test img {
    width: 100%;
}

.cta {
    display: inline-block;
    background:#ff5722;
    font-size: 16px;
    font-weight: 700;
    line-height: 22px;
    padding: 8px 24px;
    border-radius: 12px;
    color: #fff;
    cursor: pointer;
    transition: all 0.3s ease-in-out;
    text-decoration: none;
}
.cta_center {
    text-align: center;
}
.cta_border {
    background: none;
    border: 2px solid #ff5722;
    color: #ff5722;
}
.cta:hover {
    transform: translateY(-2px);
}
.cta_disabled {
    opacity: 0.4;
    cursor: default;
}

.cta_xl {
    font-size: 22px;
    line-height: 24px;
    padding: 12px 28px;
    border-radius: 16px;
}

.agreement_wrapper {
    margin: 16px 0;
}
.agree_check {
    display: inline-block;
    vertical-align: middle;
    width: 16px;
    height: 16px;
    margin-right: 8px;
}
.agree_desc {
    max-width: 410px;
    display: inline-block;
    vertical-align: middle;
    font-size: 13px;
    color: #a83b77;
}
.agree_link {
    display: inline-block;
    color: #2033a2;
}

.inp_group {
    display: flex;
    width: 100%;
    max-width: 410px;
    justify-content: space-between;
}
.inp_group_six {
    width: 65%;
    max-width: 380px;
}
.inp_group_four {
    width: 30%;
    max-width: 380px;
}
.login_container {
    width: 280px;
    margin: auto;
    text-align: left;
}
.login_title {
    text-align: center;
    font-size: 14px;
    font-weight: 700;
}
.login_title::before, .login_title::after{
    display: inline-block;
    vertical-align: middle;
    content: "";
    height: 2px;
    width: 22px;
    margin: 0 8px;
    background: #a83b77;
}
.error_msg {
    position: relative;
    width: 100%;
    background: #ffe9cb;
    border: 2px solid red;
    border-radius: 8px;
    margin-bottom: 16px;
    padding: 12px;
    color: red;
    font-weight: 700;
    z-index: 30;
}
.error_msg::before {
    position: absolute;
    display: block;
    content: "";
    width: 12px;
    height: 12px;
    bottom:-7px;
    left: calc(50% - 6px);
    border-radius: 4px;
    margin: auto;
    background: red;
    transform: rotateZ(45deg);
    z-index: 10;
}
.error_msg::after {
    position: absolute;
    display: block;
    content: "";
    width: 12px;
    height: 12px;
    bottom: -5px;
    left: calc(50% - 6px);
    border-radius: 4px;
    margin: auto;
    background: #ffe9cb;
    transform: rotateZ(45deg);
    z-index: 50;
}
.card_button {
    width: 96%;
    max-width: 320px;
    background: white;
    padding: 12px 22px;
    margin: 12px auto;
    border-radius: 8px;
    font-weight: 700;
    cursor: pointer;
    color: inherit;
    text-decoration: none;
    transition: all 0.3s ease-in-out;
}
.card_button:hover {
    transform: translateY(-2px);
}
.c_btn_disabled {
    opacity: 0.6;
    cursor: not-allowed;
}
.card_button span {
    display: inline-block;
    font-size: 13px;
    font-weight: normal;
}

@media (max-width: 1024px) {
    .block_elem {
        width: 90%;
    }
}

@media (max-width: 768px) {
    input[type=text], input[type=tel], input[type=email], input[type=number] {
        max-width: none;
    }
    select {
        max-width: none;
    }
    .inp_group {
        max-width: none;
    }
}

@media (max-width: 425px) {
    .block_elem {
        width: 100%;
    }
    #buy_form {
        padding: 0 16px;
    }
}