@charset "utf-8";

/* 全体設定　ここから */
:root {
    /* 使用カラーのカスタムプロパティ　ここから */
    --black_normal: HSLA(225, 5%, 16%, 1);
    --blue: HSLA(202, 61%, 44%, 1);
    --blue_dark: HSLA(217, 88%, 14%, 1);
    --blue_font: HSLA(198, 86%, 58%, 1);
    --gray: HSLA(0, 0%, 76%, 1);
    --gray_dark: HSLA(0, 0%, 47%, 1);
    --gray_font: HSLA(0, 0%, 40%, 1);
    --gray_light: HSLA(240, 2%, 91%, 1);
    --gray_line: HSLA(0, 0%, 81%, 1);
    --red: HSLA(0, 100%, 50%, 1);
    --white_pure: HSLA(0, 100%, 100%, 1);
    
    --btn_gray: HSLA(0, 0%, 47%, 1);
    /*--font_family: 'Roboto','Arial','Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3','ヒラギノ角ゴシック','Hiragino Sans', 'メイリオ', Meiryo, sans-serif;*/
    --font_family: 'Roboto','Arial', 'メイリオ', Meiryo, sans-serif;
    --font_main: var(--gray_font);
    --shadow: HSLA(200, 5%, 5%, 0.6);
    --shadow_soft: RGBA(102, 102, 102, 0.05);
    --shadow_dark: RGBA(33, 33, 33, 0.7);
    --shadow_radiant: RGBA(255, 255, 255, 0.35);
    --shadow_white: HSLA(0, 0%, 100%, 0.95);
    --twinkle_max: HSLA(0, 0%, 100%, 0.6);
    --twinkle_min: HSLA(0, 0%, 100%, 0.2);
    --vail: HSLA(0, 0%, 50%, 0.67);
    --white_vail: RGBA(255, 255, 255, 0.65);
    --blue_dark_vail: HSLA(217, 88%, 18%, 0.7);
    --m_grad_blue: -moz-linear-gradient(-75deg, var(--blue_dark), var(--blue)); 
	--w_grad_blue: -webkit-linear-gradient(-75deg, var(--blue_dark), var(--blue)); 
	--grad_blue: linear-gradient(165deg, var(--blue_dark), var(--blue) 80%);
    --m_btn_grad_blue: -moz-linear-gradient(top, var(--blue_dark), var(--blue)); 
    --w_btn_grad_blue: -webkit-linear-gradient(top, var(--blue_dark), var(--blue)); 
    --btn_grad_blue: linear-gradient(to bottom, var(--blue_dark), var(--blue));

        /* トップ固定メニュー設定 */
    --top_bar_alpha: 0.7;
	--top_bar_height: 100px;
    --top_bar_blue: HSLA(202, 61%, 44%, var(--top_bar_alpha));
    --top_bar_blue_dark: HSLA(217, 88%, 14%, var(--top_bar_alpha));
    --m_top_bar_grad_blue: -moz-linear-gradient(left, var(--top_bar_blue_dark), var(--top_bar_blue)); 
    --w_top_bar_grad_blue: -webkit-linear-gradient(left, var(--top_bar_blue_dark), var(--top_bar_blue)); 
    --top_bar_grad_blue: linear-gradient(to right, var(--top_bar_blue_dark), var(--top_bar_blue)); 
    /* 使用カラーのカスタムプロパティ　ここまで */
}

    /* 設定をニュートラルにする　ここから */
html, body, form {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
}
	input, textarea {
		font-size: 16px;
        font-family: var(--font_family);
		margin: 0;
		padding: 2px 5px;
	}
	textarea {box-sizing: border-box;}
body {
    margin: 0px;
    padding: 0px;
    color: var(--font_main);
	font-family: var(--font_family);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.8;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}
div {box-sizing: border-box;}
p, ul, h1, h2, h3, h4, h5, h6, img {margin: 0; padding: 0;}
li {list-style-type: none;}
section {
	margin: 0 0 0 0;
	height: auto;
	width: 100%;
	box-sizing: border-box;
}
    /* 設定をニュートラルにする　ここまで */

    /* 共通クラス設定　ここから */
.column-nowrap {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-flow: column nowrap;
    flex-flow: column nowrap;
}
.column-wrap {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-flow: column wrap;
    flex-flow: column wrap;
}
.row-wrap {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-flow: row wrap;
    flex-flow: row wrap;
}
.row-wrap-rev {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-flow: row-reverse wrap;
    flex-flow: row-reverse wrap;
}
.row-nowrap {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-flow: row nowrap;
    flex-flow: row nowrap;
}
.row-nowrap-rev {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-flow: row-reverse nowrap;
    flex-flow: row-reverse; nowrap;
}
.jc-around {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-around;
    justify-content: space-around;
}
.jc-between {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
}
.jc-center {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
}
.ai-center {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
}
.center-middle {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
}
.around-middle {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-around;
    justify-content: space-around;
    -webkit-align-items: center;
    align-items: center;
}
.between-middle {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-align-items: center;
    align-items: center;
}

.disp-none {display: none;}
.no-wrap {white-space: nowrap;}
    /* 共通クラス設定　ここまで */


/* * {
    -webkit-touch-action: pan-x pan-y;
    touch-action: pan-x pan-y;
} */
html {
    height: 100%;
    /* overscroll-behavior: none; */ /* 主にバウンススクロール防止用 */
    width: 100%;
}
body {
	background-color: var(--white_pure);
	color: var(--font_main);
    height: 100%;
    overflow: hidden auto;
    overscroll-behavior: none;
    width: 100%;
}
img {
    height: auto;
    width: 100%;
}
section {
    position: relative;
    padding: 3em 0;
}
.anc {
    position: absolute;
    top: calc(0px - var(--top_bar_height));
    left: 0;
}

::placeholder {color: var(--gray_dark);}

.covered-frame {
    height: 100%;
    width: 100%;
}

.key-visual {
    position: relative;
    height: calc(100% - var(--top_bar_height));
    overflow: hidden hidden;
}
    .key-visual .slogan {
        position: absolute;
        top: 0;
        left: 0;
        display: -webkit-flex;
        display: flex;
        -webkit-justify-content: center;
        justify-content: center;
        -webkit-align-items: center;
        align-items: center;
        height: 100%;
        width: 30%;
        z-index: 2;
    }
    .slogan img {
        display: block;
        height: auto;
        filter: drop-shadow(1px 1px 3px var(--white_pure));
        width: 100px;
    }
    .picture {
        height: 100%;
        width: 100%;
    }
    .picture > div {
        background-image: url(../images/p_top01.png);
        background-position: top left;
        background-repeat: no-repeat;
        background-size: cover;
        height: 100%;
        margin-left: auto;
        width: 72%;
        /*max-width: 1062px;*/
    }
    @media screen and (max-width: 430px) {
        .key-visual .slogan {
            -webkit-justify-content: right;
            justify-content: right;
            -webkit-align-items: flex-start;
            align-items: flex-start;
            padding-top: 60px;
            width: 140px;
        }
        .slogan img {width: 80px;}
        .picture > div {
            background-image: url(../images/p_top02.png);
            width: 100%;
        }
    }

.narrow-width {
    margin: 0 auto;
    width: 60%;
    max-width: 600px;
}
.normal-width {
    margin: 0 auto;
    width: 70%;
    max-width: 900px;
}
    @media screen and (max-width: 1100px) {
        .normal-width {width: 80%;}
    }
    @media screen and (max-width: 1000px) {
        .normal-width {width: 90%;}
    }
.wide-width {
    margin: 0 auto;
    width: 80%;
    max-width: 1100px;
}
    @media screen and (max-width: 1400px) {
        .wide-width {width: 90%;}
    }
.sec-head {
    text-align: center;
}
    .sec-head img {
        height: 90px;
        margin-left: -3%;
        width: auto;
    }
    @media screen and (max-width: 430px) {
        .sec-head img {height: 76px;}
    }

.top-bar {
    position: fixed;
    top: 0;
    left: 0;
    background: var(--m_top_bar_grad_blue);
    background: var(--w_top_bar_grad_blue);
    background: var(--top_bar_grad_blue);
    color: var(--white_pure);
    font-size: 15px;
    height: var(--top_bar_height);
    letter-spacing: 1px;
    padding: 0 4%; /* 仮 */
    width: 100%;
    z-index: 100;
}
    .top-bar > .jc-between {
        position: relative;
        height: 100%;
    }
    .top-logo {
        padding-top: 0.5em;
        width: 210px;
    }
    .menu-item:not(:last-child) {
        overflow: hidden hidden;
        margin: 0 1em;
    }
    /* .menu-item:last-child {margin-left: 2em;} */
    .menu-item a {
        cursor: pointer;
        position: relative;      
    }
    .menu-item img {
        position: relative;
        top: 7px;
        left: 0;
        height: 44px;
        width: auto;
        z-index: 102;
    }
    .menu-item img.pc-hover {display: none;}
    .menu-item img.sp {display: none;}
    .menu-item a.btn:hover .pc {display: none;}
    .menu-item a.btn:hover .pc-hover {display: inline;}
    /*
    .menu-item a.btn::before {
        position: absolute;
        top: -23px;
        left: 0;
        content: "";
        display: inline-block;
        background-color: var(--white_pure);
        border-radius: 999px;
        height: 44px;
        width: 198px;
        z-index: 101;
    }
    .menu-item img:hover {opacity: 0.8;}
    */
    .menu-item:not(:last-child) a:hover {
        color: var(--blue_font);
    }
    .menu-item:not(:last-child) a::after {
        position: absolute;
        bottom: -3px;
        left: -100%;
        content: "";
        display: inline-block;
        background-color: var(--blue_font);
        height: 1px;
        transition: 0.3s;
        width: 100%;
    }
    .menu-item:not(:last-child) a.notBorder::after {
        content: none;
    }
    .menu-item:not(:last-child) a:hover::after {
        left: 0;
    }
    .menu-oc-frame {display: none;}

.top-bar-bg {
    background: var(--m_grad_blue);
    background: var(--w_grad_blue);
    background: var(--grad_blue);
    height: var(--top_bar_height);
    width: 100%;
}

/* about us ここから */
section.about-us .row-wrap {
    width: 100%;
}
section.about-us .item-frame {
    padding: 2em;
    text-align: center;
    width: calc(100% / 3);
    min-width: 280px;
}
section.about-us .item-frame .title {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    color: var(--blue_font);
    font-size: 1.5em;
    font-weight: bold;
    overflow-x: visible;
    padding-bottom: 0.2em;
    white-space: nowrap;
}
@media screen and (max-width: 934px) {
    section.about-us .item-frame .title span {
        margin-right: 5px;
    }
}
section.about-us .item-frame img {
    margin: 1em 0;
    width: 90%;
}
section.about-us .item-frame p:not([class]) {
    font-size: 0.9em;
    letter-spacing: 0.5px;
    line-height: 1.6;
    text-align: left;
}
@media screen and (max-width: 1200px) {section.about-us .item-frame p:not([class]) {padding: 0 1em;}}
@media screen and (max-width: 1000px) {section.about-us .item-frame p:not([class]) {padding: 0;}}
@media screen and (max-width: 430px) {
    section.about-us .item-frame {
        padding: 1em 0 1em 0.5em;
        width: 100%;
    }
    section.about-us .item-frame img {width: 223px;}
    section.about-us .item-frame p:not([class]) {line-height: 1.8;}
    section.about-us .item-frame .title span {margin-right: 0;}
}

/* about us ここまで */

/* service ここから */
section.service {
    position: relative;
    background-image: url(../images/p_bg01.png);
    background-position: top center;
    background-repeat: no-repeat;
    background-size: cover;
    min-height: 100%;
    width: 100%;
    --blank_margin: 70px;
}
section.service .normal-width {
    -webkit-align-items: flex-start;
    align-items: flex-start;
}
section.service .sec-head {
    padding: 2em 0;
}
section.service .item-frame {
    background-color: var(--white_vail);
    font-size: 15px;
    margin: 0 auto 4em;
    padding: 1em 0;
}
section.service .item-frame img {
    height: auto;
    margin: 1em 0;
    width: 40%;
    min-width: 300px;
}
section.service .item-frame .blank {
    height: 0;
    width: var(--blank_margin);
}
section.service .item-frame .contents {
    padding: 0.5em 0;
    width: calc(60% - var(--blank_margin) - 3em);
}
section.service .item-frame .title {
    color: var(--blue_font);
    font-size: 1.5em;
    font-weight: bold;
    padding-bottom: 0.5em;
}
section.service .item-frame li:before {
    content: '';
    display: inline-block;
    background-color: var(--gray_font);
    border-radius: 999px;
    height: 10px;
    margin-right: 5px;
    width: 10px;
}
@media screen and (max-width: 850px) {
    section.service .item-frame {width: calc(100% - 4em);}
    section.service .item-frame .blank {width: 0;}
    section.service .item-frame img,
    section.service .item-frame .contents {width: 65%;}
}
@media screen and (max-width: 700px) {
    section.service .item-frame img,
    section.service .item-frame .contents {width: 80%;}
}
@media screen and (max-width: 430px) {
    section.service {background-image: url(../images/p_bg02.png);}
    section.service .item-frame {
        --white_vail: RGBA(255, 255, 255, 0.35);
        font-size: 14px;
    }
    section.service .item-frame img {min-width: 0;}
    section.service .item-frame img,
    section.service .item-frame .contents {
        padding-top: 0;
        width: 90%;
    }
    section.service .normal-width {width: 92%;}
}
/* service ここまで */

/* company ここから */
section.company table {
    letter-spacing: 1px;
    margin-top: 1em;
    width: 100%;
}
section.company table th {
    border-bottom: 2px solid var(--blue_font);
    font-weight: normal;
    line-height: 1.4;
    padding: 1em 0.5em;
    text-align: left;
    width: 135px;
}
section.company table tr:first-child th {border-top: 2px solid var(--blue_font);}
section.company table td:first-of-type {min-width: 2em;}
section.company table td:last-child {
    border-bottom: 1px solid var(--gray_line);
    padding: 1em 0 1em 0.5em;
}
section.company table tr:first-child td:last-child {border-top: 1px solid var(--gray_line);}
@media screen and (max-width: 700px) {
    section.company table th {
        padding: 0.7em 0.5em;
        width: 90px;
    }
    section.company table td:first-of-type {min-width: 0.9em;}
    section.company table td:last-child {padding: 0.7em 0 0.7em 0.5em;}
}
@media screen and (max-width: 430px) {
    section.company table {font-size: 15px;}
    section.company table th {width: 85px;}
}

/* company ここまで */

/* access ここから */
section.access iframe {
    margin: 1em 0;
    width: 100%;
}
/* access ここまで */

/* inquiry ここから */
section.inquiry .item-frame {
    margin: 0.6em 0;
}
section.inquiry .item-frame span {
    letter-spacing: 1px;
}
section.inquiry input[type="text"],
section.inquiry textarea {
    border: 1px solid var(--gray_line);
    border-radius: 0.5em;
    font-family: var(--font_family);
    font-size: 16px;
    padding: 0.6em 0.5em;
}
section.inquiry textarea {
    min-height: 200px;
}
section.inquiry span.REQUIRE {position: relative;}
section.inquiry span.REQUIRE::after {
    position: relative;
    bottom: -1px;
    left: 0.5em;
    content: "★必須";
    color: var(--red);
    font-size: 0.9em;
    font-weight: bold;
}
section.inquiry .row-wrap .item-frame {
    width: calc(50% - 0.5em);
}
section.inquiry .row-wrap .item-frame:first-child {
    margin-right: 1em;
}
section.inquiry .jc-center {
    padding-top: 2em;
    padding-bottom: 1em;
}
section.inquiry .quasi-btn a {
    position: relative;
    background: var(--m_btn_grad_blue);
    background: var(--w_btn_grad_blue);
    background: var(--btn_grad_blue);
    border-radius: 999px;
    color: var(--white_pure);
    cursor: pointer;
    font-weight: bold;
    letter-spacing: 2px;
    padding: 0.8em 3.5em;
}
section.inquiry .quasi-btn a::after {
    position: relative;
    top: 0;
    left: 5px;
    content: '';
    display: inline-block;
    background-color: var(--white_pure);
    clip-path: polygon(0% 0%, 100% 0%, 100% 20%, 20% 20%, 20% 100%, 0% 100%);
    height: 10px;
    transform: rotate(135deg);
    width: 10px;
    z-index: 2;
}
@media screen and (max-width: 760px) {
    .narrow-width {width: 75%;}
    .NAVILION_pc {
        display: none;
    }
    .NAVILION_sp {
        display: flex;
    }
    
}
@media screen and (min-width: 760px) {
    .NAVILION_sp {
        display: none;
    }
    
}
@media screen and (max-width: 650px) {
    .narrow-width {width: 90%;}
}
@media screen and (max-width: 500px) {
    section.inquiry span {font-size: 0.9em;}
    section.inquiry .row-wrap .item-frame {width: 100%;}
    section.inquiry .row-wrap .item-frame:first-child {margin-right: 0;}
}
/* inquiry ここまで */

/* footer ここから */
footer {
    background: var(--m_grad_blue);
    background: var(--w_grad_blue);
    background: var(--grad_blue);
    color: var(--white_pure);
    font-size: 0.9em;
    padding: 2em 0;
    text-align: center;
}
footer img {
    height: 100%;
    width: auto;
}
footer p {display: inline;}
footer .logo-frame {
    height: 42px;
    margin-bottom: 1em;
    text-align: left;
}
footer .msg-frame {
    height: 60px;
}
footer .address {
    letter-spacing: 0.5px;
    line-height: 1.6;
    margin-top: 3em;
}
footer .tel-num {
    letter-spacing: 0.5px;
    line-height: 1.6;
    margin-bottom: 2em;
}
footer .blank {
    display: inline-block;
    min-width: 2em;
}
footer .footer-credit {
    font-size: 0.8em;
}
@media screen and (max-width: 430px) {
    footer .normal-width {width: 86%;}
    footer p {display: block;}
    footer .logo-frame {
        height: 36px;
        text-align: center;
    }
    footer .msg-frame {height: 48px;}
    footer .address,
    footer .tel-num {
        font-size: 14px;
        text-align: left;
    }
    footer .footer-credit {
        font-size: 0.7em;
    }
}
@media screen and (max-width: 370px) {
    footer .msg-frame {height: 40px;}
}
@media screen and (max-width: 325px) {
    footer .msg-frame {height: 36px;}
}

/* footer ここまで */

@media screen and (max-width: 1000px) {/* トップバー表示切り替え境目 */
    .top-bar {font-size: 16px;}
    .menu-item img.pc {display: none;}
    .menu-item a.btn:hover .pc-hover {display: none;}
    .menu-item img.sp {display: inline;}
    .top-bar .top-logo {
        -webkit-align-items: flex-end;
        align-items: flex-end;
        padding-bottom: 0.5em;
        width: 160px;
    }
    .menu-oc-frame {
        position: fixed;
        top: 48px;
        right: 4%;
        display: block;
        height: 44px;
        width: 44px;
    }
    .menu-oc-btn {
        position: relative;
        top: 24px;
        left: 10px;
        background-color: var(--white_pure);
        border-radius: 999px;
        height: 3px;
        transition: 0.2s 0.2s;
        width: 26px;
    }
    .menu-oc-btn::before,
    .menu-oc-btn::after {
        position: absolute;
        left: 0;
        content: '';
        display: inline-block;
        background-color: var(--white_pure);
        border-radius: 999px;
        height: 3px;
        transition: 0.3s 0.2s;
        width: 26px;
    }
    .menu-oc-btn::before {top: -7px;}
    .menu-oc-btn::after {top: 7px;}
    .menu-oc-frame.ACTIVE .menu-oc-btn {
        transition: 0.3s;
        background-color: transparent;
    }
    .menu-oc-frame.ACTIVE .menu-oc-btn::before,
    .menu-oc-frame.ACTIVE .menu-oc-btn::after {
        top: 0;
        transition: 0.3s;
    }
    .menu-oc-frame.ACTIVE .menu-oc-btn::before {
        transform: rotate(45deg);
    }
    .menu-oc-frame.ACTIVE .menu-oc-btn::after {
        transform: rotate(135deg);
    }
    .menu {
        position: fixed;
        top: var(--top_bar_height);
        right: 0;
        background-color: var(--blue_dark_vail);
        -webkit-flex-flow: column nowrap;
        flex-flow: column nowrap;
        opacity: 0;
        padding: 4em 0;
        transform: translateX(100%);
        width: 75vw;
        max-width: 325px;
        animation-name: menuSlideOut;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-fill-mode: forwards;
    }
    .menu.ACTIVE {
        animation-name: menuSlideIn;
        animation-duration: 0.5s;
        animation-timing-function: ease-out;
        animation-fill-mode: forwards;
    }
    @keyframes menuSlideIn {
        0% {transform: translateX(100%);}
        40% {transform: translateX(-10px);}
        50% {transform: translateX(-10px);}
        100% {transform: translateX(0);}
    }
    @keyframes menuSlideOut {
        0% {transform: translateX(0);}
        30% {transform: translateX(-30px);}
        100% {transform: translateX(100%);}
    }
    .menu-item:not(:last-child) {
        padding: 1.5em 0;
    }
    .menu-item:last-child {margin-left: 0;}
    .menu-item img.sp {
        position: relative;
        top: 7px;
        left: 0;
        height: 36px;
        width: auto;
    }
    .menu-item img.sp:hover {
        opacity: 0.85;
    }
    /*
    .menu-item a.btn::before {
        display: none;
    }
    */
}