/* 汎用パーツ */
.u-mb-10 { margin-bottom: 10px; }
.u-mb-16 { margin-bottom: 16px; }
.u-mb-32 { margin-bottom: 32px; }
.u-link-text { color: #ff6216; text-decoration: underline; transition: color 0.15s ease; }
.u-link-text:hover { opacity: 0.7;}

/* セクションラッパー、スペーサー */
.section__spacer_underpage { padding: 200px 0 120px;}
@media (max-width: 768px) {
    .section__spacer_underpage { padding: 18vw 0;}
}

/* フォーム共通パーツ */
.section__wrapper_w_1200__site-form-page { width: min(92%, 1200px); margin: 0 auto; position: relative; }
.site-form-page { background: #eee; min-height: 100vh; }
.site-form-page__title { margin: 0 0 130px; text-align: center; color: #ff6216; font-size: min(60px, 3.2vw); font-weight: 900; letter-spacing: 2.4px; }
.site-form-page__panel { background: #fff; border-radius: 16px; padding: 98px 104px; }
.site-form-page__list-item_wrapper { margin-bottom: 32px;}
.site-form-page__list-item { padding: 10px 10px 10px 20px; margin-bottom: 10px; border-bottom: 1px solid #eee; position:relative;}
.site-form-page__list-item::before { content: "●"; font-size: 12px; line-height: 1em; position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
.site-form-page__list-note_wrapper { background: #eee; border-radius: 10px; padding: 40px;}
.site-form-page__list-note { padding-left: 20px; position:relative; font-size: 14px;}
.site-form-page__list-note:not(:last-child) { margin-bottom: 10px;}
.site-form-page__list-note::before { content: "※"; position: absolute; left: 0; top: 0; }
.site-form-page__lang { margin: 0 0 72px; display: flex; justify-content: flex-end; align-items: center; gap: 24px; }
.site-form-page__lang-btn { border: 0; background: transparent; font-weight: 700; color: rgba(70, 70, 70, 0.33); }
.site-form-page__lang-sep { font-weight: 700; }
.site-form__field { margin-bottom: 48px; }
.site-form__field label,
.site-form__field legend,
.site-form__field .site-form__field-title { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 16px; font-weight: 700; }
.site-form__field-note { font-size: 14px; padding-top: 10px; }
.site-form__required { display: inline-block; border-radius: 4px; background: #d80000; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: 0.36px; padding: 4px 8px; }
.site-form input, .site-form select { width: 100%; border: 1px solid transparent; border-radius: 4px; background: #eee; padding: 16px 24px; transition: background-color 0.15s ease, border-color 0.15s ease; }
.site-form input::placeholder { color: #c8c8c8; }
.site-form input:focus,
.site-form select:focus { background: #fff; border-color: #ff6216; outline: none; }
@media (hover: hover) {
    .site-form input:hover:not(:disabled),
    .site-form select:hover:not(:disabled) { background: #fff; border-color: #ff6216; outline: none; }
}
.site-form__field--radio { border: 0; padding: 0; margin: 0 0 48px; }
.site-form__field--radio legend { margin-bottom: 16px; }
.site-form__radio { display: inline-flex; align-items: center; gap: 16px; margin-right: 32px; }
.site-form__radio input[type="radio"] { width: 18px; height: 18px; accent-color: #464646; }
.site-form__select-wrap { position: relative; }
.site-form__select-wrap select { appearance: none; padding-right: 48px; }
.site-form__select-arrow { position: absolute; right: 16px; top: calc(50% - 2px); width: 10px; height: 10px; border-top: 2px solid #464646; border-right: 2px solid #464646; transform: translate3d(0, -50%, 0) rotate(135deg); }
.site-form__submit { margin: 0 auto; border: 0; border-radius: 8px; background: #ff6216; color: #fff; min-height: 56px; padding: 16px 24px; display: flex; align-items: center; gap: 8px; font-weight: 700; cursor: pointer; transition: background-color 0.15s ease; }
.site-form__submit:hover { opacity: 0.7;}
.site-form__submit:disabled { background: #c8c8c8; color: #fff; cursor: not-allowed; opacity: 1; }
.site-form__submit:disabled:hover { opacity: 1;}
.site-form__submit-icon { width: 18px; height: 18px; display: flex; }
.site-form__submit-icon img { width: 18px; height: 18px; }
.site-form__date-btn { cursor: pointer; border-bottom: 1px solid #464646; padding: 10px 50px 10px 10px; position: relative; transform: .15s ease; }
.site-form__date-btn:hover { opacity: 0.7; }
.site-form__date-btn::after { content: ""; position: absolute; right: 10px; top: 50%; width: 10px; height: 10px; border-top: 2px solid #464646; border-right: 2px solid #464646; transform: translate3d(0, -50%, 0) rotate(135deg); }
.site-form__flex_row { display: flex; gap: 10px; }
@media (max-width: 768px) {
    .site-form-page__section { padding: 18vw 0; }
    .site-form-page__title { font-size: 7vw; margin-bottom: 12vw; }
    .site-form-page__panel { padding: 5%; }
    .site-form-page__lang { margin-bottom: 7vw; }
    .site-form-page__list-note_wrapper { padding: 5%;}
}

/* front-page opening animation */
html.js body:not(.home):not(.page-enter-ready) main {
    opacity: 0;
    transform: translate3d(0, 20px, 0);
    filter: blur(2px);
}
body.page-enter-pending:not(.home) main {
    opacity: 0;
    transform: translate3d(0, 20px, 0);
    filter: blur(2px);
    transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1), transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), filter 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
body.page-enter-pending.page-enter-ready:not(.home) main {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    filter: blur(0);
}
@media (prefers-reduced-motion: reduce) {
    body.page-enter-pending:not(.home) main,
    body.page-enter-pending.page-enter-ready:not(.home) main {
        opacity: 1;
        transform: none;
        filter: none;
        transition: none;
    }
}