.container {
background: transparent;
max-width: none;
padding: 0;
}
.form-column {
align-items: center;
grid-template-columns: 28rem 1fr;
column-gap: 24px;
padding: 24px 24px 24px 0;
margin: 0;
border-bottom: 1px solid #c3c0c0;
position: relative;
}
.form-column::before {
content: "";
position: absolute;
bottom: -1px;
left: 0;
width: 28rem;
height: 1px;
border-bottom: 1px solid #333;
}
.form-column[data-column="郵便番号"],
.form-column[data-column="都道府県"],
.form-column[data-column="市区町村番地"] {
grid-template-columns: 16rem 1fr;
margin-left: 12rem;
&::before {
width: 16rem;
}
.badge-required, legend .badge-required {
display: none;
}
}
.form-column[data-column="建物名"] {
grid-template-columns: 16rem 1fr;
padding-left: 12rem;
}
.form-column[data-column="メールアドレス"]:not(.form-column-heading) {
display: block;
margin-left: 12rem;
padding-left: calc(16rem + 24px);
padding-bottom: 0;
border-bottom: none;
&::before {
content: none;
}
.label {
display: none;
}
.description-block {
margin-top: 24px;
}
}
.form-column[data-column="メールアドレス（確認）"] {
display: block;
padding-left: calc(28rem + 24px);
.label {
display: none;
}
}
.form-column-heading[data-column="住所"],
.form-column-heading[data-column="メールアドレス"] {
position: absolute;
border: none;
&::before {
border: none;
}
h2 {
display: flex;
align-items: center;
font-size: 16px;
height: 50px;
&::after {
content: "必須";
background-color: #fff;
border: 1px solid #e20914;
font-size: 0.72em;
font-weight: 600;
color: #e20914;
margin-left: 1em;
width: fit-content;
display: inline-block;
padding: 5px 8px;
line-height: 1;
border-radius: 0;
}
}
}
.label {
font-size: 16px;
}
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="date"], select {
background: #f2f2f2;
border: none;
height: 50px;
padding: 6px;
}
textarea {
background: #f2f2f2;
border: none;
padding: 6px;
}
input[type="checkbox"], input[type="radio"] {
background-color: #ffffff;
}
input[type="checkbox"]:checked, input[type="radio"]:before {
background-color: #e20914;
}
.badge-required, legend .badge-required {
background-color: #fff;
border: 1px solid #e20914;
font-size: 0.72em;
font-weight: 600;
color: #e20914;
margin-left: 1em;
}
.button-group {
margin: 64px 0 80px;
}
button.button-confirm, button.button-submit {
width: 384px;
padding: 1em 0;
color: #fff;
line-height: 1;
font-size: 18px;
font-weight: 600;
background-color: #e20914;
border: 2px solid #e20914;
&:hover {
background-color: #fff;
color: #e20914;
}
}

@media print, screen and (max-width: 768px) {

    .form-column {
        padding-right: 0;
        &:first-of-type {
            padding-top: 0;
        }
        &::before {
            width: 30vw;
        }
    }
    .form-column-heading[data-column="住所"], .form-column-heading[data-column="メールアドレス"] {
        position: relative;
        padding-bottom: 0;
        + .form-column {
            padding-top: 1em;
        }
    }
    .form-column[data-column="郵便番号"], .form-column[data-column="都道府県"], .form-column[data-column="市区町村番地"] {
        margin-left: 0;
        &::before {
            width: 30vw;
        }
    }
    .form-column[data-column="建物名"] {
        padding-left: 0;
    }
    .form-column[data-column="メールアドレス"]:not(.form-column-heading) {
        margin-left: 0;
        padding-left: 0;
    }
    .form-column[data-column="メールアドレス（確認）"] {
        padding-left: 0;
    }

    .label {
        margin-bottom: 1em;
    }

}