@charset "UTF-8";
.fs-l-page .fs-l-main,
.fs-l-pageMain {
    justify-content: center;
    width: 100%;
    max-width: initial;
    margin: initial;
    padding: initial;
}

.bg--black {
    background-color: #211f1e;
    color: white;
    /* padding-top: 115px; */
    padding-bottom: 120px;
}

/* header */
.epicurean__header {
    padding-bottom: 0 !important;
}
.epicurean__header.fixed {
    position: initial;
}
@media screen and (min-width: 768px) {
    .header_main {
        padding-top: 67px;
        padding-right: 76px;
        padding-bottom: 16px;
    }
}
.header_main {
    border-bottom: 1px solid var(--color-white);
}
.header_main_right {
    width: 258px;
}
/* header END */

.heroImage {
    width: fit-content;
    margin: 0 auto 0;
    padding-top: 115px;
    padding-bottom: 3rem;
}

.heroImage-txt {
    max-width: 1080px;
    margin: 0 auto;
    padding-left: 4rem;
    padding-right: 4rem;
    padding-bottom: 100px;
    font-size: 1.8rem;
    text-align: center;
    line-height: 2.5;
}

.application-title {
    text-align: center;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px 25px;
    font-size: 2.5rem;
}

.application-title::before,
.application-title::after {
    content: "";
    flex-grow: 1;
    height: 1px;
    background-color: #fff;
}

.application-title::before {
    margin-right: 20px;
}

.application-title::after {
    margin-left: 20px;
}

.application-txt {
    max-width: 1080px;
    margin: 0 auto;
    padding-left: 4rem;
    padding-right: 4rem;
    font-size: var(--font-size-20-24);
    text-align: center;
    line-height: 2.5;
}

.container {
    width: 100%;
    margin: 0 auto;
    padding: 20px;
}

.form {
    /* background-color: #f9f9f9; */
    padding: 20px 20px 0px 20px;
    border-radius: 5px;
}

.form input[type="text"],
.form select {
    border-radius: 5px;
    max-height: 50px;
    height: 5rem;
    margin-bottom: 1.25rem;
    padding-left: 1rem;
    font-family: var(--font-family-japan);
    font-size: 1.8rem;
}

.formBox {
    max-width: 1000px;
    display: flex;
    flex-flow: wrap;
    justify-content: space-evenly;
    margin: 0 auto;
}


.form-personal-info {
    width: 50%;
    max-width: 422px;
    margin-bottom: 20px;
}

.form___name {
    display: flex;
    flex-flow: wrap;
    justify-content: space-between;
}

.form--name_sei,
.form--name_mei {
    max-width: calc(50% - 1.75%);
}

.form--mail {
    max-width: 100%;
}

.form--tel {
    max-width: 100%;
}

.form--yyyy {
    max-width: 40%;
}

.form select {
    max-width: 8.4rem;
}

::-webkit-input-placeholder {
    /* WebKit, Blink, Edge */
    font-family: var(--font-family-japan);
}

:-ms-input-placeholder {
    /* Internet Explorer 10-11 */
    font-family: var(--font-family-japan);
}

::placeholder {
    /* Others */
    font-family: var(--font-family-japan);
}

.form-agreements {
    width: 50%;
    max-width: 548px;
    margin-bottom: 20px;
    /* padding-left: 1.75rem; */
    /* text-indent: -1.75rem; */
}

/* チェックボックスのカスタムスタイル */
.custom-checkbox {
    position: relative;
    padding-left: 2.5rem;
    margin-bottom: 30px;
    cursor: pointer;
    font-size: 1.6rem;
    user-select: none;
}

/* デフォルトのチェックボックスを非表示にする */
.custom-checkbox input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

/* カスタムチェックボックス */
.checkmark {
    position: absolute;
    top: 0;
    left: 0;
    height: 16px;
    width: 16px;
    border-radius: 3px;
    background-color: var(--color-black);
    /* ここで背景色を指定 */
    border: 1px solid var(--color-gray);
}

/* ホバー時の背景色 */
/* .custom-checkbox:hover input~.checkmark {
    background-color: rgba(237, 237, 237, 60%);
    border: 1px solid var(--color-gray);
} */

/* チェックされた時の背景色 */
.custom-checkbox input:checked~.checkmark {
    background-color: #2196F3;
    /* チェック時の背景色 */
}

/* チェックマーク（?） */
.checkmark:after {
    content: "";
    position: absolute;
    display: none;
}

.custom-checkbox input:checked~.checkmark:after {
    display: block;
}

.custom-checkbox .checkmark:after {
    left: 3px;
    top: 0px;
    width: 5px;
    height: 8px;
    border: solid white;
    border-width: 0 3px 3px 0;
    transform: rotate(45deg);
}

.form-agreements p {
    margin-bottom: 30px;
    padding-left: 3.25rem;
    text-indent: -3.25rem;
}

.formBox--attention {
    color: #DFC082;
    text-align: left;
}

.btn--submit {
    text-align: center;
    margin-top: 60px;
}

.btn-submit {
    width: 100%;
    max-width: 540px;
    /* max-height: 45px; */
    padding: 10px 20px;
    background-color: var(--color-button);
    color: #fff;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-family: var(--font-family-japan);
    font-size: 2.0rem;
}

.btn-submit:hover {
    background-color: var(--color-gray);
}

.btn-submit.end {
    cursor:default;
}

.btn-submit.end:hover {
    background-color: var(--color-button);
}


.hr--white {
    width: 1000px;
    border: solid #fff;
    border-width: .5px 0 0 0;
    margin: 60px auto 0;
    padding-bottom: 6rem;
}

.lottery-product-showcase {
    padding: 195px 20px 20px;
    background-color: #000;
    color: var(--color-white);
}

.row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 auto;
    max-width: 1000px;
    gap: 30px;
}

.column {
    flex: 1;
    padding: 10px;
    box-sizing: border-box;
}

.column img {
    max-width: 452px;
    margin: 0 auto;
}

.lottery-product--name {
    text-align: center;
    font-size: 3.6rem;
}

.lottery-product--name span {
    font-size: 2.6rem;
}

.lottery-product--spec {
    border-top: 1px solid var(--color-white);
    border-bottom: 1px solid var(--color-white);
    margin-bottom: 3.5rem;
    padding: 1.75rem;
    font-size: 1.6rem;
    text-align: center;
}

.regular-price {
    text-align: center;
    margin-bottom: 1.5rem;
}

.regular-price .icon--beige {
    background-color: var(--color-beige);
    color: var(--color-black);
    margin-left: .5rem;
    padding: .3rem .75rem;
    font-size: var(--font-size-20-24);
}

.limited-price {
    color: var(--color-beige);
    text-align: center;
    font-size: 3.5rem;
}

.limited-price span {
    color: var(--color-white);
    padding-right: 2rem;
    font-size: 1.6rem;
}

.limited-price .--s {
    color: var(--color-beige);
    padding-left: .75rem;
    font-size: 2.0rem;
}




.how-to-buy--tit {
    width: fit-content;
    margin: 0 auto;
    text-align: center;
    font-size: 2.0rem;
    position: relative;
    z-index: 99999999;
}

.how-to-buy--tit::before {
    content: "";
    display: block;
    width: 5em;
    height: 20px;
    position: absolute;
    top: .5em;
    left: -.5em;
    background-color: #000;
    z-index: -99999999;
}

.how-to-buy {
    border: 1px solid var(--color-white);
    padding: 1em .5em 1em;
    margin-top: -.75em;
    text-align: left;
    line-height: 2em;
}

.lottery-product-showcase .form-personal-info,
.lottery-product-showcase .form-agreements {
    width: initial;
}

/* .bg--black:has(.attention-block) {
    padding-top: 6em;
} */
.attention-block {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    padding: 2.1rem 2em 1.5em;
    border: 1px solid var(--color-gray);
    color: var(--color-black);
    background-color: var(--color-white);
}

/* 見出し */
.attention-title {
    margin-top: 0 !important;
    font-size: 2.1rem;
}

/* アイコン */
.attention-icon {
    display: inline-block;
    width: 26px;
    height: 26px;
    background-image: url('https://epicurean.itembox.design/item/assets/images/attention-icon.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    vertical-align: middle;
    margin-right: 10px;
}

/* リスト */
.attention-list {
    list-style: none;
    padding-left: 1.6rem;
}

/* リスト項目 */
.attention-items::before {
    content: "※";
}
.attention-items {
    padding-bottom: 1rem;
    font-size: 1.6rem;
    text-indent: -1.75rem;
}

/* footer */
.epicurean__footer {
    margin-top: 7rem;
    padding-top: 0;
    border-width: 0 0 0 0;
}
.footer_blue {
    border-width: 0 0 0 0;
}
/* footer END */

@media screen and (max-width: 767px) {
    * {
        width: initial;
    }

    body {
        font-size: 1.4rem;
    }
    /* header */
    .bg--black {
        padding-bottom: 6rem !important;
    }
    .bg--black:has(.attention-block) {
        padding-top: 0;
    }
    .epicurean__header {
        padding-bottom: 0 !important;
    }

    .heroImage {
        padding-top: 4rem;
    }

    .heroImage-txt,
    .application-txt {
        padding-left: 2.2rem;
        padding-right: 2.2rem;
    }

    .lottery-product--name {
        margin-top: 1.8rem;
        margin-bottom: 1.8rem;
        text-align: center;
        font-size: 3.6rem;
        line-height: 4.4rem;
    }
    .lottery-product--name span {
        display: inline-block;
        font-size: 2.2rem;
        line-height: 3rem;
    }
    .lottery-product--name.--fontsize33__smp {
        font-size: 3.3rem;
    }
    .lottery-product--name.--fontsize30__smp {
        font-size: 3.0rem;
    }
    .regular-price .icon--beige {
        display: inline-block;
        margin-bottom: 1.6rem;
    }
    .even .column:nth-child(even) {
        order: 1;
    }

    .even .column:nth-child(odd) {
        order: 2;
    }

    .container,
    .form {
        padding: 10px;
        padding-left: 0;
        padding-right: 0;
    }

    .formBox {
        flex-flow: column;
        padding: 0 20px;
    }

    .form-personal-info,
    .form-agreements {
        width: 100%;
        margin: 0 auto;
    }

    .form--yyyy {
        max-width: calc(38% - 20px);
    }

    .btn-submit {
        width: 80% !important;
        padding: 8px 16px;
    }

    .row {
        flex-direction: column;
    }

    .application-txt {
        text-align: left;
        line-height: 2.8rem;
    }

    .lottery-product-showcase {
        padding-top: 6rem !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .heroImage-txt {
        padding-bottom: 3rem;
        line-height: 2.8rem;
    }

    .column {
        padding-left: 0;
        padding-right: 0;
    }

    .column img {
        max-width: 94vw;
    }

    .hr--white {
        max-width: 80%;
    }

    .attention-block {
        width: 96%;
        margin-bottom: 3rem;
    }
}