@charset "UTF-8";
/* base */
html {
    font-size: 62.5%;
    position: relative;
    min-height: 100%;
}

body {
    /* Margin bottom by footer height */
    margin-bottom: 30px;
}

.footer {
    position: absolute;
    bottom: 0;
    width: 100%;
    white-space: nowrap;
    line-height: 60px;
}

a {
    color: blue;
}

.wrap {
    margin: 0 auto;
}

.wrap_header {
    margin: 0 auto;
    text-align: center;
    height: 150px;
    display: flex;
    position: relative;
    width: 100%;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-image: url(../img/bg_header.png);
    background-position: bottom;
    background-repeat: no-repeat;
    background-size: contain;
}

    .wrap_header h1.header_title {
        margin-top: 15px;
        font-size: 2.4rem;
        line-height: 1.6;
        font-weight: bold;
    }

    .wrap_header .pankuzu {
        text-align: left;
        font-size: 1.2rem;
        width: 90%;
        padding: 0 1rem;
        max-width: 500px;
    }

        .wrap_header .pankuzu .home::after {
            content: ">";
            width: 15px;
            margin: 0 3px;
        }

.wrap_main {
    margin: 0 auto;
    background-color: #bde7ff;
    padding: 20px 2rem 20px;
}

.backto {
    width: 100%;
    display: inline-block;
    height: auto;
    text-align: center;
    padding: 0px 0 40px;
    background-color: #bde7ff;
}

    .backto a.btn_bkt {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        padding: 10px 37px;
        font-size: 1.6rem;
        color: #fff;
        background: #222;
        border: 2px solid transparent;
        font-weight: 400;
        text-transform: uppercase;
        text-decoration: none;
        letter-spacing: 1px;
        -webkit-border-radius: 30px;
        -moz-border-radius: 30px;
        border-radius: 30px;
    }

        .backto a.btn_bkt:hover {
            background: #000;
        }

        .backto a.btn_bkt img {
            width: 16px;
        }

.wrap_aside {
    margin: 30px auto 0;
    background-color: #fff;
}

    .wrap_aside h5.aside_title {
        padding: 0 15px 0 15px;
        font-size: 1.8rem;
    }

.card {
    max-width: 500px;
    margin: 0 auto;
    border: none;
    border-radius: none;
    background-color: transparent;
}

    .card h5.card-header {
        height: auto;
    }

    .card label {
        font-size: 1.8rem;
        margin-bottom: 1rem;
        font-weight: bold;
    }

    .card .text-center-and {
        display: inline-block;
        width: 100%;
        position: relative;
        font-size: 1.8rem;
        text-align: center;
        font-weight: bold;
        height: 30px;
        margin-bottom: 15px;
    }

        .card .text-center-and:before {
            content: "";
            position: absolute;
            top: 45%;
            left: 0;
            width: 38%;
            height: 1px;
            border-top: dashed 2px #000;
        }

        .card .text-center-and:after {
            content: "";
            position: absolute;
            top: 45%;
            right: 0;
            width: 38%;
            height: 1px;
            border-top: dashed 2px #000;
        }

    .card .R-align {
        text-align: right;
    }

    .card .C-align {
        text-align: center;
    }

    .card .text-large {
        font-size: 2em;
        text-decoration: underline;
        text-decoration-thickness: 0.5px;
        text-underline-offset: 8px;
    }

.card-body {
    padding: 0 2rem 1.5rem;
}

.card-home-style {
    background-color: #bde7ff;
}

.card-body-style {
    background-color: #fff;
    border-radius: 15px;
}

    .card-body-style .user_info {
        padding: 30px 10px 10px;
        width: 100%;
        border-bottom: 1px solid #222;
    }

    .card-body-style .user_info_no_underline {
        padding: 30px 10px 10px;
        width: 100%;
    }

    .card-body-style .user_date {
        padding: 30px 10px 0;
        width: 100%;
    }

    .card-body-style .contact_info {
        padding: 30px 0px 0;
        width: 100%;
    }

    .card-body-style .contact_specer {
        padding-bottom: 15px;
        width: 100%;
    }

.card-news-style {
    padding: 2rem 0;
    background-color: #fff;
    border-radius: 15px;
}

    .card-news-style dl.news_list a.news_set {
        display: inline-block;
        width: 100%;
        padding: 15px 15px 15px 30px;
        border-bottom: 1px solid #222;
        color: #222;
        text-decoration: none;
    }

        .card-news-style dl.news_list a.news_set:hover {
            text-decoration: underline;
        }

        .card-news-style dl.news_list a.news_set:last-child {
            border-bottom: none;
            padding: 15px 15px 0 30px;
        }

        .card-news-style dl.news_list a.news_set dt {
            font-size: 1.4rem;
            letter-spacing: 0.5px;
            font-weight: normal;
        }

        .card-news-style dl.news_list a.news_set dd {
            font-size: 1.6rem;
            padding: 5px 0 0 0;
            line-height: 1.6;
        }

            .card-news-style dl.news_list a.news_set dd::before {
                content: "▶︎ ";
                color: #1b6ec2;
            }

/* pagenation */
.pagenation_set .Pagination {
    display: flex;
    align-items: center;
    border: solid 2px #bde7ff;
    border-radius: 9999px;
    overflow: hidden;
    padding: 0;
    width: min-content;
    margin: 15px auto;
}

    .pagenation_set .Pagination > * + * {
        border-left: solid 2px #bde7ff;
    }

.pagenation_set .Pagination-Item {
    list-style-type: none;
}

.pagenation_set .Pagination-Item-Link {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    width: 45px;
    height: 45px;
    background: #fff;
    font-size: 1.4rem;
    color: #1b6ec2;
    font-weight: bold;
    transition: all 0.15s linear;
}

.pagenation_set .Pagination-Item-Link-Icon {
    width: 20px;
}

.pagenation_set .Pagination-Item-Link.isActive {
    background: #1b6ec2;
    color: #fff;
    pointer-events: none;
}

.pagenation_set .Pagination-Item-Link:not(.isActive):hover {
    background: #1b6ec2;
    color: #fff;
}

/**/
.btn {
    font-size: 1.4rem;
}

.close {
    font-size: 4rem;
    color: #fff;
    text-shadow: none;
}

/* modal */
.modal-content {
    border-radius: 2rem;
    border: none;
}

.modal-dialog {
    max-width: 700px;
    width: 94%;
    margin: 0 auto;
}

.modal-header {
    padding: 20px;
    background-color: #0071bc;
    border-top-left-radius: 2rem;
    border-top-right-radius: 2rem;
}

    .modal-header .close {
        padding: 0.5rem 1rem;
    }

    .modal-header h5.modal-title {
        font-size: 2rem;
        display: inline-block;
        font-weight: bold;
        color: #fff;
    }

    .modal-header h5.modal-news-title {
        font-weight: bold;
        vertical-align: middle;
        color: #fff;
    }

        .modal-header h5.modal-news-title .news_nodal-date {
            font-size: 1.4rem;
            padding-bottom: 10px;
            font-weight: normal;
            display: inline-block;
        }

.modal-body {
    padding: 10px 10px 20px;
    font-size: 1.6rem;
}

.modal-footer {
    padding: 20px 20px 0;
}

    .modal-footer .btn-secondary {
        border-radius: 1rem 1rem 0 0;
        font-size: 1.8rem;
        padding: 5px 30px;
        background-color: #444;
    }

        .modal-footer .btn-secondary:hover {
            background-color: #222;
        }

.card-flex {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: space-between;
}

    .card-flex a.btn_menu {
        width: 48%;
        height: auto;
        background-color: #fff;
        padding: 0 auto 0;
        text-decoration: none;
        color: #222;
        text-align: center;
        position: relative;
        border-radius: 10px;
        margin-bottom: 15px;
        box-shadow: 0 1.5rem 1rem -1rem hsla(200deg, 50%, 20%, 0.4);
    }

        .card-flex a.btn_menu:hover {
            background-color: #58a8dc;
        }

        .card-flex a.btn_menu p.icon {
            display: inline-block;
            padding-top: 15px;
            margin-bottom: 0;
        }

        .card-flex a.btn_menu p.menu_txt {
            position: relative;
            padding-bottom: 15px;
            font-size: 1.4rem;
            font-weight: bold;
            letter-spacing: 0.5px;
        }

            .card-flex a.btn_menu p.menu_txt:after {
                content: "▼";
                font-size: 1.1rem;
                position: absolute;
                bottom: 0;
                left: 0;
                right: 0;
            }

        .card-flex a.btn_menu img {
            max-width: 100px;
            width: 70%;
            height: auto;
        }

.btn-primary {
    color: #fff;
    background-color: #222222;
    border-color: #222222;
}

    .btn-primary:hover {
        background-color: #0071bc;
        border-color: #0071bc;
    }

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

/* nav */
.navbar {
    padding: 5px 0;
}

.navbar-nav {
    background-color: #080038;
}

    .navbar-nav .nav-item {
        border-bottom: 1px solid #59557a;
    }

        .navbar-nav .nav-item:last-child {
            border-bottom: none;
        }

        .navbar-nav .nav-item a.nav-link {
            padding: 13px 15px 10px;
            font-weight: normal;
            position: relative;
            font-size: 1.4rem;
        }

            .navbar-nav .nav-item a.nav-link:before {
                content: "";
                width: 15px;
                height: 15px;
                border: 0;
                border-top: solid 1px #fff;
                border-right: solid 1px #fff;
                position: absolute;
                top: 50%;
                right: 20px;
                margin-top: -4px;
                transform: rotate(45deg);
            }

            .navbar-nav .nav-item a.nav-link:hover {
                background-color: #000;
            }

            .navbar-nav .nav-item a.nav-link img {
                width: 50px;
                height: auto;
                margin-right: 10px;
            }

.navbar-brand {
    display: inline-block;
    padding: 5px 15px;
    margin-right: 1rem;
    font-size: 2rem;
    line-height: inherit;
    white-space: nowrap;
}

.navbar-toggler {
    padding: 0.25rem 5px;
    margin-right: 10px;
    font-size: 1.8rem;
    line-height: 1;
    background-color: transparent;
    border: none;
    border-radius: none;
}

.navbar-light .navbar-toggler-icon {
    background-image: url(../img/btn_nav.svg);
}

/**/
.container {
    max-width: 100%;
    padding-right: 0;
    padding-left: 0;
}

    .container .bg-light {
        background-color: #1b1464 !important;
    }

/*form*/
.form-control {
    height: calc(1.6rem + 25px);
    border-radius: 20px;
    font-size: 1.6rem;
    padding: 10px 1.4rem;
    border: none;
}

.btn-group-lg > .btn,
.btn-lg {
    font-size: 1.6rem;
    padding: 15px 1.4rem;
    font-weight: bold;
    border-radius: 1rem;
}

.form-flex {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: space-evenly;
    margin-bottom: 20px;
}

/* button */
.btn-info {
    background-color: #0071bc;
    color: #fff;
    border: none;
}

    .btn-info:hover {
        background-color: #222;
    }

.btn-info-camera {
    background-color: #222;
    color: #fff;
    border: none;
}

    .btn-info-camera:hover {
        background-color: #000;
        color: #fff;
    }

    .btn-info-camera .icon_camera {
        margin-top: -4px;
    }

.btn-camera {
    width: 180px;
    height: 50px;
    font-size: 1.8rem;
    border-radius: 30px;
    font-weight: bold;
}

    .btn-camera .icon_camera {
        margin-top: -5px;
    }

/* list */
.list-group-item {
    font-size: 1.8rem;
    position: relative;
    display: block;
    padding: 0 0 0 0;
    margin-bottom: 10px;
    background-color: #fff;
    border-radius: 5px;
}

    .list-group-item:first-child {
        border-top-left-radius: 5px;
        border-top-right-radius: 5px;
    }

    .list-group-item:last-child {
        margin-bottom: 0;
        border-bottom-right-radius: 5px;
        border-bottom-left-radius: 5px;
    }

    .list-group-item a {
        display: block;
        position: relative;
        width: 100%;
        height: 100%;
        text-decoration: none;
        border: 1px solid #0071bc;
        color: #0071bc;
        background-color: #fff;
        padding: 0.75rem 1.25rem;
        border-radius: 5px;
    }

        .list-group-item a:before {
            content: "";
            display: block;
            height: 1px;
            width: 10px;
            position: absolute;
            top: 17px;
            background-color: #0071bc;
            transform: rotate(45deg);
            right: 15px;
        }

        .list-group-item a:after {
            content: "";
            display: block;
            height: 1px;
            width: 10px;
            position: absolute;
            top: 24px;
            background-color: #0071bc;
            right: 15px;
            transform: rotate(-45deg);
        }

        .list-group-item a:hover {
            background-color: #0071bc;
            color: #fff;
            border-radius: 5px;
        }

            .list-group-item a:hover:after, .list-group-item a:hover:before {
                background-color: #fff;
            }

/* table */
.table-info {
    width: 100%;
    border-collapse: collapse;
}

    .table-info th,
    .table-info td {
        border: 1px solid #000;
        padding: 8px;
        text-align: left;
    }

    .table-info th {
        background-color: #1b1464;
        color: #FFF;
    }

    .table-info td {
        background-color: #FFF;
        color: #000;
        height: 2.5em;
    }

/* input */
input[type="month"] {
    /* ネイティブスタイルをリセット */
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: textfield;
    /* レイアウト */
    display: inline-block;
    width: 200px;
    height: 30px;
    padding: 0.5em 1.5em 0.5em 0.75em; /* アイコン分右側に余裕を */
    font-size: 2rem;
    line-height: 1.2;
    /* 色・枠 */
    background-color: #fff;
    color: #333;
    border: 1px solid #ccc;
    border-radius: 0.375rem;
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
    /* ポインタ */
    cursor: pointer;
}

/* select */
.selectbox-2 {
    position: relative;
}

    .selectbox-2::before,
    .selectbox-2::after {
        position: absolute;
        content: '';
        pointer-events: none;
    }

    .selectbox-2::before {
        right: 0;
        display: inline-block;
        width: 2.8em;
        height: 2.8em;
        border-radius: 0 3px 3px 0;
        background-color: #000000;
        content: '';
    }

    .selectbox-2:hover::before {
        background-color: #0071bc;
    }

    .selectbox-2::after {
        position: absolute;
        top: 50%;
        right: 1.4em;
        transform: translate(50%, -50%) rotate(45deg);
        width: 6px;
        height: 6px;
        border-bottom: 3px solid #fff;
        border-right: 3px solid #fff;
        content: '';
    }

    .selectbox-2 select {
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        min-width: 230px;
        height: 2.8em;
        padding: .4em 3.6em .4em .8em;
        border: 2px solid #000000;
        border-radius: 3px;
        color: #333333;
        font-size: 1em;
        cursor: pointer;
    }

        .selectbox-2 select:hover {
            border: 2px solid #0071bc;
        }

        .selectbox-2 select:focus {
            border: 2px solid #0071bc;
            outline: 1px solid #0071bc;
        }

.profile-item {
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
    max-width: 600px; /* ページ幅に合わせて調整 */
}

.item-label {
    flex: 0 0 120px; /* 固定幅ラベル */
    font-weight: bold;
}

.item-value {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 41px;
}

.text-view {
    display: inline-block;
}

.text-edit {
    display: none;
    width: 100%;
    max-width: 250px; /* 必要に応じて調整 */
    padding: 4px 8px;
    border: 1px solid #ccc;
    border-radius: 4px;
}

.item-actions {
    flex: 0 0 auto;
    display: flex;
    gap: 0.5rem;
}

.edit-btn, .save-btn, .cancel-btn {
    padding: 4px 12px;
    cursor: pointer;
    white-space: nowrap;
}

.save-btn, .cancel-btn {
    display: none;
}

/* Sticky footer styles
  -------------------------------------------------- */
.border-top {
    border-top: 1px solid #e5e5e5;
}

.border-bottom {
    border-bottom: 1px solid #e5e5e5;
}

.box-shadow {
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.05);
}

button.accept-policy {
    font-size: 1.4rem;
    line-height: inherit;
}

.code-input {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 20px;
}

    .code-input input {
        width: 50px;
        height: 50px;
        font-size: 24px;
        text-align: center;
        border: 1px solid #ccc;
        border-radius: 5px;
    }

        .code-input input:focus {
            border-color: #007bff;
            outline: none;
        }

/* text
  -------------------------------------------------- */
.h5,
h5 {
    font-size: 1.6rem;
}

.google-login-button {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #ffffff;
    color: #444;
    border: 1px solid #ddd;
    padding: 10px 15px;
    border-radius: 4px;
    text-decoration: none;
    font-size: 16px;
    font-family: Roboto, sans-serif;
    width: 100%;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    transition: box-shadow 0.3s;
}

    .google-login-button:hover {
        box-shadow: 0 2px 8px rgba(0,0,0,0.2);
    }

    .google-login-button img {
        width: 20px;
        height: 20px;
        margin-right: 12px;
    }

.apple-login-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 20px;
    background-color: black;
    color: white;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 500;
    text-decoration: none;
    height: 44px;
    width: 100%;
}

.validation-summary-errors ul {
    list-style-type: none; /* マーカーを消す */
    padding-left: 0; /* 左の余白も消す */
}


.btn_menu .overlay-text {
    position: absolute;
    top: 50%; /* 親要素の中央 */
    left: 50%;
    transform: translate(-50%, -50%); /* 中央に揃える */
    background: rgba(0, 0, 0, 0.6); /* 半透明の背景 */
    color: #fff;
    padding: 0.5em 1em;
    border-radius: 0.3em;
    font-size: 1.2em;
    font-weight: bold;
    pointer-events: none; /* ボタンをクリック可能なままにする */
    z-index: 10; /* 前面に出す */
}

/*-------------------------------
Media Queries style :: PC first
---------------------------------*/
@media screen and (min-width: 992px) {
    .container {
        max-width: 100%;
    }
}

@media screen and (min-width: 768px) {
    .container {
        max-width: 100%;
    }
}

@media screen and (min-width: 576px) {
    .container {
        max-width: 100%;
    }

    .modal-dialog {
        max-width: 800px;
    }
}
