﻿@charset "UTF-8";

:root {
    --padding1: 12px;
    --padding2: 30px;
    --fontbase: 16px;
    --fontbutton: 24px;
    --fonthead: 20px;
    --radio_size: 48px;
    --form_height: 48px;
}

@media only screen and (min-width: 750px) {
    :root {
        --padding1: 22px;
        --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: #fffff2;
    /*font-family: "メイリオ",'Meiryo',"Hiragino Kaku Gothic ProN","ヒラギノ角ゴ ProN W3", sans-serif;*/
    font-family: "Noto Sans JP", 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: #de1818;
    text-decoration: underline;
}

a > u {
    color: #de1818;
}

.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: #de1818;
}

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: #fdcb53;
        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;
            padding-top: 25px;
        }

            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: 36px;
        padding: 0 16px;
        background-color: #ffffff;
        z-index: 1007;
    }

        body > header > h1 {
            display: flex;
            flex-grow: 1;
            font-size: 14px;
            font-weight: bold;
            text-align: center;
            color: #1a1a1a;
            padding-left: calc(50vw - 130px);
        }

        body > header > a {
            display: flex;
            width: 28px;
            height: 26px;
            background: url("img/logo_company.svg") no-repeat left top transparent;
            background-size: cover;
            overflow: hidden;
            text-indent: 30px;
            white-space: nowrap;
            margin-top: 0;
            margin-right: 0.2em;
        }

        body > header > a:nth-child(2) {
            display: flex;
            width: 28px;
            height: 26px;
            background: url("img/logo_company2.svg") no-repeat left top transparent;
            background-size: cover;
            overflow: hidden;
            text-indent: 30px;
            white-space: nowrap;
            margin-top: 0;
            margin-right: 0.2em;
        }

    body > footer {
        display: flex;
        justify-content: center;
        align-items: center;
        height: 36px;
        background-color: #ffffff;
        font-size: 0.75rem;
        border-top: solid 2px #797979;
    }

    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 90px;
        height: auto;
    }

        body > header > h1 {
            display: flex;
            color: #1a1a1a;
            line-height: 1.2;
            font-size: 26px;
            font-weight: bold;
            max-height: 88px;
            overflow: hidden;
            padding-left: calc(50vw - 320px);
        }

        body > header > a {
            display: flex;
            width: 58px;
            height: 55px;
            background: url("img/logo_company.svg") no-repeat left top transparent;
            background-size: cover;
            text-indent: 350px;
            margin-top: 0.2em;
            margin-right: 0.3em;
        }

        body > header > a:nth-child(2) {
            display: flex;
            width: 58px;
            height: 55px;
            background: url("img/logo_company2.svg") no-repeat left top transparent;
            background-size: cover;
            text-indent: 350px;
            margin-top: 0em;
            margin-right: 0.3em;
        }

    .phone_hide {
        display: block;
    }

    body > section > header {
        padding-top: 10px;
    }

    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 85px;
    }

        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: #de1818;
            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: #de1818;
            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: #de1818;
            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: #d04404;
    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: #d04404;
        background-color: #ffffff;
        border: 2px solid #d04404;
        font-weight: bold;
    }

    button.official,
    .button.official {
        color: #333333;
        background-color: #fdcb53;
        border: 2px solid #fdcb53;
        font-weight: bold;
        flex-basis: 45%;
    }

    button.official2,
    .button.official2 {
        color: #003a77;
        background-color: #b0d7ff;
        border: 2px solid #b0d7ff;
        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 {
        color: #333333;
        background-color: #fdcb53;
        font-weight: bold;
    }

    button.tel2,
    .button.tel2 {
        color: #333333;
        background-color: #b0d7ff;
        font-weight: bold;
    }

    button.copy,
    .button.copy {
        background-color: #0058ab;
    }

    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: #de1818;
        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: #d04404;
        background-image: radial-gradient(ellipse at center, #d04404 0%, #d04404 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: #de1818;
        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.time {
        display: flex;
        flex-wrap: wrap;
    }

        .forms.time label {
            flex-wrap: nowrap;
            flex-direction: column;
            align-items: flex-start;
            padding: 0 24px var(--padding1) 0;
        }

            .forms.time label:nth-child(1) {
                flex-basis: calc(50% - 12px);
            }

            .forms.time label:nth-child(2) {
                flex-basis: calc(50% - 24px);
                padding-right: 0;
            }

            .forms.time 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 #de1818;
            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: #de1818;
            }

        .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%;
}

.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: normal;
        font-size: 20px;
    }

        button.tel::before,
        .button.tel::before {
            content: "電話番号 ";
        }

    button.tel2,
    .button.tel2 {
        display: contents;
        color: inherit;
        pointer-events: none;
        font-weight: normal;
        font-size: 20px;
    }

        button.tel2::before,
        .button.tel2::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.date select {
        width: 250px;
    }

    .forms.time {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        padding: 0 24px var(--padding1) 0;
    }

    .forms.time label {
        flex-grow: 0;
        flex-basis: auto;
        flex-wrap: nowrap;
        flex-direction: column;
        align-items: flex-start;
        padding: 0 24px 0 0;
    }

    .forms.time label:nth-child(1) {
        flex-basis: 200px;
    }

    .forms.time label:nth-child(2) {
        flex-basis: 200px;
    }

    .forms.time select {
        width: 150px;
    }

    .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: #de1818;
                }

            .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;
            }

    .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:nth-child(2) {
        flex-grow: 0;
        margin-top: 1.5em;
    }

    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: 1em;
}

    .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, #fdcb53 0%, #fdcb53 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%, #fdcb53 50%, #fdcb53 100%);
            }

            .step > div > p:last-child {
                background-image: linear-gradient(to left, transparent 0%, transparent 50%, #fdcb53 50%, #fdcb53 100%);
                margin-bottom: 0em;
            }

            .step > div > p span {
                display: flex;
                justify-content: center;
                align-items: center;
                width: 1rem;
                height: 1rem;
                border-radius: 50%;
                background-color: #fdcb53;
                line-height: 1;
            }

            .step > div > p.current span {
                color: #ffffff;
                background-color: #d04404;
            }

/*------------------------------------------------------------------------
	.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 #fdcb53;
    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) {
    .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 #d04404;
        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 #d04404;
        margin-top: 7px;
        margin-left: 15px;
    }

    .usage {
        padding: 0.2em 1.2em;
    }
}


/*単語で折り返す設定*/
.wordWrap {
    word-break: break-word;
}

/*------------------------------------------------------------------------
	apply specific
------------------------------------------------------------------------*/
section p.apply-mobile {
    margin-bottom: 0px;
    line-height: 1.5em;
}

@media only screen and (min-width: 750px) {
    p.apply-mobile {
        display: none;
    }
}
@media screen and (max-width: 750px) {
    p.apply-desktop {
        display: none;
    }
}

/*------------------------------------------------------------------------
	user specific
------------------------------------------------------------------------*/
.footer-at-requested {
    flex-direction: column;
}

.div-at-requested {
    display:flex;
}

div.user-mobile {
    flex-direction: column;
}

div.inquiry {
    display: flex;
}
div.inquiry > section {
    flex-basis: 50%;
}

button.new-request {
    flex-basis: 45%;
}

body section > footer > div button {
    margin: var(--padding1) 0;
}

    body section > footer >div button + button {
        margin-left: var(--padding1);
    }

    body section > footer > div p {
        flex-basis:25%;
    }

body section > div > section {
    margin-top: 10px;
}

body section > div > section:first-child {
    margin-top: 10px;
}

@media only screen and (min-width: 750px) {
    div.user-mobile {
        display: none;
    }
    p.user-mobile {
        display: none;
    }
}

@media screen and (max-width: 750px) {
    div.user-desktop {
        display: none;
    }
    p.user-desktop {
        display: none;
    }
    div.inquiry {
        display: block;
    }
}
/*------------------------------------------------------------------------
	.ask-information
------------------------------------------------------------------------*/

header.ask-information {
    font-weight: 700;
    font-size: 22px;
    justify-content: flex-start;
    padding: 0 0;
    background-color: transparent;
}

header.ask-information.nankai {
    color: #d04404;
}

header.ask-information.semboku {
    color: #003a77;
}


/* 南海電鉄仕様 */
.forms label > span.fixed-cust-type {
    margin-top: 0.3em;
    margin-bottom: 0em;
}

.ol-terms-katakana {
    list-style-type: katakana;
    list-style-position: inside;
}

.li-terms-katakana {
    padding-left: 0em;
}

.li-terms-katakana::before {
    content: none;
}

.li-terms-katakana2 {
    padding-left: 1em;
}

.li-terms-katakana2::before {
    content: none;
}

.li-terms-katakana2::marker {
    content: none;
}