@charset "utf-8";
/* CSS Document */

html {
    overflow-y: auto; /* コンテンツが溢れた時だけ出す */
    overflow-x: hidden;
	font-size: 62.5%;
}

/* -------------------------------------------
   ブレイクポイントのコントロール
------------------------------------------- */

/* 【第1段階】1200px 〜 1349px */
@media screen and (max-width: 1349px) {
    html {
        font-size: 55%; /* 1rem = 8.8px (14px相当) */
    }
}

/* 【第2段階】1080px 〜 1199px */
@media screen and (max-width: 1199px) {
    html {
        font-size: 52.5%; /* 1rem = 8.4px (13.4px相当) */
    }
}

/* 【第3段階】960px 〜 1079px */
@media screen and (max-width: 1079px) {
    html {
        font-size: 50%; /* 1rem = 8px (12.8px相当) */
    }
}

/* 【第4段階】840px 〜 959px */
@media screen and (max-width: 959px) {
    html {
        font-size: 47.5%; /* 1rem = 7.6px (12.1px相当) */
    }
}

/* 【第5段階】〜 839px：スマホ直前（限界まで小さく） */
@media screen and (max-width: 839px) {
    html {
        font-size: 45%; /* 1rem = 7.2px (11.5px相当) */
    }
}	
html.is-open {
	overflow: hidden;
}

@media print{
   /*アニメーションOFF*/
	
	.fadeUpTrigger{
        opacity: 1.0 !important;
	}

	.fadeUp{
        opacity: 1.0 !important;
	}

    
   /*印刷用CSSで適用させる定義を記述*/
    html {
        transform: scale(0.8);
        transform-origin: left top;
        width: calc(100% / 0.8);
        height: calc(100% / 0.8);
        overflow-y: auto;
    }  
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;	
	-webkit-text-size-adjust: 100%;
	/*-webkit-text-size-adjust: none;*/
	line-height: 1.5;
	color: var(--text-color);
	background: var(--bg-color);
/*	overflow: hidden;*/
	overflow-x: hidden;
	overflow-y: auto;
	/* ▼ サイト全体の句読点・記号の行頭落ちを防ぐ設定 */
    line-break: strict;
    word-break: normal;
}

/* 標準サイズ（デフォルト） */
body {
  font-size: 12px;
}

/* 拡大時（bodyに 'large-text' クラスがついた時） */
body.large-text {
  font-size: 15px;
}

/* 【第1段階】1200px 〜 1349px */
@media screen and (max-width: 1349px) {
    body { font-size: 11px; }
    body.large-text { font-size: 14px; }
}

/* 【第2段階】1080px 〜 1199px */
@media screen and (max-width: 1199px) {
    body { font-size: 10px; }
    body.large-text { font-size: 13px; }
}

/* 【第3段階】960px 〜 1079px */
@media screen and (max-width: 1079px) {
    body { font-size: 9px; }
    body.large-text { font-size: 12px; }
}

/* 【第4段階】840px 〜 959px */
@media screen and (max-width: 959px) {
    body { font-size: 8px; }
    body.large-text { font-size: 11px; }
}

/* 【第5段階】〜 839px：スマホ直前 */
@media screen and (max-width: 839px) {
    body { font-size: 7px; }
    body.large-text { font-size: 10px; }
}


/* Noto Sans JP (各種ウェイト) */
.font-noto-400 {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}

.font-noto-500 {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
}

.font-noto-700 {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
}

.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;
}

.klee-one-semibold {
  font-family: "Klee One", cursive;
  font-weight: 600;
  font-style: normal;
}

.kodchasan-semibold {
  font-family: "Kodchasan", sans-serif;
  font-weight: 600;
  font-style: normal;
}

.kodchasan-semibold-italic {
  font-family: "Kodchasan", sans-serif;
  font-weight: 600;
  font-style: italic;
}


h2, h3:not(.title), h4, h5, h6{
	transform: rotate(0.05deg);
}

*{
	margin: 0;
	padding: 0;
	box-sizing: border-box;
    word-break: break-all;
}

img {
	max-width: 100%;
	height: auto;
	border: 0;
	vertical-align: bottom;
}
.pc_hide {
	display: none !important;
}

.sp_hide {
}

a {
	color: var(--link-color);
	opacity: 1;
    transition: all 0.5s;
	text-decoration: none;
}

a {
    color: #67BF0C;
    text-decoration: underline;
}

header a,
footer a,
main.toppage a{
	color: #000;
	text-decoration: none;
}


a:hover {
	opacity: 0.6;
	text-decoration: none;
}

a.disabled{
    pointer-events: none;
}

/* 2.4.7 フォーカスの可視化: キーボード操作時のフォーカス状態を視覚的に明確にする */
/* ① まず、すべての要素のブラウザ標準フォーカス（黒線など）を一律でリセット */
a:focus,
button:focus,
input:focus,
textarea:focus {
	outline: none;
}

/* ② キーボード操作時（focus-visible）のみ、最初からオレンジの線を出す */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--focus-color) !important; /* 他の干渉を防ぐため !important を推奨 */
	outline-offset: -2px;
}

/* 2.4.1 ブロックスキップ: メインコンテンツへのスキップリンク（視覚的には隠し、フォーカス時に表示） */
.skip-link {
	position: absolute;
	top: -100px;
	left: 0;
	padding: 12px 16px;
	background: #000;
	color: #fff;
	z-index: 10000;
	text-decoration: none;
}

.skip-link:focus,
.skip-link:focus-visible {
	top: 0;
}

.skip-link {
	transform: translateY(-120%);
	transition: transform 0.2s;
}

.skip-link:focus-visible {
	transform: translateY(0);
}


h1,
h2,
h3,
h4{
	font-size: 100%;
	font-weight: 500;
}

/* iOSでのデフォルトスタイルをリセット */
input[type="submit"], input[type="button"] {
	border-radius: 0;
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	appearance: button;
	border: none;
	box-sizing: border-box;
	cursor: pointer;
}

select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: none;
    outline: none;
    background: transparent;
}


select::-ms-expand {
    display: none;
}

a.tel-link{
	pointer-events: none;
}

ol, ul {
    list-style: none;
	box-sizing: border-box;
}

#wrapper{
/*	position: relative;*/
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

:where(figure){
	margin-bottom: 0 !important;
}

/*===================================
	仕様
=====================================*/

/* 下から */

.fadeUpTrigger,
.fadeLeftTrigger{
	opacity: 0;
}


.fadeUp{
animation-name:fadeUpAnime;
animation-duration:1.0s;
animation-fill-mode:forwards;
opacity:0;
}

.fadeUp::before,
.fadeUp::after {
    animation: none !important;
}

@keyframes fadeUpAnime{
  from {
    opacity: 0;
  transform: translateY(100px);
  }

  to {
    opacity: 1;
  transform: translateY(0);
  }
}


/* 左から */

.fadeLeft{
animation-name:fadeLeftAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeLeftAnime{
  from {
    opacity: 0;
	transform: translateX(-100px);
  }

  to {
    opacity: 1;
	transform: translateX(0);
  }
}

/**/


/*===================================
	header
=====================================*/

header{
	width: 100%;
	background: #fff;
	padding: 0 35px;
	box-sizing: border-box;
	position: relative;
	transition: transform 0.3s ease, visibility 0.3s;

}


header .head_inner{
	width: 100%;
	height: 150px;
	display: flex;
	align-items: center;
}

body.large-text header .head_inner{
	height: 188px;
}

header .head_inner h1{
	width: 25.54%;/*378*/
	max-width: 378px;
}

header .head_inner h1 img{
	width: 100%;
	height: auto;
}

header .head_inner .nav_wrap{
	flex: 1;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 17px 0;
}

header .head_inner .nav_wrap .head_menu{
	width: 100%;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 0 29px;
}

header .head_inner .nav_wrap .head_menu .font-switcher{
	display: flex;
	align-items: center;
	width: 100%;
	max-width: 205px;
}

header .head_inner .nav_wrap .head_menu .font-switcher span{
	font-size: 14px;
	line-height: 1;
	color: #333333;
}

@media screen and (max-width: 1099px) {
  /* ここにスタイルを記述 */
	header .head_inner .nav_wrap .head_menu .font-switcher span{
		display: none;
	}
}

header .head_inner .nav_wrap .head_menu .font-switcher button{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 23.90%;/*49*/
	height: 34px;
	border-radius: 10px;
	background: #fff;
	font-size: 16px;
	line-height: 1;
	color: #000000;
	box-shadow: 0 0 5px rgba(116, 160, 178, 0.45);
	border: none;
	margin: 0 0 0 auto;
	position: relative;
	cursor: pointer;
}


header .head_inner .nav_wrap .head_menu .font-switcher button + button{
	font-size: 18px;
	margin-left: 25px;
}

@media screen and (max-width: 899px) {
  /* ここにスタイルを記述 */
	header .head_inner .nav_wrap .head_menu .font-switcher button{
		font-size: 13px;
	}
	header .head_inner .nav_wrap .head_menu .font-switcher button + button{
		font-size: 15px;
	}
	
}


header .head_inner .nav_wrap .head_menu .font-switcher button + button::before{
	content: '';
	background: #39ad4a;
	width: 5px;
	height: auto;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: -15px;
	z-index: 1;
}

header .head_inner .nav_wrap .head_menu .head_tel_area{
	display: flex;
	align-items: center;
	gap: 0 8px;
}

header .head_inner .nav_wrap .head_menu .head_tel_area p.txt01{
	font-size: 125%;/*15*/
	line-height: 1;
	color: #4d4d4d;
}

@media screen and (max-width: 1099px) {
  /* ここにスタイルを記述 */
	header .head_inner .nav_wrap .head_menu .head_tel_area p.txt01{
		display: none;
	}
}

header .head_inner .nav_wrap .head_menu .head_tel_area p.telnum{
	font-size: 200%;/*24*/
	line-height: 1;
	color: #000000;
	display: flex;
	align-items: center;
	white-space: nowrap;
}

header .head_inner .nav_wrap .head_menu .head_tel_area p.telnum::before{
	content: '';
	background: url("images2026/common/head_tel_ico.svg")no-repeat;
	background-size: 100% auto;
	width: 25px;
	height: auto;
	aspect-ratio: 25 / 28;
	margin-right: 6px;
}

header .head_inner .nav_wrap .head_menu .head_tel_area p.telnum a{
	pointer-events: none;
}

header .head_inner .nav_wrap .head_menu .contact_btn{
	width: 100%;
	max-width: 115px;
}

body.large-text header .head_inner .nav_wrap .head_menu .contact_btn{
	max-width: 144px;/*×1.25*/
}

header .head_inner .nav_wrap .head_menu .contact_btn a{
	display: flex;
	align-items: center;
	width: 100%;
	height: 35px;
	border: 1px solid #bebebe;
	border-radius: 5px;
	font-size: 116.67%;/*14*/
	line-height: 1;
	color: #4d4d4d;
	background-color: #fff;
	background-image: url("images2026/common/head_mail_ico.svg");
	background-repeat: no-repeat;
	background-size: 17.39% auto;/*20*/
	background-position: left 12.17% center;/*14*/
	padding-left: 39.13%;/*45*/
	box-sizing: border-box;
}

header .head_inner .nav_wrap .head_menu .sns_area{
	width: 100%;
	max-width: 92px;
}

header .head_inner .nav_wrap .head_menu .sns_area ul.sns_list{
	display: flex;
	justify-content: space-between;
}

header .head_inner .nav_wrap .head_menu .sns_area ul.sns_list li{
	width: 38.04%;/*35*/
}

header .head_inner .nav_wrap .head_menu .sns_area ul.sns_list li img{
	width: 100%;
	height: auto;
}

header .head_inner .nav_wrap nav ul.menu-root{
	display: flex;
	justify-content: flex-end;
	height: 70px;
	list-style: none; /* 追加 */
	margin-bottom: 11px;
}

body.large-text header .head_inner .nav_wrap nav ul.menu-root{
	height: 88px;
}


header .head_inner .nav_wrap nav ul.menu-root li.menu-item-has-child{
	width: 100%;
	max-width: 180px;
	height: 100%;
	border-right: 1px solid #ababab;
	box-sizing: border-box;
}

body.large-text header .head_inner .nav_wrap nav ul.menu-root li.menu-item-has-child{
	max-width: 225px;/*×1.25*/
}

header .head_inner nav ul.menu-root li.menu-item-has-child button,
header .head_inner nav ul.menu-root li.menu-item-has-child > a{
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: center;
	width: 100%;
	height: 100%;
	background: none;
	border: none;
	font-size: 125%;/*15*/
	line-height: 1.13;
	color: #333333;
	text-decoration: none;
	box-sizing: border-box;
	cursor: pointer;
	position: relative;
}

header .head_inner nav ul.menu-root li.menu-item-has-child:first-child button,
header .head_inner nav ul.menu-root li.menu-item-has-child:first-child > a,
header .head_inner nav ul.menu-root li.menu-item-has-child:nth-child(5) button,
header .head_inner nav ul.menu-root li.menu-item-has-child:nth-child(5) > a{
	padding-bottom: 5px;
}

/* --- アイコン用の疑似要素（既存のまま） --- */
header .head_inner nav ul.menu-root li.menu-item-has-child button::before,
header .head_inner nav ul.menu-root li.menu-item-has-child > a::before{
	content: '';
	background: url("images2026/common/menu_ico01.svg")no-repeat;
	background-size: contain;
	width: 29.44%;/*53*/
	height: auto;
	aspect-ratio: 107 / 79;
	position: absolute;
	top: 4px;
	left: 50%;
	transform: translateX(-50%);
}

header .head_inner nav ul.menu-root li.menu-item-has-child:nth-child(2) button::before{
	background: url("images2026/common/menu_ico02.svg")no-repeat;
	background-size: contain;
	top: -4px;
}

header .head_inner nav ul.menu-root li.menu-item-has-child:nth-child(3) button::before{
	background: url("images2026/common/menu_ico03.svg")no-repeat;
	background-size: contain;
	top: -5px;
}

header .head_inner nav ul.menu-root li.menu-item-has-child:nth-child(4) button::before{
	background: url("images2026/common/menu_ico04.svg")no-repeat;
	background-size: contain;
	top: -4px;
}

header .head_inner nav ul.menu-root li.menu-item-has-child:nth-child(5) button::before{
	background: url("images2026/common/menu_ico05.svg")no-repeat;
	background-size: contain;
	top: -2px;
}


header .head_inner nav ul.menu-root li.menu-item-has-child button::after,
header .head_inner nav ul.menu-root li.menu-item-has-child > a::after{
	content: '';
    background: #39ad4a;
    width: 97.78%;/*176*/
    height: 2px;
	margin: 0 auto;
	position: absolute;
    bottom: -11px;
    left: 0;
	right: 0;
    /*アニメーションの指定*/
    transition: all .3s;
    transform: scale(0, 1);/*X方向0、Y方向1*/
    transform-origin: center top;/*上部中央基点*/
}

/*現在地とhoverの設定*/
/* liをホバーしている時、中にあるbuttonまたはaの::afterを拡大する */
header .head_inner nav ul.menu-root li.menu-item-has-child:hover button::after,
header .head_inner nav ul.menu-root li.menu-item-has-child:hover > a::after {
    transform: scale(1, 1);
}

/*===================================
	mega-menu (新規最適化スタイル＋スライド追加)
=====================================*/

/* 基本は非表示 */
header .head_inner nav ul.menu-root li.menu-item-has-child .mega-menu[hidden] {
  display: none;
}

/* メガメニュー本体：画面幅100%でヘッダー直下に配置 */
header .head_inner nav ul.menu-root li.menu-item-has-child .mega-menu {
  width: 100%;
	background: #fff;
	box-shadow: 0 10px 10px rgba(83, 144, 165, 0.25);
	position: absolute;
	left: 0;
	top: 100%;	
	z-index: 999;
	opacity: 0;                  /* ① 最初は透明にしておく */
	visibility: hidden; /* 隠れている間は当たり判定を完全に消去する（超重要） */
	margin-top: -15px;           /* ② 本来の位置より15pxだけ上にずらしておく */
	/* ③ JavaScriptのタイマー（0.3秒）に合わせて、透明度と位置を滑らかに変化させる */
	transition: opacity 0.3s ease, margin-top 0.3s ease, visibility 0.3s ease; /* visibilityも移行対象に */
}

/* ★ここを追加！閉じているときと「全く同じ長さ」で .is-show を指定して勝たせる */
header .head_inner nav ul.menu-root li.menu-item-has-child .mega-menu.is-show {
  opacity: 1;                  /* クッキリ表示 */
	visibility: visible; /* 表示されたら当たり判定を戻す */
  margin-top: 0;               /* 上のズレを戻してスッと降ろす */
}

/* メガメニューの内側：1480pxのデザイン枠を作る */
header .head_inner nav ul.menu-root li.menu-item-has-child .mega-menu .mega-menu-inner {
  width: 100%;
	max-width: 1480px;
	min-height: 240px;	
	margin: 0 auto;
	padding: 18px 21px 2.5em;
	box-sizing: border-box;
	display: flex;
/*	justify-content: flex-end;*/
	gap: 0 70px;
}

body.large-text header .head_inner nav ul.menu-root li.menu-item-has-child .mega-menu .mega-menu-inner{
	min-height: 300px;	
}


header .head_inner nav ul.menu-root li.menu-item-has-child .mega-menu .mega-menu-inner .menu_midashi_area{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	max-width: 447px;
	background: #fbfff0;
	border-radius: 10px;
/*	margin: 0 auto 0 0;*/
}

header .head_inner nav ul.menu-root li.menu-item-has-child .mega-menu .mega-menu-inner .menu_midashi_area p.menu_midashi{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 23px 0;
	width: 100%;
	font-size: 216.67%;/*26*/
	line-height: 1;
	color: #1a9929;
}

header .head_inner nav ul.menu-root li.menu-item-has-child .mega-menu .mega-menu-inner .menu_midashi_area p.menu_midashi::before{
	content: '';
	background: url("images2026/common/megamenu_ico01.svg")no-repeat;
	background-size: 100% auto;
	width: 20.36%;/*91*/
	height: auto;
	aspect-ratio: 91 / 63;
}

header .head_inner nav ul.menu-root li.menu-item-has-child:nth-child(3) .mega-menu .mega-menu-inner .menu_midashi_area p.menu_midashi::before{
	background: url("images2026/common/megamenu_ico02.svg")no-repeat;
}

header .head_inner nav ul.menu-root li.menu-item-has-child:nth-child(4) .mega-menu .mega-menu-inner .menu_midashi_area p.menu_midashi::before{
	background: url("images2026/common/megamenu_ico03.svg")no-repeat;
}

header .head_inner nav ul.menu-root li.menu-item-has-child:nth-child(5) .mega-menu .mega-menu-inner .menu_midashi_area p.menu_midashi::before{
	background: url("images2026/common/megamenu_ico04.svg")no-repeat;
}

header .head_inner nav ul.menu-root li.menu-item-has-child .mega-menu .mega-menu-inner .submenu_list{
	width: 100%;
	max-width: 400px;
	margin-top: 15px;
}

header .head_inner nav ul.menu-root li.menu-item-has-child .mega-menu .mega-menu-inner .submenu_list p{
	width: 100%;
}

header .head_inner nav ul.menu-root li.menu-item-has-child .mega-menu .mega-menu-inner .submenu_list p a{
	display: flex;
	align-items: center;
	width: 100%;
	height: 55px;
	background: url("images2026/common/link_ico01.webp")no-repeat right 3.25% center;/*13*/
	background-size: 4.0% auto;/*16*/
	padding: 0 5.5% 0 2.75%;/*22 11*/
	box-sizing: border-box;
	font-size: 133.33%;/*16*/
	line-height: 1;
	color: #000;
	border-bottom: 1px solid #c4c4c4;
	position: relative;
}

header .head_inner nav ul.menu-root li.menu-item-has-child .mega-menu .mega-menu-inner .submenu_list p a.ex_link{
	background: url("images2026/common/ex_ico2.webp")no-repeat right 3.0% center;/*12*/
	background-size: 4.5% auto;/*18*/
}

header .head_inner nav ul.menu-root li.menu-item-has-child .mega-menu .mega-menu-inner .submenu_list p a:hover{
	opacity: 1;
	color: #49910a;
}

/* 下線のベースデザイン */
header .head_inner nav ul.menu-root li.menu-item-has-child .mega-menu .mega-menu-inner .submenu_list p a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background: #87c13f;
    transition: width 0.3s ease;
}

/* ホバー時の動き */
header .head_inner nav ul.menu-root li.menu-item-has-child .mega-menu .mega-menu-inner .submenu_list p a:hover::after {
    width: 100%;
}

/*===================================
	footer
=====================================*/

footer{
	width: 100%;
	background: #f0f9fc;
	padding: 66px 0 0;
	margin-bottom: 100px;
}

footer .foot_inner{
	width: 100%;
	max-width: 1050px;
	margin: 0 auto;
	padding: 0 25px;
	box-sizing: border-box;
}

body.large-text footer .foot_inner{
	max-width: 1313px;
}


footer .foot_inner .foot_area01{
	width: 100%;
	display: flex;
	align-items: flex-end;
	padding-bottom: 54px;
	border-bottom: 1px solid #c4c4c4;
}

footer .foot_inner .foot_area01 .foot_logo{
	width: 30.0%;
	padding-left: 5.6%;
	box-sizing: border-box;
}

footer .foot_inner .foot_area01 .foot_logo a{
	display: block;
	width: 100%;
}

footer .foot_inner .foot_area01 .foot_logo a img{
	width: 100%;
	height: auto;
}

footer .foot_inner .foot_area01 .foot_iso{
	width: 28.8%;
	display: flex;
	align-items: center;
}

footer .foot_inner .foot_area01 .foot_iso .ico{
	width: 25.69%;/*74*/
}

footer .foot_inner .foot_area01 .foot_iso .ico img{
	width: 100%;
	height: auto;
}

footer .foot_inner .foot_area01 .foot_iso p{
	flex: 1;
	padding-left: 6.25%;/*18*/
	box-sizing: border-box;
	font-size: 108.33%;/*13*/
	line-height: 1;
	letter-spacing: 0.05em;
	color: #4d4d4d;
}

footer .foot_inner .foot_area01 .foot_add{
	flex: 1;
	padding: 0 0 0 3.1%;
	box-sizing: border-box;
}

footer .foot_inner .foot_area01 .foot_add p{
	font-size: 133.33%;/*16*/
	line-height: 1.25;
	letter-spacing: 0.05em;
	color: #333333;
}

footer .foot_inner .foot_area01 .foot_add p a.tel-link{
	color: #333333;
}

footer .foot_inner .foot_area01 .foot_add p span{
	padding-left: 1.125em;/*18*/
}

/**/

footer .foot_inner .foot_area02{
	width: 100%;
	margin-top: 30px;
	display: flex;
}

footer .foot_inner .foot_area02 .foot_link_area{
	width: 31.0%;
}

footer .foot_inner .foot_area02 .foot_link_area.width-02{
	width: 39.8%;
}

footer .foot_inner .foot_area02 .foot_link_area.width-03{
	width: 29.0%;
}

footer .foot_inner .foot_area02 .foot_link_area p.parent_link{
	width: fit-content;
}

footer .foot_inner .foot_area02 .foot_link_area p.parent_link + p.parent_link{
	margin-top: 18px;
}

footer .foot_inner .foot_area02 .foot_link_area p.child_link + p.parent_link{
	margin-top: 54px;
}

footer .foot_inner .foot_area02 .foot_link_area p.parent_link a{
	display: flex;
	align-items: center;
	font-size: 125%;/*15*/
	line-height: 1;
	letter-spacing: 0.05em;
	color: #333333;
	position: relative;
}

footer .foot_inner .foot_area02 .foot_link_area p.parent_link a::before{
	content: '▶';
	font-size: 66.67%;/*10*/
	line-height: 1;
	letter-spacing: 0.05em;
	color: #67bf13;
	margin-right: 5px;
}

footer .foot_inner .foot_area02 .foot_link_area p.parent_link a::after {
    content: '';
    background: #333;
    /*線の形状*/
    width: calc(100% - 15px);
    height: 1px;
    /*絶対配置で線の位置を決める*/
    position: absolute;
    bottom: -5px;
    left: 15px;;
    /*アニメーションの指定*/
    transition: all .3s;
    transform: scale(0, 1);/*X方向0、Y方向1*/
    transform-origin: left top;/*左上基点*/
}

/*現在地とhoverの設定*/
footer .foot_inner .foot_area02 .foot_link_area p.parent_link a:hover::after {
    transform: scale(1, 1);/*X方向にスケール拡大*/
}

footer .foot_inner .foot_area02 .foot_link_area p.child_link{
	width: fit-content;
	margin: 17px 0 0 18px;
}


footer .foot_inner .foot_area02 .foot_link_area p.child_link + p.child_link{
	margin-top: 10px;
}

footer .foot_inner .foot_area02 .foot_link_area p.child_link a{
	font-size: 108.33%;/*13*/
	line-height: 1;
	letter-spacing: 0.05em;
	color: #333;
	position: relative;
}

footer .foot_inner .foot_area02 .foot_link_area p.child_link a::before{
	content: '>';
	font-size: 100%;
	line-height: 1;
	letter-spacing: 0.05em;
	color: #333;
	margin-right: 3px;
}

footer .foot_inner .foot_area02 .foot_link_area p.child_link a::after {
    content: '';
    background: #333;
    /*線の形状*/
    width: calc(100% - 13px);
    height: 1px;
    /*絶対配置で線の位置を決める*/
    position: absolute;
    bottom: -3px;
    left: 13px;;
    /*アニメーションの指定*/
    transition: all .3s;
    transform: scale(0, 1);/*X方向0、Y方向1*/
    transform-origin: left top;/*左上基点*/
}

/*現在地とhoverの設定*/
footer .foot_inner .foot_area02 .foot_link_area p.child_link a:hover::after {
    transform: scale(1, 1);/*X方向にスケール拡大*/
}

footer .foot_inner .foot_area02 .foot_link_area p.parent_link a,
footer .foot_inner .foot_area02 .foot_link_area p.child_link a{
	opacity: 1;
}

/**/

footer .foot_inner .foot_area03{
	width: 83.0%;
	margin: 68px auto 76px;
}

footer .foot_inner .foot_area03 ul.ft_bnr_list{
	list-style: none;
	display: flex;
	justify-content: space-between;
}

footer .foot_inner .foot_area03 ul.ft_bnr_list li{
	width: 23.37%;/*194*/
}

footer .foot_inner .foot_area03 ul.ft_bnr_list li a{
	display: block;
}

footer .foot_inner .foot_area03 ul.ft_bnr_list li a .bnr_img{
	width: 100%;
	
}

footer .foot_inner .foot_area03 ul.ft_bnr_list li a .bnr_img img{
	width: 100%;
	height: auto;
	filter: drop-shadow(0 0 6px rgba(116, 160, 178, 0.55));
}

footer .foot_inner .foot_area03 ul.ft_bnr_list li p.site_name{
	width: 100%;
	font-size: 108.33%;/*13*/
	line-height: 1;
	letter-spacing: 0.05em;
	color: #4d4d4d;
	text-align: center;
	margin-top: 10px;
	position: relative;
}

footer .foot_inner .foot_area03 ul.ft_bnr_list li p.site_name::before{
	content: '';
	background: url("images2026/common/ex_ico.webp")no-repeat;
	background-size: 100% auto;
	width: 7.73%;/*15*/
	height: auto;
	aspect-ratio: 15 / 16;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 0;
}

/**/

footer .copyright{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 75px;
	background: #67bf13;
}

footer .copyright p{
	font-size: 108.33%;/*13*/
	line-height: 1;
	letter-spacing: 0.1em;
	color: #fff;
}

/*===================================
	.floatingBnr
=====================================*/

.floatingBnr {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: rgba(255, 255, 255, 0.73);
  z-index: 100;
  
  /* 追加：初期状態を隠す */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* 表示条件を満たしている場合 */
.floatingBnr.is-show {
    opacity: 1;
    visibility: visible;
}

/* スクロール中（停止判定待ち）は強制的に消す */
.floatingBnr.is-scrolling {
    opacity: 0;
    visibility: hidden;
}
.floatingBnr .nav_inner{
	width: 100%;
	max-width: 1486px;
	padding: 0 25px;
	box-sizing: border-box;
	margin: 0 auto;
}

.floatingBnr .nav_inner ul.f_bnr_list{
	width: 100%;
	height: 100px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.floatingBnr .nav_inner ul.f_bnr_list li{
	width: 23.96%;/*344*/
}

.floatingBnr .nav_inner ul.f_bnr_list li.tel_btn a{
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px 0;
	width: 100%;
	height: 70px;
	border-radius: 15px;
	border: 2px solid #39ad4a;
	background-color: #fff;
	background-image: url("images2026/common/fb_tel_ico.webp");
	background-repeat: no-repeat;
	background-size: 16.57% auto;/*57*/
	background-position: left 3.20% center;/*11*/
	padding-left: 23.26%;/*80*/
	box-sizing: border-box;
	text-decoration: none;
}

.floatingBnr .nav_inner ul.f_bnr_list li.tel_btn a p.tel_small_txt{
	font-size: 1.5rem;
	line-height: 1;
	letter-spacing: -0.05em;
	color: #14631d;
	padding-left: 8px;
	box-sizing: border-box;
}

.floatingBnr .nav_inner ul.f_bnr_list li.tel_btn a p.tel_txt{
	font-size: 3.1rem;
	line-height: 1;
	color: #000;
}

@media screen and (max-width: 1450px) {
	.floatingBnr .nav_inner ul.f_bnr_list li.tel_btn a p.tel_small_txt{
		font-size: 1.2rem;
	}
	
	.floatingBnr .nav_inner ul.f_bnr_list li.tel_btn a p.tel_txt{
		font-size: 2.5rem;
	}
}

@media screen and (max-width: 900px) {
	.floatingBnr .nav_inner ul.f_bnr_list li.tel_btn a p.tel_small_txt{
		font-size: 1.0rem;
	}
	
	.floatingBnr .nav_inner ul.f_bnr_list li.tel_btn a p.tel_txt{
		font-size: 2.2rem;
	}
}

.floatingBnr .nav_inner ul.f_bnr_list li.modal_btn button {
	font: inherit;
	border: none;
	cursor: pointer;
	
	/* レイアウトの基礎 */
	display: flex;
	flex-direction: column;
	justify-content: center; /* 縦方向の中央寄せ */
	
	width: 100%;
	height: 70px;
	border-radius: 15px;
	background-color: rgba(233,90,36,0.85);
	background-image: url("images2026/common/modal_ico.webp");
	background-repeat: no-repeat;
	background-size: 24px auto; /* 数値指定の方が管理しやすいです */
	background-position: right 16px center;
	box-sizing: border-box;
	position: relative;
	transition: opacity 0.3s ease;
}

.floatingBnr .nav_inner ul.f_bnr_list li.modal_btn button:hover {
	opacity: 0.6;
}

.floatingBnr .nav_inner ul.f_bnr_list li.modal_btn.btn01 button {
	padding-left: 33.43%;/*115*/
}

.floatingBnr .nav_inner ul.f_bnr_list li.modal_btn.btn02 button {
	padding-left: 30.52%;/*90*/
	background-color: rgba(0,113,180,0.85);
}

.floatingBnr .nav_inner ul.f_bnr_list li.modal_btn.btn03 button {
	padding-left: 33.43%;/*115*/
	background-color: rgba(41,163,218,0.85);
}

.floatingBnr .nav_inner ul.f_bnr_list li.modal_btn button::before {
	content: '';
	background: url("images2026/common/mb_ico01.webp")no-repeat;
	background-size: 100% auto;
	width: 18.31%;/*63*/
	height: auto;
	aspect-ratio: 63 / 52;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: 8.43%;/*29*/
	z-index: 1;
}

.floatingBnr .nav_inner ul.f_bnr_list li.modal_btn.btn02 button::before {
	background: url("images2026/common/mb_ico02.webp")no-repeat;
	background-size: 100% auto;
	width: 18.02%;/*62*/
	aspect-ratio: 62 / 43;
	left: 5.52%;/*19*/
}

.floatingBnr .nav_inner ul.f_bnr_list li.modal_btn.btn03 button::before {
	background: url("images2026/common/mb_ico03.webp")no-repeat;
	background-size: 100% auto;
	width: 19.48%;/*67*/
	aspect-ratio: 67 / 51;
	left: 10.17%;/*35*/
}

.floatingBnr .nav_inner ul.f_bnr_list li.modal_btn button .text-wrapper {
	width: fit-content;
	text-align: center;
}

.floatingBnr .nav_inner ul.f_bnr_list li.modal_btn button p.jp_txt{
	font-size: 2.4rem;
	line-height: 1;
	color: #fff;
}

.floatingBnr .nav_inner ul.f_bnr_list li.modal_btn button p.en_txt{
	font-size: 1.5rem;
	line-height: 1;
	letter-spacing: 0.05em;
	color: #fff;
	margin-top: 4px;
}

@media screen and (max-width: 1450px) {
	.floatingBnr .nav_inner ul.f_bnr_list li.modal_btn button p.jp_txt{
		font-size: 1.9rem;
	}
	
	.floatingBnr .nav_inner ul.f_bnr_list li.modal_btn button p.en_txt{
		font-size: 1.2rem;
	}
}

@media screen and (max-width: 900px) {
	.floatingBnr .nav_inner ul.f_bnr_list li.tel_btn a p.tel_small_txt{
		font-size: 1.6rem;
	}
	
	.floatingBnr .nav_inner ul.f_bnr_list li.tel_btn a p.tel_txt{
		font-size: 1.0rem;
	}
}




/* モーダル背景（62%透過の黒） */
.modal {
  /* 初期状態 */
  display: flex; /* アニメーションのため常にflexにしておく */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.62);
  z-index: 9999;
  justify-content: center;
  align-items: center;
  
  /* アニメーション設定 */
  opacity: 0;           /* 透明 */
  visibility: hidden;   /* 非表示（マウスイベントも無効） */
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* 表示された時 */
.modal.is-active {
  opacity: 1;
  visibility: visible;
}

/*
.modal {
  opacity: 1 !important;
  visibility: visible !important;
}
*/

/* モーダルの中身 */
.modal .modal-content {
	width: 100%;
	max-width: 1000px;
	min-height: 525px;
	margin: 0 auto;
	padding: 21px 0 31px;
	box-sizing: border-box;
	background: rgba(255,255,255,0.9);
	border-radius: 10px;
	position: relative;
}

body.large-text .modal .modal-content{
	max-width: 1250px;
}



/* 閉じるボタン */
.modal .modal-content .close-btn {
	width: 5.6%;
	height: auto;
	aspect-ratio: 1 / 1;
	background: url("images2026/common/modal_close.svg")no-repeat;
	background-size: 100% auto;
	cursor: pointer;
	border: none;
	font-size: 0;
	position: absolute;
	top: 32px;
	right: 1.4%;
}

.modal#modal-medical .modal-content .close-btn {
	background: url("images2026/common/modal_close02.svg")no-repeat;
}

.modal#modal-recruitment .modal-content .close-btn {
	background: url("images2026/common/modal_close03.svg")no-repeat;
}

.modal .modal-content .close-btn::after {
	content: '閉じる';
	width: 100%;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;	
	font-size: 1.6rem;
	line-height: 1;
	color: #333333;
	text-align: center;
	position: absolute;
	bottom: -10px;
	transform: translateY(100%);
	left: 0;
}

.modal .modal-content .modal-body{
	width: 89.1%;
	margin-left: 2.5%;
}

.modal .modal-content .modal-body .modal_head{
	display: flex;
	align-items: center;
	width: 100%;
	height: 104px;
	border-radius: 19px;
	background-color: #e95a24;
}

.modal#modal-medical .modal-content .modal-body .modal_head{
	background-color: #0071b4;
}

.modal#modal-recruitment .modal-content .modal-body .modal_head{
	background-color: #29a3da;
}

.modal .modal-content .modal-body .modal_head .txt_wrap{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
}

.modal .modal-content .modal-body .modal_head .txt_wrap::before{
	content: '';
	background: url("images2026/common/mb_ico01.svg")no-repeat;
	background-size: 100% auto;
	width: 7.07%;/*63*/
	height: auto;
	aspect-ratio: 184 / 150;
	margin-right: 1.80%;/*16*/
}

.modal#modal-medical .modal-content .modal-body .modal_head .txt_wrap::before {
	background: url("images2026/common/mb_ico02.svg")no-repeat;
	background-size: 100% auto;
	aspect-ratio: 219 / 150;
}

.modal#modal-recruitment .modal-content .modal-body .modal_head .txt_wrap::before {
	background: url("images2026/common/mb_ico03.svg")no-repeat;
	background-size: 100% auto;
	aspect-ratio: 196 / 150;
}


.modal .modal-content .modal-body .modal_head .txt_wrap .txt_inn p.jp_txt{
	font-size: 250%;/*30*/
	line-height: 1;
	color: #fff;
}

.modal .modal-content .modal-body .modal_head .txt_wrap .txt_inn p.en_txt{
	margin-top: 8px;
	font-size: 125%;/*15*/
	line-height: 1;
	letter-spacing: 0.05em;
	color: #fff;
}

.modal .modal-content ul.modal_menu{
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 28px 0;
	width: 100%;
	margin-top: 25px;
}

.modal .modal-content ul.modal_menu li{
	width: 48.26%;/*430*/
}

.modal .modal-content ul.modal_menu li a{
	display: flex;
	align-items: center;
	width: 100%;
	height: 97px;
	border-radius: 15px;
	background-color: #fff;
	background-image: url("images2026/common/md_link_ico01.webp");
	background-repeat: no-repeat;
	background-size: 5.58% auto;/*24*/
	background-position: right 5.58% center;/*24*/
	filter: drop-shadow(0 0 5px rgba(116, 160, 178, 0.55));
	padding-left: 30.70%;/*132*/
	box-sizing: border-box;
	font-size: 150%;/*18*/
	line-height: 1.22;
	color: #000000;
	text-decoration: none;
	position: relative;
}

.modal#modal-medical .modal-content ul.modal_menu li a{
	background-image: url("images2026/common/md_link_ico02.webp");
}

.modal#modal-recruitment .modal-content ul.modal_menu li a{
	background-image: url("images2026/common/md_link_ico03.webp");
}

.modal .modal-content ul.modal_menu li a::before{
	content: '';
	background: url("images2026/common/md_menu_ico01.webp")no-repeat;
	background-size: 100% auto;
	width: 25.81%;/*111*/
	height: auto;
	aspect-ratio: 111 / 81;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: 1.86%;/*8*/
	z-index: 1;
}

.modal#modal-outpatient .modal-content ul.modal_menu li:nth-child(2) a::before{
	background: url("images2026/common/md_menu_ico02.webp")no-repeat;
	background-size: 100% auto;
}

.modal#modal-outpatient .modal-content ul.modal_menu li:nth-child(3) a::before{
	background: url("images2026/common/md_menu_ico03.webp")no-repeat;
	background-size: 100% auto;
}

.modal#modal-outpatient .modal-content ul.modal_menu li:nth-child(4) a::before{
	background: url("images2026/common/md_menu_ico04.webp")no-repeat;
	background-size: 100% auto;
}

.modal#modal-outpatient .modal-content ul.modal_menu li:nth-child(5) a::before{
	background: url("images2026/common/md_menu_ico05.webp")no-repeat;
	background-size: 100% auto;
}

.modal#modal-outpatient .modal-content ul.modal_menu li:nth-child(6) a::before{
	background: url("images2026/common/md_menu_ico06.webp")no-repeat;
	background-size: 100% auto;
}

.modal#modal-medical .modal-content ul.modal_menu li:nth-child(1) a::before{
	background: url("images2026/common/md_menu_ico07.webp")no-repeat;
	background-size: 100% auto;
}

.modal#modal-medical .modal-content ul.modal_menu li:nth-child(2) a::before{
	background: url("images2026/common/md_menu_ico08.webp")no-repeat;
	background-size: 100% auto;
}

.modal#modal-medical .modal-content ul.modal_menu li:nth-child(3) a::before{
	background: url("images2026/common/md_menu_ico09.webp")no-repeat;
	background-size: 100% auto;
}

.modal#modal-medical .modal-content ul.modal_menu li:nth-child(4) a::before{
	background: url("images2026/common/md_menu_ico10.webp")no-repeat;
	background-size: 100% auto;
}

.modal#modal-medical .modal-content ul.modal_menu li:nth-child(5) a::before{
	background: url("images2026/common/md_menu_ico11.webp")no-repeat;
	background-size: 100% auto;
}

.modal#modal-recruitment .modal-content ul.modal_menu li:nth-child(1) a::before{
	background: url("images2026/common/md_menu_ico12.webp")no-repeat;
	background-size: 100% auto;
}

.modal#modal-recruitment .modal-content ul.modal_menu li:nth-child(2) a::before{
	background: url("images2026/common/md_menu_ico13.webp")no-repeat;
	background-size: 100% auto;
}

.modal#modal-recruitment .modal-content ul.modal_menu li:nth-child(3) a::before{
	background: url("images2026/common/md_menu_ico14.webp")no-repeat;
	background-size: 100% auto;
}

.modal#modal-recruitment .modal-content ul.modal_menu li:nth-child(4) a::before{
	background: url("images2026/common/md_menu_ico15.webp")no-repeat;
	background-size: 100% auto;
}

.modal#modal-recruitment .modal-content ul.modal_menu li:nth-child(5) a::before{
	background: url("images2026/common/md_menu_ico16.webp")no-repeat;
	background-size: 100% auto;
}

/*===================================
	.totop
=====================================*/

.totop{
	display: none;
	width: 4.53%;/*67*/
	max-width: 67px;
	position: fixed;
	bottom: 132px;
	right: 12px;
	z-index: 100;
}

.totop img{
	width: 100%;
	height: auto;
	filter: drop-shadow(0 0 5px rgba(116, 160, 178, 0.55));
}


/*===================================
	旧サイトから引継ぎ
=====================================*/


ol{
	text-indent:1em;
}

.mb0{
	margin-bottom:0px !important;
}

#bn_right{
	width:265px;
	margin:0px auto;
	overflow:hidden;
	list-style:none;
	display:block;
	/*padding-bottom:80px;*/
}

#bn_right li{
	background-repeat:no-repeat;
	background-position:left top;
	margin-bottom:6px;
}

#bn_right li a{
	display:block;
	transition: all 0s;
}

#bn_right li a span{
	display:none;
}

#bn_right li a:hover{
	background-position:right top;
}

#bn01 a{
	background-image:url(tmpl/image/bn_iryo.png);
	width:257px;
	height:56px;
}

#bn02 a{
	background-image:url(tmpl/image/bn_rec.png);
	width:257px;
	height:56px;
}

#bn03 a{
	background-image:url(tmpl/image/bn_new.png);
	width:257px;
	height:56px;
}

#bn04 a{
	background-image:url(tmpl/image/bn_muryo.png);
	width:257px;
	height:56px;
}

#bn05 a{
	background-image:url(tmpl/image/bn_seikyo.png);
	width:259px;
	height:58px;
}

#bn06 a{
	background-image:url(tmpl/image/bn_jissyu.png);
	width:259px;
	height:58px;
}

#bn07 a{
	background-image:url(tmpl/image/bn_shogaku.png);
	width:259px;
	height:58px;
}

#bn08 a{
	background-image:url(tmpl/image/bn_wata.png);
	width:257px;
	height:56px;
}

#bn09 a{
	background-image:url(tmpl/image/bn_media.png);
	width:257px;
	height:63px;
}

#main_container{
	padding-bottom: 3em;
}