@charset "utf-8";

.head_row {
    display: flex;
    justify-content: space-between;
    padding:10px 15px;
}

/* コンテンツフッターナビ */

#cf_navi {
    padding:50px 0;
    border-top: 1px solid #b3b3b3;
    border-bottom: 1px solid #b3b3b3;
}

.cf_navi_wrapper {
    display:flex;
    justify-content: space-between;
}

.cf_title {
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 1.2rem;
    flex-basis:20%;
}

.cf_list {
    display: flex;
    flex-basis:78%;
    list-style: none;
    margin: 0;
}

.cf_list > li {
    margin-right: 30px;
}

.cf_list > li:last-child {
    margin-right: 0;
}

.cf_list > li > ul {
    font-size: 0.9rem;
    list-style: none;
    margin: 10px 0 0;
}

.cf_list > li > ul > li,
.cf_list > li > ul > li > ul > li {
    display: block;
    position: relative;
    padding-left: 15px;
}

.cf_list > li > ul > li:last-child {
    margin-bottom: 0;
}

.cf_list > li > ul > li:before,
.cf_list > li > ul > li > ul > li:before {
    content: "-";
    position: absolute;
    top:0;
    left:0;
    width:20px;
    height: 10px;
}

.cf_list > li > ul > li > ul {
    list-style: none;
    margin: 10px 0 0;
}

/* footer */

footer {
	background-color: #fff;
}

#footer01 {
    padding: 0 0 30px;
}

.ft_copy {
    width:50%;
    margin: 0 auto 30px;
}

.ft_fig01 {
    width:150px;
    margin: 0 auto;
    line-height: 1;
}

.ft_info {
    position: absolute;
    width: 50%;
    height:auto;
    bottom:0;
    left:0;
}

.ft_logo {
    width: 300px;
    margin-bottom: 20px;
}

.ft_address {
    font-size: 1rem;
    line-height: 1.4;
    margin-bottom: 20px;
}

.sns_list {
    display: flex;
    list-style: none;
    margin: 0;
}

.sns_list li {
    flex-basis: 35px;
    margin: 0 20px 0 0;
}

.sns_list li:last-child {
    margin: 0;
}

#footer02 {
    background-color: #1a96d5;
    padding:30px;
}

#footer02 a {
    text-decoration: none;
}

.f_box {
    margin-bottom: 50px;
}

.f_box a {
    color: #FFF;
}

.f_box a:hover {
    text-decoration: none;
    opacity:0.7;
}

.f_navi_list {
    list-style: none;
    margin: 0;
}

.fn_2nd {
    transition: 0.1s;
}

.fn_2nd > span {
    display: block;
    position: relative;
    cursor: pointer;
    color: #FFF;
    padding:4px 0;
    border-bottom:1px solid #FFF;
    margin-bottom: 5px;
    
}

.fn_toggle span:after {
    content: "";
    display: block;
    position: absolute;
    top:12px;
    right:10px;
    background-color: #FFF;
    width: 10px;
    height: 8px;
    clip-path: polygon(0 0, 100% 0%, 50% 100%);
    transform: rotate(0deg);
    transition: transform 0.3s ease;
}

.fn_toggle.open span:after {
    transform: rotate(180deg);
}

.fn_3rd {
  display: none;
}

.fn_3rd > ul {
    display: flex;
    list-style: none;
    margin: 0;
}

.fn_3rd > ul > li {
    display: block;
    flex:1;
    margin-right: 10px;
}

.fn_3rd > ul > li:last-child {
    margin-right: 0;
}

.fn_3rd > ul > li > a {
    display: block;
    font-size: 0.9rem;
    margin: 0 0 5px;
    padding: 3px 0;
    border-bottom: 2px solid #FFF;
}

.fn_4th > ul {
    list-style: none;
    margin: 0;
    font-size: 0.8rem;
}

.fn_4th > ul > li {
    display: block;
}

.fn_4th > ul > li > a {
    display: block;
    position: relative;
    width: 100%;
    padding: 2px 0 2px 10px;
}

.fn_4th > ul > li > a:before {
    content: "-";
    position: absolute;
    width:10px;
    height:5px;
    top:2px;
    left:0;
}

.f_navi_list_s01,.f_navi_list_s02 {
    display: flex;
    list-style: none;
    
    margin: 0;
}

.f_navi_list_s01 li,.f_navi_list_s02 li {
    display: block;
    flex-basis: 29%;
}
.f_navi_list_s01 li:nth-child(2),
.f_navi_list_s02 li:nth-child(2) {
    flex-basis: 39%;
}


.f_navi_list_s02 {
    font-size: 0.9rem;
}

.footer_img {
    background-image: url("../img/footer_fig02.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    aspect-ratio: 13 / 9 ;
}

.copyright {
	font-size: 0.8rem;
    text-align: left;
    color: #FFF;
}

.pagetop {
    position: fixed;
    display: block;
    bottom:10px;
    right:10px;
    width:40px;
    height:40px;
    text-align: center;
    pointer-events: none;
    opacity: 0;
    transform:translateY(100px);
    transition:transform .3s cubic-bezier(.22,.61,.36,1), opacity .2s ease-out;
    will-change: transform;
}

.pagetop a {
    display: block;
    font-family: "Barlow", sans-serif;
    font-weight: 700;
    font-style: normal;
    width: 100%;
    height: 100%;
    color: #FFF;
    text-decoration: none;
    font-size: 10px;
    background-color: #333;
    background-image: url("../img/pagetop.svg");
    background-repeat: no-repeat;
    background-position: top 8px center;
    background-size: 15px auto;
    padding: 22px 10px 0;
    border-radius: 50%;
}

.pagetop.scrolled {
    display: block;
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}

/* PC閲覧時 */
@media screen and (min-width: 769px) {

header {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: 150px;
    z-index:1000;
    background: rgba(255,255,255,1);
    transition: all .2s ease;
    will-change: height, background, transform;
}

#head_logo {
    display: block;
    position: relative;
    width:140px;
    height:auto;
    transition: all .2s ease;
}

#head_logo img {
    width: 100%;
    height:auto;
}

#h_contact {
    flex-basis:80px;
}

#h_contact a {
    display: block;
    width:80px;
    height:80px;
    border:1px solid #333;
    border-radius: 50%;
    background-image: url("../img/ic_mail.svg");
    background-repeat: no-repeat;
    background-position: top 20px center;
    background-size: 30px auto;
    font-size: 9px;
    text-align: center;
    color: #333;
    text-decoration: none;
    padding:48px 5px 5px;
    transition: 0.2s;
}

#h_contact a:hover {
    opacity: 0.8;
}

header ul,header ul li {
    margin: 0;
}

#hanburger {
display: none;
}

header.scrolled {
    display: flex;
    justify-content: space-between;
    top:0;
    height:70px;
    background-color: rgba(255,255,255,0.9);
}

header.scrolled .head_row {
    padding:10px 5px 10px 15px;
}

header.scrolled #head_logo {
    width:90px;
}

header.scrolled #h_contact {
    display: none;
}

.head_nav {
    position: relative;
    width: 100%;
    height:auto;
    top:0;
    left:0;
    padding: 0 0 ;
    z-index: 100;
}

header.scrolled .head_nav {
    padding: 0 0 0 15px;
}

.menu-trigger,.burger-wrapper {
    display: none;
}
 
.global_menu {
    position: relative;
    display: block;
    width:100%;
    height:100%;
    text-align: center;
    padding: 0;
    color: #fff;
    border-top:1px solid #ddd;
    visibility: visible;
    overflow-y: visible;
}

header.scrolled .global_menu {
    border: none ;
}

.head_main {
    display: flex;
    justify-content: space-between;
    height:100%;
}

.head_main > li {
    flex:1 1 0;
    display: flex;
    align-items:stretch; 
    justify-content: center;
    flex: 1;
    border-right:1px solid #ddd;
    min-height: var(--nav-h, 46px);
}

.head_main > li:last-child {
    border-right: none;
}

.head_main a {
    display: block;
}

.head_main > li > a {
    flex:1 1 auto;
    display:flex;
    align-items:center;
    justify-content:center;     /* 横中央 */
    /*width:100%;*/
    padding:0 .75rem; 
    text-align:center;
    line-height:1.2;
    white-space:normal;
    text-wrap:balance;
    text-decoration: none;
}

.menu01 { border-bottom:3px solid #8dc21f; }
.menu02 { border-bottom:3px solid #4d73ab; }
.menu03 { border-bottom:3px solid #4399d0; }
.menu04 { border-bottom:3px solid #1da8a3; }
.menu05 { border-bottom:3px solid #d26989; }
.menu06 { border-bottom:3px solid #dd5434; }
.menu07 { border-bottom:3px solid #8e78bc; }

.menu,
.child_menu > li {
    display: inline-block;
}
 
.menu:not(:last-child) {
    margin-bottom: 0;
}
 
.menu > a {
font-size: 14px;
color:#333;
transition: 0.2s opacity;
padding: 10px 5px;
}
 
.menu:hover > a {
color: #fff;
transition: 0.2s;
}

.menu:hover > a:hover {
    text-decoration: none;
    border:none;
}

.menu01:hover > a { background: #8dc21f; }
.menu02:hover > a { background: #4d73ab; }
.menu03:hover > a { background: #4399d0; }
.menu04:hover > a { background: #1da8a3; }
.menu05:hover > a { background: #d26989; }
.menu06:hover > a { background: #dd5434; }
.menu07:hover > a { background: #8e78bc; }


.child_menu { /* 下層メニューのスタイル */
width: 100%;
position: absolute;
top: 100%;
left: 0;
padding: 0;
color: #333;
text-align: center;
visibility: hidden;
opacity: 0;
transition: 0.2s opacity;
z-index: 100;
}

.menu01 .child_menu { background: #8dc21f; }
.menu02 .child_menu { background: #4d73ab; }
.menu03 .child_menu { background: #4399d0; }
.menu04 .child_menu { background: #1da8a3; }
.menu05 .child_menu { background: #d26989; }
.menu06 .child_menu { background: #dd5434; }
.menu07 .child_menu { background: #8e78bc; }
 
.menu:hover .child_menu { /* 下層メニューのスタイル(親項目ホバー時) */
    opacity: 1;
    visibility: visible;
    transition: 0.2s opacity;
}
 
.child_menu > li > a:hover {
    background: unset;
    color: #fff;
}

.menu_type01 {
    display: flex;
    justify-content: center;
    position: relative;
    width:100%;
}

.menu_type01 > li {
    display: flex;
    align-items: center;
    flex: 1;
}

.menu_type01 > li > a {
    display: block;
    width: 100%;
    color: #FFF;
    padding: 30px;
    font-size: 0.9em;
    text-decoration: none;
    transform: 0.2s;
}

.menu_type01 > li:hover {
    background-color: rgba(0,0,0,0.2);
}

.has_gchild > .toggle_head {
    position: relative;
}

.has_gchild > .toggle_head:after {
    content: "";
    border-top: 2px solid #FFF;
    border-left: 2px solid #FFF;
    display: inline-block;
    width: 8px;
    height: 8px;
    transform: rotate(-135deg) translateY(9px);
    position: absolute;
    right: 20px;
    top: 53%;
    transition: transform 0.2s;
}

.gchild_menu {
    position: absolute;
    visibility: hidden;
    opacity: 0;
    width: 100%;
    height:auto;
    top:78px;
    left: 0;
    background-color: #fff;
    border-radius:0 0 3px 3px;
    padding:0 15px;
    transition: 0.2s;
}

.menu01 .gchild_menu { border-left:1px solid #8dc21f;border-right:1px solid #8dc21f; border-bottom:1px solid #8dc21f; }
.menu02 .gchild_menu { border-left:1px solid #4d73ab;border-right:1px solid #4d73ab; border-bottom:1px solid #4d73ab; }
.menu03 .gchild_menu { border-left:1px solid #4399d0;border-right:1px solid #4399d0; border-bottom:1px solid #4399d0; }
.menu04 .gchild_menu { border-left:1px solid #1da8a3;border-right:1px solid #1da8a3; border-bottom:1px solid #1da8a3; }
.menu05 .gchild_menu { border-left:1px solid #d26989;border-right:1px solid #d26989; border-bottom:1px solid #d26989; }
.menu06 .gchild_menu { border-left:1px solid #dd5434;border-right:1px solid #dd5434; border-bottom:1px solid #dd5434; }
.menu07 .gchild_menu { border-left:1px solid #8e78bc;border-right:1px solid #8e78bc; border-bottom:1px solid #8e78bc; }

.menu_type01 > li:hover > .gchild_menu {
    visibility: visible;
    opacity: 1;
}

.gchild_menu > ul {
    display: flex;
    flex-wrap: wrap;
}

.gchild_menu li {
    display: block;
    flex:1 ;
    text-align: left;
}

.gchild_menu li a {
    position:relative;
    color: #333;
    padding: 30px 10px 30px 20px;
    font-size: 0.9em;
    text-decoration:none;
}

.gchild_menu li a:hover {
    color: #1c6bba;
}

.gchild_menu li a:before {
    content: "";
    border-top: 2px solid #ddd;
    border-left: 2px solid #ddd;
    display: inline-block;
    width: 6px;
    height: 6px;
    transform: rotate(135deg);
    position: absolute;
    left: 5px;
    top: 45%;
    transition: transform 0.3s;
}

/* フッター */

footer {
	padding:50px 0 15px;
}

/* 固定ボタン */

.ft_fixed {
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    font-weight: 700;
    font-style: normal;
    position: fixed;
    right:15px;
    width:40px;
    height:auto;
    writing-mode: vertical-rl;
    text-align: justify;
    text-justify: inter-ideograph;
    letter-spacing: 2px;
    pointer-events: none;
    opacity: 0;
    transform:
    translateX(100px);
    transition:transform .3s cubic-bezier(.22,.61,.36,1), opacity .2s ease-out;
    will-change: transform;
}

.fixed_contact {
    top:20%;
}

.fixed_personal {
    top:42%;
}

.fixed_member {
    top:64%;
}

.ft_fixed a {
    color: #FFF;
    padding:40px 15px 15px;
    border-radius: 10px 0 0 10px;
    text-decoration: none;
}

.fixed_contact a {
    background-color: #1695d4;
    background-image: url("../img/ic_mail_w.svg");
    background-position: top 10px center;
    background-repeat: no-repeat;
    background-size: 25px auto;
}

.fixed_personal a {
    background-color: #f5ad1a;
    background-image: url("../img/ic_mushroom.svg");
    background-position: top 10px center;
    background-repeat: no-repeat;
    background-size: 20px auto;
}

.fixed_member a {
    background-color: #1da8a3;
    background-image: url("../img/ic_person.svg");
    background-position: top 10px center;
    background-repeat: no-repeat;
    background-size: 25px auto;
}

.ft_fixed.scrolled {
    transform: translateX(0);
    opacity: 1;
    pointer-events: auto;
}

.fixed_contact.scrolled { transition-delay: .2s; }
.fixed_personal.scrolled{ transition-delay: .3s; }
.fixed_member.scrolled{ transition-delay: .4s; }

}

/* メインナビゲーション改行調整 */
@media screen and (769px <= width < 850px) {
.menu > a {
    font-size: 12px;
}
}


/* スマホ閲覧時 */
@media screen and (max-width: 768px) {

header {
    position: fixed;
    width: 100%;
    height:72px;
    top:0;
    left: 0;
    padding-right:50px;
    background-color: rgba(255,255,255,0.8);
    z-index: 4;
}

.head_row {
    padding: 10px 15px;
}

#head_logo {
    width:90px;
}

#h_contact {
    flex-basis:40px;
}

#h_contact a {
    width:40px;
    height:40px;
    background-position: top 10px center;
    background-size: 24px auto;
    font-size: 9px;
    padding:33px 5px 5px;
    margin-top: 5px;
}

.menu-trigger {
    display: none;
}

.burger-wrapper {
  position: fixed;
  top: 15px;
  right: 10px;
  cursor: pointer;
  margin: auto;
  width: 40px;
  height: 40px;
  background: #1b94d3;
  border-radius: 50%;
  z-index:9999;
}
.burger-wrapper .hamburger {
  background: #FFF;
  width: 20px;
  height: 2px;
  position: relative;
  transition: background 10ms 300ms ease;
  transform: translate(10px,20px);
}
.burger-wrapper .hamburger:before, .burger-wrapper .hamburger:after {
  transition: top 300ms 350ms ease, transform 300ms 50ms ease;
  position: absolute;
  background: #FFF;
  width: 20px;
  height: 2px;
  content: "";
}
.burger-wrapper .hamburger:before {
  top: -8px;
}
.burger-wrapper .hamburger:after {
  top: 8px;
}

.menu-trigger:checked ~ .burger-wrapper .hamburger {
  background: transparent;
}
.menu-trigger:checked ~ .burger-wrapper .hamburger:after, .menu-trigger:checked ~ .burger-wrapper .hamburger:before {
  transition: top 300ms 50ms ease, transform 300ms 350ms ease;
  top: 0;
}
.menu-trigger:checked ~ .burger-wrapper .hamburger:before {
  transform: rotate(45deg);
}
.menu-trigger:checked ~ .burger-wrapper .hamburger:after {
  transform: rotate(-45deg);
}

.hidden {
  display: none;
}

.global_menu { /* メニュー全体のスタイル */
visibility: hidden; /* メニューを非表示 */
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
padding: 15px;
color: #333; /* 文字色 */
background-color: rgba(255,255,255,0.95);
overflow-y:  scroll;
text-align: center;
opacity: 0; /* 不透明度を最小に */
transition: 0.4s opacity; /* アニメーション設定 */
}
 
#togglenav:checked ~ .global_menu { /* メニュー全体のスタイル(チェック済) */
opacity: 1;
visibility: visible;
z-index: 100;
}

.global_menu li {
    display: block;
}

.head_main {
    margin: 0;
}

.head_main li {
    border-bottom:1px solid #ccc;
}

.head_main li:last-child {
    border:none;
}

.global_menu a { /* 各項目のスタイル */
display: block;
width: 100%;
}

.menu a {
    color:#333;
    font-weight: 400;
    text-align: left;
    text-decoration: none;
}

.menu > a {

padding: 10px 20px;
}

.toggle_head {
    position: relative;
}

.toggle_head:before,
.toggle_head:after {
    content: '';
    position: absolute;
    top: 52%;
    transform: translateY(-51%);
    transform-origin: center center;
    transition-duration: 0.5s;
}
    
.toggle_head:before {
    width: 12px;
    height: auto;
    border-top: 2px solid #1b94d3;
    left: 0px;
}
.toggle_head:after {
    width: auto;
    height: 11px;
    border-right: 2px solid #1b94d3;
    left: 5px;
}
      
.toggle_head.open:after {
    transform: translateY(-50%) rotate(90deg);
}

.toggle_inner {
width: 100%;
height: auto;
display: none;
}

.child_menu > ul > li {
    text-align: left;
    border-bottom:1px dotted #eee;
}

.child_menu > ul > li > a {
padding: 8px 10px 8px 30px;
font-size: 0.9em;
}

.gchild_menu > ul > li {
    border-bottom:1px dotted #eee; 
    text-align: left;
}

.gchild_menu > ul > li > a {
padding: 8px 10px 8px 40px;
font-size: 0.9em;

}

.child_menu > ul > li > ul > li:last-child {
    border:none;
}

/* 共通お問い合わせ */

#c_contact {
    text-align:center;
}

.c_contact_col {
    flex-basis: 100%;
}

#c_contact h2 {
    text-align:center;
}

.tel span {
    font-size: 8vw;
}

/* コンテンツフッターナビ */

#cf_navi {
    padding:30px 0;
}

.cf_navi_wrapper {
    flex-wrap: wrap;
}

.cf_title {
    font-size: 1.2rem;
    flex-basis:100%;
    margin-bottom: 20px;
}

.cf_list {
    flex-basis:100%;
    justify-content: space-between;
}

.cf_list > li {
    flex: 1;
    margin-right: 15px;
}

.cf_list > li:last-child {
    margin-right: 0;
}

/* footer */

footer {
	padding:20px 0 0;
}

.ft_fig01 {
    margin-bottom: 20px;
}

.ft_info {
    position: relative;
    width:100%;
    text-align: center;
}

.ft_logo {
    width: 100%;
}

.ft_logo img {
    width: 300px;
    height: auto;
    margin: 0 5px;
}

.sns_list {
    justify-content: center;
}

.f_navi {
    flex-basis:100%;
    margin-bottom: 20px;
}

.f_navi > ul {
    display: flex;
    width:100%;
    justify-content: space-between;
    flex-wrap: wrap;
    margin: 0;
}

.f_navi > ul > li {
    display: block;
    flex-basis: 49%;
}

.f_navi > ul > li > a {
    display: block;
    padding:5px;
    margin: 0 0 5px;
    border-bottom:1px solid #c3dbcf;
}

/* 固定ボタン */

.ft_fixed {
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 12px;
    position: fixed;
    bottom:10px;
    width:auto;
    height:auto;
    letter-spacing: 2px;
    z-index: 900;
}

.fixed_contact {
    left:10px;
}

.fixed_personal {
    left:130px;
}

.ft_fixed a {
    color: #FFF;
    padding:35px 15px 15px;
    border-radius: 10px 10px 0 0;
    text-decoration: none;
}

.fixed_contact a {
    background-color: #1695d4;
    background-image: url("../img/ic_mail_w.svg");
    background-position: top 10px center;
    background-repeat: no-repeat;
    background-size: 25px auto;
}

.fixed_personal a {
    background-color: #f5ad1a;
    background-image: url("../img/ic_person.svg");
    background-position: top 10px center;
    background-repeat: no-repeat;
    background-size: 25px auto;
}

/*
.ft_fixed.scrolled {
    transform: translateX(0);
    opacity: 1;
    pointer-events: auto;
}
*/




}

@media screen and (max-width: 480px) {

/* コンテンツフッターナビ */

.cf_list {
    flex-wrap: wrap;
}

.cf_list > li {
    flex-basis: 100%;
    margin: 0 0 15px 0;
}

.cf_list > li:last-child {
    margin-bottom: 0;
}


/* フッター */

.f_navi ul li {
    flex-basis: 100%;
}


}