@charset "utf-8";
/* #### Generated By: http://www.cufonfonts.com #### */
:root {
    /* タイトル1等の文字色 */
    --primary-color: #3da7d1;

    /* サブ2の文字色 */
    --secondary-color: #79beda;

    /* サブ3の色 */
    --third-back-color: #8a7257;
}



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

　ここから全サイズ適用

================================*/
html {
	overflow-y: scroll;
	font-size: 10px;
	font-size: 62.5%;
}
body {
    font-family: 'Zen Maru Gothic', 'Hubballi',"zen-maru-gothic",  sans-serif;
	/* -webkit-font-feature-settings: "palt"; */
	/* font-feature-settings: "palt"; */
	font-size: 16px;
	font-size: 1.6em;
	text-align: justify;
    line-height: 1.5;
	color: #333;
	overflow: hidden;
    position: relative;
    letter-spacing: 0;
}

.hubballi-regular {
  font-family: "Hubballi", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.font_zenmaru {
    font-family: "Zen Maru Gothic"!important;
}

.zen-maru-gothic-regular {
    font-family: "Zen Maru Gothic", serif!important;
}

.zen-maru-gothic-light {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 300;
  font-style: normal;
}

.zen-maru-gothic-regular {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.zen-maru-gothic-medium {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.zen-maru-gothic-bold {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 700;
  font-style: normal;
}


img{
	max-width: 100%;
	height: auto;
}


.m-0 {
    margin: 0 !important;
}
.m-0-auto {
    margin: 0 auto !important;
}

.mb0{
	margin-bottom:0 !important;
}
.mb5{
	margin-bottom:5px !important;
}
.mb10{
	margin-bottom:10px !important;
}
.mb15{
	margin-bottom:15px !important;
}
.mb20{
	margin-bottom:20px !important;
}
.mb25{
	margin-bottom:25px !important;
}
.mb30{
	margin-bottom:30px !important;
}
.mb40{
	margin-bottom:40px !important;
}
.mb50{
	margin-bottom:50px !important;
}
.mb60{
	margin-bottom:60px !important;
}
.mb70{
	margin-bottom:70px !important;
}
.mb80{
	margin-bottom:80px !important;
}
.mb90{
	margin-bottom:90px !important;
}
.mb100{
	margin-bottom:100px !important;
}

.mt10 {
    margin-top: 10px !important;
}

.mt20 {
    margin-top: 20px !important;
}


.link_hover {
    opacity: 1;
    transition: 0.5s;
}
.link_hover:hover {
    opacity: 0.7;
}

a {
	color: #333;
}
a:link {
	color: #333;
	text-decoration: none;
}
a:visited {
	color: #333;
	text-decoration: none;
}
a:hover {
	color: #333;
}
a:active {
	color: #333;
	text-decoration: none;
}
.pc-none {
	display: none!important;
}
.pclg-none {
	display: none!important;
}
.pcTab-none {
	display: none!important;
}

.cont_none::before,
.cont_none::after {
    content: none!important;
}

.bg_none {
    background: none!important;
}

.border_none {
    border: none!important;
}

.border_radius {
    border-radius: 10px!important;
}

/* ブロック要素、インライン要素
================================*/
.block_center {
    display: block;
    margin-left: auto;
    margin-right: auto;
}
.block_left {
    display: block;
    margin-left: auto;
}

.block {
    display: block !important;
}

.inline-block {
    display: inline-block !important;
}

.ver-align-middle{
    vertical-align: middle;
}

.align-items-center{
    align-items: center;
}

.w1000 {
    max-width: 1000px!important;
}
.w980 {
    max-width: 980px!important;
}
.w960 {
    max-width: 960px!important;
}
.w940 {
    max-width: 940px!important;
}
.w900 {
    max-width: 900px!important;
}
.w890 {
    max-width: 890px!important;
}
.w860 {
    max-width: 860px!important;
}
.w800 {
    max-width: 800px!important;
}
.w750 {
    max-width: 750px!important;
}
.w720 {
    max-width: 720px!important;
}
.w700 {
    max-width: 700px!important;
}
.w660 {
    max-width: 660px !important;
}
.w640 {
    max-width: 640px !important;
}
.w600 {
    max-width: 600px!important;
}
.w550 {
    max-width: 550px!important;
}

.w490 {
    max-width: 490px!important;
}
.w480 {
    max-width: 480px!important;
}
.w470 {
    max-width: 470px!important;
}
.w460 {
    max-width: 460px!important;
}
.w440 {
    max-width: 440px!important;
}
.w410 {
    max-width: 410px!important;
}
.w390 {
    max-width: 390px !important;
}
.w370 {
    max-width: 370px !important;
}
.w320 {
    max-width: 320px !important;
}
.w300 {
    max-width: 300px !important;
}
.w290 {
    max-width: 290px !important;
}
.w250 {
    max-width: 250px !important;
}
.w220 {
    max-width: 220px !important;
}
.w210 {
    max-width: 210px !important;
}
.w200 {
    max-width: 200px !important;
}
.w180 {
    max-width: 180px !important;
}

.w100per {
    width: 100% !important;
}


.w-fit-content {
    width: fit-content !important;
}

.min-height-auto {
    min-height: auto !important;
}

.anchor_link {
    display: block;
    transform: translateY(-120px);
}



.nolink {
    opacity: 0.6 !important;
}

.op1 {
    opacity: 1 !important;
}

.animated {
    opacity: 0;
}

/* 文字
================================*/
.text_center {
    text-align: center !important;
}

.text_left {
    text-align: left !important;
}

.text_right {
    text-align: right !important;
}

.text_justify {
    text-align: justify !important;
}

.text_normal {
    font-weight: 400!important;
}
.text_medium {
    font-weight: 500!important;
}
.text_bold {
    font-weight: 600!important;
}



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

.txt_color02 {
    color: var(--secondary-color)!important;
}

.txt_color03 {
    color: var(--third-back-color)!important;
}

.txt_color04 {
    color: #db7e19!important;
}

.txt_color05 {
    color: #1946a2!important;
}

.txt_color_w {
    color: #fff!important;
}

.txt_color_b {
    color: #333!important;
}


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

.bg_color02 {
    background-color: var(--secondary-color)!important;
}

.bg_color03 {
    background-color: var(--third-back-color)!important;
}

.bg_color04 {
    background-color: #edbc32!important;
}

.bg_color05 {
    background-color: #6eb92b!important;
}

.bg_color06 {
    background-color: #ead31f!important;
}

.bg_color_w {
    background-color: #fff!important;
}


.pink_big_txt {
    color: #ef7da7 !important;
    font-size: clamp(18px, 20 / 824 * 100vw, 22px);
    font-weight: 500;
}

.line01 {
    background: linear-gradient(to top, #fff 10px, transparent 10px);
}

.line02 {
    background: linear-gradient(to top, #fff 10px, transparent 10px);
}

.letter-spacing-01 {
    letter-spacing: -0.1px !important;
}

.letter-spacing0 {
    letter-spacing: 0 !important;
}
.letter-spacing03 {
    letter-spacing: 0.3px !important;
}

.letter-spacing05 {
    letter-spacing: 0.5px !important;
}

.letter-spacing06 {
    letter-spacing: 0.6px !important;
}
.letter-spacing075 {
    letter-spacing: 0.75px !important;
}

.letter-spacing1 {
    letter-spacing: 1px !important;
}

.letter-spacing15 {
    letter-spacing: 1.5px !important;
}

.letter-spacing2 {
    letter-spacing: 2px !important;
}

.line-height1 {
    line-height: 1 !important;
}

.line-height15 {
    line-height: 1.5 !important;
}

.line-height17 {
    line-height: 1.7 !important;
}

.line-height2 {
    line-height: 2 !important;
}

/*================================
ヘッダー
================================*/

main {
    display: block;
}
.seo-message {
    font-size: 14px;
    color: #fff;
    margin: 15px 0 5px;
    text-shadow: 0 0 10px black;

}


.header{
    position: relative;
    width: 100%;
    z-index: 100;
}

.footer_contact {
    display: none;
}

.side_fix_wrap {
    display: none;
}
.side_fix_wrap.fixed {
    position: fixed;
    right: 0;
    top: 190px;
    z-index: 20000;
    transition: 0.5s;
    display: block;
}
.side_fix_wrap a {
    transition: 0.5s;
    box-shadow: 0 0 5px rgba(51, 51, 51, 0.5);
    border-top-left-radius: 20px;
    border-bottom-left-radius: 20px;
}
.side_fix_wrap a:hover {
    opacity: 0.6;
}



.gnav_hd {
    position: absolute;
    right: 100px;
    top: 20px;
}

.gnav_hd_info {
    color: #fff;
    font-size: 16px;
    min-width: 310px;
}

.gnav_hd_inner {
    width: fit-content;
    margin: 0 auto 12px;
    padding-left: 40px;
    border-left: solid 1px #fff;
    line-height: 1.1;
}

.gnav_hd_txt {
    font-weight: 500;
    margin-bottom: 10px;
    text-shadow: 0 0 20px #3f3a39;
}


p.gnav_hd_tel {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    font-weight: 500;
    font-size: 30px;

}
.gnav_hd_tel a {
    display: inline-block;
    color: #8a7257;
    text-shadow: 0 0 20px #fff, 0 0 20px #fff, 0 0 20px #fff;
}

.gnav_hd_access {
    border-top: solid 1px #fff;
    padding-top: 7px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 7px;
    text-shadow: 0 0 10px #333;
}

.gnav_hd_wrap.fixed{
    /* position: fixed;
    top: 0;
    bottom: unset;
    width: 100%;
    background: #fff;
    z-index: 1;
    border-bottom: solid 1px; */
}

.gnav_hd_wrap.fixed .gnav_hd_info{
    position: relative;
      z-index: 10;
}
.gnav_hd_wrap.fixed .gnav_hd_logo{
    display: block;
    max-width: 301px;
    position: relative;
    z-index: 10;
}
.gnav_hd_wrap.fixed .gnav_hd_access{
    /* color: #444;
    padding-top: 0;
    text-shadow:none; */
    display: none;
}
.gnav_hd_wrap.fixed .gnav_hd_inner{
    margin-bottom: 0;
}
.gnav_hd_wrap.fixed .gnav_hd_txt{
    color: #333;
    margin-bottom: 5px;
    text-shadow:none;
}

.gnav_hd_wrap.fixed .gnav_hd {
    display: flex;
    width: 100%;
    justify-content: space-between;
    align-items: center;
    padding-block: 10px 2px;
    padding-left: 10px;
    max-width: 1440px;
    margin: 0 auto;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    /* z-index: 2; */
}

/* .gnav_hd_wrap.fixed .gnav_hd {
    right: 0;
    top: 0;
    display: flex;
    width: 100%;
    justify-content: center;
    padding-block: 2px;
    z-index: 1;
    position: relative;
} */

.gnav{
    width: 100%;
    position: absolute;
    bottom: 0;
    z-index: 10000;

}

.gnav::before {
        content: "";
    background: url(/img/mv_sub.png) center bottom no-repeat;
    width: 303px;
    height: 217px;
    display: block;
    z-index: 1;
    position: absolute;
    bottom: 60px;
    left: -60%;
    margin: 0 auto;
    right: 0;
}
.gnav::after {
    content: "";
    background: url(../img/wave_w.png) center top / cover no-repeat;
    width: 100vw;
    height: 101px;
    display: block;
    z-index: -1;
    position: absolute;
    bottom: -2px;
}

.gnav.fixed .gnav_list a{
    /* padding: 0 10px; */
    /* width: auto; */
}
.gnav.fixed .gnav_list{
    padding: 20px 0;
}
.gnav.fixed{
    top: 0;
    position: fixed;
    bottom: unset;
    width: 100%;
    background: #fff;
    border-bottom: solid 2px;
    z-index: 1;
}

.gnav.fixed::before{
    display: none;
}

.gnav_list{
    display: flex;
    align-items: flex-end;
    justify-content: center;
    margin: 0 auto;
    max-width: 1000px;
    position: relative;
    width: fit-content;
    /* cursor: pointer; */

}
.gnav_list li{
	/* width: calc(100% / 6); */
	text-align: center;
	line-height: 18px;
    position: relative;
    padding: 0 30px;
}
.gnav_list li::before{
    content: "";
    position: absolute;
    left: -8px;
    bottom: 2px;
    background: url(../img/menu_sub.png) left center no-repeat;
    width: 13px;
    height: 13px;
}
.gnav_list li:last-of-type::after{
    content: "";
    position: absolute;
    right: 0;
    bottom: 2px;
    background: url(../img/menu_sub.png) left center no-repeat;
    width: 13px;
    height: 13px;
}


.gnav_list > li{
}
.gnav_list li:last-of-type {
    /* border-right: 1px dashed #fff; */
    /* background:
    url(../img/gnav_line.png) left center repeat-y,
    url(../img/gnav_line.png) right center repeat-y; */
}
.gnav_list li img{
    margin: 0 5px;
    display: inline-block;
}

.gnav_list .gnav_txt{
    color: #333;
    font-weight: 500;
}

.gnav_list .gnav_txt span{
    font-size: 12px;
    color: #8a7257;
    line-height: 1.2;
    letter-spacing: 0;
}

.gnav_list a{
    display: flex;
    justify-content: flex-end;
    flex-direction: column;
    align-items: stretch;
    /* width: 157px; */
}
.gnav_list a:hover .gnav_txt{
	/* background: linear-gradient(0deg,#fff 0%, #fff 35%, #fff0 35%, #fff0 100%); */
    opacity: 0.7;
    transition: 0.5s;
}

.gnav_list .gnav_hover_menu_wrap + .gnav_hover_menu_wrap .gnav_hover_menu{
    width: 270px;
    left: -65%;
}
.gnav_list .gnav_hover_menu {
    position: absolute;
    top: 200%; /* 初期位置を少し下げて、上からスライドするように */
    left: -100%;
    background-color: #fff;
    border: 1px solid #333333;
    border-radius: 20px;
    box-shadow: 8px 8px 0px 0px #79beda;
    display: flex; /* flexは維持 */
    justify-content: flex-start;
    flex-wrap: wrap;
    padding: 30px;
    width: 388px;
    height: 197px;
    opacity: 0; /* 初期状態では完全に透明 */
    visibility: hidden; /* 初期状態では非表示 */
    transform: translateY(-20px); /* 初期位置を上にずらす（少しスライドする効果のため） */
    transition: opacity 0.3s ease-out, visibility 0.3s ease-out, transform 0.3s ease-out; /* 表示時のアニメーション設定 */
    pointer-events: none; /* 非表示時にクリック不可にする */
}
.gnav_list .gnav_hover_menu_wrap:hover .gnav_hover_menu {
    opacity: 1; /* 不透明にして表示 */
    visibility: visible; /* 表示状態にする */
    transform: translateY(0); /* 元の位置に戻す */
    transition: opacity 0.3s ease-in, visibility 0.3s ease-in, transform 0.3s ease-in; /* ホバー時のアニメーション設定 */
    pointer-events: auto; /* 表示時にクリック可能にする */
}


.gnav.fixed .gnav_hover_menu{
}

.gnav_list .gnav_hover_menu li {
    /* ここは特に変更不要な場合が多いですが、もし個別の表示アニメーションが必要なら追加 */
    font-weight: 500;
    /* transition: opacity 0.2s ease-out; */ /* 必要であれば個別のフェードイン/アウトも */
}
.gnav_list .gnav_hover_menu li{
    display: block;
    transition: 0.1s;
    min-width: 160px;
    padding: 0;
    
}
.gnav_list .gnav_hover_menu li a{
    display: inline-block;
    transition: 0.5s;
}
.gnav_list > li:hover{
}
.gnav_list  li.gnav_hover_menu_wrap:hover::after{
    content: "";
    width: 100%;
    height: 20px;
    position: absolute;
    top: 100%;
    /* bottom: -12px; */
    display: inline-block;
    transition: 0.1s;
    right: 0;
}

.gnav_list .gnav_hover_menu li:last-of-type::after{
    content: none;
}
.gnav_hover_menu li::before {
    content: "◇ ";
    background: none;
    position: relative;
    display: inline-block;
    bottom: 0;
    color: #50d5fb;
    left: 0;
    margin-right: 8px;
    font-weight: 700;
}

.gnav_list .gnav_hover_menu li{
    text-align: left;
    font-weight: 500;
    /* opacity: 0.6; */
}
.gnav_list .gnav_hover_menu_wrap:hover ul li{

}

/*===================================
スマホ用ナビドロワー
===================================*/


/*アイコンの位置を決定*/

#nav-drawer {
    position: fixed;
    z-index: 99999;
    top: 0;
    right: 0;
    display: none;
}

/*チェックボックス等は非表示に*/

.nav-unshown {
    display: none;
}

/*アイコンのクリック範囲*/

#nav-open {
    display: inline-block;
    vertical-align: middle;
    width: 55px;
    height: 55px;
    max-width: 250px;
    background-color: #3da7d1;
    position: relative;
    z-index: 99999;
    transition: all .4s;
	border-left: solid 1px #fff;
	border-bottom: solid 1px #fff;
}

#nav-input:checked~#nav-open {
    border-left: none;
    width: 100vw;
}

/*「MENU」の文字*/

#nav-open .nav-txt {
    margin-bottom: 5px;
    font-size: 10px;
    font-weight: bold;
    line-height: 1;
    text-align: center;
    color: #9d8fa4;
}

/*ハンバーガーアイコン*/

#nav-open span,
#nav-open span:before,
#nav-open span:after {
    position: absolute;
    content: '';
    display: block;
    height: 2px;
    /*線の太さ*/
    width: 25px;
    /*線の長さ*/
    background: #fff;
    cursor: pointer;
    top: 17px;
    right: 15px;
    transition: all .4s;
}

#nav-input:checked~#nav-open span,
#nav-input:checked~#nav-open span:before,
#nav-input:checked~#nav-open span:after {
    background-color: #fff;
}

#nav-open span:before {
    width: 15px;
    /*線の長さ*/
    top: 9px;
    left: 0;
}

#nav-open span:after {
    width: 21px;
    /*線の長さ*/
    top: 18px;
    left: 0;
}

#nav-input:checked~#nav-open span {
    width: 25px;
    -webkit-transform: translateY(10px) rotate(-45deg);
    transform: translateY(10px) rotate(-45deg);
}

#nav-input:checked~#nav-open span:before {
    opacity: 0;
}

#nav-input:checked~#nav-open span:after {
    width: 25px;
    -webkit-transform: translateY(-18px) rotate(90deg);
    transform: translateY(-18px) rotate(90deg);
}


/*ドロワーの背景*/

#nav-close {
    position: fixed;
    display: block;
    visibility: hidden;
    /*はじめは隠しておく*/
    z-index: 99;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    /* background: rgb(237 109 0 / 80%); */
    opacity: 0;
    -webkit-transition: all 0.5s 0s ease;
    transition: all 0.5s 0s ease;
}

/*閉じる用の×ボタン*/

/* #nav-close::after {
    position: absolute;
    content: "";
    background: url(./nav_close.png)center/contain no-repeat;
    width: 32px;
    height: 118px;
    top: 200px;
    right: 85%;
} */


/*ドロワーの中身*/

#nav-content {
    position: fixed;
    z-index: 9999;
    /*最前面に*/
    overflow: auto;
    top: 0;
    right: 0;
    max-width: 250px;
    width: 100%;
    /*左側に隙間を作る（ドロワーの背景を表示）*/
    height: 100%;
    background: #3da7d1;
    /*背景色*/
    -webkit-transition: .3s ease-in-out;
    transition: .3s ease-in-out;
    /*滑らかに表示*/
    -webkit-transform: translateX(105%);
    transform: translateX(105%);
    /*右に隠しておく*/
    padding: 53px 0 75px;
}

/*チェックが入ったらもろもろ表示*/

#nav-input:checked~#nav-close {
    visibility: visible;
    /*背景を表示*/
    opacity: 1;
}

#nav-input:checked~#nav-content {
    -webkit-transform: translateX(0%);
    transform: translateX(0%);
    /*中身を表示（左へスライド）*/
    -webkit-box-shadow: 6px 0 25px rgba(0, 0, 0, .15);
    box-shadow: 6px 0 25px rgba(0, 0, 0, .15);
}

/*メニュー内容*/

#nav-content #nav-drawer-menu {
    /* padding: 0 9.210526315789474%; */
    padding-left: 0;
}

#nav-content #nav-drawer-menu>li {
    padding: 0;
    padding-right: 5%;
    text-align: center;
    border-bottom: 1px solid #ffffff;
    position: relative;
}

#nav-content #nav-drawer-menu>li:first-child a{
}
#nav-content #nav-drawer-menu>li:first-child img{
    margin: 0 auto;
}
#nav-content #nav-drawer-menu>li:first-child {
    /* border-top: 1px solid #ffffff; */
    /* background: rgb(255 255 255 / 80%); */
    /* padding: 0; */
}

#nav-content #nav-drawer-menu>li a {
    display: block;
    padding: 18px 10px;
    text-decoration: none;
    text-align: left;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
    line-height: 1.5;
    letter-spacing: 0.5px;
}

#nav-content #nav-drawer-menu>li:nth-last-of-type(2),
#nav-content #nav-drawer-menu>li:last-of-type {
    /* background: #8bc650; */
    /* width: 110%; */
    /* padding-right: 10%; */
}

.nav-drawer_icon{
    margin-bottom: -6px;
    display: inline-block;
    margin-right: 10px;
    height: 30px;
}
.nav_blog_icon {
    height: 23px;
}

#nav-content #nav-drawer-menu>li a span {
    padding-left: 5px;
}

#nav-drawer-menu .nav-drawer_icon {
    display: none;
}
/*サブメニュー関連*/


/*サブメニューのボタン表示エリア*/

#nav-content .drawer_sub_menu-open {
    position: absolute;
    right: 0;
    top: 0;
    padding: 25px 8px;
    width: 70px;
    height: 30px;
}


/*サブメニューのボタン*/

#nav-content .drawer_sub_menu-open .sub-nav-border {
    display: block;
    position: relative;
    z-index: 1;
    width: 100%;
    height: 16px;
    /*background: #ccc;*/
}

#nav-content .drawer_sub_menu-open .sub-nav-border::before,
#nav-content .drawer_sub_menu-open .sub-nav-border::after {
    position: absolute;
    content: "";
    width: 13px;
    height: 1px;
    background: #fff;
    -webkit-transition: all 0.5s 0s ease;
    transition: all 0.5s 0s ease;
}


/*サブメニューのボタン（クリック前）*/

.drawer_sub_menu-open .sub-nav-border::before {
    top: 4px;
    right: 15px;
    -webkit-transform-origin: right top;
    transform-origin: right top;
    -webkit-transform: rotate(40deg);
    transform: rotate(40deg);

}

.drawer_sub_menu-open .sub-nav-border::after {
    top: 4px;
    right: 3px;
    -webkit-transform-origin: left top;
    transform-origin: left top;
    -webkit-transform: rotate(-40deg);
    transform: rotate(-40deg);
}


/*サブメニューのボタン（クリック後）*/

#drawer_sub_menu-input:checked~.drawer_sub_menu-open .sub-nav-border::before {
    top: 0;
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(-40deg);
    transform: rotate(-40deg);
}

#drawer_sub_menu-input:checked~.drawer_sub_menu-open .sub-nav-border::after {
    top: 0;
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(40deg);
    transform: rotate(40deg);
}

/*サブメニューのボタン（クリック後）*/

#drawer_sub_menu-input02:checked~.drawer_sub_menu-open .sub-nav-border::before {
    top: 0;
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(-40deg);
    transform: rotate(-40deg);
}

#drawer_sub_menu-input02:checked~.drawer_sub_menu-open .sub-nav-border::after {
    top: 0;
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(40deg);
    transform: rotate(40deg);
}


/*サブメニューコンテンツ*/

#nav-content .drawer_sub_menu-content {
    overflow: hidden;
    -webkit-transition: all 0.8s 0s ease;
    transition: all 0.8s 0s ease;
    max-height: 0;
}


/*サブメニューコンテンツ（チェック後）*/

#drawer_sub_menu-input:checked~.drawer_sub_menu-content {
    max-height: 1000px;
    /*適当に大きな数字*/
}

/*サブメニューコンテンツ（チェック後）*/

#drawer_sub_menu-input02:checked~.drawer_sub_menu-content {
    max-height: 500px;
    /*適当に大きな数字*/
}


/*サブメニューの中身*/

#nav-content .drawer_sub_menu-lists {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    padding: 0px 0 10px 0px;
}

#nav-content .drawer_sub_menu-lists li {
    /*width: calc(100%/2 - 10px);*/
    width: 100%;
    padding: 3px 0 3px;
    /* opacity: 0.6; */
}

#nav-content #nav-drawer-menu .drawer_sub_menu-lists li a {
    color: #fff;
    font-size: 14px;
    padding: 0 20px;
}

#nav-content details {
    max-height: 1.75em;
    overflow: hidden;
    transition: all 0.2s;
}
#nav-content details[open] {
    max-height: 40vh;
    transition: all 0.4s;
}

#nav-content summary.drawer_sub_menu-lists {
    justify-content: flex-end;
    color: #fff;
    font-weight: 600;
    display: list-item;
    text-align: right;
}

#nav-content #nav-drawer-menu details .drawer_sub_menu-lists li a {
    font-size: 1.3rem;
    font-weight: 400;
}
/*===================================
スマホ用ナビドロワー↑↑
===================================*/
/*===================================
フッター↓↓
===================================*/

a.btn_link {
    background-color: #fff;
    border: 1px solid #79beda;
    display: inline-block;
    position: relative;
    text-align: center;
    font-weight: 700;
    font-size: 18px;
    margin: 0 auto;
    line-height: 60px;
    height: 60px;
    min-width: 247px;
    z-index: 1;
    border-radius: 30px;
    transition: 0.5s;
}

.btn_link::after {
    content: "";
    background:url(../img/right_arrow.png) no-repeat center center ;
    display: inline-block;
    position: relative;
    top: 3px;
    right: -7px;
    height: 17px;
    width: 27px;
    transition: 0.5s;
}
.btn_link:hover{
    background-color: #d8f0fa;
    text-shadow: 0 0 5px #fff;
}
.btn_link:hover::after {
    right: -12px;
}

a.btn_link p{
    color: #333;
    font-size: 18px;
    font-weight: 500;
    line-height: 2;
    position: relative;
    transition: 0.5s;
}
a.btn_link:hover p{
    /* font-weight: 700; */
}


a.btn_link.white_link {
    border-color: #fff;
}

.hd_info {
    max-width: 1366px;
    display: flex;
    justify-content: space-between;
    margin: 0 auto;
    width: 98%;
}

.hd_logo {
    width: fit-content;
    display: block;
}

.hd_tel_rsv {
    text-align: center;
    font-size: 14px;
    font-weight: 700;
}

.hd_tel {
    border-radius: 20px;
    background-color: rgba(61, 167, 209, 0.9);
    width: 301px;

    padding: 5px;
    color: #fff;
    margin-left: auto;

}

.hd_tel_txt a {
    border-top: solid 1px rgba(255, 255, 255, 0.6);
    width: fit-content;
    display: flex;
    align-items: baseline;
    gap: 5px;
    font-size: 36px;
    color: #fff;
    font-weight: bold;
    line-height: 1;
    margin: 0 auto;
}

.footer {
    padding: 100px 0 0;
    background-size: cover;
}
.ft_cont_item {
    display: inline-block;
    max-width: 480px;
    width: 100%;
}

.ft_cont_inner {
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    position: relative;
}

.ft_cont01 {
    margin-bottom: 40px;
}

.googlmap{
    width: 100%;
}

.ft_ttl01 img{
    display: inline-block;
    margin: 0 3px;
    vertical-align: bottom;
}
.ft_ttl01 {
    color: #333;
    font-weight: 500;
    font-size: 24px;
    line-height: 1.25;
    text-align: left;
}

.ft_googlecalendar{

}


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

.ft_clinicinfo{
}


.ft_clinicinfo_list {
    text-align: left;
    margin: 0 auto 25px;
    /* width: fit-content; */
}
.ft_clinicinfo_list li {
    color: #333;
    font-size: 18px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 7px;
    line-height: 1.5;
    margin-bottom: 5px;
}
.ft_clinicinfo_list li img {
}
.ft_clinicinfo_list .logo_parking {
    color: #3da7d1;
}

.footer .hd_tel_wrap img {
    top: 5px;
}
.footer .hd_tel_wrap {
    justify-content: center;
    margin: 10px 0;
}



.g_calendar {
    max-width: 100%;
}

.ft_areainfo {
    background: url(../img/ft_bg.jpg?01) right bottom no-repeat;
    padding: 55px 0 160px;
    margin-top: -5px;
    position: relative;
    max-width: 1500px;
    margin: 0 auto;
    width: 96%;
}

.ft_areainfo_ttl {
    color: #3da7d1;
    font-size: 20px;
    line-height: 1.376;
    text-align: center;
    margin-bottom: 35px;
    font-weight: 500;
}

.ft_areainfo_inner {
    max-width: 1000px;
    margin: 0 auto;
    width: 96%;
}

.ft_areainfo_txt {
    color: #444444;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.75;
    max-width: 1000px;
    margin: 0 auto;
    letter-spacing: 0.25px;
}

.ft_time {
    max-width: 480px;
    width: 100%;
}

.ft_time_table_wrap {
    position: relative;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
    overflow: hidden;
    margin-bottom: 5px;
}
.ft_time_table {
    width: 100%;
}
.ft_time_table thead{
    background-color: #bee6f6;
}
.ft_time_table tr {
    border-bottom: solid 1px #333;
}
.ft_time_table tr *:not(:first-child) {
    border-left: solid 1px #333;
}
.ft_time_table thead th{
    font-size: 18px;
    vertical-align: middle;
    font-weight: 500;
    color: #333;
    padding: 5px 0;
}
.ft_time_table thead th:first-of-type{
    line-height: 1;
    letter-spacing: 1px;
}
.ft_time_table tbody th{
    font-size: 18px;
    font-weight: 700;
    vertical-align: middle;
    line-height: 1;
    text-align: right;
    padding-right: 20px;
    width: 135px;
}
.ft_time_table tbody td.ft_tbl_slash{
    color: #333;

}
.ft_time_table tbody td{
    color: #3da7d1;
    font-size: 18px;
    vertical-align: middle;
    line-height: 1;
    text-align: center;
    font-weight: 700;
}
.ft_time_table tr > * {
    text-align: center;
    /* width: 21px; */
    padding: 11px 0;
    /* padding-right: 20px; */
}
.ft_time_table tr .tbl_last {
    /* padding-right: 10px; */
}

.common_tel_txt {
    font-size: 22px;
    color: #3da7d1;
    text-align: center;
}

.ft_timetable-sub {
    background-color: #707070;
    border-radius: 13px;
    color: #fff;
    font-weight: 700;
    display: inline-block;
    margin-right: 6px;
    text-align: center;
    height: 26px;
    width: 73px;
    line-height: 1.6;
}


.ft_timetable-sub_wrap {
        font-size: 18px;
    font-weight: 700;
    line-height: 2;
}
.ft_time_table_text span{
    color: var(--primary-color);
}
.ft_time_table_text {
    font-size: 18px;
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0px;
    text-align: right;
}


.tab01 {
    position: fixed;
    right: 0;
    top: 120px;
}

.tab01 img:nth-of-type(1) {
    margin-top: 10px;
}

.tab02 {
    display: none;
}


.pagetop{
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: fixed;
    right: 60px;
    bottom: 10px;
    z-index: 15000;
}
.copyright{
    color: #333;
    border-top: 1px solid #333;
    font-size: 18px;
    /* height: 35px; */
    line-height: 45px;
    text-align: center;
}




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

共通化候補？

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

.diamond_list {
}
.diamond_list li{
    font-weight: 500;
    position: relative;
    padding-left: 20px;
    letter-spacing: 0.6px;
    line-height: 1.9;
}
.diamond_list li::before {
    content: "◇ ";
    position: absolute;
    left: 0;
    color: #3da7d1;
}

.year_list {
}
.year_list li{
    display: flex;
    font-weight: 500;
    position: relative;
    letter-spacing: 0.6px;
    line-height: 1.9;
}
.year_list .year_txt {
    display: inline-block;
    min-width: 46px;
}

.blue_big_txt01 {
    color: #3da7d1;
    font-size: clamp(20px, 20 / 724 * 100vw, 24px);
    font-weight: 700;
}

.section_ttl01_wrap {
    position: relative;
    text-align: center;
    margin-bottom: 70px;
}

.section_ttl01 {
    color: #333;
    font-size: clamp(26px, 20 / 724 * 100vw, 34px);
    font-weight: 500;
}


.section_ttl01_eng {
    color: var(--secondary-color);
    font-size: 60px;
    font-family: "Hubballi";
    line-height: 0.8;
    text-align: center;
    letter-spacing: 3px;
}



.section_ttl_sub01 {
    color: #5a322b;
    font-family: "Lato";
    font-size: 18px;
}

.section_ttl_sub02 {
    color: #5a322b;
    font-size: 24px;
    font-weight: 500;
}

.section_ttl02 {
    color: #603932;
    font-size: clamp(30px, 20 / 824 * 100vw, 36px);
    font-weight: 500;
    text-align: center;
    position: relative;
}
.section_ttl02::after {
    content: "";
    background: url(../img/section_ttl02_deco.png) left center no-repeat;
    margin: auto;
    position: absolute;
    left: 0;
    right: 0;
    bottom: -15px;
    height: 8px;
    width: 46px;
}


.white_frame01 {
    background-color: #fff;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    overflow: hidden;
}

.white_frame01_ttl {
    background-color: #e15863;
    color: #fff;
    font-size: 18px;
    font-weight: 500;
    font-family: "Zen Maru Gothic";
    text-align: center;
}

.white_frame01_ttl span {
    font-size: 32px;
}


.white_frame01_slash {
    background-color: #fff;
    border-radius: 15px;
    color: #8fc31f;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 20px;
    font-family: "Zen Maru Gothic";
    text-align: center;
    max-width: fit-content;
    width: 96%;
    padding: 0 14px;
    line-height: 1.5;
    margin: 0px auto;
}

.slash_txt {
    color: #333;
    font-size: 24px;
    line-height: 1.2;
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 5px;
}


.slash_txt::before {
    content: "＼";
}
.slash_txt::after {
    content: "／";
}

.ft_tel {
    padding: 25px 15px;
    border-top: solid 1px #333;
    border-bottom: solid 1px #333;
    text-align: center;
    max-width: 980px;
    width: 98%;
    margin: 50px auto 60px;
}

a.ft_tel_txt {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    color: var(--primary-color);
    width: fit-content;
    margin: 0 auto;

    font-size: 60px;
    font-weight: bold;
    line-height: 1.2;
    text-align: center;
}

.white_frame01_inner {
    padding: 30px 20px 20px;
}



.g_calendar iframe{
    width: 100%;
    height: 480px;
}

.news_wrap {
    max-height: 480px;
    overflow-y: scroll;
}

.news_list {
    line-height: 1.7;
    text-align: left;
    font-size: 16px;
    font-weight: 500;
    padding: 0 10px;
}
.news_list .date{
    color: #3da7d1;
    position: relative;
    font-weight: 700;
}
.news_list .article{
    padding-bottom: 15px;
}
.news_list .article span{
    color: #333;
    font-weight: 700;
}
.news_list .article +.date::before {
    content: "";
    width: 100%;
    height: 1px;
    padding-top: 15px;
    border-top: solid 1px #bfbfbf;
    display: block;

}



.txt{
    color: #333;
    font-size: 16px;
    line-height: 2;
    position: relative;
}

.gnav_hd_logo {
    display: none;
}


.junbi {
    position: relative;
}

.junbi::before {
    content: "準備中";
    background-color: #aaa;
    color: #fff;
    font-size: 2rem;
    display: grid;
    justify-content: center;
    align-items: center;
    position: absolute;
    width: 100%;
    height: 100%;
}


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

　ここから1440px以下

================================*/
@media screen and (max-width: 1440px) {
    .pclg-none {
        display: block!important;
    }

    .gnav::after {
        background-size: cover;
    }
}

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

　ここから1200px以下

================================*/
@media screen and (max-width: 1200px) {
    .h1{
        letter-spacing: 0px;
        font-size: 12px;
    }

    .gnav_hd_logo {
        display: block;
    }

    #header .gnav_hd {
        display: none;
    }
    #header .gnav_hd_wrap.fixed .gnav_hd {
        display: flex;
        position: relative;
        justify-content: center;
        padding: 5px;
    }
    .gnav_hd_info {
        margin-right: 10px;
    }


    #nav-drawer {
        display: block;
        /* padding-top: 50px; */
    }
    .gnav {
        display: none;
    }
    .pagetop {
        right: 10px;
    }

    .hd_info {
        padding-right: 60px;
        width: 100%;
    }

    .hd_logo {

    }

    .hd_left {
        max-width: 420px;
        margin-left: -2px;
    }

    .hd_nav {
        background-color: #13b5b1;
        opacity: 1;
        position: fixed;
        top: 0;
        width: 100%;
        z-index: 10000;
        display: none;
    }


    .logo_sp {
        display: none;
    }

    .side_fix_wrap {
        display: none!important;
    }



    .copyright {
        padding-bottom: 90px;
    }


    .tab02 {
        display: flex;
        position: fixed;
        bottom: 0;
        right: 0;
        left: 0;
        width: 100%;
        height: 50px;
        z-index: 100;
        /* border-top: 2px solid #4f3b0b; */
    }


    .tab02_tel_txt{
        display: none;
    }
    
    #tab02 a {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 8px;
        font-weight: 500;
        font-size: 24px;
        color: #fff;
        width: 100%;
    }
    .tab02 .tab02_tel{
        /* background: left 14% center url(../img/fv_tel_icon.png) no-repeat;
        background-size: 32px; */
        background-color: #3da7d1;
        width: calc(100% / 2);
    }

    .tab02 .tab02_net{
        /* background: left 14% center url(../img/icon_rsv_w.png) no-repeat;
        background-size: 32px; */
        background-color: #3da7d1;
        width: calc(100% / 3);
        border-left: 1px solid;
    }

    .tab02 .tab02_ac{
        /* background: left 26% center url(../img/hd_access_icon_w.png) no-repeat;
        background-size: 16px; */
        background-color: #edbc32;
        width: calc(100% / 2);
        border-left: 1px solid;
    }

    .pagetop {
        right: 5px;
        bottom: 55px;
    }


    a.tab02_tel span {
        position: relative;
    }

    
    .anchor_link {
        transform: translateY(-40px);
    }

}
/*================================

　ここからTABLET/SP適用

================================*/
@media screen and (max-width: 1023px) {
	.pc-none {
		display: block!important;
	}
	.tabSp-none {
		display: none!important;
	}
    .h1{
        right: 60px;
    }
    .header {
        min-height: 0;
        background: none;
    }
    .hd_access {
        font-size: 1.8rem;
    }
    .side_fix_wrap {
        display: none;
    }
    main {
        /* padding-top: 55px; */
    }
    
    .seo-message {
        /* left: 20px; */
        margin: 0;
        padding: 0 5px;
    }

    .white_frame01_ttl span {
        /* font-size: 24px; */
    }
    .white_frame01_ttl {
        /* font-size: 16px; */
    }

    /* .anchor_link {
        padding-top: 70px !important;
        margin-top: -70px !important;
    } */

    .hd_logo {
        max-width: 220px;
    }

    .gnav_hd_inner {
        padding-left: 20px;
    }


    .hd_right {
        max-width: 430px;
        width: 100%;
    }
    
    .ft_cont01_inner {
        padding-top: 30px;
        padding-bottom: 0px;
    }

    a.header_logo_wrap img{
        width: auto;
        height: 40px;
        margin-bottom: 10px;
    }
    .timetable_img{
        margin: 0 auto;
    }
    .ft_cont02_inner {
        flex-wrap: wrap;
        justify-content: center;
    }

    .ft_googlecalendar{
        margin: 0 auto 0;
        /* height: 404px; */
        /* width: 100%; */
    }
    .ft_logo {
        margin: 0 auto;
    }
    .ft_sub_info p {
        margin: 0 10px;
    }

    .ft_clinic_img {
        position: relative;
        margin-top: 10px;
    }
    .ft_clinicinfo {
        max-width: 95%;
        /* margin: 0 auto; */
    }

    .ft_clinicinfo_list .ft_tel a{
        /* padding-left: 40px; */
    }
    .ft_clinicinfo_list .ft_address{
        margin: 10px 0;
    }

    .ft_cont_inner {
        flex-wrap: wrap;
        justify-content: center;
        gap: 20px;
        width: 96%;
    }

    .ft_clinicinfo_list li img{
        position: relative;
        top: 4px;
    }
    .ft_clinicinfo_list li {
        align-items: baseline;
        
    }

    .gnav_hd_wrap.fixed .gnav_hd_logo{
        max-width: fit-content;
    }

    .section_ttl01_wrap {
        margin-bottom: 30px;
    }

}

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

　ここからTABLETのみ適用
　※この中には基本的に書き込まないでください

================================*/
@media screen and (max-width: 1023px) and (min-width: 701px) {
	.tab-none {
		display: none!important;
	}
}

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

　ここからSP適用（広）

================================*/
@media screen and (max-width: 700px) {

	.pcTab-none {
		display: block!important;
	}
	.tabSp-none {
		display: none!important;
	}
	.sp-none {
		display: none!important;
	}

    
    .gnav_hd_info {
        display: none;
    }

    .header {
        min-height: 55px;
    }
    .h1{
        height: 55px;
        /* line-height: 2em; */
    }
    .header_tel{
        font-size: 16px;
        flex-wrap: wrap;
        justify-content: flex-start;
        align-content: center;
    }

    .header_tel span{
        font-size: 18px;
        margin-bottom: -5px;
        width: 100%;
    }
    a.header_logo_wrap{
        position: absolute;
        left: 5px;
        top: 5px;
    }

	.ft_cont02_inner{
		display: block;
	}
    .ft_clinicinfo_list{
        margin: 30px auto 20px;
        max-width: 350px;
    }
    .ft_clinic_img img{
        margin: 0 auto;
    }

    .ft_areainfo {
        background-size: 100%;
        padding-bottom: 30%;
    }

    .ft_sub_info {
        justify-content: center;
        flex-wrap: wrap;
    }
    a.btn_link {
    }
    .copyright{
        font-size: 14px;
        /* padding-bottom: 85px; */
    }

}
/*================================

　ここからSP適用(狭）

================================*/
@media screen and (max-width: 480px) {
    .txt {
        font-size: 16px;
    }
    .h1 {
    }
    .ft_sub_info p{
        margin: 5px;
    }

    .hd_logo {
        /* max-width: 171px; */
        max-width: 110px;
    }
    .hd_info {
        width: 100%;

    }

    .logo_tab {
        display: none;
    }
    .logo_sp {
        display: block;
    }
    .sp_txt-left {
        text-align: left !important;
    }

    .ft_clinicinfo_list li {
        font-size: 16px;
    }

    .seo-message {
        /* padding-right: 65px; */
        font-size: 12px;
    }

    .hd_right {
        flex: 1;
    }

    .hd_tel {
        display: none;
    }
    .hd_access img {
        padding-right: 15px;
        padding-left: 5px;
    }

    .bnr01_ttl {
        font-size: 2.2rem;
    }

    .bnr02_ttl {
        font-size: 2rem;
    }

    .bnr03_ttl {
        font-size: 1.8rem;
    }

    .section_ttl{
        font-size: 52px;
    }

    #tab02 a {
        gap: 5px;
        /* font-size: 16px; */
    }
    #tab02 a.tab02_ac{
        width: 30%;
    }
    #tab02 a.tab02_ac span{
        display: none;
    }
    
    .ft_cont_item a.btn_link {
        display: block;
        width: fit-content;
    }
    .ft_cont_item {
        display: flex;
        align-items: center;
        flex-direction: column;
    }

    .ft_googlecalendar{
        width: 95%;
    }

    .ft_clinicinfo_list .ft_address {
        font-size: 18px;
    }

    .ft_station {
        font-size: 22px;
    }

    .ft_parking {
        font-size: 22px;
    }

    .ft_areainfo_inner h2 {
        font-size: 22px;
    }
    
    .ft_areainfo_inner p{
        font-size: 14px;
    }
    .pagetop {
        /* bottom: 90px; */
    }

    .section_ttl01 {
        line-height: 1.3;
        /* font-size: 48px; */
    }
    .section_ttl01_eng{
        /* text-align: center; */
        font-size: 48px;

    }

    .ft_tel {
        padding-inline: 15px;
    }
    .common_tel_txt {
        font-size: 18px;
    }

    .slash_txt {
        font-size: 20px;
    }

    a.ft_tel_txt img{
        width: 30px;
    }
    a.ft_tel_txt {
        align-items: baseline;
        font-size: 40px;
    }

    .ft_timetable-sub_wrap {
        font-size: 14px;
    }
    
    .ft_time_table tr > * {
        padding: 2px;
        font-size: 14px !important;
        width: 30px;

    }
    .ft_time_table tbody th {
        padding: 0;
    }
    .ft_time_table tbody th {
        width: 95px;
        letter-spacing: 1px;
        padding-right: 5px;
    }
    .ft_timetable-sub {
        font-size: 14px;
        width: auto;
        height: auto;
        padding: 0 5px;
    }
    .ft_time_table_text {
        font-size: 14px;
        letter-spacing: 1px;
    }
    #header .gnav_hd_wrap.fixed .gnav_hd {
        justify-content: flex-start;
        padding-right: 57px;
        background-color: #fff;
    }

    .leaf_list li {
        margin-bottom: 20px;
    }
    .leaf_list li span {
        line-height: 2;
    }

    a.link_btn01 {
        line-height: 40px;
    }
    a.link_btn01::after {
        top: 7px;
    }


}

@media screen and (max-width: 385px) {
    .ft_clinic_img img{
        margin: 0 auto;
        padding-top: 5%;
    }

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

    a.tab02_ac{
    }
    /* a.tab02_net{
        display: none;
    } */
    .copyright{
        /* padding-bottom: 60px; */
    }
    .iso_txt {
        font-size: 1.5rem;
    }
    #tab02 a {
        /* font-size: 16px; */
        /* padding-right: 1%; */
    }

}

