html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent
}

body {
    line-height: 1
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block
}

nav ul {
    list-style: none
}

blockquote,
q {
    quotes: none
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: '';
    content: none
}

a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent
}

ins {
    background-color: #ff9;
    color: #000;
    text-decoration: none
}

mark {
    background-color: #ff9;
    color: #000;
    font-style: italic;
    font-weight: bold
}

del {
    text-decoration: line-through
}

abbr[title],
dfn[title] {
    border-bottom: 1px dotted;
    cursor: help
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #cccccc;
    margin: 1em 0;
    padding: 0
}

input,
select {
    vertical-align: middle
}

*,
*::before,
*::after {
    box-sizing: border-box
}

a,
area,
button,
[role="button"],
input:not([type="range"]),
label,
select,
summary,
textarea {
    -ms-touch-action: manipulation;
    touch-action: manipulation
}

html {
    font-size: 1.8vw
}

@media screen and (min-width: 1000px) {
    html {
        font-size: 18px
    }
}

@media screen and (max-width: 768px) {
    html {
        font-size: 3.86vw
    }
}

body {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-style: normal
}

body a {
    color: inherit;
    text-decoration: none
}

body img {
    width: 100%;
    height: auto;
    vertical-align: bottom
}

body em {
    font-style: normal
}

body li {
    list-style: none
}

body h1,
body h2,
body h3,
body h4,
body h5,
body h6 {
    font-weight: inherit
}

.wrap {
    background: #fff;
    width: 100%;
    color: #333
}

body#confirm .wrap,
body#thanks .wrap {
    min-height: 100vh;
    height: 100%;
    border-bottom: 3rem solid #0065B7;
    display: flex;
    flex-flow: column
}

@media screen and (max-width: 768px) {

    body#confirm .wrap,
    body#thanks .wrap {
        border-bottom-width: 5vw
    }
}

.contents {
    min-height: 30%;
    color: black;
    flex: 1
}

.form {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    padding: 4rem 0;
    line-height: 1.8em
}

.form__progress {
    padding: 0 0 4rem;
    display: flex;
    justify-content: space-between
}

.form__progress-item {
    background-color: #afb6bf;
    width: calc(100% / 3);
    padding: 0 1rem;
    height: 3rem;
    line-height: 3rem;
    color: #fff;
    font-weight: 600;
    text-align: center;
    overflow: hidden;
    position: relative
}

.form__progress-item::before,
.form__progress-item::after {
    content: '';
    width: 0;
    height: 0;
    border-style: solid;
    border-color: transparent;
    border-width: calc(1.5rem + 2px) 0 calc(1.5rem + 2px) 1rem;
    display: block;
    position: absolute;
    top: -2px
}

.form__progress-item::before {
    border-left-color: #fff;
    left: 0
}

.form__progress-item::after {
    border-top-color: #fff;
    border-bottom-color: #fff;
    right: 0
}

.form__progress-item.current {
    background-color: #333
}

.form__list-item {
    margin: 0 0 1rem;
    /*padding: 0 0 1rem;
    border-bottom: 1px solid #333;*/
    text-align: left
}

.form__list-item .head {
    padding: 0 0 .5em;
    line-height: 1.8em;
    font-weight: 600;
    position: relative
}

.form__list-item .body {
    min-height: 1.8em;
    line-height: 1.8em
}

.form__list-item .body .note:first-child {
    padding: 0 0 .5em
}

.form__list-item .small {
    font-size: .77em
}

.form__list-item .note {
    padding: .5em 0 0;
    font-size: .88em
}

.form__list-item .error {
    color: #ff1421;
    font-size: .88em
}

.form__list-item .icon {
    margin-right: 1em;
    padding: .2em .5em;
    line-height: 1em;
    font-size: .88em;
    font-weight: 400;
    vertical-align: middle;
    display: inline-block
}

.form__list-item .icon-required {
    background: #FF5938;
    color: #fff
}

.form__list-item .icon-optional {
    background: #666;
    color: #fff
}

.form__list-item:last-child {
    margin: 0;
    padding: 0;
    border-bottom: none
}

.form__privacy {
    padding: 2rem 0;
    color: #333;
    text-align: center
}

.form__privacy label {
    font-size: 1.2rem
}

.form__privacy label.checkbox {
    margin: 0 !important
}

.form__privacy .error {
    color: #ff1421;
    font-size: .88em
}

.form__privacy a {
    transition: all 0.2s ease-in-out;
    cursor: pointer;
    border-bottom: 1px solid #0065B7;
    color: #0065B7
}

.form__privacy a:hover {
    opacity: .7
}

@media screen and (max-width: 768px) {
    .form__privacy a:hover {
        opacity: 1
    }
}

.form__text {
    max-width: 700px;
    margin: 0 auto;
    padding: 3rem 0;
    line-height: 1.8em
}

.form__button {
    width: 90%;
    max-width: 405px;
    margin: 0 auto;
    text-align: center
}

.form__button button[type='submit'] {
    background-color: transparent;
    border: none;
    font-family: inherit;
    font-size: inherit;
    cursor: pointer;
    outline: none;
    padding: 0;
    transition: all 0.2s ease-in-out;
    cursor: pointer;
    filter: drop-shadow(3px 3px 3px rgba(51, 51, 51, 0.3));
    margin: 0 auto;
    padding: 1.5rem 1rem;
    border-radius: 1rem;
    line-height: 1;
    font-size: 1.33rem;
    font-weight: 700;
    display: block;
    background-color: #FF5938;
    color: #fff;
    width: 100%;
    display: block
}

.form__button button[type='submit']:hover {
    opacity: .7
}

@media screen and (max-width: 768px) {
    .form__button button[type='submit']:hover {
        opacity: 1
    }
}

@media screen and (max-width: 768px) {
    .form__button button[type='submit'] {
        filter: drop-shadow(2px 2px 2px rgba(51, 51, 51, 0.3))
    }
}

@media screen and (max-width: 768px) {
    .form__button button[type='submit'] {
        padding: 3vw 2vw
    }
}

.form__button button[type='button'] {
    background-color: transparent;
    border: none;
    font-family: inherit;
    font-size: inherit;
    cursor: pointer;
    outline: none;
    padding: 0;
    transition: all 0.2s ease-in-out;
    cursor: pointer;
    filter: drop-shadow(3px 3px 3px rgba(51, 51, 51, 0.3));
    margin: 0 auto;
    padding: 1.5rem 1rem;
    border-radius: 1rem;
    line-height: 1;
    font-size: 1.33rem;
    font-weight: 700;
    display: block;
    background-color: #333;
    color: #fff;
    width: 100%;
    margin-top: 1rem;
    display: block
}

.form__button button[type='button']:hover {
    opacity: .7
}

@media screen and (max-width: 768px) {
    .form__button button[type='button']:hover {
        opacity: 1
    }
}

@media screen and (max-width: 768px) {
    .form__button button[type='button'] {
        filter: drop-shadow(2px 2px 2px rgba(51, 51, 51, 0.3))
    }
}

@media screen and (max-width: 768px) {
    .form__button button[type='button'] {
        padding: 3vw 2vw
    }
}

.form__button a {
    background-color: transparent;
    border: none;
    font-family: inherit;
    font-size: inherit;
    cursor: pointer;
    outline: none;
    padding: 0;
    transition: all 0.2s ease-in-out;
    cursor: pointer;
    filter: drop-shadow(3px 3px 3px rgba(51, 51, 51, 0.3));
    margin: 0 auto;
    padding: 1.5rem 1rem;
    border-radius: 1rem;
    line-height: 1;
    font-size: 1.33rem;
    font-weight: 700;
    display: block;
    background-color: #333;
    color: #fff;
    width: 100%;
    margin-top: 1rem;
    display: block
}

.form__button a:hover {
    opacity: .7
}

@media screen and (max-width: 768px) {
    .form__button a:hover {
        opacity: 1
    }
}

@media screen and (max-width: 768px) {
    .form__button a {
        filter: drop-shadow(2px 2px 2px rgba(51, 51, 51, 0.3))
    }
}

@media screen and (max-width: 768px) {
    .form__button a {
        padding: 3vw 2vw
    }
}

.form__note {
    padding: 3rem 0 0;
    font-size: .88rem;
    text-align: left
}

.form input[type='text'],
.form input[type='email'],
.form input[type='tel'],
.form input[type='number'],
.form input[type='date'],
.form select,
.form textarea {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-style: normal;
    background: #fff;
    width: 100%;
    padding: .5rem;
    border: 1px solid #bcbcbc;
    border-radius: .5em;
    line-height: 1.8em;
    font-size: 1rem
}

.form input[type='text']:placeholder-shown,
.form input[type='email']:placeholder-shown,
.form input[type='tel']:placeholder-shown,
.form input[type='number']:placeholder-shown,
.form input[type='date']:placeholder-shown,
.form select:placeholder-shown,
.form textarea:placeholder-shown {
    background: #f3f3f3
}

.form input[type='text']:not(:placeholder-shown),
.form input[type='email']:not(:placeholder-shown),
.form input[type='tel']:not(:placeholder-shown),
.form input[type='number']:not(:placeholder-shown),
.form input[type='date']:not(:placeholder-shown),
.form select:not(:placeholder-shown),
.form textarea:not(:placeholder-shown) {
    background: #fff
}

.form input[type='text'].short,
.form input[type='email'].short,
.form input[type='tel'].short,
.form input[type='number'].short,
.form input[type='date'].short,
.form select.short,
.form textarea.short {
    width: calc((100% - 3rem) / 3)
}

.form input[type='date'] {
    width: calc((100% - 3rem) / 3);
    max-width: 20em
}

.form textarea {
    min-height: 10em;
    vertical-align: bottom;
    resize: vertical
}

.form label.radio,
.form label.checkbox {
    margin: 0 1rem 0 0;
    padding: 0 0 0 2rem;
    line-height: 1.8em;
    font-weight: 500;
    position: relative;
    display: inline-block;
    cursor: pointer
}

.form label input[type='radio'],
.form label input[type='checkbox'] {
    width: 1.5rem;
    height: 1.5rem;
    margin: auto;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0
}

.form label.birthday select {
    width: 25%;
    max-width: 6rem
}

.form label.postalcode input {
    width: 10em
}

.form label.age input {
    width: 5em;
    margin-right: .5em;
    ime-mode: disabled
}

.form label.date {
    display: flex;
    flex-flow: wrap;
    justify-content: flex-start
}

.form label.date input,
.form label.date select {
    width: calc((100% - 3rem) / 3);
    max-width: 20em;
    margin: 0 1rem 0 0
}

.form label.date input:last-child,
.form label.date select:last-child {
    margin-right: 0
}

.form .radio-wrap {
    margin-bottom: -1rem;
    display: flex;
    flex-flow: wrap;
    align-items: flex-start;
    justify-content: flex-start
}

.form .radio-wrap label.radio {
    width: calc((100% - 3rem) / 3);
    margin-bottom: 1rem;
    text-align: left
}

.form .checkbox-wrap {
    margin-bottom: -1rem;
    display: flex;
    flex-flow: wrap;
    align-items: flex-start;
    justify-content: flex-start
}

.form .checkbox-wrap label.checkbox {
    width: calc((100% - 3rem) / 3);
    margin-bottom: 1rem;
    text-align: left
}

.form input.required,
.form select.required,
.form textarea.required {
    border-color: red !important
}

@media screen and (max-width: 768px) {
    .form {
        padding: 5vw 0
    }

    .form__progress {
        padding: 0 0 10vw
    }

    .form__progress-item {
        padding: 0 3vw;
        font-size: .77rem;
        height: 10vw;
        line-height: 10vw
    }

    .form__progress-item::before,
    .form__progress-item::after {
        border-width: calc(5vw + 2px) 0 calc(5vw + 2px) 3vw
    }

    .form__list-item {
        margin: 0 0 3vw;
        padding: 0 0 3vw
    }

    .form__list-item .head {
        width: 100%;
        padding: 0 0 2vw
    }

    .form__list-item .body {
        width: 100%;
        padding: 0
    }

    .form__list-item .body label.radio,
    .form__list-item .body label.checkbox {
        width: 100%
    }

    .form__list-item .icon-required,
    .form__list-item .icon-optional {
        margin: 0 .5rem 0 0;
        position: static;
        display: inline-block
    }

    .form__privacy {
        padding: 8vw 0
    }

    .form__text {
        padding: 5vw 0
    }

    .form__button {
        width: 80%;
        max-width: none
    }

    .form input[type='text'],
    .form input[type='email'],
    .form input[type='tel'],
    .form input[type='number'],
    .form input[type='date'],
    .form select,
    .form textarea {
        padding: 2vw;
        line-height: 2rem;
        font-size: 1.15rem
    }

    .form input[type='text'].short,
    .form input[type='email'].short,
    .form input[type='tel'].short,
    .form input[type='number'].short,
    .form input[type='date'].short,
    .form select.short,
    .form textarea.short {
        width: 100%;
        max-width: none
    }

    .form input[type='date'] {
        width: 100%;
        max-width: none
    }

    .form textarea {
        min-height: 5em
    }

    .form label.radio,
    .form label.checkbox {
        margin: 0;
        padding: 0 0 0 2.2rem
    }

    .form label.date {
        display: flex;
        flex-flow: wrap;
        justify-content: flex-start
    }

    .form label.date input,
    .form label.date select {
        width: 100%;
        max-width: none;
        margin: 0 0 3vw
    }

    .form label.date input:last-child,
    .form label.date select:last-child {
        margin: 0
    }

    .form .radio-wrap {
        display: block
    }

    .form .radio-wrap label.radio {
        width: 100%;
        margin-right: 0
    }

    .form .checkbox-wrap {
        display: block
    }

    .form .checkbox-wrap label.checkbox {
        width: 100%;
        margin-right: 0
    }
}

.confirm__inner,
.thanks__inner {
    width: 90vw;
    max-width: 1000px;
    margin: 0 auto;
    text-align: center
}

.confirm__heading,
.thanks__heading {
    background-color: #0065B7;
    padding: 2rem 0;
    line-height: 1.8em;
    color: #fff;
    font-size: 2rem;
    font-weight: 700;
    text-align: center
}

.confirm__text,
.thanks__text {
    padding: 0 0 2rem;
    line-height: 1.8em;
    text-align: center
}

.confirm .form__list-item:last-child,
.thanks .form__list-item:last-child {
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid #333
}

@media screen and (max-width: 768px) {

    .confirm__heading,
    .thanks__heading {
        padding: 4vw 0;
        font-size: 1.5rem
    }

    .confirm__text,
    .thanks__text {
        text-align: left
    }
}

.thanks__text {
    background: #f3f3f3;
    margin: 0 0 3rem;
    padding: 2rem 1rem;
    color: #333;
    line-height: 1.8em;
    font-size: 1.11rem;
    font-weight: 500;
    text-align: center
}

.thanks__text-item {
    padding: 0 0 1.5rem
}

.thanks__text-item:last-child {
    padding: 0
}

@media screen and (max-width: 768px) {
    .thanks__heading {
        padding: 4vw 0;
        font-size: 1.5rem
    }

    .thanks__text {
        margin: 0 0 10vw;
        padding: 4vw;
        font-size: 1rem;
        font-weight: 400;
        text-align: left
    }

    .thanks__text-item {
        padding: 0 0 4vw
    }

    .thanks__text-item:last-child {
        padding: 0
    }

    .thanks__text br {
        display: none
    }
}