form.one_column_form table tr {
    border: none;
}

form.one_column_form table th,
form.one_column_form table td {
    display: block;
    width: 100%;
    padding: 0;
    border: none;
    text-align: left;
}

form.one_column_form table th {
    /* font-size: 20px; */
    font-weight: bold;
    padding-bottom: 1em;
    padding-top: 0.5em;
}

#sp_view form.one_column_form table th {
    padding-top: 0.5em;
    padding-bottom: 0.5em;
}

form.one_column_form table th .label_required {
    background: #8b1c23;
    color: #fff;
    border-radius: 10px;
    padding: 0.25em 1em;
    margin-left: 0.5em;
    position: relative;
    top: -2px;
}

#sp_view form.one_column_form table th .label_required {
    border-radius: 4px;
}

form.one_column_form table th .label_any {
    background: #2387c3;
    color: #fff;
    border-radius: 10px;
    padding: 0.25em 1em;
    margin-left: 0.5em;
    position: relative;
    top: -2px;
}

#sp_view form.one_column_form table th .label_any {
    border-radius: 4px;
}

form.one_column_form table tr:first-child th {
    padding-top: 0;
}

form.one_column_form table td {
    /* font-size: 18px; */
}

#sp_view form.one_column_form table td {
    padding: 0;
}

form.one_column_form input[type="text"],
form.one_column_form input[type="email"],
form.one_column_form input[type="tel"],
form.one_column_form select,
form.one_column_form textarea,
form.one_column_form textarea.error_apply {
    width: 100%;
    border-radius: 4px;
    padding: 0.85em;
    /* font-size: 18px; */
    outline: none;
}

form.one_column_form input[type="text"]:required,
form.one_column_form input[type="email"]:required,
form.one_column_form input[type="tel"]:required,
form.one_column_form select:required,
form.one_column_form textarea:required,
form.one_column_form textarea.error_apply:required {
    background: #f2f2f2; /* color.adjust($gray, $lightness: 55%) */
}

form.one_column_form input[type="text"].success,
form.one_column_form input[type="email"].success,
form.one_column_form input[type="tel"].success,
form.one_column_form select.success,
form.one_column_form textarea.success,
form.one_column_form textarea.error_apply.success {
    background-color: #fde9d0 !important;
    background-image: url("/img/common/icon/ico_check_ok.svg") !important;
    background-repeat: no-repeat !important;
    background-position: top 1em right 1em !important;
    -webkit-background-size: 20px !important;
    -o-background-size: 20px !important;
    background-size: 20px !important;
}

form.one_column_form input[type="text"].error,
form.one_column_form input[type="email"].error,
form.one_column_form input[type="tel"].error,
form.one_column_form select.error,
form.one_column_form textarea.error,
form.one_column_form textarea.error_apply.error {
    background: #f4cacd; /* color.adjust($red, $lightness: 55%) */
    border: 2px solid #8b1c23;
}

form.one_column_form input[type="text"]:focus,
form.one_column_form input[type="email"]:focus,
form.one_column_form input[type="tel"]:focus,
form.one_column_form select:focus,
form.one_column_form textarea:focus,
form.one_column_form textarea.error_apply:focus {
    border: 2px solid #2387c3;
    background: #e9f4fb; /* color.adjust($blue, $lightness: 50%) */
}

form.one_column_form input[type="text"]#zip,
form.one_column_form input[type="email"]#zip,
form.one_column_form input[type="tel"]#zip {
    width: 200px;
    margin-right: 1em;
}

form.one_column_form textarea {
    line-height: 1.3;
}

form.one_column_form .error-message {
    position: relative;
    display: inline-block;
    border: none;
    background: #8b1c23;
    border-radius: 8px;
    color: #fff;
    margin-top: 1em;
    animation: blinking 1s ease-in-out infinite alternate;
}

form.one_column_form .error-message span {
    display: block;
    background: none;
    color: #fff;
    padding: 0.5em 1em;
    /* font-size: 1em; */
}

form.one_column_form .error-message span:before {
    content: "";
    position: absolute;
    top: -8px;
    left: 15px;
    transform: translateX(10%);
    border-bottom: 15px solid #8b1c23;
    border-right: 15px solid transparent;
    border-left: 15px solid transparent;
}

form.one_column_form.chk_service_td label {
    width: 50%;
    float: left;
    margin-bottom: 1em;
}

form.one_column_form.address_td > div {
    margin-bottom: 1em;
}

form.one_column_form.address_td #zip {
    width: 9em;
}

#sp_view form.one_column_form.address_td #zip {
    width: 50% !important;
}

form.one_column_form.address_td .zip_text {
    display: inline-block;
    margin-left: 1em;
    /* font-size: 0.8em; */
}

form.one_column_form.address_td .text {
    padding-right: 1em;
}

form.one_column_form.address_td .text_address {
    display: inline-block;
    width: 10em;
}

form.one_column_form.address_td .address_input input,
form.one_column_form.address_td .address_input select {
    width: 50%;
}

form.one_column_form.address_td .address_input input.any,
form.one_column_form.address_td .address_input select.any {
    background: #fff;
}

form.one_column_form.address_td .address_input select {
    background: #f2f2f2; /* color.adjust($gray, $lightness: 55%) */
}

form.one_column_form .submit_btn input {
    font-size: 24px;
    background: #8b1c23;
    box-shadow: 0 3px 0 #8b1c23;
}

#sp_view form.one_column_form .submit_btn input {
    font-size: 16px;
}

/****************************************************
* フォーム
****************************************************/
form tr {
    border-top: 1px solid #cccccc; /* color.adjust($gray, $lightness: 40%) */
    border-bottom: 1px solid #cccccc;
}

form th,
form td {
    border: none;
    padding: 1em 0;
}

#sp_view form th,
#sp_view form td {
    padding: 1em 0;
}

form th span,
form td span {
    /* font-size: 0.8em; */
    color: #666666; /* $gray */
}

form th {
    padding-right: 1em;
}

#sp_view form th {
    padding-bottom: 0;
}

form label {
    display: block;
    margin-bottom: 1em;
}

#sp_view form label {
    display: block;
    margin-bottom: 0.5em !important;
}

form label input {
    margin-right: 0.5em;
}

form input[type="text"],
form input[type="email"],
form textarea,
form select {
    outline: none;
}

#sp_view form input[type="text"],
#sp_view form input[type="email"],
#sp_view form textarea,
#sp_view form select {
    width: 100%;
}

.tableFormL th span {
    display: block;
}

form table th {
    position: relative;
    background: none;
    font-weight: normal;
}

#sp_view form table th {
    /* font-size: 14px; */
    display: block;
    padding-top: 2rem;
}

form table th .required {
    position: absolute;
    top: 1rem;
    right: 2rem;
    /* font-size: 10px; */
    background: #8b1c23; /* $red */
    color: #fff;
    padding: 2px 5px;
}

#sp_view form table th .required {
    right: auto;
    left: 0;
    top: 1em;
}

.tbl_type_k {
    table-layout: fixed;
}

.tbl_type_k thead th {
    background: #484848;
    color: #fff;
}

.tbl_type_y {
    table-layout: fixed;
}

.tbl_type_y thead th {
    background: #ffefc5;
}

td *:last-child {
    margin-bottom: 0;
}

#sp_view .sp_tbl th,
#sp_view .sp_tbl td {
    display: block;
    width: 100%;
    padding: 0.5em;
    /* font-size: 14px; */
}

/****************************************************
* /form/（テーマ style.css）と見た目を揃えるための追加分
****************************************************/

/* .error-message が参照する点滅アニメーション（_js.scss 由来） */
@keyframes blinking {
    0% {
        opacity: 0.6;
    }
    100% {
        opacity: 0.8;
    }
}

/* レイアウトラッパー（_base.scss 由来） */
.one_column_wrap {
    line-height: 1.6;
}

#form_wrap {
    width: 900px;
    max-width: 100%;
    margin-inline: auto;
}

#form_wrap.flex {
    display: flex;
    gap: 1em;
    margin-bottom: 2em;
}

#form_wrap > .bd_box {
    flex: 1;
    padding: 3em 3em 0;
    border-radius: 14px;
    background: #fff;
}
@media (max-width: 600px) {
    #form_wrap > .bd_box {
        padding: 1em;
    }
}

#sp_view #form_wrap > .bd_box {
    padding: 1em;
}

/* 見出し・文章（_common.scss / _base.scss .one_column_wrap 由来） */
#form_wrap h2 {
    /* font-size: 32px; */
    font-weight: bold;
    color: inherit;
}

#form_wrap .no_style {
    border: none !important;
    background: none !important;
    padding: 0 !important;
    left: 0 !important;
    box-shadow: none !important;
}

#form_wrap h3 {
    /* font-size: 26px; */
    font-weight: bold;
    margin-top: 1.5em;
    margin-bottom: 1em;
    position: relative;
    text-align: left;
    color: inherit;
}

#form_wrap h3.line_through {
    border-bottom: 1px solid #8b1c23; /* $red */
    padding-left: 0;
}

#form_wrap p {
    margin: 0 0 1.25em;
    /* font-size: 18px; */
}

#form_wrap a {
    /* font-size: 18px; */
    color: #0000ee;
    text-decoration: underline;
}

#form_wrap a:visited {
    color: #0044cc;
}

#form_wrap a:hover {
    color: #d58000;
}

#form_wrap em,
#form_wrap i {
    font-style: normal;
}

#form_wrap table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 35px;
    line-height: 1.3;
    /* font-size: inherit; */
}

#form_wrap figure {
    display: table;
    margin: 0;
}

/* 送信ボタンのベース（_content.scss .submit_btn 由来） */
.one_column_wrap .submit_btn {
    position: relative;
}

.one_column_wrap .submit_btn input {
    display: block;
    margin: 1em auto;
    border: none;
    color: #fff;
    font-weight: bold;
    padding: 0.5em 1em;
    border-radius: 8px;
    outline: none;
    cursor: pointer;
}

.one_column_wrap .submit_btn input:hover {
    opacity: 0.8;
}

.one_column_wrap .submit_btn input:active {
    box-shadow: none;
    position: relative;
    top: 3px;
}

/* ユーティリティ（_common.scss 由来・フォーム内のみに適用） */
.one_column_wrap .caption {
    display: inline-block;
    font-size: 14px; #t_form .caption
    line-height: 1.4;
    color: #666;
}

.one_column_wrap .red {
    color: #d20000;
}

.one_column_wrap .fwb,
.one_column_wrap .fwb span,
.one_column_wrap .fwb small {
    font-weight: bold;
}

.one_column_wrap .tac {
    text-align: center;
}

.one_column_wrap .m0 {
    margin: 0 !important;
}

.one_column_wrap .mt0 {
    margin-top: 0 !important;
}

.one_column_wrap .mb0 {
    margin-bottom: 0 !important;
}

.one_column_wrap .mt0_5em {
    margin-top: 0.5em !important;
}

.one_column_wrap .mb0_5em {
    margin-bottom: 0.5em !important;
}

.one_column_wrap .mt1em {
    margin-top: 1em !important;
}

.one_column_wrap .mt2em {
    margin-top: 2em !important;
}

.one_column_wrap .mr1em {
    margin-right: 1em !important;
}

.one_column_wrap .dn {
    display: none;
}

.one_column_wrap .db {
    display: block !important;
}

.one_column_wrap .oh {
    overflow: hidden;
}

.one_column_wrap .fl {
    float: left !important;
    margin-right: 2.5em;
    margin-bottom: 1em;
}

.one_column_wrap .cf:after {
    content: ".";
    display: block;
    clear: both;
    height: 0;
    visibility: hidden;
}

.pack_choice del {
    /* font-size: 0.7em; */
}
@media (max-width: 600px) {
    .pack_choice del {
    display: block;
}
}