﻿@charset "UTF-8";

:root {
    --padding1: 14px;
    --padding2: 30px;
    --fontbase: 16px;
    --fontbutton: 24px;
    --fonthead: 20px;
    --radio_size: 48px;
    --form_height: 48px;
}

@media only screen and (min-width: 750px) {
    :root {
        --padding1: 30px;
        --padding2: 60px;
        --fontbase: 18px;
        --fontbutton: 22px;
        --fonthead: 22px;
        --radio_size: 48px;
        --form_height: 48px;
    }
}

html,
body {
    margin: 0;
    padding: 0;
    min-height: 100vh;
    color: #333333;
    background-color: #f8f8f8;
    font-family: "メイリオ", 'Meiryo', "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", sans-serif;
    line-height: 1.5;
    font-size: 100%;
    font-size: 1.4rem;
    font-size: var(--fontbase);
    -webkit-text-size-adjust: 100%;
    overflow-x: hidden;
}

/*------------------------------------------------------------------------
	reset
------------------------------------------------------------------------*/
h1,
h2,
h3,
p,
dl,
dt,
dd,
em,
strong,
b,
i,
address {
    margin: 0;
    padding: 0;
    font-size: inherit;
    font-style: inherit;
    font-weight: inherit;
    line-height: 1.8em;
}

input,
select,
textarea,
button {
    font-family: inherit;
    font-size: inherit;
    box-sizing: border-box;
}

textarea {
    width: 100%;
    min-height: 100px;
    border: 2px solid #999999;
    font-family: inherit;
    font-size: inherit;
    box-sizing: border-box;
    border-radius: 10px;
    padding: 10px;
}

a:not(.button):link,
a:not(.button):visited,
a:not(.button):hover,
a:not(.button):active {
    color: #008803;
    text-decoration: underline;
}

a>u {
    color: #008803;
}

.tel_number {
    color: #333333 !important;
    font-weight: bold;
    text-decoration: none !important;
}

::placeholder {
    color: #797979;
}

strong {
    color: #e50012;
    font-weight: 700;
}

ul {
    margin: 0;
    padding: 0 0 0 40px;
}

ul li {
    margin: 0 10px 0 -10px;
    line-height: normal;
}

figure {
    display: flex;
    flex-direction: column;
    margin: 0;
}

figure figcaption {
    order: 0;
    text-align: center;
    font-weight: bold;
}

figure div {
    align-self: center;
    margin: var(--padding2) 0;
    order: 1;
    speak-as: none;
}

em {
    font-weight: 700;
    font-size: 20px;
}

address {
    margin: var(--padding1) 0;
}

address p>em {
    font-size: inherit;
}

hr {
    margin: var(--padding1) 0;
    border: 0 none;
    border-top: 1px solid #84c785;
}

.phone_hide {
    display: none;
}

.alert {
    color: #008803;
}

ol {
    counter-reset: item;
    list-style: none;
    margin: 0;
    padding: 0;
}

ol>li {
    counter-increment: item;
    position: relative;
    padding-left: 2.4em;
}

ol>li::before {
    content: "(" counter(item) ")";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3em;
}

ol[start] {
    counter-reset: item 1;
}

ol[start]>li {
    padding-left: 1.4em;
}

ol[start]>li::before {
    content: counter(item);
    align-items: flex-start;
}

.right-align {
    display: flex;
    justify-content: flex-end;
    margin-top: var(--padding1);
}

.usr05 p,
.mailsend p {
    padding-bottom: 20px;
}

.column {
    flex-direction: column;
}

.column p {
    margin-top: var(--padding1);
}

/*------------------------------------------------------------------------
	layout
------------------------------------------------------------------------*/
body section {
    margin: var(--padding1) 0 0 0;
}

body section:first-child {
    margin-top: 0;
}

body section>header {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 0 var(--padding1) 0;
    min-height: 40px;
    padding: 10px 20px;
    background-color: #bde6be;
    font-size: var(--fonthead);
    font-weight: 700;
    box-sizing: border-box;
}

body section>header>h1 {
    flex-grow: 1;
    line-height: 1.2;
}

body section>header>h1>i {
    display: block;
}

body section>h1 {
    font-weight: bold;
}

body section>footer {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    margin: var(--padding1) 0;
    padding: 0;
}

body section>i:first-child+section {
    margin-top: 0;
}

/*------------------------------------------------------------------------
	layout
------------------------------------------------------------------------*/
body {
    display: flex;
    flex-direction: column;
    word-break: break-all;
}

body>section {
    flex-grow: 1;
    padding: 0 16px;
}

body>section:nth-child(2) {
    flex-grow: 0;
    margin-top: 3em;
}

body>section.section-margin {
    flex-grow: 0;
    margin-top: 3em;
}

body>section>header {
    background-color: transparent;
}

body>section>header>h1 {
    flex-grow: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 0;
    background-color: transparent;
    font-size: 1.5rem;
}

body>section>header>i {
    display: block;
    width: 62px;
    height: 24px;
    margin: 0 14px;
    color: #ffffff;
    background-color: #c70010;
    border-radius: 8px;
    font-size: 16px;
    text-align: center;
}

body>section>footer {
    margin-bottom: var(--padding2);
    padding: 0;
}

body>header {
    position: fixed;
    width: 100%;
    top: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 32px;
    padding: 0 16px;
    background-color: #008803;
    z-index: 1007;
}

body>header>h1 {
    flex-grow: 1;
    font-size: 12px;
    font-weight: bold;
    text-align: left;
    color: #ffffff;
    padding-left: 1em;
}

body>header>a {
    display: block;
    width: 30px;
    height: auto;
    background: url("img/logo_jr.svg") no-repeat left top transparent;
    background-size: cover;
    overflow: hidden;
    text-indent: 30px;
    white-space: nowrap;
    margin-top: 0;
}

/*body > header::after {
            content: "";
            display: block;
            width: 28px;
            speak: none;
        }*/

body>footer {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 36px;
    background-color: #ffffff;
    font-size: 0.75rem;
    border-top: solid 2px #008803;
}

section p:last-child {
    margin-bottom: 20px;
}

/**印刷時設定*/
@media print {
    body>header {
        position: initial;
    }
}

/*------------------------------------------------------------------------
	ブレークポイント
	スマホ(最小)版を基本とし、PC(拡大)版はブレークポイント内に記載する。
	必要があれば各パーツごとに記述。
------------------------------------------------------------------------*/
@media only screen and (min-width: 750px) {

    html,
    body {
        font-size: 20px;
    }

    em {
        font-size: 22px;
    }

    body>header {
        position: fixed;
        width: 100%;
        padding: 0 100px;
        height: auto;
    }

    body>header>h1 {
        position: absolute;
        color: #ffffff;
        line-height: 1.2;
        font-size: 26px;
        font-weight: bold;
        max-height: 88px;
        overflow: hidden;
        padding-left: calc(50vw - 260px);
    }

    body>header>a {
        min-width: 50px;
        height: 50px;
        background: url("img/logo_jr.svg") no-repeat left top transparent;
        text-indent: 350px;
        margin-top: 0.4em;
    }

    body>header::after {
        width: 348px;
    }

    .phone_hide {
        display: block;
    }

    body section>header>h1 {
        font-size: 26px;
    }

    body section>header>h1>i {
        display: inline-block;
        margin-right: 1em;
    }

    body section>footer {
        flex-direction: row;
        justify-content: center;
    }

    body section>footer button {
        margin: 0;
    }

    body section>footer button+button {
        margin-left: var(--padding1);
    }

    body>section {
        padding: 0 100px;
    }

    body>section>header>h1 {
        height: 56px;
        font-weight: bold;
    }

    body>section>footer .back {
        order: -1;
        margin-left: 0;
        margin-right: var(--padding1);
    }

    .pc_left_align {
        justify-content: flex-start;
        margin: 3px;
    }

    address p>em {
        font-size: inherit;
    }
}

.pc_left_align {
    margin: 0;
}

/*------------------------------------------------------------------------
	icon
------------------------------------------------------------------------*/
.onicon.plus::before {
    background-image: url("img/icon_plus.svg");
}

.onicon.minus::before {
    background-image: url("img/icon_minus.svg");
}

.icon {
    display: inline-block;
    width: 1em;
    height: 1em;
    white-space: nowrap;
    overflow: hidden;
    font-size: 0.8em;
}

.icon::before {
    speak-as: none;
}

.icon.arrow {
    margin: 0 4px;
}

.icon.arrow::before {
    content: "▲";
    display: inline-flex;
    align-items: flex-start;
    width: 1em;
    height: 1em;
    transform-origin: center center;
    transform: rotate(90deg);
    color: #008803;
    font-family: inherit;
}

.icon.leftarrow {
    margin: 0 4px;
}

.icon.leftarrow::before {
    content: "＞";
    display: inline-flex;
    align-items: flex-start;
    width: 1em;
    height: 1em;
    transform: translate(0px, 0px) rotate(180deg) scale(1, -1.6);
    color: #008803;
    font-family: inherit;
}

.icon.rightarrow {
    margin: 0 4px;
}

.icon.rightarrow::before {
    content: "＞";
    display: inline-flex;
    align-items: flex-start;
    width: 1em;
    height: 1em;
    transform: translate(0px, 1px) rotate(0deg) scale(1, -1.6);
    color: #008803;
    font-family: inherit;
}

/*------------------------------------------------------------------------
	forms
------------------------------------------------------------------------*/
button,
.button {
    flex-grow: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-height: var(--form_height);
    margin: 0 0 var(--padding1) 0;
    padding: 0 10px;
    color: #ffffff;
    border: 0 none;
    border-radius: 10px;
    background-color: #007002;
    font-weight: 500;
    font-size: var(--fontbutton);
    text-decoration: none;
    line-height: 1;
    box-sizing: border-box;
    cursor: pointer;
}

/* button:last-child,
    .button:last-child {
        margin-bottom: 0;
    } */

button.back,
.button.back {
    color: #008803;
    background-color: #ffffff;
    border: 2px solid #008803;
    font-weight: bold;
}

button.official,
.button.official {
    color: #ffffff;
    background-color: #333333;
    border: 2px solid #333333;
    font-weight: bold;
}

button.reserve,
.button.reserve {
    background-color: #2e416b;
}

button.reserve.back,
.button.reserve.back {
    color: #2e416b;
    background-color: #ffffff;
    border: 2px solid #4f6780;
}

button.tel,
.button.tel {
    background-color: #333333;
}

button.copy,
.button.copy {
    background-color: #1a797d;
}

button.disabled,
button:disabled,
.button.disabled,
.button:disabled {
    opacity: 0.3;
    pointer-events: none;
}

button.onicon,
.button.onicon {
    flex-grow: 0;
    background-color: #ffffff;
    color: #008803;
    font-weight: bold;
    border: solid 2px;
}

button.onicon::before,
.button.onicon::before {
    content: "";
    display: inline-flex;
    width: var(--fontbase);
    height: var(--fontbase);
    margin-right: 8px;
    background: none no-repeat center center transparent;
    background-size: cover;
    speak: none;
}

input[type="text"],
input[type="email"],
input[type="tel"],
select {
    height: var(--form_height);
    padding: 0 8px;
    border: 2px solid #999999;
    background: none no-repeat center center #ffffff;
    color: #000000;
    border-radius: 10px;
    box-sizing: border-box;
    font-size: 20px;
    font-weight: 500;
    font-family: inherit;
}

input[type="text"][readonly],
input[type="email"][readonly],
input[type="tel"][readonly],
select[readonly] {
    height: auto;
    padding: 0;
    border: 0 none;
    background: none transparent;
}

select {
    -webkit-appearance: none;
    appearance: none;
    height: var(--form_height);
    width: 100%;
    padding: 0 40px 0 8px;
    background-image: url("img/icon_pulldown.svg");
    background-position: right 8px center;
}

input[type="radio"],
input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    display: inline-block;
    margin: 5px;
    width: var(--radio_size);
    height: var(--radio_size);
    background: none no-repeat center center #ffffff;
    border: 2px solid #999999;
    border-radius: 50%;
    box-sizing: border-box;
}

input[type="radio"]:checked,
input[type="checkbox"]:checked {
    border-color: #008803;
    background-image: radial-gradient(ellipse at center, #008803 0%, #008803 38%, rgba(0, 0, 0, 0) 39%, rgba(0, 0, 0, 0) 100%);
}

input[type="radio"]+span,
input[type="checkbox"]+span {
    margin-left: 8px;
    font-size: 20px;
}

input[type="checkbox"] {
    border-radius: 10px;
    background-image: url("img/icon_checkmark.svg");
    background-size: cover;
    background-position: 100px 100px;
}

input[type="checkbox"]:checked {
    border-color: #008803;
    background-image: url("img/icon_checkmark.svg");
    background-position: center center;
}

.forms {
    margin: var(--padding1) 0;
    font-weight: bold;
    font-size: 18px;
}

.forms label {
    flex-grow: 1;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    padding-bottom: var(--padding1);
    box-sizing: border-box;
    font-weight: bold;
}

.forms label>span:first-child {
    flex-basis: 100%;
    margin-bottom: 8px;
    line-height: 1;
}

.forms label input:not([type="radio"]):not([type="checkbox"]) {
    width: 100%;
}

.forms.date {
    display: flex;
    flex-wrap: wrap;
}

.forms.date label {
    flex-wrap: nowrap;
    flex-direction: column;
    align-items: flex-start;
    padding: 0 24px var(--padding1) 0;
}

.forms.date label:nth-child(1) {
    flex-basis: 100%;
    padding-right: 0;
}

.forms.date label:nth-child(2) {
    flex-basis: calc(50% - 12px);
}

.forms.date label:nth-child(3) {
    flex-basis: calc(50% - 24px);
    padding-right: 0;
}

.forms.date label span {
    flex-basis: auto;
    font-weight: bold;
}

.forms.station {
    position: relative;
}

.forms.station label {
    padding: 0 24px var(--padding1) 0;
    display: grid;
    grid-template-columns: 4em 1fr;
    grid-template-rows: 1fr;
    gap: 0px 0px;
    grid-template-areas: "head form";
    padding-right: 0;
}

.forms.station label:last-child {
    padding-bottom: 0;
}

.forms.station label>span {
    grid-area: head;
    align-self: center;
    font-weight: bold;
}

.forms.station label>input[type="text"],
.forms.station label button {
    grid-area: form;
}

.forms.station label.addRow,
.forms.station label.buttonRow {
    padding-right: 56px;
}

.forms.station label.buttonRow {
    pointer-events: none;
}

.forms.station label.buttonRow button {
    pointer-events: auto;
}


.forms.station label.addRow button,
.forms.station label.buttonRow button {
    font-size: 20px;
}

.forms.station>button {
    position: absolute;
    bottom: 40px;
    right: 0;
    display: flex;
    justify-content: flex-start;
    width: 48px;
    height: 48px;
    margin: 0;
    transform: translate(0, -50%);
    background: url("img/icon_change.svg") no-repeat center center white;
    border: 2px solid #008803;
    overflow: hidden;
    text-indent: 50px;
    white-space: nowrap;
}

.forms.section {
    display: flex;
    flex-wrap: wrap;
}

.forms.section p,
.forms.section label {
    display: none;
    padding: 7px;
    background-color: #ffffff;
    border: 2px solid #999999;
    border-radius: 10px;
    font-size: 20px;
    speak: none;
}

.forms.section p+label,
.forms.section label+label {
    margin-top: 8px;
}

.forms.section p.checked,
.forms.section label.checked {
    border-color: #008803;
}

.forms.section span {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    padding: 7px;
    background-color: #cccccc;
    font-size: 1rem;
    font-weight: 500;
}

.forms.section span b {
    margin: 0 20px 0 8px;
    font-size: 20px;
}

.forms.section dl {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
}

.forms.section dl dt {
    flex-basis: 4em;
    font-weight: 500;
}

.forms.section dl dt::after {
    content: "：";
    speak: none;
}

.forms.section dl dd {
    flex-basis: calc(100% - 4em);
    font-weight: 500;
}

.forms.section dl dd+dd {
    flex-basis: 100%;
    font-size: 1rem;
    font-weight: normal;
}

.forms.section .onicon.minus {
    display: none;
    margin-top: 16px;
    width: 100%;
    speak: none;
}

.forms.section .onicon.plus {
    margin-top: 16px;
    width: 100%;
}

.forms.section>label {
    display: none;
    speak: none;
}

.forms.section p {
    display: flex;
    speak: normal;
}

.forms.section .onicon.plus,
.forms.section .onicon.minus {
    display: none;
    speak: none;
}

.forms.section.unSelected>label:first-of-type {
    display: grid;
    speak: normal;
}

.forms.section.unSelected p {
    display: none;
    speak: none;
}

.forms.section.unSelected .onicon.plus {
    display: flex;
    speak: normal;
}

.forms.section.selected>label {
    display: none;
    speak: none;
}

.forms.section.selected>label.checked {
    display: grid;
    speak: normal;
}

.forms.section.selected p {
    display: none;
    speak: none;
}

.forms.section.selected .onicon.plus {
    display: flex;
    speak: normal;
}

.forms.section.show>label {
    display: grid;
    speak: normal;
}

.forms.section.show .onicon.plus {
    display: none;
    margin-top: 16px;
    width: 100%;
    speak: none;
}

.forms.section.show p {
    display: none;
    speak: none;
}

.forms.section.checked>label {
    display: none;
    speak: none;
}

.forms.section.checked>label.checked {
    display: grid;
}

.forms.section.selected.show .onicon.minus {
    display: flex;
    speak: normal;
}

.forms.checkboxs {
    font-size: 1rem;
    line-height: 1;
}

.forms.checkboxs>label {
    display: flex;
    flex-wrap: nowrap;
}

.forms.checkboxs>label input {
    min-width: var(--radio_size);
}

.forms.assistance input[type="radio"]+span {
    width: 45%;
}

.forms.assistance select {
    width: 100%;
}

.forms.exclusionLine dl {
    display: flex;
    flex-wrap: wrap;
    border-top: 1px solid #999999;
    border-left: 1px solid #999999;
    border-right: 1px solid #999999;
}

.forms.exclusionLine dl dt,
.forms.exclusionLine dl dd {
    padding: 6px 12px;
    box-sizing: border-box;
}

.forms.exclusionLine dl dt {
    flex-basis: 152px;
    background-color: #ffffff;
}

/* .forms.exclusionLine dl dt:first-child~dt,
.forms.exclusionLine dl dt:first-child+dd~dd {
    margin-top: 4px;
} */

.forms.exclusionLine dl dd {
    flex-basis: calc(100% - 152px);
    background-color: #ffffff;
}

.forms.exclusionLine div {
    background: #ffffff;
    margin-bottom: 30px;
    padding: 10px;
}

.forms.exclusionLine dt {
    border-right: 1px solid #999999;
    border-bottom: 1px solid #999999;
}

.forms.exclusionLine dd {
    /* border-left: 1px solid #999999; */
    border-bottom: 1px solid #999999;
}



.addRow {
    position: relative;
}

.addRow>button {
    position: absolute;
    right: -35px;
    bottom: 0;
    justify-content: flex-start;
    width: calc(var(--form_height)*0.8);
    height: calc(var(--form_height)*0.8);
    margin: 0;
    padding: 0;
    background: url("img/icon_delete.svg") no-repeat center center transparent;
    -webkit-background-size: contain;
    background-size: contain;
    box-shadow: none;
    text-indent: var(--form_height);
    white-space: nowrap;
    overflow: hidden;
}

.addRow>input {
    padding-right: 40px;
}

@media only screen and (min-width: 750px) {

    input[type="checkbox"] {
        border-radius: 10px;
    }

    button:only-child,
    .button:only-child {
        max-width: 684px;
    }

    button br,
    .button br {
        display: none;
    }

    button.plus,
    button.minus,
    .button.plus,
    .button.minus {
        max-width: none;
    }

    button.tel,
    .button.tel {
        display: contents;
        color: inherit;
        pointer-events: none;
        font-weight: bold;
        font-size: 24px;
    }

    button.tel::before,
    .button.tel::before {
        content: "電話番号　";
    }

    .forms label {
        padding-bottom: 16px;
    }

    .forms.date label:nth-child(1),
    .forms.date label:nth-child(2),
    .forms.date label:nth-child(3),
    .forms.date label:nth-child(4),
    .forms.date label:nth-child(5) {
        flex-grow: 0;
        flex-basis: auto;
        padding: 0 var(--padding1) 0 0;
    }

    .forms.station {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        overflow: auto;
        margin-top: 16px;
    }

    .forms.station>button {
        position: static;
        order: 2;
        flex-basis: var(--form_height);
        min-width: var(--form_height);
        max-width: var(--form_height);
        max-height: var(--form_height);
        min-height: var(--form_height);
        margin: 0;
        transform-origin: center center;
        transform: rotate(-90deg) translateX(-8px) translateY(-16px);
        align-items: center;
        align-self: center;
    }

    .forms.station label {
        display: flex;
        flex-direction: row;
        justify-content: flex-start;
        align-items: center;
        flex-basis: calc(50% - 110px);
        flex-wrap: nowrap;
        padding-top: 16px;
        padding-right: 40px;
        padding-bottom: 0;
        order: 3;
    }

    .forms.station label span {
        white-space: nowrap;
    }

    .forms.station label:first-child {
        order: 1;
    }

    .forms.station label.buttonRow {
        justify-content: center;
        flex-basis: 100%;
        padding-top: var(--padding1);
        padding-right: 0;
        order: 100;
    }

    .forms.station label.buttonRow button {
        flex-basis: 325px;
    }

    .forms.station label.buttonRow.checked {
        border-color: #008803;
    }

    .forms.station label.addRow {
        flex-basis: 100%;
        justify-content: center;
        order: 50;
    }

    .forms.station label span {
        flex-basis: auto;
        margin: 0 16px 0 0;
    }

    .forms.section p {
        width: 100%;
    }

    .forms.section span b {
        font-size: 22px;
        font-weight: bold;
    }

    .forms.section dl {
        font-size: 26px;
    }

    .forms.section dl dt,
    .forms.section dl dd {
        font-weight: bold;
    }

    .forms.section dl dd+dd {
        flex-basis: 100%;
        font-size: 1rem;
        font-weight: normal;
    }

    .forms.assistance {
        display: table;
        table-layout: fixed;
        border-spacing: 16px;
        width: 100%;
        margin: -16px;
    }

    .forms.assistance label {
        display: table-row;
    }

    .forms.assistance label span {
        padding-top: 8px;
    }

    .forms.assistance label span,
    .forms.assistance label input {
        display: table-cell;
    }

    .forms.assistance label span br,
    .forms.assistance label input br {
        display: none;
    }

    .forms.assistance label input {
        min-width: 400px;
        max-width: 400px;
    }

    .forms.address {
        display: table;
        table-layout: fixed;
        border-spacing: 16px;
        width: 100%;
        margin: -16px;
    }

    .forms.address label {
        display: table-row;
    }

    .forms.address label span,
    .forms.address label input {
        display: table-cell;
    }

    .forms.address label span br,
    .forms.address label input br {
        display: none;
    }

    .forms.address label input {
        min-width: 400px;
        max-width: 400px;
    }

    .forms.ticket {
        display: table;
        table-layout: fixed;
        border-spacing: 16px;
        width: 100%;
        margin: -16px;
    }

    .forms.ticket label {
        display: table-row;
    }

    .forms.ticket label span,
    .forms.ticket label input {
        display: table-cell;
    }

    .forms.ticket label span br,
    .forms.ticket label input br {
        display: none;
    }

    .forms.ticket label input {
        min-width: 350px;
        max-width: 450px;
    }

    #ticket_info_seat_num::placeholder {
        font-size: 13px;
    }

    .addRow {
        position: relative;
    }

    .addRow>button {
        position: static;
        flex-grow: 0;
        flex-basis: var(--form_height);
        max-width: var(--form_height);
    }
}

/*------------------------------------------------------------------------
	confirm
------------------------------------------------------------------------*/
.confirm {
    font-size: 20px;
}

.confirm>header {
    margin-bottom: 4px;
    padding: 6px 12px;
    font-size: 20px;
}

.confirm>header h1 {
    font-weight: normal;
}

.confirm dl {
    display: flex;
    flex-wrap: wrap;
}

.confirm dl dt,
.confirm dl dd {
    padding: 6px 12px;
    box-sizing: border-box;
}

.confirm dl dt {
    flex-basis: 152px;
    background-color: #cccccc;
}

.confirm dl dt:first-child~dt,
.confirm dl dt:first-child+dd~dd {
    margin-top: 4px;
}

.confirm dl dd {
    flex-basis: calc(100% - 152px);
    background-color: #ffffff;
}

.confirm div {
    background: #ffffff;
    margin-bottom: 30px;
    padding: 10px;
}

@media screen and (max-width: 750px) {
    body section>footer button {
        margin: 0 0 var(--padding1) 0 !important;
    }
}

@media only screen and (min-width: 750px) {
    .confirm>header {
        font-size: var(--fonthead);
    }

    .confirm dl dt,
    .confirm dl dd {
        font-size: var(--fonthead);
    }

    .confirm dl dt,
    .confirm dl dd {
        flex-basis: 307px;
    }

    .confirm dl dd {
        flex-basis: calc(100% - 307px);
        font-weight: bold;
    }
}

/*------------------------------------------------------------------------
	.usage
------------------------------------------------------------------------*/
.usage {
    background: #dae3e0;
    font-weight: bold;
}

/*------------------------------------------------------------------------
	.step
------------------------------------------------------------------------*/
.step {
    font-size: 0.75rem;
    font-weight: 500;
    margin: 10px 0;
    speak: none;
    padding-top: 6em;
}

.step>p {
    width: calc(100% / 4);
    text-align: center;
}

.step>div {
    display: flex;
    justify-content: space-between;
}

.step>div>p {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-content: center;
    align-items: center;
    flex-grow: 1;
    background: linear-gradient(to right, #bde6be 0%, #bde6be 100%) no-repeat left top 0.5rem transparent;
    background-size: auto 2px;
}

.step>div>p:first-child {
    background-image: linear-gradient(to right, transparent 0%, transparent 50%, #bde6be 50%, #bde6be 100%);
}

.step>div>p:last-child {
    background-image: linear-gradient(to left, transparent 0%, transparent 50%, #bde6be 50%, #bde6be 100%);
}

.step>div>p span {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background-color: #bde6be;
    line-height: 1;
}

.step>div>p.current span {
    color: #ffffff;
    background-color: #333333;
}

/*------------------------------------------------------------------------
	.alternative
    .step-alternative
------------------------------------------------------------------------*/
.section-alternative {
    margin-top: 0;
}

.step.step-alternative {
    padding-top: 1em;
}

.step.step-alternative>p {
    width: calc(100% / 2);
}

/*------------------------------------------------------------------------
	.terms
------------------------------------------------------------------------*/
.terms {
    flex-grow: 0;
    margin-top: 3em;
    display: none;
}

.terms>section {
    margin-bottom: 26px;
    font-size: 1rem;
    font-weight: normal;
}

.terms>section:last-of-type {
    margin-bottom: 0;
}

.terms>section header,
.terms>section header>h1 {
    display: block;
    margin: 0;
    padding: 0;
    min-height: 0;
    background-color: transparent;
    font-size: inherit;
    font-weight: 700;
}

/*------------------------------------------------------------------------
	information
------------------------------------------------------------------------*/
.information {
    position: relative;
    padding: 12px;
    border: 4px solid #bde6be;
    border-radius: 10px;
    line-height: 1;
}

/*------------------------------------------------------------------------
	qr
------------------------------------------------------------------------*/
.qr {
    background-color: #ffffff;
    padding-bottom: var(--padding1);
}

.qr figure {
    padding: 0 var(--padding1);
}

.qr figure img {
    width: 120px;
    height: auto;
}

.qr p {
    margin: 0 var(--padding1);
}

@media only screen and (min-width: 750px) {
    .qr figure img {
        width: auto;
    }
}

/*------------------------------------------------------------------------
	.popup
------------------------------------------------------------------------*/
.popup {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    opacity: 0;
    z-index: -1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    align-content: center;
    background-color: rgba(0, 0, 0, 0.7);
}

.popup>section {
    margin: 0 var(--padding1);
    padding: var(--padding2) var(--padding1);
    background-color: #ffffff;
}

.popup>section header {
    margin: 0;
    padding: 0;
    background-color: transparent;
}

.popup>section header h1 {
    font-size: 24px;
    font-weight: 700;
    text-align: center;
}

.popup>section footer {
    padding: 0;
    margin-bottom: 0;
}

.popup.show {
    opacity: 1;
    z-index: 3;
}

/* 画面ロック用 */
.lockDiv {
    z-index: 10000;
    position: fixed;
    top: 0px;
    left: 0px;
    right: 0px;
    bottom: 0px;
    /*background-color:transparent;*/
    background-color: White;
    opacity: 0.5;
}

/* jQUery mobile デフォルトローダー相当のサポート CSS */
.loaderContainer {
    display: block;
    text-shadow: none !important;
    background: 0;
    filter: Alpha(Opacity=18);
    opacity: .18;
    width: 2.875em;
    height: 2.875em;
    margin-left: -1.4375em;
    margin-top: -1.4375em;
    z-index: 9999999;
    position: fixed;
    top: 50%;
    left: 50%;
    border: 0;
}

/* loading icon */
.loading-icon {
    display: block;
    margin: 0;
    width: 2.75em;
    height: 2.75em;
    padding: 0.0625em;
    border-radius: 2.25em;
    font-size: 16px;
    background: url(../images/ajax-loader.gif) !important;
}

/* 三角 */
@media screen and (max-width: 750px) {
    .step.step-alternative {
        padding-top: 0.5em;
    }

    .triangle {
        display: block;
        width: 0;
        height: 0;
        border-top: solid 8px transparent;
        border-right: solid 12px transparent;
        border-bottom: solid 8px transparent;
        border-left: solid 12px #007002;
        margin-top: 5px;
        margin-left: 12px;
    }

    .usage {
        padding: 0.2em 1.0em;
    }
}

@media only screen and (min-width: 750px) {
    .triangle {
        display: block;
        width: 0;
        height: 0;
        border-top: solid 10px transparent;
        border-right: solid 14px transparent;
        border-bottom: solid 10px transparent;
        border-left: solid 14px #007002;
        margin-top: 7px;
        margin-left: 15px;
    }

    .usage {
        padding: 0.2em 1.2em;
    }
}

/* JR東日本利用規約 */
.li-terms-lev1 {
    list-style-type: none;
    counter-increment: cnt;
}

.li-terms-lev1::before {
    content: "　" counter(cnt)"";
}

.li-terms-lev2 {
    list-style-type: none;
    counter-increment: cnt2;
    padding-left: 0em;
}

.li-terms-lev2::before {
    position: relative;
    content: "(" counter(cnt2)") ";
}

/*単語で折り返す設定*/
.wordWrap {
    word-break: break-word;
}

/* 訓練環境用設定
html,
body {
    background-color: #fff979;
}
body > header > h1::before {
    content: "【訓練用】";
}
*/