* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    -webkit-tap-highlight-color: transparent;
}
html {
    font-size: 10px;
}
body {
    width: 100%;
    -webkit-text-size-adjust: 100%;
    font-family: -apple-system, BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Helvetica Neue","游ゴシック Medium",YuGothic,YuGothicM,メイリオ,Meiryo,sans-serif;
    position: relative;
    color: #111111;
    z-index: 0;
    font-weight: 300;
    font-style: normal;
    letter-spacing: 0.5px;
    height:100%;
}
@media all and (-ms-high-contrast:none) {
    body {
        font-family: "游ゴシック",YuGothic,YuGothicM,"Yu Gothic",メイリオ,Meiryo,sans-serif;
    }
  }
a, p, h1, h2 ,h3 ,h4, h5, h6, li, dt, dd, th, td, aside, span, small {
    text-decoration: none;
    font-size: 1rem;
    font-weight: normal;
    line-height: 2.3rem;
    color: #111111;
    cursor:-moz-text;
    cursor:-webkit-text;
    cursor: text;
}
h1, h2 ,h3 ,h4, h5, h6 {
    display: block;
    font-weight: 700;
    text-align: center;
    position: relative;
}
a, a > img {
    cursor:-moz-pointer;
    cursor:-webkit-pointer;
    cursor: pointer;
}
a, p, span, aside {
    display: inline-block;
}
ul, li, ol {
    list-style: none;
}
img {
    display: block;
    width: 100%;
    height: auto;
    cursor:-moz-default;
    cursor:-webkit-default;
    cursor: default;
}
address {
    font-style: normal;
}

/* フォーム（デフォルトcssリセット）*/
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="button"],
input[type="time"],
input[type="number"],
input[type="submit"],
input[type="checkbox"],
button,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  outline: none;
}
textarea {
  resize: vertical;
}
input[type='radio'] {
  display: none;
}
input[type='submit'],
input[type='button'],
label,
button,
select {
  cursor: pointer;
}
select::-ms-expand {
  display: none;
}

/* ヘッダー */
header {
    background: url(../img/login/header_bg.png) bottom no-repeat;
    background-size: cover;
}
header img {
    width: 18rem;
    margin: 0 auto;
    padding: 3rem 0;
}

/* メイン */
main {
    max-width: 420px;
    margin: auto;
    padding-bottom: 7rem;
}
.stage {
    width: 65%;
    margin: 3rem auto 5rem;
}
.inner {
    width: 70%;
    max-height: 250px;
    margin: 0 auto 3rem;
}

/* メイン：1_情報入力 */
select {
    width: 100%;
    font-size: 1.4rem;
    font-weight: bold;
    color: #333333;
    letter-spacing: 1px;
    border-bottom: 2px solid #dddddd;
    padding: 0.6rem 0;
}
select:invalid {
    font-size: 1.4rem;
    color: #cfcfcf;
}
.item_choice {
    position: relative;
    margin-bottom: 2.5rem;
}
.item_choice:not(.birthday):after {
    content: url(../img/login/arrow.svg);
    display: block;
    width: 1.4rem;
    position: absolute;
    right: 0;
    bottom: 0.8rem;
    z-index: -1;
}
main span, small {
    display: inline-block;
    font-size: 1rem;
    line-height: 1.3rem;
    margin: 0;
}
main small a {
    font-weight: normal;
}
.birthday .ttl {
    font-size: 1.4rem;
    color: #cfcfcf;
    font-weight: bold;
    margin-bottom: .4rem;
}
.birthday_inner {
    display: flex;
    justify-content: left;
    align-items: baseline;
}
.birthday .date {
    position: relative;
    width: 140px;
    border-bottom: 2px solid #dddddd;
    margin-right: 2rem;
    padding: 0.2rem 0;
}
.birthday input[type="date"], .age {
    position: relative;
    width: 140px;
    border: 0;
    background: transparent;
    outline: none;
    font-family: -apple-system, BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Helvetica Neue","游ゴシック Medium",YuGothic,YuGothicM,メイリオ,Meiryo,sans-serif;
    font-weight: bold;
    font-size: 1.4rem;
    color: #C2C2C2;
    text-align: center;
}
.birthday input[type="date"] {
    padding-right: 1.7rem;
    padding-bottom: .1rem;
}
.birthday input[type="date"]::-webkit-calendar-picker-indicator {
    display: none;
}
.birthday .datePH {
    display: block;
    width: calc(100% - 18px);
    font-size: 1.4rem;
    font-weight: bold;
    color: #C2C2C2;
    text-align: center;
    letter-spacing: 2px;
    background-color: #fff;
    position: absolute;
    bottom: .5rem;
    z-index: 2;
}
.birthday .dateIcon {
    display: block;
    width: 1.7rem;
    position: absolute;
    bottom: .5rem;
    right: 0;
}
.birthday .age {
    display: inline-block;
    text-align: left;
    color: #333333;
    padding-bottom: .2rem;
}
input.btn_entry, .btn_line {
    display: block;
    width: 70%;
    font-size: 1.6rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: 1px;
    text-align: center;
    background: #0abab5;
    border-radius: 0.6rem;
    position: relative;
    padding: 1.2rem 0;
    margin: 0 auto 0.3rem;
}
input.btn_entry[disabled] {
    background: #aaa;
}

/* メイン：1_LINE連動 */
.inner.stage2 {
    width: 70%;
    min-width: 270px;
    text-align: center;
}
h2 {
    font-size: 1.7rem;
    line-height: 2.3rem;
    letter-spacing: 0.7px;
    margin-bottom: 2.2rem;
}
.inner img:not(.birthday label img) {
    width: 70%;
    margin: 0 auto 2.2rem;
}
.inner.stage2 span {
    color: #333018;
    letter-spacing: 0.5px;
    background: #f3f3f3;
    border-radius: 0.5rem;
    padding: 0.8rem 1.3rem;
}
.btn_line {
    background: #00b901;
    position: relative;
    padding-left: 3.5rem;
}
.btn_line:before {
    content: "";
    display: block;
    background: url(../img/login/btn_lineicon.svg) center no-repeat;
    width: 3rem;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 15%;
    margin: auto;
}

/* フッター */
footer {
    background: #f3f3f3;
    width: 100%;
    position: fixed;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
    padding: 0.4rem 0;
}
small {
    display: block;
    text-align: center;
}
footer small {
    font-size: 1.1rem;
    color: #000;
}
small a {
    font-size: 1.1rem;
    font-weight: 700;
    color: #0FA5FF;
}

@media screen and (max-width: 360px) {
    html {
        font-size: 9px;
    }
    .stage {
        margin: 2rem auto 4rem;
    }
    .inner {
        height: 60vw
    }
    .item_choice {
        margin-bottom: 2.5rem;
    }
    .inner.stage2 {
        width: 75%;
    }
    .inner.stage1 span {
        -webkit-transform:scale(0.95);
        -moz-transform:scale(0.95);
        -ms-transform:scale(0.95);
        -o-transform:scale(0.95);
        transform:scale(0.95);
        transform-origin:0 0;
        -webkit-transform-origin:0 0;
    }
}