:root {
	--c-black: #172932;
	--c-bgreen: #00B0AA;
	--c-green: #00A83B;
	--c-ygreen: #BFE457;
	--c-palegreen: #B3DFC1;
	--c-lightgreen: #CFEBD9;
	--c-blue: #107aca;
	--c-lightblue: #D4EBF0;
	--c-red: #E50000;
	--c-orange: #ED6C00;
	--c-brown: #763600;
	--c-pink: #c427a4;
	--c-violet: #C050B5;
	--c-paleorange: #ffd4b1;
	--c-yellow: #FFEB00;
	--c-menu: #ffffff;
	--c-gray: #626262;
	--c-gray1: #CBD4D9;
	--c-gray2: #e1e6e9;
	--c-palegray: #f4f6f7;
	--c-footer: #efecda;
	--c-khaki: #a2c479;

	/*375-1440*/
	--ss: clamp(0.125rem, 0.081rem + 0.188vw, 0.25rem);
	/*4px-2px*/
	--s1: clamp(0.25rem, 0.162rem + 0.376vw, 0.5rem);
	/*8px-4px*/
	--s2: clamp(0.5rem, 0.324rem + 0.751vw, 1rem);
	/*16px-8px*/
	--s3: clamp(0.75rem, 0.486rem + 1.127vw, 1.5rem);
	/*24px-12px*/
	--s4: clamp(1rem, 0.648rem + 1.502vw, 2rem);
	/*32px-16px*/
	--s5: clamp(1.25rem, 0.81rem + 1.878vw, 2.5rem);
	/*40px-20px*/
	--s6: clamp(1.5rem, 0.972rem + 2.254vw, 3rem);
	/*48px-24px*/
	--s7: clamp(1.75rem, 1.134rem + 2.629vw, 3.5rem);
	/*56px-28px*/
	--s8: clamp(2rem, 1.296rem + 3.005vw, 4rem);
	/*64px-32px*/
	--s9: clamp(2.25rem, 1.458rem + 3.38vw, 4.5rem);
	/*72px-36px*/
	--s10: clamp(2.5rem, 1.62rem + 3.756vw, 5rem);
	/*80px-40px*/

	--f48: clamp(2.063rem, 1.732rem + 1.408vw, 3rem);
	/*48px-33px*/
	--f36: clamp(1.625rem, 1.405rem + 0.939vw, 2.25rem);
	/*36px-26px*/
	--f32: clamp(1.438rem, 1.239rem + 0.845vw, 2rem);
	/*32px-23px*/
	--f28: clamp(1.313rem, 1.158rem + 0.657vw, 1.75rem);
	/*28px-21px*/
	--f26: clamp(1.25rem, 1.118rem + 0.563vw, 1.625rem);
	/*26px-20px*/
	--f24: clamp(1.188rem, 1.077rem + 0.469vw, 1.5rem);
	/*24px-19px*/
	--f22: clamp(1.125rem, 1.037rem + 0.376vw, 1.375rem);
	/*22px-18px*/
	--f20: clamp(1.063rem, 0.996rem + 0.282vw, 1.25rem);
	/*20px-17px*/
	--f18: clamp(0.938rem, 0.871rem + 0.282vw, 1.125rem);
	/*18px-15px*/
	--f16: clamp(0.875rem, 0.831rem + 0.188vw, 1rem);
	/*16px-14px*/
	--f14: clamp(0.75rem, 0.706rem + 0.188vw, 0.875rem);
	/*14px-12px*/
	--f12: clamp(0.625rem, 0.581rem + 0.188vw, 0.75rem);
	/*12px-10px*/

	--2-1: 2;
	--3-1: 3;
	--3-2: 3;
	--4-2-1: 4;
	--4-2: 4;
	--6: 6;

	@media (max-width: 1000px) {
		--3-1: 2;
		--4-2-1: 2;
	}

	@media (max-width: 767px) {
		--2-1: 1;
		--3-1: 1;
		--3-2: 2;
		--4-2-1: 1;
		--6: 4;
	}
	
	@media (max-width: 600px) {
		--4-2: 2;
		--6: 3;
	}

}

.mts {
	margin-top: var(--ss) !important;
}

.mt1 {
	margin-top: var(--s1) !important;
}

.mt2 {
	margin-top: var(--s2) !important;
}

.mt3 {
	margin-top: var(--s3) !important;
}

.mt4 {
	margin-top: var(--s4) !important;
}

.mt5 {
	margin-top: var(--s5) !important;
}

.mt6 {
	margin-top: var(--s6) !important;
}

.mt7 {
	margin-top: var(--s7) !important;
}

.mt8 {
	margin-top: var(--s8) !important;
}

.mt9 {
	margin-top: var(--s9) !important;
}

.mt10 {
	margin-top: var(--s10) !important;
}

.ml1 {
	margin-left: var(--s1) !important;
}

.ml2 {
	margin-left: var(--s2) !important;
}

.ml3 {
	margin-left: var(--s3) !important;
}



.gap3 {
	display: grid;
	gap: var(--s3);
}

.gap4 {
	display: grid;
	gap: var(--s4);
}

.gap5 {
	display: grid;
	gap: var(--s5);
}

.gap6 {
	display: grid;
	gap: var(--s6);
}

.gap7 {
	display: grid;
	gap: var(--s7);
}

.gap8 {
	display: grid;
	gap: var(--s8);
}

.f12 {
	font-size: var(--f12);
}

.f14 {
	font-size: var(--f14);
}

.f16 {
	font-size: var(--f16);
}

.f18 {
	font-size: var(--f18);
}

.f20 {
	font-size: var(--f20);
}

.f22 {
	font-size: var(--f22);
}

.f24 {
	font-size: var(--f24);
}

.f28 {
	font-size: var(--f28);
}

.f32 {
	font-size: var(--f32);
}

.f36 {
	font-size: var(--f36);
}

.f48 {
	font-size: var(--f48);
}

.large {
	font-size: 1.2em;
}

.larger {
	font-size: 1.6em;
}

.largest {
	font-size: 2em;
}

.small {
	font-size: 0.8em;
}

.smaller {
	font-size: 0.6em;
}

.smallest {
	font-size: 0.4em;
}

.al {
	text-align: left;
}

.ac {
	text-align: center;
}

.ar {
	text-align: right;
}

img.radius,
figure.radius img {
	border-radius: var(--s2);
}

.bullets {
	display: grid;
	grid-template-columns: auto 1fr;
}

.bullets>* {
	display: grid;
	grid-template-columns: subgrid;
	grid-column: span 2;
	column-gap: .25em;
}

.bullet {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: .25em;
}

.red {
	color: var(--c-red) !important;
}

.orange {
	color: var(--c-orange);
}

.blue {
	color: var(--c-blue) !important;
}

.green {
	color: var(--c-green) !important;
}

.bold{
	font-weight: 600;
}

.scroll_x {
	padding-bottom: 20px;
	overflow-x: auto;
	/* border: 1px solid red; */
}


[class^="icon-"]._turn45:before, [class*=" icon-"]._turn45:before {
	transform: rotate(90deg);	
}

/* --------------------------------------------------
	Resetting default margin and padding
-------------------------------------------------- */

/* !HTML5 elements
---------------------------------------------------------- */
header,
footer,
nav,
section,
aside,
article {
	display: block;
}

/* !Reseting
---------------------------------------------------------- */
* {
box-sizing: border-box;
}

body {
	font-family: "Noto Sans JP", sans-serif;
	font-size: var(--f16);
	line-height: 1.7;
	font-weight: 400;
	color: var(--c-black);
	-webkit-text-size-adjust: none;
	font-feature-settings: "palt";
	letter-spacing: 0.1em;
}


body,
div,
pre,
p,
blockquote,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
form,
fieldset,
th,
td,
input,
a,
textarea,
select,
span,
nav,
section,
header,
figure {
	margin: 0;
	padding: 0;
}

input,
textarea,
select {
	margin: 0;
	font-size: 100%;
	appearance: none;
	-webkit-appearance: none;
	border: none;
	outline: none;
}

label {
	cursor: pointer;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
	font-size: 100%;
}

fieldset,
img {
	border: 0;
}

img {
	vertical-align: top;
	max-width: 100%;
}

address,
caption,
cite,
code,
dfn,
th,
var {
	font-style: normal;
	font-weight: normal;
}

ol,
ul {
	list-style: none;
}

q:after,
q:before {
	content: '';
}

a,
input {
	/* outline: none; */
}

abbr,
acronym {
	border: 0;
}


html.html-lock {
	overflow: hidden;
	touch-action: none;
}

em,
.inb {
	font-style: normal;
	display: inline-block;
}

figure {
	text-align: center;
	display: block;
}


/* !Layout
---------------------------------------------------------- */
/* html { overflow-y: scroll;}
body { }
@media print {
	html,
	html body { *zoom: 0.65;}
} */


/* link
------------------------------------------------ */
a {
	color: var(--c-black);
	text-decoration: none;
	transition: all 0.3s !important;
}

a.link {
	color: var(--c-green);
	font-weight: 600;
	cursor: pointer;
}

/* .op,
.op a,
.op img,
.op input {
	-webkit-transition: opacity 0.3s ease-out;
	-moz-transition: opacity 0.3s ease-out;
	-ms-transition: opacity 0.3s ease-out;
	transition: opacity 0.3s ease-out;
	-webkit-backface-visibility: hidden;
	-webkit-transform-style: preserve-3d;
}
.op:hover,
.op a:hover,
.op:hover img,
.op:hover input {

} */

.inner {
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 20px;
}

article {
	padding: 30px 0 0;
	position: relative;
}

@media (max-width: 767px) {
	article {
		padding: 0;
	}
}

.contents {
	padding: 80px 0;
}

@media (max-width: 767px) {
	.contents {
		padding: 30px 0;
	}
	.sp_hidden{
		display: none;
	}
}



/* header
----------------------------------------------- */
#header {
	position: fixed;
	background: #fff;
	left: 0;
	top: 0;
	width: 100%;
	transition: all 0.3s !important;
	-moz-transition: all 0.3s !important;
	/* Firefox */
	-webkit-transition: all 0.3s !important;
	/* Chrome&Safari */
	z-index: 5000;
	font-weight: bold;
	line-height: 1.3;
	box-shadow: 0px 20px 20px 0 rgba(0, 0, 0, 0.05);
}

#header ._inner1 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	border-bottom: 1px solid var(--c-gray1);
}

#header ._inner1 ul {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr;
	height: 100%;
	letter-spacing: 0;
	font-size: clamp(0.625rem, 0.493rem + 0.563vw, 1rem); /*16px-10px*/
	/*SP*/
	@media (max-width: 769px) {
		grid-template-columns: 2fr 1fr 1fr;
	}
}

#header ._inner1 ul li {
	display: block;
	height: 100%;
}

#header ._inner1 ul li a {
	height: 100%;
	display: grid;
	place-content: center;
	position: relative;
	text-align: center;
	padding: 0 .5em;
}

#header ._inner1 ul li._nav_contact a {
	border-left: 1px solid var(--c-gray2);
	background-image: url(/common/images/common/inq_img.png);
	background-repeat: no-repeat;
	background-position: bottom right;
	padding-right: 20%;
	background-size: 20%;
	background-color: var(--c-lightgreen);
	
	@media (min-width: 1000px) {
		background-position: top right;
		background-size: auto;
	}
	/*SP*/
	@media (max-width: 500px) {
		padding-right: 25%;
		background-size: 28%;
	}
	
}

#header ._inner1 ul li._nav_emergency a {
	background-color: var(--c-red);
	color: #fff;
}

#header ._inner1 ul li._nav_portal a {
	background-color: var(--c-green);
	color: #fff;
}

@media (min-width: 768px) {
#header ._inner1 ul li._nav_portal a span:before{
	font-family: saisan;
	content: "\e834";
	font-weight: normal;
	margin-right: 0.25em;	
}

#header ._inner1 ul li._nav_emergency a span:before{
	font-family: saisan;
	content: "\e833";
	font-weight: normal;
	margin-right: 0.25em;	
}
}



#header ._inner1 ul li._nav_portal a {
	background-color: var(--c-green);
	color: #fff;
}

#header .header_logo img {
	display: inline-block;
	padding-top: 3px;
	height: 50px;
	/*SP*/
	@media (max-width: 767px) {
		height: 40px;
	}
}

#header .header_logo a {
	display: inline-grid;
	place-content: center;
	padding: 5px 2vw;
	/* border: 1px solid red; */
}

#header ._inner2 ul li a[href^="http"]::after {
	font-family: saisan;
	content: "\e866";
	margin-left: 0.25em;
	color: var(--c-green);
}

.after-none::after {
	content: "";
	display: none;
}

#header ._inner1 ul li a.current::after{
	content: "";
	position: absolute;
	bottom: 2px;
	left: 5%;
	width: 90%;
	height: 3px;
	border-radius: 4px;
	background-color: var(--c-green);
}

#header ._inner1 ul li a.current::after {
	bottom: 10%;
	left: 15%;
	width: 70%;
}

#header ._inner1 ul li._nav_contact a.current::after {
	left: 7%;
}

#header ._inner1 ul li a.current::after{
	background-color: #fff;
}

#header ._inner2 ul li {
	position: relative;
}

#header .inner {
	max-width: none;
}

/*PC*/
@media (min-width: 768px) {
	#header ._inner2 > ul {
		display: flex;
		justify-content: center;
		align-items: center;
		font-size: clamp(0.625rem, 0.493rem + 0.563vw, 1rem); /*16px-10px*/
		/* border: 1px solid red; */
	}
	
	#header ._inner2 ul li a {
		display: inline-block;
		padding: .25em 1em;
		position: relative;
	}
	
	#header ._inner2>ul>li>a {
		padding: .6em 1em;
	}
	
	#header ._inner2 ul._submenu {
		columns: 3;
		column-gap: 2em;
		border-top: 1px solid var(--c-gray1);
		background-color: #fff;
		position: fixed;
		left: 0;
		z-index: 500;
		width: 100%;
		display: none;
		padding: var(--s3) 10%;
		box-shadow: 0px 12px 10px 0 rgba(0, 0, 0, 0.05);
	}
	
	#header ._inner2 li.mn_toshi-gas:hover>ul._submenu {
		columns: 1;
		display: grid;
		gap: 1em 1em;
		grid-template-columns: repeat(3, 1fr);
	}
	
	/* #header ._inner2 li.mn_toshi-gas:hover>ul._submenu > *:first-child{
		text-align: center;
		grid-column: 1/4;
		padding-bottom: 1em;
		border-bottom: 1px solid var(--c-gray2);
	} */
	
	/* #header ._inner2 li.mn_toshi-gas:hover>ul._submenu > *:last-child {
		text-align: center;
		grid-column: 1/4;
		padding-top: 1em;
		border-top: 1px solid var(--c-gray2);
	} */

	#header ._inner2>ul>li:hover>ul._submenu {
		display: block;
	}
	
	#header ._inner2 a:hover{
		color: var(--c-green);
	}
	
	#header ._inner2 ul._submenu ul {
		margin-left: 2em;
		font-size: var(--f14);
		font-weight: normal;
	}
	
	#header ._inner2 ul._submenu > li{
		break-inside: avoid;
	}
	
	#header ._inner2 .inner>li:not(._need){
		display: none;	
	}
	
	#header ._inner2 ul li._need.current > a::after {
		content: "";
		position: absolute;
		bottom: 2px;
		left: 5%;
		width: 90%;
		height: 3px;
		border-radius: 4px;
		background-color: var(--c-green);
	}
	
	#header ._inner2>ul>li+li::after {
		content: "";
		position: absolute;
		top: 20%;
		left: 0;
		width: 1px;
		height: 60%;
		background-color: var(--c-gray1);
	}
	
	#header .menuBtn {
		display: none;
	}
	
	
}

/*SP*/
@media (max-width: 767px) {
	#header ._inner2 {
		display: none;
	}
	
	.is-menuOpen #header ._inner2 {
		display: block;
	}
	
	#header ._inner1 {
		grid-template-columns: 1fr 2fr 70px;
		border-bottom: 2px solid var(--c-green);
	}

	/* #header ._inner1 ul {
		display: none;
	} */
	
	#header ._inner2 .inner {
		margin: 0;
		padding: 0;
		overflow-y: scroll;
		height: 100%;
	}
	
	#header ._inner2 ul {
		padding-left: .5em;	
	}
	
	#header ._inner2 ul li:has(ul){
		/* background-color: var(--c-palegray); */
	}
	
	#header ._inner2 ul.inner>li{
		background-color: var(--c-menu);
	}
	
	#header ._inner2 li {
		background-color: #fff;
		border-top: 1px solid var(--c-green);	
		border-left: 1px solid var(--c-green);	
	}
	
	#header ._inner2 ul li > a,
	#header ._inner2 ul li > span {
		display: block;
		padding: .5em 0 .5em 1.5em;
		font-weight: 400;
	}
	
	#header ._inner2 > ul >li > a,
	#header ._inner2 > ul > li > span {
		font-size: var(--f20);
		font-weight: 600;
	}
	
	#header ._inner2 ul.inner>li:not(.current) ul{
		display: none;
	}
	
	/* #header ._inner2>ul.inner>li.current>ul>li.active{
	} */
	
	#header ._inner2>ul.inner>li.current>ul>li:not(.current) ul{
		display: none;
	}
	/* #header ._inner2>ul.inner>li:not(.active){
		border-color:blue;
	} */
	
	/* #header ._inner2 ul{
		display: none;
	}
	
	#header ._inner2 ul:has(li.current){
		display: block;
	}
	
	#header ._inner2 ul li.current{
		display: block;
	}
	
	#header ._inner2 ul li.current ul{
		display: block;
	} */
	
	#header ._inner2 .sns_box{
		border-left: none;
		padding-bottom: 10px;
	}
	
	#header ._inner2 .sns_box ul{
		display: flex!important;
		justify-content: center;
		padding: 0;
	}
	
	#header ._inner2 .sns_box .tit{
		padding-top: 0.5em;
		text-align: center;
	}
	
	#header ._inner2 .sns_box ul li{
		max-width: 14%;
		border: none;
	}
	
	#header ._inner2 .sns_box ul li a{
		padding: 2px;
	}

}

.menuBtn {
	display: block;
	width: var(--header-inner);
	height: var(--header-inner);
	cursor: pointer;
	position: relative;
	background-color: #fff;
	border: none;
	border-left: 2px solid var(--c-green);
	border-radius: 0;
}

.menuBtn::after {
	color: var(--c-green);
	font-weight: bold;
	font-size: 10px;
	content: "MENU";
	position: absolute;
	bottom: 5px;
	left: 50%;
	transform: translateX(-50%);
}

.menuBtn i {
	position: absolute;
	top: 35%;
	left: 50%;
	transform: translateX(-50%);
	width: 24px;
	height: 2px;
	background-color: var(--c-green);
	border-radius: 100px;
	transition: .4s;
	transition-property: top, left, transform, opacity;
}

.menuBtn i:nth-of-type(2) {
	top: calc(35% + 10%);
}

.menuBtn i:nth-of-type(3) {
	top: calc(35% + 20%);
}

.is-menuOpen .menuBtn i:nth-of-type(1),
.is-menuOpen .menuBtn i:nth-of-type(2) {
	top: calc(45%);
	transform: translate(-50%, -50%) rotate(45deg);
}

.is-menuOpen .menuBtn i:nth-of-type(3) {
	top: calc(45%);
	transform: translate(-50%, -50%) rotate(-45deg);
}

.menuBtn span {
	position: absolute;
	bottom: 10%;
	left: 0;
	color: var(--c-red);
	font-size: 10px;
	text-align: center;
	display: block;
	width: 100%;
}



/* ===================================================================================
FOOTER
====================================================================================== */

/* footer
----------------------------------------------- */
#footer .footer_box1 {
	background-color: var(--c-footer);
	padding-top: var(--s5);
	padding-bottom: var(--s5);
}

/* #footer .footer_box1 .inner {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 5%;
} */


	


#footer .footer_box1 .inner{
	columns: 3;
	column-gap: 2em;
	max-width: 1500px;
	/* font-size: var(--f14); */
	font-size: 14px;
	line-height: 1.8;
	@media (max-width: 1000px) {
		columns: 2;
	}
	/*SP*/
	@media (max-width: 640px) {
		columns: 1;
	}
}

#footer .footer_box1 .inner ul{
	margin-left: 1.2em;
}

#footer .footer_box1 .inner ul ul,
#footer .footer_box1 .inner ul.footer_nodisp{
	display: none;
}

#footer .footer_box1 .inner>li{
break-inside: avoid;
}

#footer .footer_box1 ._tit > a,
#footer .footer_box1 ._tit > span{
	font-weight: 600;
	font-size: var(--f16);
	padding-bottom: .5em;
	margin-bottom: .5em;
	border-bottom: 1px solid var(--c-gray1);
	position: relative;
	display: block;
}

#footer .footer_box1 a:hover{
	color: var(--c-green);
}

#footer .footer_box1 .active > a{
	color: var(--c-green);
	font-weight: 700;
	position: relative;
}

#header ._inner2 ul li.active > a{
	color: var(--c-green);
}

#header ._inner2 ul li.active > a::before{
	content:"\25CF";
	position: absolute;
	/* top: .55em; */
	left: -.5em;
}

@media (max-width: 767px) {
	#header ._inner2 ul li.active > a::before{
		left: .3em;
	}
}

@media (min-width: 768px) {
	#header ._inner2 ul.inner>li.active > a::before{
		content:"";
	}
}

#footer .footer_box1 .active > a:before{
	content:"\25CF";
	position: absolute;
	top: -.1em;
	left: -1.2em;
}

#footer .footer_box1 a[href^="https:"]::after{
	content: "\2192";
	font-weight: 900;
	position: absolute;
	top: 35%;
	right: 0;
	transform: translateY(-50%);
}


#footer .footer_box1 ._list {
	padding-top: 0.8em;
}

#footer .footer_box1 *+._tit {
	margin-top: 2em;
}

#footer .sns_box {
	text-align: center;
}

#footer .sns_box img{
	width: 40px;	
}

#footer .sns_box > h3 {
	display: block;
	font-size: var(--f18);
	padding-top: 2em;
	padding-bottom: 1em;
}

#footer .footer_box1 .sns_box a[href^="https:"]::after{
	content: "";
}


#footer .sns_box ul {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	gap: 10px;
}

#footer .footer_box2 {
	text-align: center;
	background-color: var(--c-green);
	color: #fff;
	display: block;
	padding-top: var(--s5);
	padding-bottom: var(--s3);
}

#footer ._logo {
	width: 150px;
	display: inline-block;
	padding-bottom: var(--s1);
}

#footer ._copyright {
	font-size: clamp(0.625rem, 0.493rem + 0.563vw, 1rem); /*16px-10px*/
	font-weight: 400;
}

#gl_float {
	position: fixed;
	bottom: var(--s2);
	right: 2vw;
	z-index: 100;
}

.totop {
  width: 60px;
  height: 60px;
  display: grid;
  place-content: center;
  opacity: 0;
  /* transition: 0.8s opacity var(--easeOutQuint) 0s; */
  transition: opacity 0.3s !important;
  font-size: 2em;
}

.totop.is-show {
  cursor: pointer;
  opacity: 1;
}


/* ===================================================================================
 js-tabs
 ====================================================================================== */

.js-tabs>* {
	opacity: .6;
}

.js-tabs>*.is-active {
	opacity: 1;
}

.js-tab_conts>* {
	display: none;
}

.js-tab_conts>*.is-active {
	display: block;
}

/* ===================================================================================
h2..h6
====================================================================================== */
h2 {
	font-size: var(--f28);
}

h3 {
	font-size: var(--f24);
}

h4 {
	font-size: var(--f22);
}

h5 {
	font-size: var(--f20);
}

h6 {
	font-size: var(--f18);
}


.hd2 {
	font-size: var(--f32);
	font-weight: 600;
	position: relative;
	padding-bottom: 0.5em;
	margin-bottom: 1em;
}

.hd2::before {
	content: "";
	position: absolute;
	bottom: 0%;
	left: 0%;
	width: 150px;
	height: 8px;
	border-radius: 8px;
	background-color: var(--c-green);
}

.hd2.-ene::before {
	background-color: var(--c-orange);
}

.hd2Green {
	font-size: var(--f32);
	margin-bottom: 1em;
	color: var(--c-green);
}

.hd_line {
	text-align: center;
	font-size: var(--f32);
	padding-bottom: .5em;
	margin-bottom: 1em;
	position: relative;
}

.hd_line::before {
	content: "";
	position: absolute;
	bottom: 0%;
	left: 0%;
	width: 100%;
	height: 4px;
	border-radius: 8px;
	background-color: var(--c-green);
}

.hd_line.-orange::before {
	background-color: var(--c-orange);
}

.hd3 {
	font-size: var(--f24);
	position: relative;
	padding-left: 1.2em;
	padding-top: 0.2em;
	padding-bottom: 0.2em;
	margin-bottom: 1em;
}

.hd3::before {
	content: "";
	position: absolute;
	top: 0%;
	left: 0%;
	width: 8px;
	height: 100%;
	border-radius: 8px;
	background-color: var(--c-green);
}

.hd3.-ene::before {
	background-color: var(--c-orange);
}

.hd3.-water::before {
	background-color: var(--c-blue);
}

.hd3Green {
	text-align: center;
	position: relative;
	padding-bottom: 1em;
	margin-bottom: 1em;
}

.hd3Green::before {
	content: "";
	position: absolute;
	bottom: 0%;
	left: calc(50% - 75px);
	transform: translateY(-50%);
	width: 150px;
	height: 6px;
	border-radius: 8px;
	background-color: var(--c-green);
}

.hd4 {
	/* color: var(--c-blue); */
	font-size: var(--f20);
	margin-bottom: .8em;
}

/* =====================================================================
titleBox デフォルトはオレンジ
 ======================================================================== */
.titleBox {
	text-align: center;
}

.titleBox span {
	line-height: 1.3;
	display: inline-block;
	background-color: var(--c-orange);
	color: #fff;
	font-weight: 700;
	padding: .5em var(--s8);
	border-radius: 100px;
	position: relative;
}

/*吹き出しつき*/
.titleBox.-fuki span {
	margin-bottom: 1em;
}

.titleBox.-fuki span::after {
	content: "";
	position: absolute;
	background-color: var(--c-orange);
	bottom: -.9em;
	left: 50%;
	transform: translateX(-50%);
	clip-path: polygon(0 0, 100% 0%, 50% 100%);
	width: .5em;
	height: 1em;
}



/* ===================================================================================
.s_frame
====================================================================================== */
.s_frame{
	padding: var(--s4);
	border-radius: var(--s2);
	background-color: #fff;
	border: 5px solid #fff;
}

.s_frame.-yellow{
	background-color: var(--c-yellow);
}



.s_frame + .s_frame{
	margin-top: var(--s4);
}

.s_frame ._tit{
	font-weight: 800;
	padding-left: 1em;
	position: relative;
}

.s_frame.-yellow ._tit2{
	font-size: var(--f28);
	font-weight: 800;
	color: var(--c-orange);
}

.s_frame ._tit::before{
	content:"";
	position: absolute;
	background-color: var(--c-green);
	top: 10%;
	left: 0%;
	width: 8px;
	height: 80%;
	border-radius: 10px;	
}

.s_frame ._tit.-ene::before{
	background-color: var(--c-orange);
}

.s_frame ._tit.-water::before{
	background-color: var(--c-blue);
}

.s_frame ._lead{
	margin-top: 1em;
	font-size: var(--f16);
	font-weight: 600;
}

.s_frame ._titbox{
	display: grid;
	grid-template-columns: 1fr auto;
	gap:var(--s3);
	/*SP*/
	@media (max-width: 767px) {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 767px) {
	.s_frame ._titbox .bt_st1 a{
		max-width: 80%;
	}
}


.s_frame ._navbox{
	padding-top: var(--s4);
	margin-top: var(--s4);
	border-top: 1px solid var(--c-gray1);
}

.s_frame ._navbox ul{
	display: grid;
	grid-template-columns: repeat(var(--3-1), 1fr);
	gap:1em;
}

.s_frame ._navbox.-grid4 ul{
	grid-template-columns: repeat(var(--4-2-1), 1fr);
}

.s_frame ._navbox ._wide {
  grid-column: span 2; /* 最後の要素を全体に広げる */
}

.s_frame ._navbox li>a,
.s_frame ._navbox li>p{
	position: relative;
	padding-left: 2em;
}

.s_frame ._navbox a{
	display: block;
}

.s_frame ._navbox a:hover{
	color: var(--c-green);
}

.s_frame ._navbox a::before{
	font-family: saisan;
	content:"\e86b";
	position: absolute;
	top: 0;
	left: 0;	
}

.s_frame ._navbox a::after{
	font-family: saisan;
	content:"";
	margin-right: 0.25em;
	color: var(--c-green);
}

.s_frame ._navbox a[href^="http"]::after{
	content:"\e866";
}


.s_frame ._navbox a._form::after {
	content: "\e848";
}


.s_frame ._navbox a[href$=".pdf"]::after{
	content: "\e84e";
}

/* 
電気、水 
====================================================================================== */
.s_frame.-ene ._tit::before{
	background-color: var(--c-orange);
}

.s_frame.-water ._tit::before{
	background-color: var(--c-blue);
}



/* =====================================================================
textBox
 ======================================================================== */
.textBox *+p,
.textBox *+ul {
	margin-top: 1em;
}

/* ===================================================================================
BUTTON
====================================================================================== */



.bt_st1 a,
.bt_st1 ._bt {
	display: block;
	gap: 2em;
	padding: 1em 3em 1em 2em;
	border-radius: 100px;
	background-color: #fff;
	border: 2px solid var(--c-green);
	color: var(--c-green);
	font-weight: 600;
	line-height: 1.2;
	position: relative;
	max-width: 100%;
}

.bt_st1.-btw50p a,
.bt_st1.-btw50p ._bt {
	min-width: 50%;
	margin-left: auto;
	margin-right: auto;
}

.bt_st1.-yg a {
	background-color: var(--c-ygreen);
	color: var(--c-green);
}

.bt_st1.-g a {
	background-color: var(--c-green);
	color: #fff;
}

.bt_st1.-water a {
	border-color: var(--c-blue);
	color: var(--c-blue);
}

.bt_st1.-water a:hover {
	background-color: var(--c-blue);
}

.bt_st1.-ene a {
	border-color: var(--c-orange);
	color: var(--c-orange);
}

.bt_st1.-ene a:hover {
	background-color: var(--c-orange);
}


/*複数縦並び*/
.bt_st1.-list {
	display: grid;
	gap: 2em;
}

/*複数横2個並び*/
.bt_st1.-grid2 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2em;

	/*SP*/
	@media (max-width: 767px) {
		grid-template-columns: repeat(1, 1fr);
	}
}

.bt_st1.-grid3-2 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2em;

	/*SP*/
	@media (max-width: 767px) {
		grid-template-columns: repeat(2, 1fr);
	}
}

.bt_st1.ac a,
.bt_st1 .ac ._bt {
	margin-left: auto;
	margin-right: auto;
	display: inline-block;
}

.bt_st1 a::after,
.bt_st1 ._bt::after {
	font-family: saisan;
	content: "\e86b";
	font-weight: normal;
	font-size: 1.6em;
	position: absolute;
	top: 51%;
	right: .7em;
	transform: translateY(-50%);
}

.bt_st1 a[href^="http"]::after,
.bt_st1 ._bt[href^="http"]::after {
	content: "\e866";
}

.bt_st1 a[href$=".pdf"]::after,
.bt_st1 ._bt[href$=".pdf"]::after {
	content: "\e84e";
}

.bt_st1 a._form::after,
.bt_st1 ._bt._form::after {
	content: "\e848";
}

.bt_st1 a:hover,
.bt_st1:hover ._bt {
	background-color: var(--c-green);
	color: #fff;
}


.bt_st1.-g a:hover,
.bt_st1.-g :hover ._bt {
	background-color: #fff;
	color: var(--c-green);
}

.bt_st2 > * {
	background-color: var(--c-green);
	color: #fff;
}

.bt_st3 {
	display: grid;
	gap: var(--s3);
	font-weight: 600;
	line-height: 1.5;
}



.bt_st3 > a {
	background-color: #fff;
	border: 4px solid var(--c-green);
	border-radius: var(--s3);
	padding: var(--s3);
	display: block;
}

.bt_st3 > a:hover {
	background-color: var(--c-green);
	color: #fff;
}


.bt_st3 dl {
	display: grid;
	grid-template-columns: .8fr 1.2fr;

}

.bt_st3 dt {
	position: relative;
	height: 100%;
	display: grid;
	align-items: center;
	padding-right: var(--s5);
	color: var(--c-green);
	font-size: var(--f24);
}

.bt_st3>*:hover dt {
	color: #fff !important;
}

.bt_st3 dt::before {
	content: "";
	position: absolute;
	top: 50%;
	right: var(--s1);
	transform: translateY(-50%);
	font-family: saisan;
	content: "\e86b";
	font-size: 1.5em;
}

.bt_st3 dt::after {
	content: "";
	position: absolute;
	top: 0%;
	right: 0%;
	width: 4px;
	height: 100%;
	background-color: var(--c-palegreen);
	border-radius: 8px;
}

@media (max-width: 767px){
	.bt_st3 dt::before {
		right: -.2em;
	}
	.bt_st3 dt::after {
		width: 0;
		background-color: transparent;
	}
}

.bt_st3 dd {
	padding-left: var(--s3);
	font-size: var(--f20);
}

.bt_st3 a:hover dd .orange{
	color: var(--c-yellow);	
}

/* .bt_st4 */

.bt_st4 a{
	display: block;
	gap: 2em;
	padding: .8em 2em .8em 1em;
	border-radius: 10px;
	width: 100%;
	color: #fff;
	border: 2px solid var(--c-bgreen);
	background-color: var(--c-bgreen);
	font-weight: 600;
	line-height: 1.2;
	position: relative;
	font-size: var(--f14);	
	display: flex;
	align-items: center;
	place-content: center;
	height: 100%;
}

.bt_st4 a:hover{
	background-color: #fff;
	color: var(--c-bgreen);
}


.bt_st4 a::after {
	font-family: saisan;
	content: "\e86b";
	font-weight: normal;
	font-size: 1.6em;
	position: absolute;
	top: 51%;
	right: 0;
	transform: translateY(-50%);
}

/* ===================================================================================
modal
====================================================================================== */
.modalOpen{
	cursor: pointer;
}


.modal {
	display: none;
	position: fixed;
	z-index: 5000;
	left: 0;
	top: 0;
	height: 100dvh;
	width: 100%;
	overflow: auto;
	background-color: rgba(0, 0, 0, 0.5);
	backdrop-filter: blur(10px);
}

.modal .modal-box {
	background-color: #fff;
	max-width: 800px;
	width: 90%;
	max-height: 90dvh;
	border-radius: 10px;
	animation-name: modalopen;
	animation-duration: 1s;
	padding: 0;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.modal ._scroll {
	overflow-y: scroll;
	max-height: 80dvh;
}

.b_contact .modal .modal-box {
	max-width: 1000px;
}

#about_branches .modal .modal-box {
	height: 90dvh;
}

.modal .modal-box iframe {
	width: 100%;
	height: 100%;
}

.modal_inner{
	padding: var(--s3);
	overflow-y: scroll;
	max-height: 80vh;
}

.modalClose{
	background-color: var(--c-green);
	width: 100%;
	height: 55px;
	border-radius: 0 0 10px 10px;
	display: grid;
  place-content: center;
  color: #fff;
  cursor: pointer;
}

#modal_water .modal-box .modalClose{
	background-color: var(--c-blue);
}


.modalClose span::after{
	font-family: saisan;
	content: "\e864";
	font-size: 1.5em;
	margin-left: .25em;
	position: relative;
	top: 0.1em;
}

/*SP*/
@media screen and (max-width : 767px) {
	.modal .modal-box {
		max-width: 96%;
		max-height: 96dvh;
	}
}

/* .modalClose {
	position: absolute;
	top: 0;
	right: 0;
	width: 40px;
	height: 40px;
	background-color: transparent;
	border: none;
	cursor: pointer;
}

.modalClose::before,
.modalClose::after {
	content: "";
	position: absolute;
	width: 100%;
	height: 2px;
	background-color: var(--c-green);
	top: 50%;
	right: 0;
	transform: rotate(45deg);
	transform-origin: center;
}

.modalClose::after {
	transform: rotate(-45deg);
} */



/* ===================================================================================
s_slider
====================================================================================== */
.s_slider{
	background-color: var(--c-green);
	padding-top: var(--s6);
	padding-bottom: var(--s6);
	position: relative;
	overflow: hidden;
}

#b_top .s_slider{
	padding-top: var(--s10);
}

.js-swiper-main{
	position: relative;
}

.js-swiper-main .swiper-slide{
	text-align: center;
}

.js-swiper-main a{
	display: block;
	cursor: pointer;
}

.js-swiper-main a:hover{
	opacity: .5;
}

.js-swiper-main img{
	border: 4px solid #fff;
	border-radius: var(--s3);	
}

.s_slider .swiper-pagination{
	/* top: calc(0px - var(--s5) ); */
	top: -40px;
	bottom: auto;
	/*SP*/
	@media (max-width: 767px) {
		top: -30px;
	}
}


.s_slider nav{
	max-width: 700px;
	padding-inline: 5px;
}

.s_slider nav ul{
	position: relative;
	z-index: 10;
	margin-top: calc(0px - var(--s2) );
	display: flex;
	justify-content: space-between;
}

.s_slider nav li{
	width: 32%;
}

.s_slider nav a{
	border: 4px solid var(--c-green);
	background-color: #fff;
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 200px;
	text-align: center;
	line-height: 1.3;
	box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.35);
	font-size: clamp(0.813rem, 0.658rem + 0.657vw, 1.25rem); /*20px-13px*/
	font-weight: 600;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.s_slider nav a > figure{
	height: 50%;
}

.s_slider nav img{
	margin-inline: auto;
	margin-bottom: var(--s1);
	height: 90%;
}

.s_slider nav li:first-child img{
	height: 95%;
}



.s_slider nav a:hover{
	background-color: var(--c-yellow);
	border-color: var(--c-orange);	
}

/* .s_slider nav img{
	width: 40%;
	height: 45%;
	margin-bottom: var(--s1);
} */

.swiper-pagination-bullet {
  background-color: #fff ;
}

/*新規追加*/

  #chat_tab {
    position: fixed;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    cursor: pointer;
    z-index: 100;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px; 
    height: auto; 
  }

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

.popup-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(8px);
  z-index: 4000;
　}

  .chat-popup {
    display: none;
    position: fixed;
    top: 55%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.8);
    padding: 30px 20px;
    background-color: #fff;
    border: 3px solid #888;
    border-radius: 10px;
    z-index: 4001;
    width: 700px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);	  
    max-width: 90%;
    text-align: left;
    opacity: 0;
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.5s ease-out;
    overflow-y: auto; 
    max-height: 80vh;
	font-family: saisan;  
  }

  .chat-popup.show {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.05);
    animation: popupOpen 0.4s forwards;
  }

  @keyframes popupOpen {
    0% { transform: translate(-50%, -50%) scale(0.8); opacity: 0; }
    60% { transform: translate(-50%, -50%) scale(1.05); opacity: 1; }
    100% { transform: translate(-50%, -50%) scale(1); }
  }

  .popup-title {
    color: #ea545d;
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 15px;
	font-family: saisan;  
  }

  .chat-popup ul {
    list-style: none;
    padding: 0;
    margin: 15px 0 25px;
  }

  .chat-popup ul li {
    margin-bottom: 8px;
    line-height: 1.3;
  }

.enter-btn {
  margin-top: 15px;
  padding: 12px 120px;
  background-color: #28a88d;   
  color: #fff;                   
  border: 2px solid #28a88d;     
  cursor: pointer;
  border-radius: 5px;          
  font-size: 18px;
  display: block;
  margin-left: auto;
  margin-right: auto;
  font-weight: 600;
  line-height: 1.2;
  position: relative;
  transition: all 0.3s ease;      
}

.enter-btn:hover {
  background-color: #fff;       
  color: #28a88d;                 
}

  .close-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    background: none;
    border: none;
    font-size: 50px;
    cursor: pointer;
    color: #888;
  }

body.modal-open {
  overflow: hidden;
  height: 100vh;
}

  @media screen and (max-width: 480px) {
  #chat_tab {
    width: 40px !important; 
  }	  
	  
    .chat-popup ul li, .popup-text, .popup-title {
      font-size: 12px !important;
	  letter-spacing: -0.5px;
      line-height: 1.2 !important;		
    }

    .popup-title {
      font-size: 16px !important;
    }

    .enter-btn {
      font-size: 14px !important;
      padding: 8px 80px !important;
    }
  }



/*ここまで*/