@charset "UTF-8";
/* ====================================================
　CSS 3@ Document 2019.05
==================================================== */
html { font-size: 10px; }

body { font-size: 1.4rem; }

@media screen and (min-width: 768px) { html { font-size: 10px; }
  body { font-size: 1.5rem; } }
@media screen and (min-width: 992px) { html { font-size: 10px; }
  body { font-size: 1.5rem; } }
@media screen and (min-width: 1200px) { html { font-size: 10px; }
  body { font-size: 1.5rem; } }
body { background: #fff; color: #233036; font-family: "Noto Sans JP", "游ゴシック Medium", "YuGothic Medium", "游ゴシック", YuGothic, "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif; font-weight: 500;}

input, button, textarea, *:before, *:after { font-family: "Noto Sans JP", "游ゴシック Medium", "YuGothic Medium", "游ゴシック", YuGothic, "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif;  font-weight: 500;}

p { margin: 0 0 1em; }
p:last-of-type { margin-bottom: 0; }

a { color: #0058C7; }
a:hover { color: #233036; text-decoration: none; }

.serif { font-family: "游明朝 Medium", "YuMincho Medium", "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HG明朝B", "ＭＳ Ｐ明朝", "MS PMincho", serif; }

.sans { font-family: "Noto Sans JP", "游ゴシック Medium", "YuGothic Medium", "游ゴシック", YuGothic, "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif; }

.alignL { text-align: left !important; }

.alignC { text-align: center !important; }

.alignR { text-align: right !important; }

.alignM, .alignE { text-align: justify !important; text-justify: inter-ideograph !important; word-wrap: break-word !important; }

.alignM { -moz-text-align-last: justify !important; text-align-last: justify !important; }

img { max-width: 100%; height: auto; vertical-align: bottom; }

img.alignright { float: right; margin: 0.5em 0 0.5em 1em; }

img.aligncenter { display: block; margin-left: auto; margin-right: auto; }

img.alignleft { float: left; margin: 0.5em 1em 0.5em 0; }

a[href="#"] { pointer-events: none !important; opacity: 0.3 !important; }

.red { color: #CC0000; }

@media print, screen and (min-width: 768px) {
    a[href^="tel:"] { pointer-events: none !important; }
}
/* =======================================================
　フレーム
========================================================== */
.contents {
    padding-right: 15px;
    padding-left: 15px;
}
@media print, screen and (min-width: 768px) {
    .contents {
        margin: 0 auto;
        width: 100%;
        max-width: 1460px;
    }
    .contents.narrow {
        max-width: 930px;
    }
    .contents.banner {
        max-width: 1002px;
    }
}
@media screen and (max-width: 767px) {
    .contents {
        width: 100%;
    }
    #ContentsBase{
        padding-top: 65px;
    }
}

/* ====================================================
　ヘッダ
==================================================== */
@media print, screen and (min-width: 768px) {
    .header {
        height: 120px;
        padding-top: 26px;
    }
    .header .contents{
        display: flex;
    }
    .header .leftBox {display: flex;}
    .header .logo {padding-top: 12px;}
    .header .copy {
        margin-left: 30px;
        padding-top: 16px;
        color: #233036;
        font-size: 1.3rem;
    }
    .header .headerMenu {
        margin-left: auto;
    }
    .header .headerMenu .top ul,
    .header .headerMenu .gnav ul {display: flex; justify-content: flex-end;}
    .header .headerMenu .top li + li {margin-left: 40px;}
    .header .headerMenu li a {
        color: #233036;
        text-decoration: none;
    }
    .header .headerMenu .top li a {font-size: 1.2rem;}
    .header .headerMenu .top li a:hover {opacity: 0.6;}
    .header .headerMenu .gnav  {margin-top: 30px; font-size: 1.6rem;}
    .header .headerMenu .gnav li a {
        font-size: 1em;
        font-weight: bold;
    }
    .header .headerMenu .gnav li + li {margin-left: 2.5em;}
    .header .headerMenu .gnav li {
        position: relative;
        padding-bottom: 28px;
    }
    .pageIndex .header .headerMenu .gnav li.home a,
    .header .headerMenu .gnav li a:hover {
        color: #0058C7;
    }
    .header .headerMenu .gnav li.active a {
        color: #0058C7;
    }
    .pageIndex .header .headerMenu .gnav li.menu01 a:after,
    .pageAbout .header .headerMenu .gnav li.menu02 a:after,
    .pageDoboku1 .header .headerMenu .gnav li.menu03 a:after,
    .pageDoboku2 .header .headerMenu .gnav li.menu04 a:after,
    .pageContact .header .headerMenu .gnav li.menu05 a:after,
    .header .headerMenu .gnav li a:hover:after {
        content: '';
        position: absolute;
        bottom: 4px;
        left: 0;
        display: block;
        width: 100%;
        height: 3px;
        background: #0058C7;
    }


}
@media screen and (max-width: 767px) {
    .header .contents {padding-right: 65px;}
    .header .logo {
        width: 205px;
        padding-top: 17px;
    }
    .header .logo img {width: 100%; height: auto;}
    .header .copy,
    .header .headerMenu {display: none;}
}

@media print, screen and (max-width: 1350px) and (min-width: 767px) {
    .header .leftBox {display: block;}
    .header .copy {margin-left: 0;}
}
@media print, screen and (max-width: 1100px) and (min-width: 931px) {
    .header .headerMenu .gnav {font-size: 1.4rem;}
    .header .headerMenu .gnav li + li {margin-left: 20px;}
}
@media print, screen and (max-width: 930px) and (min-width: 767px) {
    .header .copy {font-size: 1.1rem;}
    .header .headerMenu .gnav {font-size: 1.3rem;}
    .header .headerMenu .gnav li + li {margin-left: 9px;}
}
@media print, screen and (max-width: 860px) and (min-width: 767px) {
    .header .leftBox {width: 200px;}
}



/* ====================================================
　フッター
==================================================== */
.footer {background: #0058C7;}
.footer .copyright {
    display: block;
    color: #fff;
    font-size: 1.2rem;
}
.footer .footerMenu li a {
    color: #fff;
    text-decoration: none;
    font-size: 1.3rem;
}
.footer .footerMenu .nolink > a {
    pointer-events: none;
    cursor: default;
}
.footer .footerMenu  .parentLink .sub-menu li a:before {
    content: "-";
    margin-right: 0.25em;
    padding-left: 0.25em;
}

@media print, screen and (min-width: 768px) {
    .footer  {
        padding-top: 52px;
        padding-bottom: 50px;
		margin-top: 60px;
    }
    .footer .contents {
        display: flex;
        flex-direction: row-reverse;
        justify-content: space-between;
		max-width: 1200px;
    }
    .footer .contents:after {display: none;}
    .footer .copyright {width: 180px;}

    .footer .footerMenu ul + ul {margin-left: 3.5em;}
    .footer .footerMenu li + li {margin-top: 0.5em;}
    .footer .footerMenu li > ul {padding-top: 0.5em;}
    .footer .footerMenu .menuList {
        display: flex;
        justify-content: end;
    }

    .footer .footerMenu {width: calc(100% - 180px);}
    .footer .footerMenu li a:hover {opacity: 0.6;}
}
@media screen and (max-width: 767px) {
    .footer .copyright {
        padding-top: 130px;
        padding-bottom: 30px;
        text-align: center;
    }
    .footer .footerMenu {
        padding: 0 15px;
    }
    .footer .footerMenu {padding-top: 40px;}
    .footer .footerMenu li a {display: block;}
    .footer .footerMenu > ul > li {border-bottom: 1px solid #80ACE3;}
    .footer .footerMenu > ul > li a {
        padding: 20px 0 21px;
        font-size: 1.5rem;
    }
    .footer .footerMenu > ul > li > ul {padding-bottom: 29px;}
    .footer .footerMenu li li + li {margin-top: 12px;}
    .footer .footerMenu li li a {
        position: relative;
        padding: 0 0 0 30px;
        font-size: 1.4rem;
    }
    .footer .footerMenu li li a:before {
        content: "";
        position: absolute;
        left: 13px;
        top: 50%;
        transform: translateY(-50%);
        display: block;
        width: 9px;
        height: 3px;
        background: #fff;
    }
}

@media print, screen and (max-width: 910px) and (min-width: 800px) {
    .footer .footerMenu li + li {margin-left: 20px;}
}
@media print, screen and (max-width: 799px) and (min-width: 767px) {
    .footer .footerMenu li + li {margin-left: 10px;}
}
