@charset "utf-8";
@import url("./color.css");
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  src: url('../fonts/nsjp-regular.woff2') format('woff2'), url('../fonts/nsjp-regular.woff') format('woff');
  font-weight: 400;
}
p,
body {
    font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
}

body {
    margin-bottom: 80px;
}

/* テキストの折り返し設定 */
.break{
    overflow-wrap: break-word;
}

/* コンテナ */
.container {
    margin-top: 5%;
}

/* リスト */
li {
    list-style:none
}

/* チェックボックス */
input[type="checkbox"] {
    height: 24px;
    width: 24px; /* 横幅 */
    vertical-align: middle; /* テキストとチェックボックスを縦方向に中央揃えするためにvertical-align:middleを指定 */
    position: absolute;
}

/* Tips: MDB5 3.1.0 バグ対応 */
.form-check .form-check-input {
    margin-left: -1.5em !important;
}

/* 問い合わせ */
.inquiry {
    @media(max-width:575px){
        textarea {
            width: calc(100vw - 15vw); /* 横幅 */
            height: 300px; /* 高さ */
        }
        input[type="text"] {
            width: calc(100vw - 15vw); /* 横幅 */
        }
        input[type="email"] {
            width: calc(100vw - 15vw); /* 横幅 */
        }
        select {
            width: calc(100vw - 15vw); /* 横幅 */
        }
    }
    @media(min-width:576px){
        textarea {
            width: calc(100vw - 30vw); /* 横幅 */
            height: 300px; /* 高さ */
        }
        input[type="text"] {
            width: calc(100vw - 30vw); /* 横幅 */
        }
        input[type="email"] {
            width: calc(100vw - 30vw); /* 横幅 */
        }
        select {
            width: calc(100vw - 30vw); /* 横幅 */
        }
    }
}

/* お知らせ */
.news {
    .important {
        color: #FF0000;
        font-weight: bold;
    }
    .mid-important {
       color: #FF0000;
    }
    div {
        .row {
            margin-top: 2%;
        }
    }
    li {
        width: calc(100vw - 15vw);
        vertical-align: center;
        border-top: 0px;
        border-left: 0px;
        border-right: 0px;
        margin-left: 5%;
    }
}

/* 予約 */
.offer {
    /* 予約日時選択テーブル */
    .date-time-table {
        height: 60vh;
        .sticky-cross {
            position: sticky;
            top: 0;
            left: 0;
            z-index: 2;
            width: 60px;
            background-color: #4ee692;
        }
        .sticky-row {
            position: sticky;
            top: 0;
            z-index: 1;
            width: 50px;
            background-color: #4ee692;
        }
        .sticky-column {
            position: sticky;
            left: 0;
            z-index: 1;
            width: 60px;
            background-color: #4ee692;
        }
        .date-time-selector {
            /* ラジオボタン非表示 */
            opacity: 0;
            /* レイアウトやスクロールへの影響が無いよう、左部に固定 */
            position: fixed;
            left: 0;
        }
        .date-time-selector:checked + span {
            background: #8CF;
        }
    }
    .date-time-table-legend {
        color: #666;
        font-size: 0.95em;
        margin-bottom: 3px;
    }
    /* 住所入力フォーム */
    .address-input {
        width: 60vw;
    }
    /* 連絡先 */
    .contacts-input {
        width: 70vw;
    }
    /* 注意事項(特記事項に付随) */
    .notices {
        margin: 0 auto 1em;
        width: 85%;
        height: 25vh;
        background-color:#FCFFF9;
        border: #999 1px solid;
        text-align: left;
        .notices-li {
            list-style-type: disc;
        }
    }
    /* 地図選択画面 */
    .map-container {
        display: flex;
        flex-direction: column;
        height: calc(100vh - 100vw * 0.05);  /* 100vhから.containerのmargin-topを引いた値をheightとする */
        margin-bottom: -80px;  /* bodyのmargin-bottomを打ち消し */
        /* 地図表示領域 */
        .map-content {
            flex-grow: 1;
            position: relative;
            /* 地図 */
            #map {
                position: relative;
                height: 100%;
                min-height: 60vh;
            }
            /* (地図に重ねて表示する)メッセージ */
            .map-content-messages {
                position: absolute;
                width: 100%;
                padding: 0.5rem;
                z-index: 3;
            }
        }
    }
    .map-caption {
         position: absolute;
         top: 4px;
         left: 4px;
         border-radius: 2px;
         background-color: rgba(255, 255, 255, 0.9);
         padding: 0.2rem 0.5rem;
         z-index: 2;
    }
}

/* 会員 */
.user {
    @media(max-width:575px){
        textarea {
            width: 500px; /* 横幅 */
            height: 300px; /* 高さ */
        }
        input[type="text"] {
            width: 350px; /* 横幅 */
        }
    }
    @media(min-width:576px){
        textarea {
            width: 550px; /* 横幅 */
            height: 300px; /* 高さ */
        }
        input[type="text"] {
            width: 400px; /* 横幅 */
        }
    }
    label {
        vertical-align: middle;
    }
    div {
        .row {
            margin-top: 2%;
            margin-bottom: 2%;
        }
    }
    li {
        list-style:none
    }
}

/* 静的コンテンツ */
.doc {
    overflow-x: hidden;

    @media(max-width:575px){
        .img-size {
            width: 70%;
            height: auto;
            border: solid 1px #777777;
        }
        .img-size-carousel {
            width: 100%;
            height: auto;
        }
    }
    @media(min-width:576px){
        .img-size {
            width: 40%;
            height: auto;
            border: solid 1px #777777;
        }
        .img-size-carousel {
            width: 60%;
            height: auto;
        }
    }
    .heading {
        border-bottom: 5px solid #cceedb;
        display: inline-block;
        padding-bottom: 2px;
    }
    .guide-table {
        width: calc(100vh - 200px);
    }
    .carousel-control-prev-icon, .carousel-control-next-icon {
        height: 20px;
        width: 20px;
        background-color: rgba(0, 0, 0, 0.3);
        background-size: 80%, 80%;
        border-radius: 50%;
        border: 0px;
    }
    .carousel-indicators {
        background-color: rgba(0, 0, 0, 0.1);
    }
}

.welcome {
    .termsFrame {
        border: 1px;
        margin: 5%;
        width: 90%;
        height: calc(100vh - 50vh - 20px);
        overflow-x: hidden;
    }
}

/* ヘッダー固定画面 */
.fixed-header-container {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 100vw * 0.05);  /* 100vhから.containerのmargin-topを引いた値をheightとする */
    margin-bottom: -80px;  /* bodyのmargin-bottomを打ち消し */
    /* ヘッダー部分 */
    .fixed-header {
        .header-back-button {
            position: absolute;
            top: calc(100vw * 0.05 + 8px);
            left: 24px;
            color: #000;
        }
    }
    /* ヘッダー以外の領域 */
    .grow-content {
        flex-grow: 1;
        overflow: scroll;
    }
}
