:root {
    --round: 2rem;
    --main-color: #000080;
    --sub-color: #0b5ed7;
    --sub2-color: #d16f00;
    --sub3-color: #e6f0f9;
    --text-color-primary: #333;
    --bgcolor: #f2f2f2;
}

.table-primary {
    --bs-table-bg: #e6f0f9;
}

html {
    scroll-padding-top: 90px;
}

body,
h1,
h2,
h3,
h4,
h5,
p,
li,
th,
td,
div {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    line-height: 1.7;
}

h1,
h2,
h3,
h4,
h5 {
    font-weight: 500;
}

.en {
    font-family: "M PLUS 1p", sans-serif;
    font-weight: 700;
    font-style: normal;
}

body {
    overflow-x: hidden;
    color: #333;
    font-size: 16px;
}

@media (min-width: 1200px) {

    .container,
    .container-lg,
    .container-md,
    .container-sm,
    .container-xl {
        max-width: 1100px;
    }
}

h2 {
    font-size: 1.9rem;
}

h3 {
    font-size: 1.5rem;
}

a {
    transition: .5s;
    text-decoration: none;
}

.btn-outline-primary {
    color: #000080;
    border-color: #000080;
}

.btn-outline-primary:hover {
    color: #fff;
    background-color: #000080;
    border-color: #000080;
}

.btn-outline-primary a {
    color: #000080;
}

.btn-outline-primary a:hover {
    color: #fff;
}

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

.btn-group {
    flex-wrap: wrap;
}

.text-primary {
    color: var(--main-color) !important;
}

.bg-primary {
    background-color: var(--main-color) !important;
}

.bgdark {
    background: rgba(0, 0, 0, .5);
}

.bglight {
    background: rgba(255, 255, 255, .7);
}

img {
    max-width: 100%;
}


/*ヘッダー*/
header {
    background: #fff;
}

header h1 {
    line-height: 0;
    margin-bottom: 0;
}

.dropdown:hover>.dropdown-menu {
    display: block;
}

.navbar {
    padding: 15px;
}

.navbar .container-fluid {
    padding-right: 0;
    align-items: center;
}

.navbar-nav {
    justify-content: end;
    width: 100%;
    padding-right: 1rem;
    gap: 1rem;
}

.navbar p {
    margin-bottom: 0;
}

.nav-link {
    border-bottom: 3px solid transparent;
    transition: .5s;
    color: #333;
    padding-inline: 1rem;
    font-weight: 500;
}

.nav-link:hover {
    color: var(--main-color);
    border-color: var(--main-color);
}

.nav-link.current {
    border-color: var(--main-color);
    color: var(--main-color);
}

.dropdown-item {
    font-size: .9em;
    padding: .5em 1em;
}

.dropdown-item.current {
    background: #e9ecef;
}

.head-privacy a {
    font-size: .8rem;
    color: #333;
}

.head-contact {
    position: relative;
    width: 200px;
    height: 60px;
}

.head-contact a {
    display: block;
    background: var(--main-color);
    display: block;
    width: 100%;
    height: 100%;
}

.head-contact a:hover {
    background: var(--sub-color);
}

.head-contact a:hover p {
    color: #fff;
}

.head-contact p {
    color: #fff;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    text-align: center;
    font-weight: 700;
}

/*ティーザー*/
.hero {
    background: url(images/mvbg.jpg)no-repeat center right/cover;
    height: calc(100vh - 120px);
    position: relative;
}

.hero .teaser-txt {
    position: absolute;
    left: 5%;
    top: 50%;
    transform: translateY(-50%);
}

.hero .teaser-txt h2 {
    font-size: 48px;
    font-weight: 400;
}

.hero .teaser-txt p {
    font-size: 24px;
    letter-spacing: .1rem;
}

.hero-news {
    position: absolute;
    left: 30px;
    bottom: 0;
    background: rgba(255, 255, 255, .9);
    display: flex;
}

.hero-news.container {
    padding-inline: 0;
}

.hero-news .list-group-item {
    display: flex;
    align-items: center;
    padding: 0;
    gap: 0;
    background: transparent;
}

.hero-news .list-group-item h3 {
    background: var(--main-color);
    color: #fff;
    font-family: "M PLUS 1p", sans-serif;
    font-weight: 700;
    font-style: normal;
    margin-bottom: 0;
    font-size: 20px;
    padding: 1em;
}

.hero-news .list-group-item p {
    margin-bottom: 0;
    padding: 1rem;
}

/*見出し 左線*/
.mds-leftbar {
    display: flex;
    justify-content: start;
    align-items: center;
}

.mds-leftbar:before {
    content: "";
    width: 6px;
    height: 40px;
    background: var(--main-color);
    margin-right: .5em;
}

/*見出し　下線*/
.mds-underline {
    border-bottom: 1px solid var(--main-color);
    padding-bottom: .5em;
    color: var(--main-color);
}


/*ボタン*/
.btn {
    padding: 0;
    border-radius: 0;
}

.btn a {
    padding: .5rem;
    display: block;
}

.btn.linkbtn a {
    padding: 1rem 5rem;
    position: relative;
    border-radius: 0;
    color: #fff;
}

.btn.linkbtn a i {
    position: absolute;
    right: 1.2rem;
    top: 50%;
    transform: translateY(-50%);
    transition: .5s;
}

.btn.linkbtn a:hover i {
    right: 1rem;
}

/*文字装飾*/
.afterbar {
    display: flex;
    align-items: center;
    gap: 1rem;
    white-space: nowrap;
}

/*.afterbar:after {
    content: "";
    flex-grow: 1;
    background: #fff;
    width: 100%;
    height: 1px;
}*/

.afterbar:not(.text-white):after {
    background: var(--text-color-primary);
}


/*右側へ要素を広げる*/
/*.column-out-right {
    margin-right: calc(50% - 50vw);
}*/

/*左側へ要素を広げる*/
/*.column-out-left {
    margin-left: calc(50% - 50vw);
}*/

/*左右重ね記事*/
.fltcolumn {
    margin-bottom: 50px;
}

.fltimg {
    flex: unset;
    width: 80%;
    padding: 0;
}

.fltimg img {
    width: 100%;
    aspect-ratio: 5/2;
    object-fit: cover;
}

.flttxt {
    position: absolute;
    right: 0;
    bottom: -80px;
    background: #fff;
    flex: unset;
    width: 60%;
    padding: 2rem;
    z-index: 2;
}

.flttxt p {
    margin-bottom: .5rem;
}

.column-out-right .flttxt {
    right: unset;
    left: 0;
}

/*流れ*/
.steplist {
    border-top: 1px solid #fff;
    padding-top: 2rem;
}

.steplist>div {
    position: relative;
}

.steplist>div:not(:last-child):after {
    content: url(images/flow-icon.png);
    position: absolute;
    right: -30px;
    top: 50%;
    transform: translateY(-50%);
}

/*カード*/
.cardbox>div {
    border: 1px solid #fff;
    padding: 1.5rem;
}

/*バナーリンク*/
.bnrlink>div {
    margin: 0;
    padding: 0;
    overflow: hidden;
    background: #000;
}

.bnrlink div.col {
    border-bottom: 1px solid #fff
}

.bnrlink div.col:not(:nth-child(4)):not(:nth-child(8)) {
    border-right: 1px solid #fff;
}

.bnrlink a {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
}

.bnrlink a i {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    font-size: 1.5rem;
    color: #fff;
    line-height: 1;
}

.bnrlink img {
    transition: .5s;
    opacity: .5;
}

.bnrlink a:hover img {
    transform: scale(1.1);
    opacity: .8;
}

.bnrlink p {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    transform: translate(-50%, -50%);
    color: #fff;
    font-weight: 700;
    font-size: 1.3rem;
}

.ratio-1 img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
}

.ratio-4x3 img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
}

.ratio-16x5 img {
    width: 100%;
    aspect-ratio: 16/5;
    object-fit: cover;
}

/*リストカラム*/
.list-column {
    list-style: none;
    padding-left: 0;
    display: flex;
    flex-wrap: wrap;
}

.list-column li {
    background: #fff;
    padding: 1rem;
    border: 1px solid #f2f2f2;
}

/*リスト　チェックアイコン*/
.list-check {
    list-style: none;
    padding-left: 0;
}

.list-check li:before {
    content: "\f058";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: var(--main-color);
    margin-right: .5em;
}

/*定義リスト*/
dt {
    float: left;
    background: var(--sub3-color);
    padding: .5rem;
    width: 100px;
    text-align: center;
    font-weight: 400;
}

dd {
    margin-left: 120px;
    padding: .5rem;
}

/*数字リスト*/
ol>li {
    padding: .3rem;
}

/*アンカーリンク*/
.anchorlink {
    gap: 10px;
    justify-content: start;
}

.anchorlink>.btn {
    flex: unset;
    width: calc((100% / 4) - 10px);
}


/*CTA*/
.cta {
    background-image: linear-gradient(0deg, transparent 31px, #999 32px), linear-gradient(90deg, transparent 31px, #999 32px);
    background-size: 32px 32px;
    background-color: #000;
}

.cta p {
    color: #fff;
}

.callbtn a {
    color: #fff;
    font-size: 36px;
    text-decoration: none;
}

.mailbtn a {
    display: block;
    background: var(--main-color);
    color: #fff;
    padding: 2.5rem 0;
    font-size: 1.2rem;
    font-weight: 500;
}

.mailbtn a:hover {
    background: var(--sub-color);
    color: #fff
}

/*.callbtn a:before {    
    content: "\f879";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    margin-right:.5em;
}*/
.fs-small {
    font-size: .8em;
}

.fs-32 {
    font-size: 32px;
}

.greeting-lead p {
    margin-bottom: 8px;
}

.letter-spacing-wide {
    letter-spacing: .1em;
}

.border {
    position: relative;
}

.border p {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
}



/*FOOTER*/
.copyright {
    font-size: .7rem;
    margin-bottom: 0;
}

.fnav {
    display: flex;
    gap: 1rem;
    list-style: none;
    justify-content: end;
}

.fnav li a {
    color: #333 !important;
    font-weight: 500;
}

.fnav li a:hover {
    color: var(--main-color);
}


/*下層ページタイトル*/
.pagetitle {
    background: var(--main-color)
}

.pagetitle h1 {
    color: #fff;
    text-align: center;
    font-size: 36px;
    padding: 2em 0;
    margin-bottom: 0;
}

/*区切り背景*/
.bgc {
    background: var(--bgcolor);
}

.list-group-item {
    background: transparent;
}

/*数字リスト*/
.list-group-numbered>li::before {
    margin-right: .3rem;
}

/*テーブル*/
table th,
table td {
    padding: 1rem !important;
}

table th {
    font-weight: 700;
}

.table-layout-fixed {
    table-layout: fixed;
}

.table-sp-column .col-md-2 {
    width: 120px;
}

/*テーブル特性例*/
.table-example th,
.table-example td {
    padding: .5rem !important;
    font-size: .8em;
    text-align: center;
    border: 1px solid #ccc;
}

.table-example th {
    background: var(--sub-color);
    color: #fff;
}

.table-example .sub {
    background: var(--sub3-color);
}


/*********下層ページ個別***************/
/*環境への取り組み*/
.environmentbg {
    background: url(images/environmentbg.jpg)no-repeat center/cover;
}


/*==================================================

レスポンシブ対応 (768px以下)

==================================================*/

@media screen and (max-width:767px) {
    .navbar {
        padding: 0;
    }

    .navbar-nav {
        gap: 0;
    }

    .navbar-toggler {
        box-shadow: none;
    }

    .navbar-toggler-icon {
        font-size: 2rem;
        width: unset;
        height: unset;
    }

    .navbar-toggler:focus {
        box-shadow: none;
    }

    .dropdown:hover>.dropdown-menu {
        display: unset;
    }

    /*ヘッダー*/
    header h1 {
        padding-top: 10px;
    }

    header .navbar-collapse {
        margin-top: 30px;
        margin-bottom: 15px;
    }

    .navbar .container-fluid {
        padding-right: var(--bs-gutter-x, .75rem);
        padding-bottom: var(--bs-gutter-x, .75rem);
    }

    .head-contact {
        position: relative;
        width: 60%;
        height: 50px;
        margin-inline: auto;
    }

    .hero {
        background-position: center;
    }

    .hero-news {
        left: 0;
    }

    .hero-news .list-group-item {
        flex-direction: column;
        align-items: normal;
    }

    .hero-news .list-group-item p {
        padding: 14px;
    }

    .hero-news .list-group-item h3 {
        width: 100%;
        font-size: 14px;
    }

    .hero .teaser-txt {
        right: 5%;
        top: 45%;
    }

    .hero .teaser-txt h2 {
        font-size: 30px;
    }

    .hero .teaser-txt p {
        font-size: 18px;
    }

    h3 {
        font-size: 1.2rem;
    }

    .btn.linkbtn {
        width: 100%;
    }

    .btn.linkbtn a {
        padding: 1rem;
        display: block;
    }


    /*右側へ要素を広げる*/
    /*.column-out-right {
        margin-right: calc(var(--bs-gutter-x) * -.5);
    }*/

    /*左側へ要素を広げる*/
    /*.column-out-left {
        margin-left: calc(var(--bs-gutter-x) * -.5);
    }*/

    .container .row {
        margin-inline: auto;
    }

    /*左右重ね記事*/
    .fltcolumn {
        margin-bottom: 0;
    }

    .fltimg {
        width: 100%;
        padding: 0;
    }

    .flttxt {
        position: static;
        width: 100%;
        padding: 2rem 0 0;
    }

    /*イメージバナー*/
    .bnrlink div.col:not(:nth-child(4)):not(:nth-child(8)) {
        border-right: unset;
    }

    .bnrlink div.col:nth-child(odd) {
        border-right: 1px solid #fff !important;
    }

    .bnrlink p {
        font-size: .9rem;
    }

    /*流れ*/
    .steplist>div {
        position: relative;
    }

    .steplist>div:not(:last-child):after {
        content: url(images/flow-icon.png);
        position: absolute;
        right: unset;
        left: 50%;
        top: unset;
        bottom: -3rem;
        transform: translate(-50%, -50%) rotate(90deg);
    }

    .steplist>div {
        text-align: center;
    }

    /*下層ページタイトル*/
    .pagetitle h1 {
        font-size: 24px;
        padding: 1em 0;
    }

    /*CTA*/
    .callbtn a {
        font-size: 20px;
    }

    .mailbtn a {
        padding: 1.5rem 0;
        font-size: 1rem;
    }

    /*画像バナーリンク*/
    .bnrlink p {
        font-size: 1rem;
    }

    /*文字装飾*/
    .afterbar {
        white-space: unset;
        flex-direction: column;
        align-items: start;
    }

    /*定義リスト*/
    dt {
        padding: .2rem;
        width: 90px;
    }

    dd {
        margin-left: 100px;
        padding: .2rem;
    }

    /*アンカーリンク*/
    .anchorlink>.btn,
    .anchorlink2>.btn {
        width: calc((100% / 2) - 10px);
        flex: unset;
    }

    /*table-responsive*/
    .table-responsive table {
        min-width: 600px;
    }

    /*テーブル*/
    table th,
    table td {
        padding: .5rem !important;
    }

    .table-sp-column th,
    .table-sp-column td {
        display: block;
        width: 100%;
    }

    .table-sp-row th {
        width: 30%;
    }

    .table-sp-column .col-md-2 {
        width: 100%;
    }


    /*リストカラム*/
    .list-column li {
        padding: .5rem;
        width: 100%;
    }

    /*ハンバーガーメニュー開閉アイコン*/
    button[aria-expanded="true"] .bi-list::before {
        content: "\f659" !important;
    }

    /*googlemap*/
    /*.gmap {
        position: relative;
        width: 100%;
        height: 0;
        padding-top: 56.25%;
    }

    .gmap iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }*/
    .gmap iframe[src*="www.google.com/maps/embed"] {
        aspect-ratio: 4 / 3;
        width: 100%;
        height: auto;
    }










}

/**消さない**/