@charset "UTF-8";
/*--------------------------------------------------------------------------*
 *  
 *  style.css
 *  
 *  共通スタイル用
 *
 *--------------------------------------------------------------------------*/

@keyframes bggradient {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

.scroll_text {
    padding: 5px 0;
    opacity: 0; /* 透明にする */
    transform: translateY(30px); /* 下から移動するように設定 */
    transition: opacity 1.075s ease, transform 1.075s ease;
    /* transition: all 1.075s cubic-bezier(0, 0.87, 0.45, 1); */
}
.scroll_text.scrollin {
    opacity: 1; /* 表示 */
    transform: translateY(0); /* 元の位置に移動 */
}

/* =========================================================
 * reset　　　    /*リセット
========================================================= */
blockquote,
body,
div,
dl,
dt,
dd,
fieldset,
form,
h1,
h2,
h3,
h4,
h5,
h6,
input,
li,
ol,
p,
pre,
select,
span,
textarea,
td,
th,
ul,
figure,
figcaption {
    margin: 0px;
    padding: 0px;
}
fieldset,
img {
    border: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
    font-size: 100%;
    font-weight: normal;
}
ol {
    list-style-type: none;
}
ul {
    list-style-type: none;
}
ul li {
    list-style-type: none;
}
ul li img {
    line-height: 0;
    font-size: 0;
    vertical-align: top;
}
img {
    border: none;
    vertical-align: bottom;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}
caption,
th {
    text-align: left;
}
iframe {
    border: none;
}
a:focus {
    outline: none;
}
address,
caption,
cite,
code,
dfn,
em,
strong,
th,
var {
    font-style: normal;
    font-weight: normal;
}
/* IE */
* html ul li dl,
* html ol li dl {
    display: inline;
}
*:first-child+html ul li dl,
*:first-child+html ol li dl {
    display: inline;
}

/* =========================================================
 * default settings      　   /*デフォルトセッティング
========================================================= */
html {
    overflow: auto;
}
* {
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    word-break: break-all;
    font-family: "Noto Sans JP", "Noto Sans", "Shippori Mincho B1", "Noto Serif", sans-serif, "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "Hiragino Sans", Meiryo, serif;
    font-weight: normal;
}
body {
    /* overflow: hidden; */
    -webkit-text-size-adjust: 100%;
    font: inherit;
    font-size: 1vw;
    line-height: 1.4;
    color: #767676;
    background: #fff;
    height: 100vh;
    height: -webkit-fill-available;
}
img {
    max-width: 100%;
}
body.fixed {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    overflow: hidden;
}
a:focus {
    outline: none;
}
a {
    width: 100%;
    height: 100%;
    display: block;
    text-decoration: none;
    -webkit-transition: opacity 0.3s ease-out;
    -moz-transition: opacity 0.3s ease-out;
    -ms-transition: opacity 0.3s ease-out;
    transition: opacity 0.3s ease-out;
}
a:hover {
    opacity: 0.7;
    -webkit-opacity: .7;
    -moz-opacity: .7;
    filter: alpha(opacity=70);
    -ms-filter: "alpha(opacity=70)";
}
/* 背景の設定 */
.background {
    position: fixed; /* 背景を固定 */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: 
        linear-gradient(to right, #ebebeb 1px, transparent 1px),
        linear-gradient(to bottom, #ebebeb 1px, transparent 1px),
        linear-gradient(to right, #e9e7e7 2px, transparent 2px),
        linear-gradient(to bottom, #e9e7e7 2px, transparent 2px);
    background-size: 30px 30px, 30px 30px, 60px 60px, 60px 60px;
    background-position: 0 0, 0 0, 0 0, 0 0;
    z-index: -1;
}
/* =========================================================
 * font
========================================================= */
/*Noto Sans JP*/
.font_notosans_jp {
    font-family: "Noto Sans JP", serif !important;
}
/*Noto Sans*/
.font_notosans {
    font-family: "Noto Sans", serif !important;
}
/*Shippori Mincho B1*/
.font_shippori_mincho {
    font-family: "Shippori Mincho B1", serif !important;
}
/*Noto Serif*/
.font_notoserif {
    font-family: "Noto Serif", serif !important;
}

/* =========================================================
 * color
========================================================= */
.color_white {
    color: #ffffff;
}
.color_blue {
    color: #2F65A2;
}
.color_green {
    color: #65D4C9;
}
.color_orange {
    color: #E9572D;
}
.color_gray {
    color: #707070;
}

/* =========================================================
 * back grand color
========================================================= */
.bg_white {
    background-color: #ffffff;
}
.bg_blue {
    background-color: #2F65A2;
}
.bg_green {
    background-color: #65D4C9;
}
.bg_orange {
    background-color: #E9572D;
}
.bg_gray {
    background-color: #707070;
}

/* =========================================================
 * bottun　　　    /*ボタン
========================================================= */
.btn_border a {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    padding: 10px 40px;
}
.btn_border a:before,
.btn_border a:after {
    content: '';
    display: block;
    position: absolute;
    transition: all .3s ease-out;
    left: 0;
    top: 0;
}
.btn_border a:before {
    width: 100%;
    height: 100%;
    background-color: #fff;
    z-index: 1;
}
.btn_border a:after {
    width: 0;
    height: 100%;
    background-color: #fff;
    opacity: 0;
    z-index: 2;
}
.btn_border a span {
    font-family: "Noto Sans", serif;
    letter-spacing: 0.025em;
    line-height: 1.0;
    font-size: 1.7rem;
    position: relative;
    padding-right: 28px;
    z-index: 3;
}
.btn_border a span:before,
.btn_border a span:after {
    content: '';
    display: block;
    position: absolute;
    transition: all .3s ease-out;
    right: 0;
    top: 50%;
    z-index: 3;
}
.btn_border a span:before {
    width: 20px;
    height: 1px;
}
.btn_border a span:after {
    width: 1px;
    height: 6px;
    transform: rotate(-55deg);
    margin: -4px 2px 0 0;
}
.btn_border a:hover {
    opacity: 1;
    border: none;
    padding: 12px 42px;
}
.btn_border a:hover:after {
    width: 100%;
    opacity: 1;
}
.btn_border a:hover span {
    color: #fff;
}
.btn_border a:hover span:before,
.btn_border a:hover span:after {
    background-color: #fff;
    right: -10px;
}
/**btn_gray*/
.btn_gray a {
    border: 2px solid #767676;
}
.btn_gray a span {
    color: #767676;
}
.btn_gray a span:before,
.btn_gray a span:after {
    background-color: #767676;
}
.btn_gray a:hover:after {
    background-color: #767676;
}
/**btn_green*/
.btn_green a {
    border: 2px solid #65D4C9;
}
.btn_green a span {
    color: #65D4C9;
}
.btn_green a span:before,
.btn_green a span:after {
    background-color: #65D4C9;
}
.btn_green a:hover:after {
    background-color: #65D4C9;
}
/**btn_blue*/
.btn_blue a {
    border: 2px solid #2F65A2;
}
.btn_blue a span {
    color: #2F65A2;
}
.btn_blue a span:before,
.btn_blue a span:after {
    background-color: #2F65A2;
}
.btn_blue a:hover:after {
    background-color: #2F65A2;
}

@media (max-width: 767.98px) {
    .btn_border a {
        border-radius: 999px;
        overflow: hidden;
        border: 2px solid #ffffff;
        transition: all .3s ease-out;
    }
    .btn_border a:before,
    .btn_border a:after {
        transition: none;
    }
    .btn_border a:before {
        transition: all .3s ease-out;
    }
    .btn_border a span {
        transition: all .3s ease-out;
    }
    .btn_border a span:before,
    .btn_border a span:after {
        content: '';
        display: none;
    }
    .btn_border a:hover span:before,
    .btn_border a:hover span:after {
        display: none;
    }
    .btn_border a:before,
    .btn_border a:after {
        border-radius: 999px;
    }
    .btn_border a span {
        padding-right: 0;
    }
    .btn_border a span {
        font-size: 1.5rem;
        padding-right: 0;
    }
    .btn_border a span:before,
    .btn_border a span:after {
        display: none;
        transition: none;
    }
    .btn_border a span:before {
        width: 0;
        height: 0;
    }
    .btn_border a span:after {
        width: 0;
        height: 0;
        transform: none;
        margin: 0;
    }
    .btn_border a:hover {
        padding: 10px 40px;
    }
    .btn_border a:hover span:before,
    .btn_border a:hover span:after {
        right: 0;
    }
    /**btn_gray*/
    .btn_gray a:before {
        background-color: #767676;
    }
    .btn_gray a span {
        color: #ffffff;
    }
    .btn_gray a:hover span {
        color: #767676;
    }
    .btn_gray a:hover:before,
    .btn_gray a:hover:after {
        background-color: #ffffff;
    }
    .btn_gray a:hover {
        border: 2px solid #767676;
    }
    /**btn_green*/
    .btn_green a:before {
        background-color: #65D4C9;
    }
    .btn_green a span {
        color: #ffffff;
    }
    .btn_green a:hover span {
        color: #65D4C9;
    }
    .btn_green a:hover:before,
    .btn_green a:hover:after {
        background-color: #ffffff;
    }
    .btn_green a:hover {
        border: 2px solid #65D4C9;
    }
    /**btn_blue*/
    .btn_blue a:before {
        background-color: #2F65A2;
    }
    .btn_blue a span {
        color: #ffffff;
    }
    .btn_blue a:hover span {
        color: #2F65A2;
    }
    .btn_blue a:hover:before,
    .btn_blue a:hover:after {
        background-color: #ffffff;
    }
    .btn_blue a:hover {
        border: 2px solid #2F65A2;
    }
}

/* =========================================================
 * 改行
========================================================= */
.pc {
    display: block;
}
.sp {
    display: none;
}
@media (max-width: 767.98px) {
    .pc {
        display: none;
    }
    .sp {
        display: block;
    }
}

/* =========================================================
 * header navbar
========================================================= */
.navbar {
    padding: 0;
    margin: 0;
}
.navbar-brand{
    width: 150px;
}
.navbar-expand-md .navbar-nav .nav-link {
    padding-right: 0;
    padding-left: 0;
}
.head_link .nav-link {
    color: #2F65A2;
    font-family: "Noto Sans", serif;
    font-size: 1.2rem;
    position: relative;
    display: inline-block;
}
.head_link .nav-link:before {
    content: '';
    display: block;
    position: absolute;
    background-color: #2F65A2;
    width: 100%;
    height: 1px;
    left: 0;
    bottom: 5px;
    margin: auto;
    transform-origin: right top;
    transform: scale(0, 1);
    transition: transform .3s;
}
.head_link .nav-link:hover {
    opacity: 0.8;
}
.head_link .nav-link:hover:before {
    transform-origin: left top;
    transform: scale(1, 1);
}
.head_btn {
    width: 130px;
}
.head_btn .nav-link {
    font-family: "Noto Sans", serif;
    border-radius: 999px;
    font-size: 1.2rem;
    color: #ffffff;
    background-color: #65D4C9;
    text-align: center;
    border: #65D4C9 solid 1px;
    transition: all .375s ease-out;
}
.head_btn .nav-link:hover {
    background-color: #ffffff;
    color: #65D4C9;
    border: #65D4C9 solid 1px;
    opacity: 1;
}
.head_link .nav-link span {
    display: none;
}
.head_btn .nav-link span {
    display: none;
}
.head_privacy {
    display: none;
}
.nav_btn {
    display: none;
}
.header {
    position: fixed;
    width: 100%;
    height: 65px;
    background-color: #fff;
    top: 0;
    left: 0;
    z-index: 101;
    transition: all .375s ease-out;
    box-shadow: 0px 5px 5px -5px #707070;
}
/* .home .header {
    top: -65px;
}
.home .header.active {
    top: 0;
} */
@media (max-width: 767.98px) {
    .navbar {
        height: 100%;
    }
    .navbar .container-fluid {
        background-color: #ffffff;
    }
    .head_link .nav-link {
        font-size: 2.0rem;
    }
    .nav-link {
        padding: 5px 0;
    }
    .head_link .nav-link {
        position: static;
        font-family: "Shippori Mincho B1", serif;
    }
    .head_link .nav-link:before {
        display: none;
    }
    .head_btn .nav-link {
        font-size: 2.0rem;
        border-radius: 0;
        background-color: #ffffff;
        border: none;
        transition: none;
        font-family: "Shippori Mincho B1", serif;
        color: #2F65A2;
        text-align: start;
    }
    .head_btn .nav-link:hover {
        background-color: #ffffff;
        color: #2F65A2;
        border: none;
        opacity: 0.8;
    }
    .head_link .nav-link span {
        display: inline;
        font-size: 0.9rem;
        font-family: "Shippori Mincho B1", serif;
        margin-left: 5px;
    }
    .head_btn .nav-link span {
        display: inline;
        font-size: 0.9rem;
        font-family: "Shippori Mincho B1", serif;
        margin-left: 5px;
    }    
    .head_btn {
        width: 100%;
        padding: 0;
    }
    .head_privacy {
        display: block;
    }
    .head_privacy .nav-link {
        font-family: "Shippori Mincho B1", serif;
        font-size: 1.0rem;
        color: #2F65A2;
        margin: 20px 0 30px 0;
    }
    .nav_btn {
        display: block;
        border: none;
        outline: none;
        position: relative;
        z-index: 1051;
        background-color: #ffffff;
        border: #767676 solid 1px;
        border-radius: 5px;
    }
    .nav_btn span {
        display: block;
        width: 40px;
        height: 2px;
        background: #767676;
        margin: 10px auto;
        transition: all 0.3s ease-in-out;
    }
    /* .nav_btn.active span:nth-child(1) {
        transform: rotate(45deg) translate(10px, 6px);
    }
    .nav_btn.active span:nth-child(2) {
        opacity: 0;
    }
    .nav_btn.active span:nth-child(3) {
        transform: rotate(-45deg) translate(10px, -7px);
    } */
    .nav_btn.active {
        background-color: #767676;
    }
    .nav_btn.active span {
        background: #ffffff;
    }
    .navbar-collapse {
        transition: all 0.5s ease-in-out;
    }
}

/* =========================================================
 * footer
========================================================= */
.footer {
    height: 358px;
}
.sns li {
    margin: 0 10px;
}
.sns a  {
    width: 60px;
}
.footer_link li a {
    color: #ffffff;
    font-family: "Noto Sans JP", serif;
    font-size: 1.0rem;
}
.copy_rights {
    color: #ffffff;
    font-family: "Noto Sans JP", serif;
    font-size: 0.8rem;
}
@media (max-width: 767.98px) {
    .footer {
        height: 280px;
    }
}
/* =========================================================
 * main
========================================================= */
.common {
    margin-top: 65px;
}

/* =========================================================
 * container
========================================================= */
.container_head_text {
    display: flex;
}
.container_head_text h1,
.container_head_text p,
.container_head_text span:first-child {
    font-size: 3.2rem;
    margin-right: 10px;
}
.container_head_text h2,
.container_head_text span:last-child {
    font-size: 1.2rem;
    /* margin-bottom: 10px; */
}
.container_head_text p {
    margin-right: 0;
    /* margin-bottom: 10px; */
}

/* 幅が 575px以下 */
@media (max-width: 575.98px) {
}

/* 768px以下 */
@media (max-width: 767.98px) {
    .container_head_text h1,
    .container_head_text p,
    .container_head_text span:first-child {
        font-size: 2.1rem;
        margin-right: 10px;
    }
    .container_head_text h2,
    .container_head_text span:last-child {
        font-size: 0.8rem;
        /* margin-bottom: 9px; */
    }
    .container_head_text p {
        margin-right: 0;
        /* margin-bottom: 7px; */
    }
}

/* 幅が 992px以下 */
@media (max-width: 991.98px) {
}

/* 幅が 1400px以下 */
@media (max-width: 1399.98px) {
}

/* 幅が 576px以上 768px以下 */
@media (min-width: 576px) and (max-width:767.98px) {
}

/* 幅が 768px以上 992px以下 */
@media (min-width: 768px) and (max-width:991.98px) {
    .container_head_text h1,
    .container_head_text p,
    .container_head_text span:first-child {
        font-size: 3.0rem;
        margin-right: 10px;
    }
    .container_head_text h2,
    .container_head_text span:last-child {
        font-size: 1.1rem;
        /* margin-bottom: 10px; */
    }
    .container_head_text p {
        margin-right: 0;
        /* margin-bottom: 10px; */
    }
}

/* 幅が 992px以上 1400px以下であれば */
@media (min-width: 992px) and (max-width:1399.98px) {
}

/* =========================================================
 * card
========================================================= */
.card {
    background: #ffffff;
    border-radius: 0;
    box-shadow: 10px 10px 15px -10px #707070;
    width: 76%;
    position: relative;
}
.card_content {
    line-height: 2.0;
    font-size: 1.0rem;
}
.card1 {
    left: 8%;
    padding: 60px 60px 60px 60px;
}
.card2 {
    right: 8%;
    padding: 60px 60px 60px 60px;
}
.card3 {
    left: 8%;
    padding: 60px 60px 60px 60px;
}
.card4 {
    right: 8%;
    padding: 60px 60px 60px 60px;
}
.card5 {
    left: 8%;
    padding: 60px 60px 60px 60px;
}
.card6 {
    right: 8%;
    padding: 60px 60px 60px 60px;
}
.card7 {
    left: 8%;
    padding: 60px 60px 60px 60px;
}
/* 768px以下 */
@media (max-width: 767.98px) {
    .card1 {
        padding: 30px 20px 30px 20px;
    }
    .card2 {
        padding: 30px 20px 30px 20px;
    }
    .card3 {
        padding: 30px 20px 30px 20px;
    }
    .card4 {
        padding: 30px 20px 30px 20px;
    }
    .card5 {
        padding: 30px 20px 30px 20px;
    }
    .card6 {
        padding: 30px 20px 30px 20px;
    }
    .card7 {
        padding: 30px 20px 30px 20px;
    }
    .card_content {
        line-height: 1.6;
        font-size: 0.9rem;
    }
}

/* 幅が 992px以下 */
@media (max-width: 991.98px) {
    .card {
        width: 85%;
    }
    .card1 {
        left: 3%;
    }
    .card2 {
        right: 3%;
    }
    .card3 {
        left: 3%;
    }
    .card4 {
        right: 3%;
    }
    .card5 {
        left: 3%;
    }
    .card6 {
        right: 3%;
    }
    .card7 {
        left: 3%;
    }
}

/* 幅が 768px以上 992px以下 */
@media (min-width: 768px) and (max-width:991.98px) {
    .card1 {
        padding: 40px 40px 40px 40px;
    }
    .card2 {
        padding: 40px 40px 40px 40px;
    }
    .card3 {
        padding: 40px 40px 40px 40px;
    }
    .card4 {
        padding: 40px 40px 40px 40px;
    }
    .card5 {
        padding: 40px 40px 40px 40px;
    }
    .card6 {
        padding: 40px 40px 40px 40px;
    }
    .card7 {
        padding: 40px 40px 40px 40px;
    }
}

/* =========================================================
 * flex
========================================================= */
.flex1 {
    justify-content: flex-start;
    padding-bottom: 60px;
}
.flex2 {
    justify-content: flex-end;
    padding-bottom: 60px;
}
.flex3 {
    justify-content: flex-start;
    padding-bottom: 60px;
}
.flex4 {
    justify-content: flex-end;
    padding-bottom: 60px;
}
.flex5 {
    justify-content: flex-start;
    padding-bottom: 60px;
}
.flex6 {
    justify-content: flex-end;
    padding-bottom: 60px;
}
.flex7 {
    justify-content: flex-start;
    padding-bottom: 60px;
}
